web-dev-qa-db-fra.com

Comment le schéma de rembourrage a-t-il une incidence sur la sécurité du cryptage?

Après avoir creusé un peu plus profondément dans la cryptographie, je me demande quel impact les différents schémas de rembourrage ont une sécurité d'un algorithme de cryptage. Permet de prendre des AES-128 en mode CBC à titre d'exemple, car je travaille actuellement avec celui-ci.

Wikipedia répertorie plusieurs schémas de rembourrage, mais ne mentionne rien de l'impact de la sécurité du choix de l'un d'entre eux. La bibliothèque que je travaille actuellement avec des fournitures PKCS5 Padding , qui n'est même pas mentionnée dans l'article Wikipedia. Il existe évidemment plusieurs autres systèmes de rembourrage là-bas.

Je ne suis pas un expert en cryptographie, alors peut-être que je suis totalement tort, mais je ne vois pas comment les différents schémas de rembourrage devraient avoir un impact significatif. Suis-je essentiellement libre de choisir un et soyez heureux ou y a-t-il des choses que je dois considérer?

10
Demento

Réponse courte : Ne les transpirez pas. Dans la plupart des cas, le choix de la méthode de rembourrage n'a pas d'importance.

Réponse plus longue: pourquoi cela n'a pas d'importance. Tant que vous utilisez des pratiques de conception crypto appropriées - en particulier, tant que les chiffres sont correctement authentifiés - - Je ne suis au courant d'aucune façon que le choix du rembourrage affecte la sécurité (à une exception près, voir ci-dessous).

Il est vrai que si vous ne manquiez pas de l'authentification des chiffres, il peut y avoir des attaques, car @THOMAS explique. Là encore, si des ciphertextes ne sont pas correctement authentifiés, vous avez probablement une foule d'autres problèmes, vous ne devez donc pas le blâmer sur le schéma de rembourrage. Les cryptographes savent que Si vous cryptez quelque chose, vous devez vraiment authentifier le CIPHERText ; L'échec de la présente est une erreur de recrue classique qui peut ouvrir de graves défauts de sécurité .

En bref, si vous suivez de bonnes pratiques de crypto, le choix du rembourrage ne devrait pas avoir beaucoup d'importance pour la sécurité (et si vous ne suivez pas de bonnes pratiques de crypto, vous pouvez avoir de plus gros problèmes).

L'exception: un cas où cela importe. OK, nous sommes maintenant à l'impression fine. C'est là que j'admets que ce qui précède est un peu d'une simplification excessive. Il y a une situation où le choix du rembourrage peut être très important pour la sécurité: la résistance à l'analyse du trafic.

Le cryptage ne dissimule pas la longueur des messages cryptés: le message crypté révèle généralement la longueur (ou la longueur approximative) du message crypté. Dans certains contextes, cela peut être très problématique. Par exemple, il existe des contextes où la révélation d'informations de longueur donne tout le magasin: elle révèle le contenu que vous essayiez de garder confidentielle. (Voir, par exemple, Attaque de canal latéral étonnante de Chen et al sur les applications Web cryptées SSL La requête de recherche peut déduire quelle est la requête de recherche. Je pense que Google a corrigé le problème, mais il s'agissait d'un exemple d'ouverture oculaire époustouflant d'un risque général qui était auparavant connu.)

Si vous êtes dans un contexte où les longueurs de message révèlent des informations sensibles, vous avez un problème. La défense standard consiste à renvoyer les messages avant le cryptage, de sorte que la longueur de CIPHERText ne révèle rien des longueurs de message. Une façon de le faire est de renvoyer tous les messages à une longueur fixe avant de crypter. Un autre moyen (moins sécurisé) de le faire consiste à ajouter du rembourrage d'une longueur aléatoire, avec suffisamment de rembourrage aléatoire que le bruit aléatoire obscurcit le signal et empêche un attaquant d'apprendre suffisamment d'informations sur les longueurs pour faire du mal. Donc, dans un contexte où nous devons prévenir l'analyse du trafic, la conception du schéma de rembourrage devient critique et les systèmes de rembourrage standard ne seront probablement pas suffisants: vous devrez peut-être faire quelque chose de spécial.

8
D.W.