¿Cómo claves de la API y claves secretas trabajo? ¿Sería seguro si tengo que pasar mi API y claves secretas a otra aplicación?

StackOverflow https://stackoverflow.com/questions/2674445

Pregunta

Estoy empezando a pensar acerca de cómo funcionan las claves de la API y las claves secretas. Hace sólo 2 días he firmado para Amazon S3 e instalado el S3Fox Plugin . Me preguntaron por tanto mi clave de acceso y clave secreta de acceso, los cuales requieren que yo sesión para tener acceso.

Así que me pregunto, si me están pidiendo mi clave secreta, que debe almacenarlo en algún lugar correcto? ¿No es básicamente el mismo que pedirme mis números de tarjetas de crédito o contraseña y almacenar que en su propia base de datos?

¿Cómo son las claves secretas y claves de la API supone que funciona? Cómo secreto es lo que necesitan para ser? ¿Son estas las aplicaciones que utilizan las claves secretas de almacenamiento de alguna manera?

¿Fue útil?

Solución

Básicamente Abundando en lo que se indica aquí .

Así es como funciona: Supongamos que tenemos una función que toma un número del cero al nueve, agrega tres y, si el resultado es mayor que diez, resta diez. Por lo tanto f (2) = 5, f (8) = 1, etc. Ahora, podemos hacer otra función, lo llaman f', que va hacia atrás, mediante la adición de siete en lugar de tres. f '(5) = 2, f' (1) = 8, etc.

Esto es un ejemplo de una función de dos vías y su inversa. En teoría, cualquier función matemática que asigna una cosa a otra puede ser revertida. En la práctica, sin embargo, se puede hacer una función que revuelve su entrada tan bien que es increíblemente difícil de revertir.

Tomar una entrada y aplicar una función unidireccional se llama "hash" la entrada, y lo que las tiendas de Amazon en su sistema es un "control" de su clave secreta. SHA1 es un ejemplo de este tipo de función "unidireccional", también se endureció contra los ataques.

El función HMAC se basa en funciones hash establecidas deben utilizar una clave conocida para autenticar una cadena de texto. Funciona de esta manera:

  • Se toma el texto de su petición y su clave secreta y aplicar la función HMAC.
  • Se agrega que el encabezado de autenticación a su solicitud y la envía a Amazon.
  • Amazon mira hacia arriba su copia de la clave secreta, y el texto que acaba de enviar y aplica la función HMAC.
  • Si los Resultados de los partidos, que sepan que tienen la misma clave secreta.

La diferencia entre esto y PKI es que este método es RESTful , lo que permite un número mínimo de los intercambios entre el sistema y los servidores de Amazon.

  

¿No es básicamente el mismo que   preguntándome por mis números de tarjetas de crédito   o la contraseña y almacenamiento que, en su   propia base de datos?

Sí, aunque el daño que alguien puede hacer con S3 parece estar limitada a drenar su cuenta.

  

¿Cómo secreto es lo que necesitan para ser? Son   estas aplicaciones que utilizan el secreto   llaves almacenar de alguna manera?

En algún momento, vas a tener que cargar la clave secreta, y con la mayoría de los sistemas basados ??en Unix, si un atacante puede obtener acceso raíz, se puede obtener la clave. Si cifra la clave, usted tiene que tener el código para descifrarlo, y en algún momento el código de descifrado tiene que ser texto plano para que pueda ser ejecutado. Este es el mismo problema tiene DRM, excepto que es el propietario del equipo.

En muchos casos, acabo de poner claves secretas en un archivo con permisos limitados, y tomar las precauciones habituales para evitar que mi sistema de estar arraigadas. Hay algunos trucos para que funcione correctamente con un sistema multiusuario, tales como evitar los archivos temporales y tal.

Otros consejos

criptografía de clave pública se utiliza para defenderse de los ataques muy específicos, algunos de los cuales son comunes. En definitiva se trata de matemáticas complejas que le permite a uno para verificar que al individuo tiene tanto el par pública y clave privada mientras que sólo el conocimiento de la clave pública. Esto es muy diferente de una tarjeta de crédito o contraseña estática. A modo de ejemplo, si se autentifica con un servidor OpenSSH entonces el servidor no necesita la clave privada .

Lo ideal sería que si la base de datos de la API de Amazon, donde se vea comprometida, el atacante tiene una lista de claves públicas y no podría acceder a la API del usuario utilizando esta información. Sin embargo los sistemas ideales no siempre se ponen en práctica y no saben a ciencia cierta si Amazon está protegiendo contra este tipo de ataque, sino que deberían ser.

En la autenticación de clave pública es estadísticamente inmune a la fuerza bruta. Las contraseñas son palabras del diccionario de frecuencia que pueden dividirse relatividad rápido. Sin embargo, una clave privada es un número masivo que no es fácil de adivinar. Si el atacante tenía la clave pública entonces podrían realizar muchas conjeturas "fuera de línea" en un super ordenador, pero incluso entonces se necesitaría una gran cantidad de tiempo y dinero para romper la clave.

AWS ha diseñado su propio algoritmo de autenticación personalizado. v4 fue lanzado en 2014. Los detalles se describen aquí: solicitudes de Autenticación (AWS Firma versión 4) . Un punto importante es que la solicitud no está firmado con el mismo secreto, pero con una clave de firma que se genera utilizando el secreto. También utiliza HMAC-SHA256 para su firma.

Signature Generation

El uso de claves asimétricas sería más seguro ya AWS sólo se almacenará una clave pública en lugar del secreto, que se almacena por tanto el usuario como AWS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top