141 votes

Comment les clés de l’API et Secret des touches fonctionnent ?

Je commence tout juste à réfléchir à la façon de l'api clés et les clés secrètes de travail. Seulement 2 jours que j'ai signé pour Amazon S3 et installé le S3Fox Plugin. Ils m'ont demandé pour ma Clé d'Accès et la Clé d'Accès Secrète, qui m'obligent à vous identifier pour y accéder.

Alors je me demandais, si on ne me demande ma clé secrète, ils doivent être de les stocker quelque part à droite? N'est-ce pas essentiellement la même chose que de me demander de mes numéros de carte de crédit ou un mot de passe et le stockage que dans leur propre base de données?

Comment sont les clés secrètes et les clés api censé fonctionner? Comment secret doivent-elles l'être? Sont ces applications qui utilisent le secret stocker les clés d'une certaine façon?

Merci pour l'aperçu.

93voto

ben Points 472

Fondamentalement, de s'attarder sur ce qui est décrit ici.

Voici comment cela fonctionne: disons que nous avons une fonction qui prend un nombre de zéro à neuf, ajoute trois et, si le résultat est supérieur à dix, soustrait dix. Donc f(2) = 5, f(8) = 1, etc. Maintenant, nous pouvons faire une autre fonction, l'appeler f', qui va vers l'arrière, par l'ajout de sept au lieu de trois. f'(5) = 2, f'(1) = 8, etc.

C'est un exemple d'une fonction et son inverse. Théoriquement, toutes les fonctions mathématiques qui cartes une chose à l'autre peut être inversé. Dans la pratique, cependant, vous pouvez faire une fonction qui brouille son entrée, si bien qu'il est incroyablement difficile à inverser.

En prenant de l'entrée et l'application d'une fonction est appelée "hachage" de l'entrée, et à ce qu'Amazon magasins sur leur système est un "hash" de votre clé secrète. SHA1 est un exemple de ce type de "one-way" de la fonction, il est également protégés contre les attaques.

La fonction HMAC s'appuie sur les fonctions de hachage à utiliser une clés connus pour authentifier une chaîne de texte. Il fonctionne comme ceci:

  • Vous prenez le texte de votre demande et de votre clé secrète et d'appliquer la fonction HMAC.
  • Vous ajoutez que l'en-tête d'authentification à votre demande et l'envoyer à Amazon.
  • Amazon semble leur copie de la clé secrète, et le texte que vous venez d'envoyer et applique la fonction HMAC.
  • Si le résultat des matchs, ils savent que vous avez la même clé secrète.

La différence entre cela et l'ICP est que cette méthode est Reposant, permettant à un nombre minimum d'échanges entre votre système et les serveurs d'Amazon.

N'est-ce pas essentiellement la même chose que me demandant mon numéro de carte de crédit ou le mot de passe et le stockage que dans leur propre base de données?

Oui, si le dommage que quelqu'un peut faire avec S3 semble être limitée à vider votre compte.

Comment secret doivent-elles l'être? Sont ces applications qui utilisent le secret stocker les clés d'une certaine façon?

À un certain moment, vous allez avoir à charger la clé secrète, et avec la plupart des Unix, si un attaquant peut obtenir l'accès à la racine, ils peuvent obtenir la clé. Si vous chiffrer la clé, vous devez disposez d'un code à déchiffrer, et à un certain point le déchiffrement du code doit être en texte brut, donc il peut être exécuté. C'est le même problème DRM a, sauf que vous êtes propriétaire de l'ordinateur.

Dans de nombreux cas, j'ai juste mis les clés secrètes dans un fichier avec des autorisations limitées, et de prendre les précautions habituelles pour la prévenir de mon système d'être enraciné. Il ya quelques trucs pour le faire fonctionner correctement avec un système multi-utilisateur, par exemple en évitant les fichiers temporaires et autres.

7voto

Rook Points 34698

La Cryptographie à Clé publique est utilisée pour se défendre contre des attaques spécifiques, dont certains sont communs. En bref c'est mathématique complexe qui permet de vérifier qu'au niveau de l'individu a, à la fois Privés et Publics de la paire de Clés alors que seulement en connaissant la clé publique. C'est très différent d'une carte de crédit ou un mot de passe statique. Comme un exemple, si vous êtes de l'authentification avec un serveur OpenSSH puis, le serveur n'a pas besoin de la clé privée.

Idéalement si Amazon l'API de base de données, compromission de l'attaquant aurait une liste de clés publiques et serait incapable d'accès de l'utilisateur de l'API à l'aide de cette information. Cependant idéal systèmes ne sont pas toujours mis en pratique, et je ne sais pas pour vous si Amazon est de protéger contre ce vecteur d'attaque, mais ils devraient l'être.

Dans l'authentification par clé publique est statistiquement immunitaire à la force brute. Les mots de passe sont souvent les mots du dictionnaire qui peut être rompu de la relativité rapide. Cependant une clé privée est un grand nombre qui n'est pas facile à deviner. Si l'attaquant avait la clé publique alors ils pourraient faire beaucoup de suppositions "hors ligne" sur un super-ordinateur, mais même alors, il faudrait beaucoup de temps et d'argent pour casser la clé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X