Authentificateurs

Un authentificateur vous permet d'empêcher la substitution complète de valeur des champs chiffrés. Par exemple, considérons la table suivante des données de salaires du personnel :

Employee_ID

Standard_Title

Base_Pay

345

Copy Room Assistant

Fskj%7^edhn00

697

Chief Financial Officer

M0x8900f56543

694

Data Entry Supervisor

Cvc97824%^34f

Sans même casser le code de chiffrement, un pirate peut déduire des informations importantes à partir du contexte dans lequel le texte chiffré est stocké. Comme à la fonction de Chief Financial Officer correspond un salaire plus élevé qu'à celle de Copy Room Assistant, la valeur chiffrée en M0x8900f56543 doit être supérieure à la valeur chiffrée en Fskj%7^edhn00. S'il en est ainsi, tout utilisateur disposant de l'autorisation ALTER sur la table peut octroyer une augmentation à la fonction Copy Room Assistant en remplaçant les données du champ Base_Pay par une copie des données stockées dans le champ Base_Pay de la fonction Chief Financial Officer. Cette attaque par substitution complète de valeur outrepasse complètement le chiffrement. Vous pouvez déjouer les attaques par substitution de ce type en ajoutant des informations contextuelles au texte brut avant de le chiffrer. Ces informations contextuelles sont utilisées pour vérifier que les données en texte brut n'ont pas été déplacées.

Si un authentificateur est précisé lors du chiffrement des données, il faut utiliser le même pour déchiffrer les données. Au moment du chiffrement, un hachage de l'authentificateur est chiffré avec le texte brut. Au moment du déchiffrement, vous devez passer le même authentificateur à la fonction de déchiffrement. Si les deux authentificateurs ne correspondent pas, le déchiffrement échoue, ce qui indique que la valeur a été déplacée depuis son chiffrement. Il est recommandé d'affecter à cet authentificateur la clé primaire de la table dans laquelle le résultat sera stocké.