2010-08-09 5 views
6

Il y a eu beaucoup de questions concernant la génération IV, le cryptage et le partage de l'IV entre l'expéditeur et le destinataire, mais je veux faire un post explicite sur la meilleure façon d'envoyer l'IV de l'expéditeur au destinataire. De tous les messages que j'ai vus jusqu'à présent, je ne suis pas sûr de savoir s'il est sûr d'envoyer l'IV en "texte clair" en l'ajoutant au texte chiffré. Donc, la première question est, est-ce sécuritaire de le faire? Deuxièmement, y a-t-il un moyen plus sûr de partager un IV entre l'expéditeur et le récepteur lors de la communication en échangeant des messages?Envoyer IV avec le texte chiffré, en toute sécurité?

Vive

+0

Je sais que c'est une vieille question, mais si ma réponse était utile, pourriez-vous l'accepter comme réponse? Merci beaucoup. – mfanto

+0

Oui, le fera avec plaisir :) – Mystic

Répondre

11

Oui, il est possible d'envoyer l'IV en clair. Voici la « preuve » de savoir pourquoi:

Prenez mode CBC par exemple:

alt text

Vous pouvez voir que le cryptogramme d'un bloc est XORed avec le texte brut du bloc suivant. La raison pour laquelle nous avons besoin d'un IV est parce que sur le premier bloc, il n'y a pas de texte chiffré à utiliser. S'il y avait un risque de sécurité à ce que le IV soit secret, alors le risque de sécurité serait présent pour chaque bloc après, puisque le texte chiffré sert le même rôle que le IV. Cela étant dit, vous devez vous assurer que vous MAC. En fonction de la façon dont vous faites les codes d'authentification des messages, quelqu'un qui altère la IV pourrait altérer le texte en clair sur le déchiffrement. Le cryptage seul ne garantit pas l'intégrité des messages.

De plus, pour la génération IV, cela dépend de vos besoins. Mais le plus souvent, votre intraveineuse doit être aléatoire et imprévisible.

+0

Merci mattjf. Bonne explication. Sur une note connexe, quelle est la relation entre la taille du texte en clair d'origine et le texte chiffré qui en résulte? Je devrais probablement connaître les tailles si je vais extraire les parties pertinentes. – Mystic

+2

Eh bien, malheureusement, la réponse est, cela dépend. Selon le chiffre et le mode que vous utilisez, cela varie. CBC est le mode le plus populaire, qui nécessite l'IV et nécessite que le texte en clair soit complété à la taille du bloc. Disons que vous voulez chiffrer 4 octets avec AES CBC. Vous auriez besoin de 16 octets pour l'IV, et ces 4 octets doivent être complétés à 16 octets, pour un total de 32 octets. Vous pouvez utiliser Ciphertext Stealing pour empêcher l'expansion du bloc, ou vous pouvez utiliser le mode AES CTR.Comment MACing vos données? Vous devez vous assurer que personne ne peut altérer vos données cryptées. – mfanto

+0

Suite: Si vous pouvez donner les primitives que vous êtes contraints d'utiliser, nous pouvons faire une meilleure recommandation. Mais, honnêtement, vous ne devriez pas concevoir des cryptosystèmes. Pouvez-vous utiliser un standard ou un protocole existant? Qu'essayez-vous exactement d'accomplir? – mfanto

1

Oui, il est sûr de faire en clair avec la mise en garde qu'ils ne doivent pas être répétées.

2

Oui, c'est sans danger. De nombreux protocoles tels que WEP et WPA transmettront l'IV en texte clair. Ceci est généralement une exigence car il est impossible de déchiffrer le message sans connaître le iv. L'attaque WEP la plus courante consiste à capturer des milliers de VIs, mais c'est parce que RC4 est vulnérable à un Related Key Attack. Si vous utilisez un chiffrement symétrique sécurisé, vous n'avez pas à vous inquiéter.

Une vulnérabilité connue que je connais de concernant les IV est CWE-329, ce qui nécessite que l'IV soit aléatoire, et this is why c'est un problème. Un autre problème potentiel est le cryptage de 2 messages avec le même IV. Ceci est un problème car un attaquant peut être capable d'identifier un autre message textuel chiffré en cryptant de nombreux messages connus, en faisant effectivement des suppositions sur ce qu'un texte chiffré capturé peut-être sans connaître la clé.

Questions connexes