¿Por qué permitir que una clave de API pública cambie?

1

Un método común de credencialización para una API es dar a cada uso un par de claves pública / privada. La clave pública se envía junto con la solicitud, y la clave privada se utiliza para firmar la solicitud (y el servidor la verifica y verifica si coinciden).

El usuario puede rotar las teclas con bastante facilidad. Lo que no entiendo es por qué una rotación de clave implica cambiar también la clave pública (esto lo hace AWS cuando se gira la clave de un usuario de IAM).

Desde mi entendimiento, la clave pública es como el nombre de una persona, le dice al servidor quién eres. Para empezar, nunca fue un secreto. ¿Qué beneficio se obtiene al cambiar la clave pública y no solo al cambiar la clave privada?

Editar: Solo para aclarar, no me estoy refiriendo a un par de claves de cifrado de tipo RSA que se basan entre sí. Me refiero a los pares de claves utilizados para el acceso a la API (como los usos de AWS)

    
pregunta yitzih 29.10.2018 - 15:54
fuente

3 respuestas

2

Una clave pública coincide con una clave privada específica , no es "algo así como el nombre de una persona". La clave pública se puede usar para verificar que quien firmó el mensaje tiene la clave privada que pertenece a la clave pública, porque la clave privada y la clave pública están relacionadas de una manera matemática muy específica. En teoría, solo hay una persona que tiene esa clave privada, lo que permite que el servidor lo identifique.

Sin embargo, si la clave privada es robada de alguna manera, ahora cualquiera podría estar firmando ese mensaje. De ahí la necesidad de generar una nueva clave privada. Pero como la clave privada y la clave pública se emparejan de una manera matemática específica, la nueva clave privada es inútil sin enviar al servidor la clave pública correspondiente que se generó junto con ella.

    
respondido por el Ben 29.10.2018 - 16:14
fuente
0

Parece que estás confundiendo esto. Ben tiene razón, lo que estás pensando en este caso es una clave pública crypto: enlace . RSA es una implementación de esto, como lo es de lo que estás hablando. Es por eso que la respuesta de Ben es correcta.

    
respondido por el NewDev 29.10.2018 - 18:36
fuente
0

La API de AWS no usa pares de claves o RSA, usa derivaciones de un secreto (NO es privado, en criptografía moderna significan cosas diferentes) "acceso 'clave (singular) (que está vinculada a un identificador de clave que lo identifica) y HMAC-SHA256. Es discutible si HMAC se llama correctamente una firma o se debería llamar un MAC en su lugar, pero AWS lo llama una firma. (En cualquier caso, ni el hash ni el MAC ni la verdadera firma son encriptación, y aunque la respuesta de Ben asumió por error la firma RSA, no tuvo nada que ver con la encriptación). amazon.com/general/latest/gr/sigv4_signing.html "> enlace especialmente en la Tarea 3.

Para ver la relación de las claves de acceso (e id) con los usuarios y la rotación, consulte enlace . Tenga en cuenta que la siguiente sección de esa misma página dice explícitamente

  

Los pares de claves no están relacionados con las claves de acceso ... Los pares de claves se usan solo para Amazon EC2 [SSH] y Amazon CloudFront.

    
respondido por el dave_thompson_085 30.10.2018 - 04:28
fuente

Lea otras preguntas en las etiquetas