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.