J'ai besoin de mettre en œuvre la sécurité de la communication client-serveur. J'ai mis en place le Cryptosystème hybride P>
Pour chiffrer un message adressé à Alice dans un cryptosystème hybride, Bob procède les suivantes: p>
Pour déchiffrer ce chiffrement hybride, Alice procède les suivantes: P>
J'utilise RSA pour un cryptosystème de clé publique et des AES pour cryptosystème à clé symétrique. Tout fonctionne bien, mais je ne sais pas comment gérer le vecteur d'initialisation de AES. Actuellement, je suis concatéré la clé AES et l'initialisation vectorielle le cryptant avec la clé publique et l'envoi du serveur. P>
Je voulais juste avoir des opinions sur cette approche. Comment ce problème est résolu par d'autres protocoles de communication SSL, etc. P>
merci. p>
3 Réponses :
J'ai fait la même chose et j'ai géré la même manière - concaténate la clé AES avec le IV et les chiffrer tous les deux. P>
Vous pouvez également simplement envoyer la clé et utiliser la clé elle-même pour générer un IV - par exemple en utilisant les 128 premiers bits d'un hachage de la clé en tant que IV. Cela devrait être ok Security-sage tant que vous générez une nouvelle clé AES pour chaque session et que vous n'utilisez pas la même clé AES sur le même IV. P>
Il n'y a aucune raison de chiffrer le IV - vous pouvez envoyer cela dans le claire. Assurez-vous simplement de choisir un nouveau à chaque fois (de la même manière que vous faites la clé AES). P>
Cela dit, il est souvent pratique d'emballer la clé AES et IV ensemble. Le cryptage de 16 octets n'est pas aussi cher. P>
Vous ne chiffrez pas le IV. Placez-le avec la clé cryptée et envoyez-la (dans le clair) au destinataire. P>
Les normes pour cela existent. Ce schéma s'appelle "KeyTransRecipientInfo" dans CMS (sur lequel est basé S / MIME), et PGP offre un mode similaire. TLS inclut également le vecteur d'initialisation en tant que paramètre dans l'identifiant d'algorithme de cryptage clé, à l'aide de la même syntaxe ASN.1 en tant que CMS. Une bibliothèque robuste et open source pour effectuer cette opération est disponible pour de nombreuses plateformes. P>
À tout le moins, étudier la spécification CMS pourrait aider à éviter que certains des nombreux pièges dans une mise en œuvre de la maison à domicile. Voir §6.1 et §6.2.1 de RFC 3369. P>