OpenID - OpenID

El logotipo de OpenID

OpenID es un protocolo de autenticación descentralizado y de estándar abierto promovido por la organización sin fines de lucro OpenID Foundation . Permite que los usuarios sean autenticados por sitios cooperantes (conocidos como partes de confianza o RP) utilizando un servicio de proveedor de identidad de terceros (IDP), eliminando la necesidad de que los webmasters proporcionen sus propios sistemas de inicio de sesión ad hoc y permitiendo a los usuarios iniciar sesión varios sitios web no relacionados sin tener que tener una identidad y contraseña independientes para cada uno. Los usuarios crean cuentas seleccionando un proveedor de identidad OpenID y luego usan esas cuentas para iniciar sesión en cualquier sitio web que acepte la autenticación OpenID. Varias organizaciones grandes emiten o aceptan OpenID en sus sitios web.

El estándar OpenID proporciona un marco para la comunicación que debe tener lugar entre el proveedor de identidad y el aceptador de OpenID (la "parte de confianza "). Una extensión del estándar (el intercambio de atributos de OpenID) facilita la transferencia de atributos de usuario, como el nombre y el género, del proveedor de identidad de OpenID a la parte que confía (cada parte que confía puede solicitar un conjunto diferente de atributos, según sus requisitos) . El protocolo OpenID no depende de una autoridad central para autenticar la identidad de un usuario. Además, ni los servicios ni el estándar OpenID pueden exigir un medio específico para autenticar a los usuarios, lo que permite enfoques que van desde lo común (como contraseñas) hasta lo novedoso (como tarjetas inteligentes o biometría).

La versión final de OpenID es OpenID 2.0, finalizada y publicada en diciembre de 2007. El término OpenID también puede referirse a un identificador como se especifica en el estándar OpenID; estos identificadores toman la forma de un identificador uniforme de recursos (URI) único y son administrados por algún "proveedor de OpenID" que maneja la autenticación.

Adopción

En marzo de 2016, hay más de mil millones de cuentas habilitadas para OpenID en Internet (ver más abajo) y aproximadamente 1,100,934 sitios tienen soporte integrado para consumidores de OpenID: AOL , Flickr , Google , Amazon.com , Canonical (nombre del proveedor Ubuntu One ), LiveJournal , Microsoft (nombre del proveedor, cuenta de Microsoft ), Mixi , Myspace , Novell , OpenStreetMap , Orange , Sears , Sun , Telecom Italia , Universal Music Group , VeriSign , WordPress , Yahoo! , la BBC , IBM , PayPal y Steam , aunque algunas de esas organizaciones también tienen su propia gestión de autenticación.

Muchas, si no todas, las organizaciones más grandes requieren que los usuarios proporcionen autenticación en forma de una cuenta de correo electrónico existente o un número de teléfono móvil para registrarse en una cuenta (que luego se puede usar como una identidad OpenID). Hay varias entidades más pequeñas que aceptan registros sin que se requieran datos de identidad adicionales.

Facebook usó OpenID en el pasado, pero se mudó a Facebook Connect . Blogger también usó OpenID, pero desde mayo de 2018 ya no lo admite.

Resumen técnico

Un usuario final es la entidad que quiere afirmar una identidad particular. Una parte de confianza (RP) es un sitio web o una aplicación que desea verificar el identificador del usuario final. Otros términos para esta parte incluyen "proveedor de servicios" o el ahora obsoleto "consumidor". Un proveedor de identidad o proveedor de OpenID (OP) es un servicio que se especializa en registrar URL de OpenID o XRI. OpenID permite que un usuario final se comunique con una parte de confianza. Esta comunicación se realiza mediante el intercambio de un identificador u OpenID , que es la URL o XRI elegida por el usuario final para nombrar la identidad del usuario final. Un proveedor de identidad proporciona la autenticación OpenID (y posiblemente otros servicios de identidad). El intercambio es habilitado por un usuario-agente , que es el programa (como un navegador) utilizado por el usuario final para comunicarse con la parte que confía y el proveedor de OpenID.

Iniciando sesión

El usuario final interactúa con una parte de confianza (como un sitio web) que brinda una opción para especificar un OpenID con fines de autenticación; un usuario final normalmente ha registrado previamente un OpenID (p alice.openid.example.org. ej. ) con un proveedor de OpenID (p openid.example.org. ej .).

La parte que confía normalmente transforma el OpenID en una forma de URL canónica (p http://alice.openid.example.org/. Ej .).

  • Con OpenID 1.0, la parte que confía solicita el recurso HTML identificado por la URL y lee una etiqueta de enlace HTML para descubrir la URL del proveedor de OpenID (por ejemplo http://openid.example.org/openid-auth.php). La parte que confía también descubre si debe usar una identidad delegada (ver más abajo).
  • Con OpenID 2.0, la parte que confía descubre la URL del proveedor de OpenID solicitando el documento XRDS (también llamado documento Yadis ) con el tipo de contenido application/xrds+xml; este documento puede estar disponible en la URL de destino y siempre está disponible para un XRI de destino.

Hay dos modos en los que la parte que confía puede comunicarse con el proveedor de OpenID:

  • checkid_immediate, en el que la parte que confía solicita que el proveedor de OpenID no interactúe con el usuario final. Toda la comunicación se transmite a través del agente de usuario del usuario final sin notificar explícitamente al usuario final.
  • checkid_setup, en el que el usuario final se comunica con el proveedor de OpenID a través del mismo agente de usuario utilizado para acceder a la parte que confía.

El checkid_immediatemodo puede volver al checkid_setupmodo si la operación no se puede automatizar.

Primero, la parte que confía y el proveedor de OpenID (opcionalmente) establecen un secreto compartido , referenciado por un identificador asociado , que la parte que confía luego almacena. Si usa el checkid_setupmodo, la parte que confía redirige al agente de usuario del usuario final al proveedor de OpenID para que el usuario final pueda autenticarse directamente con el proveedor de OpenID.

El método de autenticación puede variar, pero por lo general, un proveedor de OpenID solicita al usuario final una contraseña o algún token criptográfico, y luego pregunta si el usuario final confía en la parte que confía para recibir los detalles de identidad necesarios.

Si el usuario final rechaza la solicitud del proveedor de OpenID de confiar en la parte que confía, entonces el agente de usuario es redirigido a la parte que confía con un mensaje que indica que la autenticación fue rechazada; la parte que confía, a su vez, se niega a autenticar al usuario final.

Si el usuario final acepta la solicitud del proveedor de OpenID de confiar en la parte que confía, entonces el agente de usuario se redirige a la parte que confía junto con las credenciales del usuario final. Esa parte de confianza debe confirmar que las credenciales realmente provienen del proveedor de OpenID. Si la parte que confía y el proveedor de OpenID habían establecido previamente un secreto compartido, entonces la parte que confía puede validar la identidad del proveedor de OpenID comparando su copia del secreto compartido con la recibida junto con las credenciales del usuario final; una parte de confianza de este tipo se denomina con estado porque almacena el secreto compartido entre sesiones. Por el contrario, un apátrida o una parte de confianza tonta debe realizar una solicitud en segundo plano más ( check_authentication) para asegurarse de que los datos realmente provengan del proveedor de OpenID.

Una vez que se ha verificado el OpenID, la autenticación se considera exitosa y el usuario final se considera conectado a la parte de confianza bajo la identidad especificada por el OpenID dado (p alice.openid.example.org. Ej .). La parte que confía normalmente almacena el OpenID del usuario final junto con la otra información de la sesión del usuario final.

Identificadores

Para obtener una URL habilitada para OpenID que se pueda utilizar para iniciar sesión en sitios web habilitados para OpenID, un usuario registra un identificador OpenID con un proveedor de identidad. Los proveedores de identidad ofrecen la posibilidad de registrar una URL (normalmente un dominio de tercer nivel, por ejemplo, username.example.com) que se configurará automáticamente con el servicio de autenticación OpenID.

Una vez que ha registrado un OpenID, un usuario también puede usar una URL existente bajo su propio control (como un blog o página de inicio) como un alias o "identidad delegada". Simplemente insertan las etiquetas OpenID apropiadas en el HTML o sirven un documento Yadis .

A partir de OpenID Authentication 2.0 (y algunas implementaciones 1.1), hay dos tipos de identificadores que se pueden usar con OpenID: URL y XRI.

Los XRI son una nueva forma de identificador de Internet diseñado específicamente para la identidad digital entre dominios. Por ejemplo, Xris vienen en dos formas- i-nombres y i-números -que generalmente están registrados simultáneamente como sinónimos . Los nombres de I son reasignables (como los nombres de dominio), mientras que los números de i nunca se reasignan. Cuando se utiliza un i-name XRI como identificador de OpenID, se resuelve inmediatamente en el número i sinónimo (el elemento CanonicalID del documento XRDS). Este número i es el identificador OpenID almacenado por la parte que confía. De esta manera, tanto el usuario como la parte que confía están protegidos de que la identidad OpenID del usuario final sea asumida por otra parte, como puede suceder con una URL basada en un nombre DNS reasignable.

Fundación OpenID

La OpenID Foundation (OIDF) promueve y mejora la comunidad y las tecnologías de OpenID. La OIDF es una organización de desarrollo de estándares internacionales sin fines de lucro formada por desarrolladores individuales, agencias gubernamentales y empresas que desean promover y proteger OpenID. La Fundación OpenID se formó en junio de 2007 y sirve como una organización de confianza pública que representa una comunidad abierta de desarrolladores, proveedores y usuarios. OIDF ayuda a la comunidad proporcionando la infraestructura necesaria y ayudando a promover y respaldar la adopción de OpenID. Esto incluye la gestión de la propiedad intelectual y las marcas comerciales, así como el fomento del crecimiento viral y la participación global en OpenID.

Gente

La junta directiva de la Fundación OpenID tiene cuatro miembros de la comunidad y ocho miembros corporativos:

Capítulos

OIDF es una organización global para promover la identidad digital y para alentar la adopción de OpenID, la OIDF ha alentado la creación de capítulos miembros. Los capítulos miembros son oficialmente parte de la Fundación y trabajan dentro de su propia circunscripción para apoyar el desarrollo y la adopción de OpenID como un marco para la identidad centrada en el usuario en Internet.

Acuerdos de propiedad intelectual y contribución

El OIDF garantiza que las especificaciones de OpenID se puedan implementar libremente, por lo que el OIDF requiere que todos los contribuyentes firmen un acuerdo de contribución. Este acuerdo otorga una licencia de derechos de autor a la Fundación para publicar las especificaciones colectivas e incluye un acuerdo de no afirmación de la patente. El acuerdo de no afirmación establece que el contribuyente no demandará a nadie por implementar especificaciones de OpenID.

Asuntos legales

La marca registrada OpenID en los Estados Unidos fue asignada a OpenID Foundation en marzo de 2008. NetMesh Inc. la había registrado antes de que la OpenID Foundation estuviera operativa. En Europa, al 31 de agosto de 2007, la marca OpenID está registrada a nombre de OpenID Europe Foundation.

El logo de OpenID fue diseñado por Randy "ydnar" Reddig, quien en 2005 había expresado sus planes de transferir los derechos a una organización OpenID.

Desde el anuncio original de OpenID, el sitio oficial ha declarado:

Nadie debería ser dueño de esto. Nadie planea ganar dinero con esto. El objetivo es publicar cada parte de esto con las licencias más liberales posibles, por lo que no se requiere dinero, licencias o registro para jugar. Beneficia a la comunidad en su conjunto si existe algo como esto, y todos somos parte de la comunidad.

Sun Microsystems , VeriSign y varias empresas más pequeñas involucradas en OpenID han emitido convenios de no afirmación de patentes que cubren las especificaciones de OpenID 1.1. Los pactos establecen que las empresas no harán valer ninguna de sus patentes contra las implementaciones de OpenID y revocarán sus promesas a cualquiera que amenace o afirme patentes contra los implementadores de OpenID.

Seguridad

Errores de autenticación

En marzo de 2012, un artículo de investigación informó sobre dos problemas de seguridad genéricos en OpenID. Ambos problemas permiten que un atacante inicie sesión en las cuentas de la parte de confianza de la víctima. Para el primer problema, OpenID y Google (un proveedor de identidad de OpenID) publicaron avisos de seguridad para solucionarlo. El aviso de Google dice: "Un atacante podría falsificar una solicitud de OpenID que no solicite la dirección de correo electrónico del usuario y luego insertar una dirección de correo electrónico sin firmar en la respuesta de los IDP. Si el atacante transmite esta respuesta a un sitio web que no se da cuenta de que esto El atributo no está firmado, el sitio web puede ser engañado para que ingrese al atacante en cualquier cuenta local ". El artículo de investigación afirma que se ha confirmado que muchos sitios web populares son vulnerables, incluido Yahoo! Mail , smartsheet.com , Zoho , manymoon.com , diigo.com . Los investigadores han notificado a las partes afectadas, que luego han arreglado su código vulnerable.

Para el segundo problema, el documento lo llamó "Error de lógica de confusión de tipo de datos", que también permite a los atacantes iniciar sesión en las cuentas de RP de las víctimas. Inicialmente, se confirmó que Google y PayPal eran vulnerables. OpenID publicó un informe de vulnerabilidad sobre la falla. El informe dice que Google y PayPal han aplicado correcciones y sugieren que otros proveedores de OpenID verifiquen sus implementaciones.

Suplantación de identidad

Algunos observadores han sugerido que OpenID tiene debilidades de seguridad y puede resultar vulnerable a ataques de phishing . Por ejemplo, una parte de retransmisión malintencionada puede reenviar al usuario final a una página de autenticación de proveedor de identidad falsa pidiéndole al usuario final que ingrese sus credenciales. Una vez completado esto, la parte malintencionada (que en este caso también controla la página de autenticación falsa) podría tener acceso a la cuenta del usuario final con el proveedor de identidad y luego usar el OpenID de ese usuario final para iniciar sesión en otros servicios.

En un intento por combatir posibles ataques de phishing, algunos proveedores de OpenID exigen que el usuario final deba estar autenticado con ellos antes de intentar autenticarse con la parte que confía. Esto depende de que el usuario final conozca la política del proveedor de identidad. En diciembre de 2008, la OpenID Foundation aprobó la versión 1.0 de la Extensión de la política de autenticación del proveedor (PAPE), que "permite a las Partes que Confían solicitar que los Proveedores de OpenID empleen políticas de autenticación específicas al autenticar usuarios y que los Proveedores de OpenID informen a las Partes que Confían qué políticas eran realmente usó."

Problemas de privacidad y confianza

Otros problemas de seguridad identificados con OpenID implican la falta de privacidad y la imposibilidad de abordar el problema de confianza . Sin embargo, este problema no es exclusivo de OpenID y es simplemente el estado de Internet como se usa comúnmente.

Sin embargo, el proveedor de identidad obtiene un registro de sus inicios de sesión de OpenID; saben cuándo inició sesión en qué sitio web, lo que facilita mucho el seguimiento entre sitios . También es probable que una cuenta OpenID comprometida sea una violación de la privacidad más grave que una cuenta comprometida en un solo sitio.

Secuestro de autenticación en una conexión no segura

Otra vulnerabilidad importante está presente en el último paso del esquema de autenticación cuando no se utilizan TLS / SSL: la URL de redireccionamiento del proveedor de identidad a la parte que confía. El problema con esta redirección es el hecho de que cualquier persona que pueda obtener esta URL (por ejemplo, olfateando el cable) puede reproducirla e iniciar sesión en el sitio como usuario víctima. Algunos de los proveedores de identidad usan nonces (número usado una vez) para permitir que un usuario inicie sesión en el sitio una vez y falle todos los intentos consecutivos. La solución nonce funciona si el usuario es el primero en usar la URL. Sin embargo, un atacante rápido que está olfateando el cable puede obtener la URL y restablecer inmediatamente la conexión TCP de un usuario (ya que un atacante está olfateando el cable y conoce los números de secuencia TCP requeridos) y luego ejecutar el ataque de repetición como se describe anteriormente. Por lo tanto, los nonces solo protegen contra atacantes pasivos, pero no pueden evitar que los atacantes activos ejecuten el ataque de repetición. El uso de TLS / SSL en el proceso de autenticación puede reducir significativamente este riesgo.

Esto se puede reformular como:

  IF (Both RP1 and RP2 have Bob as a client) AND       // a common case
     (Bob uses the same IDP with both RP1 and RP2) AND // a common case
     (RP1 does not use VPN/SSL/TLS to secure their connection with the client) // preventable!
  THEN
    RP2 could obtain credentials sufficient to impersonate Bob with RP1
  END-IF

Redireccionamiento encubierto

El 1 de mayo de 2014, se reveló un error denominado " Redirección encubierta relacionada con OAuth 2.0 y OpenID". Fue descubierto por el estudiante de doctorado en matemáticas Wang Jing en la Facultad de Ciencias Físicas y Matemáticas de la Universidad Tecnológica de Nanyang , Singapur.

El anuncio de OpenID es: "'Redirect encubierto', publicado en mayo de 2014, es una instancia de atacantes que utilizan redirectores abiertos, una amenaza bien conocida, con medios de prevención bien conocidos. El protocolo OpenID Connect exige medidas estrictas que impiden la apertura redirectores para prevenir esta vulnerabilidad ".

"El consenso general, hasta ahora, es que Covert Redirect no es tan malo, pero sigue siendo una amenaza. Comprender qué lo hace peligroso requiere una comprensión básica de Open Redirect y cómo se puede explotar".

No se puso a disposición un parche de inmediato. Ori Eisen, fundador, presidente y director de innovación de 41st Parameter le dijo a Sue Marquette Poremba: "En cualquier sistema distribuido, contamos con la buena naturaleza de los participantes para hacer lo correcto. En casos como OAuth y OpenID, la distribución es tan vasto que no es razonable esperar que todos y cada uno de los sitios web se remenden en un futuro próximo ".

Historia

El protocolo de autenticación OpenID original fue desarrollado en mayo de 2005 por Brad Fitzpatrick , creador del popular sitio web comunitario LiveJournal , mientras trabajaba en Six Apart . Inicialmente referido como Yadis (un acrónimo de "Otro sistema de identidad distribuido"), fue nombrado OpenID después de que el nombre de dominio openid.net se le dio a Six Apart para que lo usara en el proyecto. El soporte de OpenID pronto se implementó en LiveJournal y en la comunidad de motores de LiveJournal DeadJournal para comentarios de publicaciones de blog y rápidamente ganó atención en la comunidad de identidad digital. El desarrollador web JanRain fue uno de los primeros en apoyar OpenID, proporcionando bibliotecas de software OpenID y expandiendo su negocio en torno a servicios basados ​​en OpenID.

A fines de junio, comenzaron las discusiones entre los usuarios de OpenID y los desarrolladores de la compañía de software empresarial NetMesh, lo que condujo a la colaboración sobre la interoperabilidad entre OpenID y el protocolo similar de identidad ligera (LID) de NetMesh . El resultado directo de la colaboración fue el protocolo de descubrimiento Yadis , que adoptó el nombre utilizado originalmente para OpenID. El nuevo Yadis se anunció el 24 de octubre de 2005. Después de una discusión en el Taller de Identidad de Internet de 2005, unos días más tarde, los desarrolladores de XRI / i-names se unieron al proyecto Yadis, contribuyendo con su formato de Secuencia de Descriptor de Recursos Extensible ( XRDS ) para su uso en el protocolo.

En diciembre, los desarrolladores de Sxip Identity comenzaron las discusiones con la comunidad OpenID / Yadis después de anunciar un cambio en el desarrollo de la versión 2.0 de su Protocolo de identidad extensible simple (SXIP) a identidades basadas en URL como LID y OpenID. En marzo de 2006, JanRain desarrolló una extensión de Registro simple (SREG) para OpenID que permite el intercambio de perfiles primitivos y en abril presentó una propuesta para formalizar extensiones a OpenID. El mismo mes, también se había comenzado a trabajar para incorporar el soporte completo de XRI en OpenID. A principios de mayo, el desarrollador clave de OpenID, David Recordon, dejó Six Apart y se unió a VeriSign para centrarse más en la identidad digital y la orientación para la especificación de OpenID. A principios de junio, las principales diferencias entre los proyectos SXIP 2.0 y OpenID se resolvieron con el acuerdo de admitir varias personas en OpenID mediante el envío de una URL de proveedor de identidad en lugar de una URL de identidad completa. Con esto, además de la adición de extensiones y soporte XRI en curso, OpenID estaba evolucionando hacia un marco de identidad digital completo, con Recordon proclamando "Vemos OpenID como un paraguas para el marco que abarca las capas para identificadores, descubrimiento, autenticación y una capa de servicios de mensajería que se encuentra en la parte superior y todo esto se ha denominado 'OpenID 2.0' ". A fines de julio, Sxip comenzó a fusionar su protocolo de intercambio de identidad digital (DIX) en OpenID, enviando borradores iniciales del atributo OpenID Extensión de Exchange (AX) en agosto. A fines de 2006, un artículo de opinión de ZDNet presentó el caso de OpenID a los usuarios, operadores de sitios web y empresarios.

El 31 de enero de 2007, Symantec anunció la compatibilidad con OpenID en sus productos y servicios de Identity Initiative. Una semana después, el 6 de febrero, Microsoft hizo un anuncio conjunto con JanRain, Sxip y VeriSign para colaborar en la interoperabilidad entre OpenID y la plataforma de identidad digital Windows CardSpace de Microsoft , con especial énfasis en el desarrollo de una solución de autenticación resistente al phishing para OpenID. Como parte de la colaboración, Microsoft se comprometió a respaldar OpenID en sus futuros productos de servidor de identidad y JanRain, Sxip y VeriSign se comprometieron a agregar soporte para el perfil de tarjeta de información de Microsoft a sus futuras soluciones de identidad. A mediados de febrero, AOL anunció que un servicio de proveedor de OpenID experimental era funcional para todas las cuentas de AOL y AOL Instant Messenger (AIM).

En mayo, Sun Microsystems comenzó a trabajar con la comunidad OpenID, anunciando un programa OpenID, además de firmar un pacto de no afirmación con la comunidad OpenID, comprometiéndose a no hacer valer ninguna de sus patentes contra las implementaciones de OpenID. En junio, el liderazgo de OpenID formó la OpenID Foundation, una corporación de beneficio público con sede en Oregón para administrar la marca y la propiedad de OpenID. El mismo mes, Snorri Giorgetti formó una OpenID Europe Foundation independiente en Bélgica. A principios de diciembre, los principales contribuyentes al protocolo recopilaron acuerdos de no afirmación y el 5 de diciembre se ratificaron las especificaciones finales de OpenID Authentication 2.0 y OpenID Attribute Exchange 1.0.

A mediados de enero de 2008, Yahoo! anunció el soporte inicial de OpenID 2.0, tanto como proveedor como como parte de confianza, lanzando el servicio del proveedor a finales de mes. A principios de febrero, Google, IBM, Microsoft, VeriSign y Yahoo! se unió a la Fundación OpenID como miembros de la junta corporativa. A principios de mayo, SourceForge, Inc. presentó el proveedor de OpenID y el soporte de las partes confiables al sitio web líder de desarrollo de software de código abierto SourceForge.net . A finales de julio, el popular servicio de red social MySpace anunció el apoyo a OpenID como proveedor. A finales de octubre, Google lanzó el soporte como proveedor de OpenID y Microsoft anunció que Windows Live ID sería compatible con OpenID. En noviembre, JanRain anunció un servicio alojado gratuito, RPX Basic, que permite que los sitios web comiencen a aceptar OpenID para registrarse e iniciar sesión sin tener que instalar, integrar y configurar las bibliotecas de código abierto OpenID.

En enero de 2009, PayPal se unió a OpenID Foundation como miembro corporativo, seguido poco después por Facebook en febrero. La Fundación OpenID formó un comité ejecutivo y nombró a Don Thibeau como director ejecutivo. En marzo, MySpace lanzó su servicio de proveedor de OpenID previamente anunciado, permitiendo a todos los usuarios de MySpace usar su URL de MySpace como un OpenID. En mayo, Facebook lanzó su funcionalidad de usuario de confianza, permitiendo a los usuarios usar una cuenta OpenID habilitada para inicio de sesión automático (por ejemplo, Google) para iniciar sesión en Facebook.

En septiembre de 2013, Janrain anunció que MyOpenID.com se cerraría el 1 de febrero de 2014; un gráfico circular mostró que Facebook y Google dominan el espacio de inicio de sesión social a partir del segundo trimestre de 2013. Desde entonces, Facebook dejó OpenID; ya no es un patrocinador, representado en el tablero, ni permite inicios de sesión OpenID.

En mayo de 2016, Symantec anunció que interrumpiría su servicio de portal de identidad personal OpenID pip.verisignlabs.com.

En marzo de 2018, Stack Overflow anunció el fin del soporte de OpenID, citando un uso insuficiente para justificar el costo. En el anuncio, se indicó que, en función de la actividad, los usuarios preferían encarecidamente Facebook, Google y la autenticación de cuentas basada en correo electrónico / contraseña.

OpenID versus pseudoautenticación usando OAuth

OpenID es una forma de utilizar un único conjunto de credenciales de usuario para acceder a varios sitios, mientras que OAuth facilita la autorización de un sitio para acceder y utilizar información relacionada con la cuenta del usuario en otro sitio. Aunque OAuth no es un protocolo de autenticación , puede usarse como parte de uno.

La autenticación en el contexto de un usuario que accede a una aplicación le dice a una aplicación quién es el usuario actual y si está presente o no. [...] La autenticación tiene que ver con el usuario y su presencia en la aplicación, y un protocolo de autenticación a escala de Internet debe poder hacer esto a través de la red y los límites de seguridad.

Sin embargo, OAuth no le dice a la aplicación nada de eso. OAuth no dice absolutamente nada sobre el usuario, ni dice cómo el usuario demostró su presencia o incluso si todavía está allí. En lo que respecta a un cliente OAuth, solicitó un token, obtuvo un token y, finalmente, usó ese token para acceder a alguna API. No sabe nada sobre quién autorizó la aplicación o si había un usuario allí. De hecho, gran parte del objetivo de OAuth es otorgar este acceso delegado para su uso en situaciones en las que el usuario no está presente en la conexión entre el cliente y el recurso al que se accede. Esto es excelente para la autorización del cliente, pero es realmente malo para la autenticación, donde el objetivo es averiguar si el usuario está allí o no (y quiénes son).

El siguiente dibujo destaca las diferencias entre el uso de OpenID y OAuth para la autenticación. Tenga en cuenta que con OpenID, el proceso comienza con la aplicación pidiendo al usuario su identidad (generalmente un URI de OpenID), mientras que en el caso de OAuth, la aplicación solicita directamente un Token OAuth de acceso limitado (clave de valet) para acceder a las API (ingrese la casa) en nombre del usuario. Si el usuario puede otorgar ese acceso, la aplicación puede recuperar el identificador único para establecer el perfil (identidad) usando las API.

OpenID frente a pseudoautenticación mediante OAuth

Ataque contra la pseudoautenticación

OpenID proporciona un mecanismo de verificación criptográfica que evita el ataque a continuación contra los usuarios que hacen un mal uso de OAuth para la autenticación.

Tenga en cuenta que la llave del servicio de aparcacoches no describe al usuario de ninguna manera, solo proporciona derechos de acceso limitados a alguna casa (que ni siquiera es necesariamente la del usuario, solo tenía una llave). Por lo tanto, si la clave se ve comprometida (el usuario es malintencionado y logró robar la clave de la casa de otra persona), entonces el usuario puede hacerse pasar por el propietario de la casa en la aplicación que solicitó su autenticidad. Si la clave se ve comprometida por algún punto de la cadena de confianza, un usuario malintencionado puede interceptarla y usarla para hacerse pasar por el usuario X para cualquier aplicación que dependa de OAuth2 para la pseudo autenticación contra el mismo servidor de autorización de OAuth. Por el contrario, la carta notariada contiene la firma del usuario, que la aplicación solicitante puede verificar con el usuario, por lo que este ataque no es viable.

Verificando la carta

La carta puede utilizar criptografía de clave pública para autenticarse.

  • La aplicación solicitante proporciona su clave pública de cifrado al usuario, que la proporciona al servidor de autenticación.
  • El servidor de autenticación cifra un documento que contiene una clave de cifrado que corresponde a un hash unidireccional de un secreto que el usuario conoce (p. Ej. Frase de contraseña) para la respuesta de desafío utilizando la clave pública de la aplicación.
  • El usuario devuelve el documento cifrado a la aplicación, que lo descifra.
  • La aplicación encripta una frase aleatoria usando la clave de encriptación recibida y le pide al usuario que haga lo mismo, luego compara los resultados, si coinciden, el usuario es auténtico.

Conexión OpenID (OIDC)

Publicado en febrero de 2014 por OpenID Foundation, OpenID Connect es la tercera generación de tecnología OpenID. Es una capa de autenticación sobre el marco de autorización de OAuth 2.0 . Permite a los clientes informáticos verificar la identidad de un usuario final basándose en la autenticación realizada por un servidor de autorización, así como obtener la información básica del perfil del usuario final de una manera interoperable y similar a REST. En términos técnicos, OpenID Connect especifica una API HTTP RESTful, utilizando JSON como formato de datos.

OpenID Connect permite que una variedad de partes, incluidos clientes basados ​​en web, móviles y JavaScript, soliciten y reciban información sobre sesiones autenticadas y usuarios finales. La especificación OpenID Connect es extensible y admite funciones opcionales como el cifrado de datos de identidad, el descubrimiento de proveedores de OpenID y la gestión de sesiones.

Ver también

Referencias

  1. a b c d Eldon, Eric (14 de abril de 2009). "Servicio de inicio de sesión único OpenID cada vez más utilizado" . venturebeat.com . Consultado el 25 de abril de 2009 .
  2. ^ "¿Qué es un OpenID?" . Consultado el 19 de junio de 2014 .
  3. ^ "Especificación OpenID Authentication 2.0 - Final" . Consultado el 24 de octubre de 2011 .
  4. ^ "Intercambio de atributos OpenID 1.0 - Final" . Consultado el 24 de octubre de 2011 .
  5. ^ "Autenticación OpenID 2.0 - Final" . 2007-12-05 . Consultado el 18 de mayo de 2014 .
  6. ^ "Estadísticas de uso de OpenID" .
  7. bashburn, bill (22 de abril de 2008). "BBC se une a la Fundación OpenID" .
  8. ^ "Los líderes de tecnología se unen a la Fundación OpenID para promover la gestión de identidad abierta en la Web" . 2008-02-07.
  9. ^ "El acceso de PayPal utiliza OpenID 2.0" . OpenID · . Consultado el 19 de junio de 2014 .
  10. ^ "Comunidad Steam :: Documentación de la API web de Steam" . Consultado el 10 de febrero de 2012 .
  11. ^ Pérez, Juan Carlos. "Facebook, Google lanzan programas de portabilidad de datos para todos" . Red Mundial, Inc . Consultado el 19 de junio de 2014 .
  12. ^ "Es tiempo de limpieza de primavera para Blogger" . Equipo de Blogger . Consultado el 10 de septiembre de 2019 .
  13. ^ "Autenticación OpenID 1.1 # Delegación" .
  14. ^ Paul Tarjan. "Delegación fácil de OpenID con Yadis" . Archivado desde el original el 4 de julio de 2009 . Consultado el 30 de junio de 2009 .
  15. ^ a b "Liderazgo" . Fundación openID . Consultado el 19 de junio de 2014 .
  16. ^ "Asignación de marca comercial, número de serie: 78899244" . Oficina de Patentes y Marcas de Estados Unidos . 2008-05-06 . Consultado el 19 de mayo de 2008 . Exec Dt: 27/03/2008
  17. ^ "Información de estado más reciente" . Oficina de Patentes y Marcas de Estados Unidos. 2006-03-27 . Consultado el 20 de marzo de 2008 .
  18. ^ "NetMesh: empresa / gestión" . NetMesh . Archivado desde el original el 30 de agosto de 2007 . Consultado el 20 de marzo de 2008 .
  19. ^ "Política de logotipos y marcas comerciales de OpenID Europe" . Fundación OpenID Europe . Archivado desde el original el 9 de marzo de 2008 . Consultado el 20 de marzo de 2008 .
  20. Reddig, Randy (29 de junio de 2005). "Logotipo de OpenID" . Danga Interactive . Consultado el 20 de marzo de 2008 .
  21. ^ Fitzpatrick, Brad . "Propiedad Intelectual" .
  22. ^ a b "Sun OpenID: Pacto de no afirmación" . Sun Microsystems . Consultado el 20 de marzo de 2008 .
  23. ^ "Pacto de patente de no afirmación OpenID de VeriSign" . VeriSign . Archivado desde el original el 15 de abril de 2008 . Consultado el 20 de marzo de 2008 .
  24. ^ Rui Wang; Shuo Chen y XiaoFeng Wang. "Firmarme en sus cuentas a través de Facebook y Google: un estudio de seguridad guiado por tráfico de servicios web de inicio de sesión único implementados comercialmente" .
  25. ^ "Alerta de seguridad de intercambio de atributos" .
  26. ^ "Aviso de seguridad para sitios web que utilizan OpenID Attribute Exchange" .
  27. ^ "Informe de vulnerabilidad: confusión de datos" .
  28. Crowley, Paul (1 de junio de 2005). "Ataques de phishing en OpenID" . Danga Interactive . Consultado el 20 de marzo de 2008 .
  29. Anderson, Tim (5 de marzo de 2007). "OpenID sigue abierto al abuso" . Semana de TI . Consultado el 13 de marzo de 2007 .
  30. ^ Ranura, Marco. "Guía para principiantes de suplantación de identidad de OpenID" . Consultado el 31 de julio de 2007 .
  31. ^ "Preguntas frecuentes sobre Verisign PIP" . Archivado desde el original el 13 de noviembre de 2008 . Consultado el 13 de noviembre de 2008 .
  32. ^ Jones, Mike. "PAPE aprobado como una especificación OpenID" . Fundación OpenID.
  33. Stefan Brands (22 de agosto de 2007). "El (los) problema (s) con OpenID" . Archivado desde el original el 16 de mayo de 2011 . Consultado el 12 de diciembre de 2010 . (publicado originalmente en The Identity Corner en www.idcorner.org/?p=161)
  34. ^ Tsyrklevich, Eugene. "Inicio de sesión único para Internet: una historia de seguridad" (PDF) . Blackhat USA . Consultado el 19 de abril de 2012 .
  35. ^ "Seria falla de seguridad en OAuth, OpenID descubierto" . CNET. 2 de mayo de 2014 . Consultado el 10 de noviembre de 2014 .
  36. ^ "Redirección encubierta" . Tetraph. 1 de mayo de 2014 . Consultado el 10 de noviembre de 2014 .
  37. ^ "Facebook, usuarios de Google amenazados por una nueva falla de seguridad" . Yahoo. 2 de mayo de 2014 . Consultado el 10 de noviembre de 2014 .
  38. ^ "Vulnerabilidad de redirección encubierta desagradable encontrada en OAuth y OpenID" . The Hacker News. 3 de mayo de 2014 . Consultado el 10 de noviembre de 2014 .
  39. ^ "Estudiante de matemáticas detecta OAuth, vulnerabilidad de seguridad OpenID" . Tech Xplore. 3 de mayo de 2014 . Consultado el 10 de noviembre de 2014 .
  40. ^ "Redirección encubierta" . OpenID. 15 de mayo de 2014 . Consultado el 10 de noviembre de 2014 .
  41. ^ " ' Covert Redirigir' impactos de vulnerabilidad OAuth 2.0, OpenID" . Revista SC. 2 de mayo de 2014 . Consultado el 10 de noviembre de 2014 .
  42. ^ "Lecciones que se deben aprender de la redirección encubierta" . 41º parámetro. 5 de mayo de 2014 . Consultado el 10 de noviembre de 2014 .
  43. Fitzpatrick, Brad (16 de mayo de 2005). "Identidad distribuida: Yadis" . LiveJournal . Archivado desde el original el 4 de mayo de 2006 . Consultado el 20 de marzo de 2008 .
  44. Waters, John K (1 de diciembre de 2007). "Especificaciones de identidad de actualizaciones de OpenID" . Noticias para desarrolladores de Redmond . Archivado desde el original el 8 de febrero de 2008 . Consultado el 20 de marzo de 2008 .
  45. ^ "Glosario" . Servidor LiveJournal: Información técnica . Consultado el 13 de octubre de 2009 .
  46. ^ Lehn, David I. (18 de mayo de 2005). "18 de mayo de 2005" . Blog de Advogato para dlehn . Advogato. Archivado desde el original el 21 de diciembre de 2010 . Consultado el 13 de octubre de 2009 . Estaban buscando un nombre y lograron enviarme un correo electrónico sobre openid.net justo antes de que se lo ofreciera. Así que se lo di para el proyecto OpenID nuevo y mejorado.
  47. ^ "OpenID: un sistema de identidad realmente distribuido" . 2005-09-24. Archivado desde el original el 24 de septiembre de 2005 . Consultado el 20 de marzo de 2008 .
  48. a b Fitzpatrick, Brad (30 de mayo de 2006). "La vida de Brad - OpenID y SixApart" . LiveJournal . Archivado desde el original el 25 de abril de 2007 . Consultado el 20 de marzo de 2008 .
  49. Recordon, David (24 de diciembre de 2005). "Anunciando YADIS ... de nuevo" . Danga Interactive . Consultado el 20 de marzo de 2008 .
  50. Reed, Dummond (31 de diciembre de 2005). "Implementando YADIS sin software nuevo" . Danga Interactive . Consultado el 20 de marzo de 2008 .
  51. Reed, Drummond (30 de noviembre de 2008). "XRD comienza" . Igual a Drummond . Consultado el 5 de enero de 2009 .
  52. Hardt, Dick (18 de diciembre de 2005). "Sxip preocupaciones con YADIS" . Danga Interactive . Consultado el 20 de marzo de 2008 .
  53. Hardt, Dick (10 de diciembre de 2005). "Avance de SXIP 2.0" . Identidad 2.0 . Archivado desde el original el 14 de agosto de 2007 . Consultado el 20 de marzo de 2008 .
  54. Hoyt, Josh (15 de marzo de 2006). "OpenID + intercambio de información de registro simple" . Danga Interactive . Consultado el 20 de marzo de 2008 .
  55. Gray, Victor (2 de abril de 2006). "Propuesta de un perfil XRI (i-name) para OpenID" . Danga Interactive . Consultado el 20 de marzo de 2008 .
  56. Recordon, David (29 de abril de 2006). "Movin 'On ..." LiveJournal . Archivado desde el original el 20 de octubre de 2006 . Consultado el 20 de marzo de 2008 .
  57. Recordon, David (16 de junio de 2006). "Moviendo OpenID hacia adelante" . Danga Interactive . Consultado el 19 de mayo de 2008 .
  58. ^ Johannes Ernst y David Recordon. Editor: Phil Becker (4 de diciembre de 2006). "El caso de OpenID" . ZDNet . Consultado el 12 de diciembre de 2010 .
  59. ^ "Symantec presenta la iniciativa de identidad Security 2.0 en la Conferencia DEMO 07" . Symantec . 2007-01-31 . Consultado el 20 de marzo de 2008 .
  60. Graves, Michael (6 de febrero de 2007). "VeriSign, Microsoft y socios para trabajar juntos en OpenID + Cardspace" . VeriSign . Archivado desde el original el 3 de mayo de 2008 . Consultado el 20 de marzo de 2008 .
  61. Panzer, John (16 de febrero de 2007). "AOL y 63 millones de OpenIDs" . Red de desarrolladores de AOL . Archivado desde el original el 11 de mayo de 2008 . Consultado el 20 de marzo de 2008 .
  62. ^ "Sun Microsystems anuncia programa OpenID" . PR Newswire . 2007-05-07 . Consultado el 20 de marzo de 2008 .
  63. ^ Junta directiva de OpenID (1 de junio de 2007). "Fundación OpenID" . Consultado el 20 de marzo de 2008 .
  64. ^ Fundación OpenID Europe
  65. ^ "OpenID 2.0 ... ¡Final (ly)!" . Fundación OpenID . 2007-12-05 . Consultado el 20 de marzo de 2008 .
  66. ^ "Yahoo! Anuncia soporte para OpenID; usuarios capaces de acceder a varios sitios de Internet con su ID de Yahoo!" . Yahoo! . 2008-01-17. Archivado desde el original el 4 de marzo de 2008 . Consultado el 20 de marzo de 2008 .
  67. ^ "Los líderes de tecnología se unen a la Fundación OpenID para promover la gestión de identidad abierta en la Web" . Fundación OpenID . Marketwire . 2008-02-07 . Consultado el 20 de marzo de 2008 .
  68. ^ "SourceForge implementa la tecnología OpenID" (Comunicado de prensa). SourceForge, Inc. 7 de mayo de 2008. Archivado desde el original el 13 de mayo de 2008 . Consultado el 21 de mayo de 2008 .
  69. ^ "MySpace anuncia soporte para" OpenID "e introduce nuevas implementaciones de disponibilidad de datos" . Business Wire . Mi espacio. 2008-07-22. pag. 2 . Consultado el 23 de julio de 2008 .
  70. ^ "Microsoft y Google anuncian compatibilidad con OpenID" . Fundación OpenID. 2008-10-30.
  71. ^ "JanRain lanza una versión gratuita de la solución OpenID líder en la industria" (Comunicado de prensa). JanRain, Inc. 14 de noviembre de 2008. Archivado desde el original el 18 de diciembre de 2008 . Consultado el 14 de noviembre de 2008 .
  72. ^ "Desarrolladores de Facebook | Noticias de desarrolladores de Facebook" . Developers.facebook.com. 2009-05-18. Archivado desde el original el 23 de diciembre de 2009 . Consultado el 28 de julio de 2009 .
  73. ^ "Facebook ahora acepta inicios de sesión en cuentas de Google" . Pocket-lint.com. 2009-05-19 . Consultado el 28 de julio de 2009 .
  74. ^ "Requisitos de OpenID - Wiki de desarrolladores de Facebook" . Wiki.developers.facebook.com. 2009-06-26. Archivado desde el original el 23 de diciembre de 2009 . Consultado el 28 de julio de 2009 .
  75. ^ Kane, Zee M (4 de septiembre de 2013). "MyOpenID para cerrar. Se desactivará el 1 de febrero de 2014" . La próxima web . Consultado el 5 de septiembre de 2013 .
  76. ^ "Miembros patrocinadores de OpenID" . Consultado el 17 de abril de 2014 .
  77. ^ "El banner del portal de identificación personal de Symantec indica que el servicio se interrumpirá el 12 de septiembre de 2016" . Archivado desde el original el 11 de junio de 2016 . Consultado el 17 de mayo de 2016 .
  78. ^ "¿Symantec está fallando en ser Google?" . 7 de mayo de 2016 . Consultado el 17 de mayo de 2016 .
  79. ^ "El soporte para OpenID finalizó el 25 de julio de 2018" .
  80. ^ "Autenticación de usuario con OAuth 2.0" . OAuth.net . Consultado el 19 de marzo de 2015 .
  81. ^ "¿Por qué es una mala idea utilizar oauth2 simple para la autenticación?" . Intercambio de pilas de seguridad de la información . Consultado el 7 de julio de 2018 .
  82. ^ "Preguntas frecuentes y preguntas y respuestas de OpenID Connect" . Consultado el 25 de agosto de 2014 .

enlaces externos