Signed Receipts Technical Documentation/fr

De Trustedbird Client Wiki
English | Français

> Documentation > Trustedbird > Accusés de réception signés > Documentation technique


Implémentation

Normes

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

Pour avoir plus d'information sur les notions d'enveloppe, de signature et de chiffrement, vous pouvez vous référer aux documents suivants :


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 demande d'accusé de réception signé doit forcément être un mail signé. Lors de la réception, ces mêmes attributs sont lus pour déterminer s'il est nécessaire de signer l'accusé de réception.

L'intégration de cette fonctionnalité est en cours par Mozilla: https://bugzilla.mozilla.org/show_bug.cgi?id=386313

Les fichiers d'IHM

Pour envoyer un message avec une demande d'accusé de réception signé, il est obligatoire de signer le message. La notion d'accusé de réception signé est donc fortement lié 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 d'accusé signé. Il a également été nécessaire de compléter l'IHM afin que l'utilisateur puisse choisir cette option.

SignedReceipt Options1 fr.gif

SignedReceipt Options2 fr.gif


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 un est receiptRequest dont la structure est définie par la RFC 2634.


Réception d'un message

Lors de la réception d'un message avec demande d'accusé signé, la structure précédente est décodée et un accusé signé est généré.