Non-deprecated OPENSSL, password secured RSA pkey, pretty logs & blocs encryption/decryption handling #33
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Avancement
J'ai encore une fois bien travaillé sur le FS. Beaucoup de choses ont été ajoutés.
OPENSSL : structures
RSA
vers structuresEVP_PKEY
Les structures de types
RSA
sont dépréciées (car elles sont trop bas niveaux et par conséquent gérées par le programmeurqui peut de temps en temps en avoir un peu rien à carrer de la sécurité des algorithmes de chiffrement).De ce fait, toutes les fonctions faisant appel à des structures de ce type utilisent maintenant des structures de clés de plus haut niveau (géré par OPENSSL donc) : les
EVP_PKEY
.Chiffrement de la clé privée RSA de l'utilisateur avec une phrase de passe
Avant cette fonctionnalité, la clé privée était stockée en clair sur le disque de l'utilisateur. Maintenant, dès le formatage d'un fichier/appareil (cf
code/formater.c
ainsi que les fonctions que ce programme appelle), l'utilisateur sera invité à entrer une phrase de passe (ou mot de passe pour les intimes) pour chiffrer sa clé privée avec de l'AES.Journalisation plutôt jolie
Afin de permettre une meilleure visualisation des événements du système de fichiers, j'ai mis en place des fonctions de journalisation avec différents degrés d'importance :
Chiffrement à l'écriture/déchiffrement à la lecture des blocs
J'ai rajouté les fonctions
write_blocks_with_encryption()
etread_blocks_with_decryption()
(disponibles dansinclude/block.h
). Ces fonctions sont équivalentes aux fonctionswrite_blocks()
etread_blocks()
, à la seule différence qu'elles prennent en premier argument une clé AES, ce qui leur permet de faire du chiffrement/déchiffrement à la volée.