Web service selection involves finding services from a possibly huge database of similar services. Hence, the challenges involved in finding a suitable service include large time consumption, and difficulty of finding a perfect match according to the user specified search keywords. In addition, significant privacy and security concerns arise, as the information involved with service selection and provisioning may be sensitive for both providers and users. In this paper, we propose a comprehensive framework to uniformly protect users and service providers at the time of service selection. We define a solution that (a) supports private service selection, such that both criteria and service attributes are kept private during the matching and (b) includes an approach to protect service provisioning rules from unwanted disclosure, both from the user and the service provider's perspective. We implemented our solution and integrated with the current Web service standard technologies. We conducted an extensive experimental evaluation, using datasets of actual WSDL documents. Our experimental evaluation and complexity analysis demonstrate that our algorithms are both effective and efficient.