J'ai la tâche de transférer de petits messages binaires (1 ou 2 kb) entre une application de bureau et des périphériques mobiles. Les messages doivent être cryptés asymétriquement (RSA par exemple). D'après ce que j'ai appris il faut utiliser un système de chiffrement hybride pour ce genre de tâche:Faut-il utiliser la syntaxe de message cryptographique (CMS) pour cette tâche?
- Générer clé symétrique aléatoire
- Chiffrer texte brut avec clé symétrique (en utilisant AES par exemple)
- Encrypt clé symétrique avec clé publique
- transmission du texte de chiffrement et crypté clé symétrique
Je voudrais inventer un pas propre format pour stocker le texte chiffré et la clé symétrique cryptée. J'ai donc trébuché sur la norme CMS (syntaxe de message cryptographique). Au premier coup d'œil, il ressemble exactement à ce dont j'ai besoin. Si j'ai bien compris la norme, elle incorpore le texte chiffré et la clé symétrique cryptée ainsi que des informations sur les algorithmes utilisés.
Quelqu'un peut-il dire si l'on devrait utiliser la norme CMS pour la tâche décrite? Le support CMS d'OpenSSL est-il suffisant pour mes besoins?
Cheers, Christian
En attendant, j'ai implémenté le CMS en utilisant OpenSSL. Cela fonctionne comme un charme. –
Voici la documentation 'openssl cms': http://www.openssl.org/docs/apps/cms.html. Exemple de code en Java avec BouncyCastle: http://security.stackexchange.com/questions/1453/whats-the-standard-way-to-encrypt-a-file-with-a-public-key-in-java –