¿Cuáles son las desventajas de BrowserID / Persona en comparación con OpenID / OAuth / Facebook?

44

Mozilla se puso en marcha con un nuevo servicio llamado BrowserID / Persona ( anuncio , background ). Está pensado para reemplazar las soluciones actuales de inicio de sesión único, como OpenID, OAuth y Facebook.

Una ventaja es que una integración futura en los navegadores reducirá el phishing riesgos Además, no se notificará al proveedor de identidad sobre los sitios a los que alguien inicia sesión, lo que es bueno desde el punto de vista de la privacidad.

¿Cuáles son los problemas con BrowserID / Persona en comparación con OpenID / OAuth / Facebook?

    
pregunta Hendrik Brummermann 15.07.2011 - 16:39
fuente

5 respuestas

30

Me gusta la idea, pero también tengo muchas preguntas abiertas. No vea esto como una forma de ataque, porque lo escribí tratando de aplicar mi experiencia de autenticación a este nuevo esquema.

Me preocupa (sin ningún orden en particular):

  1. Uso no autorizado de la clave privada
  2. Soporte de cliente enriquecido (Outlook, Notes, etc.)
  3. Uso de varias computadoras
  4. Protección de clave privada o encriptación (en el cliente)
  5. Autenticación de solicitudes de generación de claves
  6. Privacidad

Detalles a continuación. Primero, un resumen de una línea (en negrita cursiva ) y algunas aclaraciones.

1. Uso no autorizado de la clave privada

La clave privada estará protegida por el cliente, con diversos grados de seguridad.

Me preocupa que alguna clave privada se use sin mi consentimiento. Cuando se intenta autenticar, se realizará una operación de firma. Debo recibir una solicitud antes de que se use o, de lo contrario, un script malicioso podría hacer que mi navegador firme un ticket de inicio de sesión y lo envíe. El script Rogue podría provenir de un widget, un complemento u otro XSS. La implementación de este mecanismo variará en cada navegador, e incluso en diferentes plataformas para el mismo navegador, o diferentes versiones, etc. Con una visión un tanto inconsistente, los usuarios corren un mayor riesgo de ser atraídos a aprobar una solicitud de inicio de sesión.

2. Soporte de cliente enriquecido (Outlook, Notes, etc.)

Fue diseñado para trabajar con cuentas de correo web. Los clientes de correo "grandes" de la empresa se quedan un poco atrás.

Para que la ID del navegador funcione, necesita un navegador que lo admita. Mientras tanto, algunos browserid.org emitieron "shim de JavaScript que implementa la funcionalidad faltante utilizando técnicas estándar de HTML5 y rutinas criptográficas implementadas en JavaScript".

Los usuarios de un entorno corporativo que utilizan el cliente de correo electrónico (Outlook, Notes, Thunderbird) serán usuarios tardíos, ya que el protocolo también se implementará en esos clientes. Sin mencionar que Outlook no comparte un almacén de claves con Firefox o Thunderbird con IE.

3. Usando desde múltiples computadoras

Esto lleva a una proliferación de claves privadas, porque el esquema no tiene una autoridad central.

Y hay un problema de movilidad. Tendré que registrarme (generar una clave privada) para cada computadora que use. ¿Cómo voy a eliminar mi clave privada en un quiosco de Internet o en una computadora prestada? Incluso con una sola computadora, ¿cómo revocaré una clave almacenada en una computadora robada? Dado que para un solo usuario, varias claves de firma son válidas (ya que cada una de mis computadoras tiene su propia clave privada válida), desde el punto de vista del proveedor de servicios, cualquier token de acceso firmado por una autoridad conocida debe ser válido.

4. Protección de clave privada o encriptación (en el cliente)

El acceso a la clave debe estar autenticado, lo que hace que las contraseñas vuelvan a aparecer en la imagen.

Puede protegerse con una contraseña (limitando su reutilización maliciosa), pero si alguna vez cambio mi contraseña en algún lugar, no se sincronizará a menos que use alguna red de sincronización basada en navegador / nube. Tener una contraseña para recordar anula un tanto el propósito de este esquema. Es probable que se use la misma contraseña para asegurar cada clave, al igual que la misma contraseña que se usa ahora para autenticarse en varios sitios web.

5. Autenticación de solicitudes de generación de claves

Hay una brecha entre la solicitud de acceso y la generación de claves, que un atacante podría usar para el phishing.

No me queda claro cómo el proveedor de correo electrónico / autoridad de certificación manejará los problemas de CSRF. ¿Cómo sabrán que una solicitud de generación de claves es legítima? ¿Se llenará mi carpeta de correo no deseado con solicitudes de generación de certificados? ¿O será la clave emitida sólo con los servidores de correo electrónico DKIM? ¿Qué pasaría si la solicitud fuera interceptada en su forma SMTP al servidor, podría ser modificada?

6. Privacidad

El uso de una etiqueta permite a browserid.org romper la misma política de origen.

Y el uso de una etiqueta de script para incluir el browserid.js les permite omitir la misma política de origen. BrowserID.org (tendrá el poder de) conocer cada intento de inicio de sesión que realice. O tendrá que alojar el script usted mismo (asumiendo que es autónomo) y actualizarlo si / cuando se detecten fallas de seguridad en él.

    
respondido por el ixe013 15.07.2011 - 20:30
fuente
12

El intercambio de pila también tiene una comparación detallada de BrowserId y WebID . Tal como se argumentó allí, BrowserId está muy cerca de WebID (un Grupo de Incubadoras de W3C en W3C). Aquí hay algunos puntos que deben hacerse en defensa de ambos protocolos, ya que son muy diferentes de cómo se realiza la criptografía de clave pública.

  1. Uso no autorizado de la secuencia de comandos . De acuerdo en que esto tendrá que ser implementado muy cuidadosamente por el navegador BrowserID. Como se basa en WebID construido en certificados de navegador que han existido durante 13 años, yo creo que esa parte se ha tratado hace mucho tiempo :-)
  2. Si desea soporte de cliente enriquecido , use WebID. Solo requiere un TLS capa - ajustado un poco en el lado del servidor. Todos los sistemas operativos y todos los lenguajes de programación vienen con TLS incorporado.
  3. Uso de varias computadoras : tanto BrowserID como WebID te permiten tiene cualquier número de certificados, uno para cada computadora. Esto no es una problema. Para WebID, vea este video Creación y uso de WebID en 4 minutos
  4. Cifrado de clave privada en el cliente : todas las computadoras modernas vienen con un llavero que almacena sus contraseñas y claves, y que están protegidos con una contraseña.

    Hay mucho en lo que los proveedores de sistemas operativos pueden trabajar para mejorar seguridad aqui En OSX me piden una contraseña especial, y puedo dar Diferentes herramientas acceden al llavero con mayor o menor facilidad. Por supuesto el llavero NUNCA debe dar la clave privada. Entregando la clave pública. no es un problema en absoluto, por supuesto :-)

    Pero, por supuesto, para computadoras de escritorio se puede vaya aún más lejos y use las claves criptográficas como se muestra en el video Cryptokeys, WebID y cibercafés , aunque requeriría proveedores de navegador para mejorar la interfaz de usuario un poco. Aquí tienes un hardware. token para garantizar que la clave privada no ha sido copiada. De todas formas para BrowserID necesitarían integrar esto en el llavero, o encuentre una forma de JavaScript de enviar certificados x509 almacenados en el llavero sobre el cable.

  5. Autenticación de solicitudes de generación de claves : usar el correo electrónico es práctico pero inherentemente inseguro. Todavía la gente lo está utilizando, y la ventaja de BrowserID es que funciona con esto, sin requerir que las personas actualicen a TLS. WebID hace todo TLS, por lo que obtiene seguridad de grado comercial allí fuera de la caja.
  6. Privacidad : no soy muy bueno con JavaScript y lo tengo en mi Lista de cosas que aprender, simplemente divertirse mucho ahora con Scala. De todos modos, no puedo comentar sobre este problema de JavaScript con BrowserId, pero Quisiera entenderlo mejor. Con WebID no hay JavaScript involucrado en la actualidad, por lo que no hay un problema de política del mismo origen que tratar. La selección de identidad se encuentra directamente en el navegador, como se muestra en la video mencionado anteriormente.

¡Oh Dios! ¡Debería crear una cuenta aquí una vez más para publicar este comentario! No es de extrañar que Facebook haya destruido la blogosfera. Ahí solo necesitas una contraseña y puedes comentar todo lo que desees.

    
respondido por el bblfish 17.07.2011 - 11:43
fuente
9

Estoy enviando una respuesta a los seis puntos de la respuesta aceptada como una nueva respuesta ...

1. Uso no autorizado de la clave privada

En el caso de la implementación de Javascript BrowserID, la clave privada se almacena en almacenamiento local bajo el dominio login.persona.org. Por lo tanto, un script malicioso tendría que estar alojado en ese dominio para tener acceso a él. Los scripts alojados en otros lugares solo pueden acceder a la clave de forma indirecta a través de una API restringida PostMessage .

2. Soporte de cliente enriquecido (Outlook, Notes, etc.)

BrowserID funciona con cualquier cuenta de correo electrónico o cliente de correo. El Javascript Javascript es compatible con navegadores sin una implementación nativa. No es necesario agregar nada a los clientes de correo.

3. Usando desde múltiples computadoras

Una cosa importante a destacar aquí es que las claves son de corta duración. Si está en un kiosco de Internet, las claves son válidas solo por 1 hora, si está en su propio dispositivo, son válidas por 1 día. Se generará una nueva según sea necesario una vez que haya caducado, siempre que aún esté autenticado con login.persona.org. No hay necesidad de copias de seguridad.

Si desea borrar su clave privada, simplemente borre las cookies (que también borran el almacenamiento local, donde se almacenan las claves).

Si su computadora es robada, hay una pequeña ventana durante la cual un atacante podría usar la clave, pero siempre que cambie su contraseña en login.persona.org , el login.persona.org será invalidado y el ladrón no será capaz de obtener una nueva clave.

4. Protección de clave privada o cifrado (en el cliente)

Para obtener una nueva clave firmada por su proveedor de identidad, debe estar autenticado con ella. Si la autenticación caduca, deberá escribir su contraseña nuevamente. Esto es similar a las sesiones basadas en cookies que parecen ser la norma en la web.

La clave privada no es tan valiosa porque es de corta duración. A este respecto, tiene más en común con las cookies que con los certificados de cliente X.509.

5. Autenticación de solicitudes de generación de claves

El proveedor de identidad sabe que una solicitud es legítima porque el usuario se autentica con ellos. El proveedor de identidad alternativa solo firma claves después de confirmar la propiedad de la dirección de correo electrónico (en el estándar "enviar a los usuarios un enlace con un token aleatorio para hacer clic en").

La generación / firma de certificados se realiza entre el navegador y el proveedor de identidad a través de una API de Javascript. No se basa en el envío de correos electrónicos, por lo que los usuarios no recibirán ningún mensaje de correo electrónico más allá del mensaje "confirme su dirección de correo electrónico" que el proveedor de identidad alternativa le envíe al momento de crear la cuenta.

6. Privacidad

Una vez que la API sea lo suficientemente estable, será posible que otros alojen include.js ellos mismos. En este momento, recomendamos en contra de eso.

Otro punto en el que persona.org puede ver los sitios en los que inicia sesión es con la herramienta de verificación en línea en https://verifier.login.persona.org/verify . Una vez que se haya resuelto el formato de los datos, animaremos a las personas a verificar las aserciones (por ejemplo, utilizando una biblioteca de código abierto) y persona.org no volverá a obtener esta información.

BrowserID está diseñado para ser un protocolo completamente descentralizado para permitir la privacidad real. Sin embargo, también proporciona reservas centralizadas para solucionar la falta actual de soporte nativo.

    
respondido por el Francois Marier 13.09.2012 - 05:23
fuente
6

Una desventaja de BrowserID en su forma actual en comparación con algunas de las alternativas es que cualquier cosa más allá de la funcionalidad central es difícil: el descubrimiento de información adicional requiere otros protocolos como WebFinger, mientras que, por ejemplo, una URL de OpenID puede proporcionar enlaces. Por ejemplo, es difícil obtener un nombre para mostrar o una imagen de perfil desde BrowserID (aunque, dado que BrowserID te da una dirección de correo electrónico, puedes obtener esta última de Gravatar).

Un protocolo más de la competencia para agregar a la lista: WebID: enlace

    
respondido por el Danny 17.07.2011 - 11:45
fuente
5

Para obtener más información sobre BrowserId / Persona, finalmente encontré lo que Daniel contribuyó a las preguntas y respuestas relacionadas A en BrowserId / Persona y WebID . (Traté de convencerlo de que publicara aquí, pero él sugirió que lo hiciera).

Requisitos de seguridad, privacidad y facilidad de uso para la identidad federada por Michael Hackett y Kirstie Hawkey proporciona una comparación entre WebID y Mozilla Persona, que en ese momento todavía se llamaba BrowserID.

Las principales diferencias que se observaron (en la Tabla 1) son:

  • Las claves de persona son de corta duración y deben protegerse con una contraseña. Las claves de WebID son de larga duración pero se pueden desactivar fácilmente desde un perfil protegido por contraseña.
  • La implementación actual de Persona utiliza ventanas de navegador estándar, por lo que es difícil detectar la suplantación de identidad (esto puede cambiar una vez que los navegadores obtienen soporte nativo de Persona). WebID usa la IU de selección de certificado nativa del navegador, por lo que no hay posibilidad de phishing.
  • Las identidades de Persona y WebID pueden verse comprometidas si se pierde el control sobre el correo electrónico / URI del propietario.
  • Los IdP de persona no tienen conocimiento de los SP que usan una identidad. Los IdP de WebID conocen cada SP que usa una identidad.
  • Si una Persona SP tiene una memoria caché de la clave pública del IdP y el navegador aún tiene un certificado válido, todavía debería ser posible verificar las identidades. Los perfiles de WebID deben ser accesibles, de lo contrario las identidades no serán utilizables.
  • La persona tiene un buen diseño de UX, mientras que WebID es lo contrario.

Sugiero leer el documento para más detalles. Está disponible gratuitamente en línea, no se necesita acceso a la biblioteca digital.

    
respondido por el sage 03.03.2013 - 22:36
fuente

Lea otras preguntas en las etiquetas