Security Labels Technical Documentation/fr

De Trustedbird Client Wiki
English | Français

> Documentation > Trustedbird > Libellés de Sécurité > Documentation technique


Implémentation

Normes

La norme de référence pour l'implémentation de cette fonctionnalité est la RFC 2634

Architecture

Présentation synthétique de l'architecture de l'extension

Cette fonctionnalité fait partie des travaux en cours de la fondation Mozilla: http://www.mozilla.org/projects/security/pki/nss/smime/. Elle est donc intégrée directement au code source de Thunderbird sans passer par une extension. De plus, ceci facilite l'ajout de cette fonctionnalité, car il est nécessaire d'intervenir au coeur du produit Thunderbird.

L'implémentation de cette RFC consiste principalement à ajouter des attributs dans les éléments de signature d'un message. Un mail avec Security label doit forcément être un mail signé. Lors de la réception, ces mêmes attributs sont lus pour déterminer les autorisations et droits d'accès.


Les fichiers d'IHM

Pour envoyer un message avec Security label, il est obligatoire de signer le message. La notion d'accusé de Security label est donc fortement liée aux fonctionnalités de sécurité. Au niveau de l'IHM, la gestion de la signature est actuellement implémentée par l'utilisation d'un flag signMessage, stocké dans un objet nsIMsgSMIMECompFields. L'ensemble du code gérant le positionnement de ce flag et l'interaction avec l'IHM est contenu dans le fichier JS msgCompSMIMEOverlay.js.

L'objet nsIMsgSMIMECompFields est ensuite fourni au service XPCOM d'envoi de message, qui se charge de la signature en fonction de ce flag. Cette classe a donc été complétée pour pouvoir stocker la demande de Security label. Il a également été nécessaire de compléter l'IHM afin que l'utilisateur puisse choisir le Security label.

Les fichiers XPCOM

Envoi d'un message

L'essentiel de l'implémentation de cette fonctionnalité se situe dans le fichier nsMsgComposeSecure.cpp au niveau de la classe nsMsgComposeSecure. Cette implémentation consiste principalement à ajouter des attributs dans les éléments de signature d'un message.

Lors de l'envoi d'un mail, l'API Thunderbird standard construit la structure de données suivante:

SignedReceipt struct1 fr.gif


Les attributs à ajouter se situent au niveau de la structure NSSCMSSignerInfo et sont de type NSSCMSAttribute.

Une structure NSSCMSAttribute est définie de la façon suivante:


SignedReceipt struct2 fr.gif


L'attribut à ajouter est securityLabel dont la structure est définie par la RFC 2634.


Réception d'un message

Lors de la réception d'un message avec Security label, la structure précédente est décodée.