¿Cómo funciona la autenticación AWS?

1

Las API de AWS utilizan una ID de clave de acceso y una clave de acceso secreta para autenticar las llamadas de API. ¿Cómo funciona exactamente y en qué se diferencia de SSH?

    
pregunta Manohar 25.06.2017 - 19:17
fuente

2 respuestas

3

La API de AWS requiere que firme cada solicitud HTTP. La firma le da dos propiedades: autenticidad e integridad.

Lo autentica porque una firma válida solo puede ser producida por alguien que tenga el par keyID / secreto. Le brinda integridad, ya que la solicitud se canonicaliza (se transforma a un formulario estándar) y luego se firma utilizando HMAC. Cualquier modificación en el mensaje hará que la firma original se invalide.

Las firmas de AWS proporcionan un mecanismo de defensa en profundidad para la integridad de TLS.

Algunas diferencias clave siguen. SSH también utiliza criptografía asimétrica, mientras que la API de AWS solo usa una simetría. SSH utilizará el intercambio de claves y la negociación de cifrado, mientras que AWS no hace nada aparte de usar TLS. La autenticación de AWS está "conectada" a HTTP mientras que SSH es un protocolo completo.

Acerca de cómo funciona. Todo esto está en la documentación de AWS, pero aquí hay un breve resumen. Usted construye su solicitud, luego calcula una forma canonicalizada y finalmente usa su clave / secreto para firmarla. Usted agrega la firma a su solicitud original y la envía a AWS. El servidor procesará su solicitud: calcule la forma canonicalizada, obtenga su secreto de su almacenamiento, calcule la firma y compárela con la que envió. Si coinciden con usted es casi bueno para ir.

Otra cosa que hacen es verificar la hora y asegurarse de que esta solicitud no se esté reproduciendo. Cuando calcules la forma canonicalizada también necesitas agregarle la fecha actual. AWS verificará esta fecha para asegurarse de que esté dentro de una ventana aceptable. Esto limita la reproducción a la ventana dada.

    
respondido por el Daniel Szpisjak 26.07.2017 - 09:20
fuente
0

Los pares de claves SSH se utilizan solo para autenticarse en un servidor SSH. Necesita un par de claves privadas públicas para autenticarse con éxito. De lo contrario, el cifrado se realiza mediante una clave establecida mediante el intercambio de claves.

La ID de la clave de acceso de AWS y la clave secreta no son simplemente para autenticar el servicio de autenticación de AWS. Supongo que es así, ya que las llamadas a la API no tienen estado. Recuerde que el par de claves consiste en una clave ID y una clave de acceso secreta. Hablando claro, su ID de clave es algo así como un nombre de usuario (y no una clave pública / privada) mientras que su clave de acceso secreta se usa para firmar las solicitudes realizadas por su cliente.

Al igual que SSH, si tiene una clave de acceso válida pero no una clave secreta válida, sus solicitudes fallarán porque no se firmarán correctamente. Puede consultar Documentación de AWS para referencia.

Diría que las claves de AWS también se basan en el mismo concepto (PKI) que SSH o incluso SSL, pero la eventual implementación del sistema de autenticación sería diferente.

    
respondido por el Limit 25.06.2017 - 20:14
fuente

Lea otras preguntas en las etiquetas