Dans son article Signes défectueux et chiffrement en S/MIME, PKCS # 7, MOSS, PEM, PGP et XML, Don Davis parle souvent du terme
signe et cryptage naïfs
Après avoir lu le document, je ne suis pas sûr à 100% de ce que cela signifie exactement.
Veut-il dire l'habitude possible des utilisateurs (grand public) de penser que signer et chiffrer est une pratique de sécurité acceptable? (Bien qu'il n'y ait aucune assurance quant à qui a chiffré votre message)
L'auteur semble utiliser "simple" et "naïf" de manière interchangeable. Oui, il semble qu'il se réfère à l'acte de signer (avec la clé privée de l'expéditeur) et de chiffrer (avec la clé publique du récepteur) le texte en clair avant la transmission.
Il considère cela comme naïf en raison de la possibilité pour un tiers de transmettre un message signé préexistant écrit par l'expéditeur au destinataire et le destinataire supposant qu'il est sûr de lui faire confiance.
Imaginez une situation où Bob et Alice tentent de communiquer en toute sécurité. Chuck est un tiers non fiable connu de tous les deux.
Vous devez lire le schéma de signature et de cryptage dans le contexte des personnes de l'industrie de la cryptographie et de la sécurité déterminant l'ordre correct pour combiner la signature et le cryptage dans cryptage authentifié pour vous permettre d'envoyer un message secret signé.
Le signe et le cryptage naïfs sont tout schéma cryptographique dans lequel le message est signé par la clé privée de l'auteur, puis crypté sur la clé publique du destinataire de la manière la plus simple et la plus évidente:
message = encrypt(recipient public key, sign(author private key, message))
Ce schéma simple présente un certain nombre de vulnérabilités, comme décrit dans l'article.
Les autres ordres naïfs: "crypter puis signer" comportent également un certain nombre de vulnérabilités. Dans le passé, l'API de cryptographie exposait les primitives de signature et de chiffrement, mais pas les primitives de chiffrement authentifiées, de sorte que les concepteurs de protocoles et les programmeurs d'applications ont toujours dû réinventer leur propre mécanisme de combinaison, qui se résume généralement à l'un des deux ordres naïfs et au la façon dont les concepteurs de protocoles et les programmeurs d'applications combinent ces primitives a souvent conduit à des vulnérabilités inattendues.
Le signe et le chiffrement non naïfs seraient alors toute méthode de chiffrement authentifiée qui combine les primitives de signature et de chiffrement traditionnelles avec des opérations supplémentaires qui relient les opérations de signature et de chiffrement, pour éviter les vulnérabilités du signe et du chiffrement naïfs. C'est par opposition au vrai cryptage authentifié qui est conçu à partir de zéro pour satisfaire les critères de conception du cryptage authentifié.
Cette approche de création d'un chiffrement authentifié à partir de la signature et du chiffrement traditionnels est tentante car si elle est effectuée correctement, elle vous permet de combiner tous les algorithmes de signature avec tous les algorithmes de chiffrement, et cela peut faciliter l'analyse lorsque vous commencez avec des primitives bien connues et testées au combat plutôt que de concevoir des chiffres totalement nouveaux. Cette approche a également des précédents, avec des opérations de haut niveau comme PBKDF et HMAC étant construites sur la base des primitives de hachage existantes.