2009-03-25 8 views
5

He estado estudiando mucho y trabajando recientemente relacionado con WCF, servicios web y computación distribuida en general, pero la mayoría de los conceptos de seguridad se me pasan por la cabeza. Seguridad de transporte, seguridad de mensajes, encriptación, certificados, etc. Entiendo los conceptos básicos del cifrado simétrico y asimétrico, pero realmente no entiendo su aplicación real en una conversación SOAP.¿Qué es una buena lectura de seguridad de servicios web/WCF?

Me gustaría leer las especificaciones, pero parecen un poco densas. ¿Alguien puede indicarme los recursos que comienzan con lo básico y funcionan desde allí? Estoy tentado de buscar el libro de texto de mi curso de networking en la universidad para entender mejor lo que está sucediendo en el nivel más bajo, pero no sé si esto es enormemente ineficiente o no. Preferiría no tener que leer una pequeña biblioteca llena de cosas; solo quiero asimilar los conceptos y ser capaz de explicarlos al pato de goma en mi escritorio.

Respuesta

8

Editar:

Ya han pasado varios años desde que escribí por primera vez la respuesta y la lista se está haciendo vieja. Se ha producido una amplia adopción de API habilitadas para la web y retransmisión de confianza basada en token.

No lo he leído, pero Windows Communication Foundation Security sería un buen lugar para comenzar, si está buscando algo específico para WCF.

También mantenga sus ojos abiertos para lo que están haciendo los principales jugadores como Facebook, Google y Twitter. Están utilizando protocolos abiertos como OpenID y OAuth. Al principio, OAuth parece complicado, pero debes entender el mecanismo.

En mi opinión, OAuth reinventa muchas ruedas que SSL ya ha resuelto y deja algunos agujeros de seguridad abiertos. Una lectura interesante es Compromising Twitter's OAuth security system. Facebook's OAuth 2.0 implementation y Google's OAuth 2.0 implementation simplifican muchos de estos problemas al usar https donde tiene sentido. Estas son lecturas obligatorias.

enter image description here

El concepto básico en torno OAuth es la retransmisión de confianza. Desearía que los desarrolladores externos hicieran aplicaciones contra su API, pero los usuarios finales no siempre pueden confiar en estas aplicaciones. Darles una contraseña es como dar las llaves del reino. Entonces, el usuario ingresa la contraseña en su UI y su UI redirige a un tercero con un token de acceso.


Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication es una buena introducción a los modelos de seguridad de ASP.NET. Puede omitir los detalles porque gran parte de la tecnología ahora está obsoleta.

Una buena descripción general de los servicios web es Web Service Security: Scenarios, Patterns, and Implementation Guidance for Web Services Enhancements (WSE) 3.0. Dice WSE, pero los conceptos básicos siguen siendo los mismos.

Para obtener más información sobre WS-Security, lea Securing Web Services with WS-Security: Demystifying WS-Security, WS-Policy, SAML, XML Signature, and XML Encryption.

Securing Web Services with WS-Security http://ecx.images-amazon.com/images/I/51QPQ9QRZQL._SL500_AA240_.jpg

Después de leer por encima, lo que realmente me ayudó estaba buscando en las implementaciones existentes como Amazon S3's authentication:

Amazon S3's authentication http://docs.amazonwebservices.com/AmazonS3/2006-03-01/images/HMACAuthProcess_You.gif

Flickr Authentication API:

Cada FROB autenticación es específica a una usuario y la api de una aplicación clave, y solo se puede usar con esa clave .

frobs de autenticación son válidos durante 60 minutos desde el momento de su creación, o hasta que la aplicación llama flickr.auth.getToken, lo que sea antes.

Solo una autenticación frob por aplicación por usuario será válida en en cualquier momento. Las aplicaciones deben tratar con con vencimientos de autenticación caducados e inválidos y saber cómo renovarlos al .

Twitter REST API

Muchos métodos de la API de Twitter se requieren autenticación. Todas las respuestas son en relación con el contexto del usuario autenticador . Por ejemplo, un intento de para recuperar información en un usuario protegido que no es amigo de , fallará el usuario solicitante.

En el momento, HTTP Basic Autenticación es el único esquema de autenticación admitido . Cuando se autentica mediante a través de Basic Auth, use su nombre de usuario registrado o dirección de correo electrónico como componente de nombre de usuario. Las cookies de sesión y el inicio de sesión basado en parámetros se sabe que funcionan, pero no son oficialmente compatibles.

El esquema de autenticación token OAuth será que se ofrecerá en breve como versión experimental beta.

Así que es bueno saber los certs complicados y las cosas de PKI, pero el mundo parece funcionar sin él muy bien.

+0

+1 para hacer un esfuerzo adicional en esta respuesta! – mhenrixon

+0

+1 ¡justo lo que necesitaba! – Tim

0

Comience por buscar en Wikipedia la Infraestructura de clave pública (PKI) y siga los enlaces para comprender las diferentes piezas. No es necesario que conozca los algoritmos de encriptación para las distintas cifras, pero sí necesita comprender los conceptos si realmente quiere comprender cómo lo usa WCF.

4

Además, también está el WCF Security Guidance de Microsoft's Patterns & Grupo de prácticas. Echale un vistazo.

Marc

+0

+1 porque era lo que estaba buscando – mhenrixon

Cuestiones relacionadas