Comme promis, voilà un petit outil très simple qui démontre l’utilisation de fonctions cryptages fournies dans openssl: sslfilecrypt.c. Il prend avec getpass(3) votre mot de passe, dont il fait un sha256 dessus pour en déduire la clef de cryptage, puis dans le cas de l’encryptage génère un IV et procède à l’écriture dans le fichier et dans le cas du décryptage, lit l’IV et procède au décodage.
Compilation:
Test:
$ ./sslfilecrypt encrypt test test.crypted
Password: *******
$ ./sslfilecrypt decrypt test.crypted test.clear
Password: *******
$ md5sum test test.crypted test.clear
b5393e86e800f1557041f8f2d0964bef test
5ddc5d355f49c0d2aa7140ac88430c54 test.crypted
b5393e86e800f1557041f8f2d0964bef test.clear
$ hexdump -C test|tail -n 5
003e7fc0 a7 63 11 76 a9 85 27 ca d1 af b8 b4 e4 21 00 b3
003e7fd0 27 ac 89 b2 c3 a1 99 1d 6a 5d 83 4c ca 27 ed 5d
003e7fe0 29 4a 50 49 f7 59 3e f2 56 a6 c5 a0 70 8e cd 89
003e7ff0 9f 0f 01 f3 93 c7 91 d9 c3 cf 1b f1 b5 3b 51 a4
$ hexdump -C test.crypted|tail -n 5
003e7ff0 f8 d8 5f a4 3d cf 3e cc f2 97 13 2a ac 06 b6 d8
003e8000 7e 59 af 68 93 c8 ea b1 d3 6e e6 82 97 57 43 e5
003e8010 18 a4 d1 4f d5 05 58 4e 7d 34 cf 0c 8b 00 ba d4
003e8020 72 60 ea 79 cb bc 83 bb 3e 6c b2 dd 30 48 87 07
Notez que dans le code, aux environ de la ligne 186, on pourra changer d’algorithme et passer de l’AES au Camellia, en commentant/décommentant l’utilisation des fonctions EVP_aes_256_cbc(3)/EVP_camellia_256_cbc(3).
Cet outil est un proof of concept et ne devrait pas être utilisé pour une réelle utilisation, il manque des parties importantes, comme utiliser autre chose que getpass(3) ou encore réécrire la mémoire à 0 après utilisation.
Télécharger le code source.