services seguridad secure net example consume c# web-services security encryption

seguridad - web service authentication c# example



Cifrado en C-Web-Services (6)

Estoy buscando una manera simple de cifrar mi comunicación jabón en mi C-Web-Service.

Estuve investigando WSE 3.0 pero parece que Microsoft dejó de admitirlo y, por lo tanto, no es fácil de usar.
Parece que WCF podría haber sido una opción, pero prefiero no actualizar desde .NET 2.0.

¿Algún método de encriptación simple y directo?



En realidad usamos WSE 3.0 en nuestros servicios web, que fueron desarrollados originalmente antes de WCF. Por seguridad, utilizamos un sistema SAML basado en token basado en las clases de Criptografía en System.Security.

Funciona muy bien. Sin embargo, este método no es de ninguna manera "simple".


Tal vez estoy siendo ingenuo, pero ¿sería aceptable forzar la comunicación a través de https? Desarrollo servicios web que se ejecutan en 2.0 y que han tenido éxito con solo lograr que IIS aplique https en el directorio virtual.

Alternativamente, o además, puede verificar la propiedad HttpRequest.IsSecureConnection .


Tal vez estoy siendo ingenuo, pero ¿sería aceptable forzar la comunicación a través de https? Desarrollo servicios web que se ejecutan en 2.0 y que han tenido éxito con solo lograr que IIS aplique https en el directorio virtual.

Esa sería la forma más sencilla de hacerlo, pero lamentablemente no tengo control sobre la configuración de IIS y no puedo garantizar que pueda ejecutar https.

En ese caso, tal vez la mejor opción sea cifrar caso por caso porciones de los mensajes SOAP (después de todo, es posible que no necesite cifrar el mensaje completo, ¿solo ciertos campos confidenciales?), O puede optar por usar un HttpModule para interceptar todos los mensajes y operar en los contenidos. En cualquier caso, es probable que deba proporcionar proxies personalizados.


Todo lo que haga para proporcionar "cifrado" que no use SSL / TLS es probable que sea vulnerable. Ahora tiene que preguntarse, ¿vale la pena quemar horas de desarrollo que podría estar gastando en características en una medida de seguridad de caucho y pollo? Tal vez lo sea

Las API .NET como DPAPI y la API Win32 crypt32 facilitan el cifrado de blobs de datos con claves estáticas. ¿Pero cómo van a recibir tus clientes las llaves? Cualquier cliente SOAP instalado tendrá que tener la clave grabada en su configuración, o recibirla en la insegura Internet.

Este es el problema que SSL / TLS resuelve para usted; el baile que haces con certificados TLS es lo que resuelve el problema de comunicar claves públicas sobre canales que no son de confianza.