This is an archived page. It's not actively maintained.

Cifrado

El sistema de identidad de Persona usa el cifrado de llave p煤blica para asegurar la confianza y seguridad en el proceso de autenticaci贸n.

Por qu茅 funciona el sistema descrito en Informaci贸n general del Proveedor de Identidad?

Cadena de confianza

El navegador del usuario almacena localmente peque帽as piezas de informaci贸n para cada una de las identidades del usuario: una direcci贸n de correo electr贸nico, un par de llaves, y un certificado del IdP (Identity Provider) asociado.

El par de llaves del usuario es un par criptogr谩fico DSA o RSA est谩ndar que es generado y guardado localmente en el navegador del usuario. El certificado es firmado por el IdP asociado a la identidad del usuario elegida. Estos certificados est谩n dise帽ados para no durar mas de 24 horas y pueden ser proporcionados de nuevo cuando caducan, siempre y cuando el usuario tenga una sesi贸n activa con el IdP. Los pares de llaves nunca son compartidos entre computadoras ni entre navegadores.

Como se describe en la descripci贸n general del protocolo, el navegador del usuario es capaz de generar y firmar aserciones de identidad ef铆meras especif铆cas del sitio. Cuando se toman juntas estas aserciones con la informaci贸n en un certificado del usuario, el sitio es capaz de verificar la identidad de ese usuario. La autenticidad de los certificados debe ser verificada obteniendo la llave p煤blica del IdP, la cual es publicada en un documento disponible sobre SSL.

De esa manera, la seguridad de Persona depende de que la llave privada del usuario y la llave privada del dominio se mantengan en secreto y de que la conexi贸n SSL al IdP sea segura. Si se rompe la seguridad en cualquiera de estos puntos, la seguridad de la identidad del usuario puede verse comprometida.

Generando pares de llaves IdP

Para los IdPs (Identity Providers ), el paquete jwcrypto proporciona una herramienta de linea de comandos, generate-keypair, la cual genera las llaves adecuadas para el uso con Persona. Debido a que las llaves generadas ya est谩n serializadas en JSON, la llave p煤blica es adecuada para su inclusi贸n directa en el campo de llaves p煤blicas del archivo /.well-known/browserid del IdP.

Certificado y formato de aserci贸n

Por favor, consulte la especificaci贸n de BrowserID para informaci贸n m谩s detallada, pero a grandes rasgos, tanto los certificados como las aserciones son cadenas con tres partes: un encabezado, un cuerpo y una firma criptogr谩fica. Cada parte est谩 codificada separadamente en base64url, y concatenada delimitando cada parte con caracteres ".". El cuerpo no est谩 cifrado, es texto plano que puede leerse si lo decodificas en base64url.

Los certificados y las aserciones son empaquetados juntos en una "aserci贸n respaldada" cuando el usuario intenta autenticarse en un sitio. El paquete es creado concatenando un certificado y una aserci贸n, separados por un "~".