5

Al utilizar la API de twitter, me encontré con oauth_signature que es básicamente un hash del (solicitud cuerpo + parámetros de solicitud + nonces/timestamps + a consumer_secret). El consumer_secret es conocido solo por la aplicación que envía la solicitud.¿No está oauth_signature reinventando la rueda SSL?

En el caso de Twitter:

  • toda la comunicación debe ocurrir a través de SSL.
  • twitter emite consumer_secret a cada aplicación autorizada.

Dado que el uso principal de la oauth_signature es prevenir MITMs (es decir, sin tetas (alteración en el tránsito) :), me parece que este caso en particular podría ser resuelto a través de SSL mutua

  • Twitter, en lugar de emitir el consumer_secret, puede emitir certificados SSL para cada aplicación.

Si bien esta idea de cliente SSL certificados puede parecer arcano 1990 Internet, no tuvo éxito en gran parte debido a la dificultad en la verificación de la cadena de confianza para los certificados de cliente. Ese problema no surge aquí porque Twitter sería el único emisor Y el verificador de los certificados. El inconveniente sería un esfuerzo mucho más complicado en nombre de Twitter para producir los certificados ssl de la aplicación/cliente inicial, pero la recompensa estaría en la simplicidad de la API REST, que puede descansar en la garantía de que el cliente es quien dice ser.

Tenga en cuenta que Twitter es solo un ejemplo en este caso. AFAIK, la mayoría de los otros implementadores oauth utilizan una estrategia similar, y los puntos aquí se aplican a cualquier implementador de OAuth a gran escala que ya exige SSL.

¿Qué me falta aquí? ¿Inercia de Internet?

Respuesta

-1

Los certificados SSL mutuos, aunque es una buena idea, no resuelven exactamente el problema que OAuth intenta resolver. OAuth tiene dos juegos de fichas. Uno para la aplicación (que podría ser reemplazado por los certificados SSL), pero también para el usuario específico. Los certificados SSL no ayudan cuando está tratando de determinar si esta aplicación autorizada puede acceder a este usuario específico.

+0

Te estás haciendo la pregunta. No estoy diciendo que los cert SSL mutuos resuelvan el problema que OAuth resuelve. Estoy diciendo que el mecanismo 'oauth_signature' básicamente está reinventando la autenticación bidireccional que proporcionan los certificados SSL mutuos. – Manav

+1

Pero los certificados SSL mutuos solo resuelven la mitad del problema (el lado del token de la aplicación) y no hacen nada por el lado del token del consumidor. Y si miras OAuth 2.0, se han movido en esa dirección. –

Cuestiones relacionadas