Secure Headers Technical Documentation/fr : Différence entre versions

De Trustedbird Client Wiki
(Mécanismes)
(Composition de message)
Ligne 20 : Ligne 20 :
   
 
[[File:SecureHeader_sch_compose.png||]]
 
[[File:SecureHeader_sch_compose.png||]]
  +
  +
Lors de la génération de la signature, pour chaque entête à sécuriser est appliqué l'algorithme suivant:
  +
* renseignement du champ HeaderFiledName avec le nom de l'entête,
  +
* canonisation de la valeur de l'entête,
  +
* renseignement du champ HeaderFieldValue avec la valeur canonisée,
  +
* renseignement du champ HeaderFieldStatus avec le statut de l'entête.
  +
La structure SecureHeaderFields (syntaxe ASN.1 présentée ci-dessous) est ensuite intégrée dans les attributs signés de l'objet SignerInfos.
  +
  +
SecureHeaderFields ::= SET{
  +
canonAlgorithm Algorithm,
  +
secHeaderFields HeaderFields
  +
}
  +
  +
Algorithm ::= ENUMERATED {
  +
canonAlgorithmSimple(0),
  +
canonAlgorithmRelaxed(1)
  +
}
  +
  +
HeaderField ::= SEQUENCE{
  +
field-Name HeaderFieldName,
  +
field-Value HeaderFieldValue,
  +
field-status HeaderFieldStatus OPTIONAL
  +
}
   
 
=== Réception de message ===
 
=== Réception de message ===

Version du 7 octobre 2010 à 13:55

Mécanismes

Les mécanismes assurant la sécurisation des entêtes de message sont basés sur les concepts des attributs signés d'un objet: Les champs d'entêtes (nom + valeur) à sécuriser sont insérés au sein d'une structure SecureHeaderFields, elle même encapsulée dans une structure SignedAttributes intégrée dans un objet SignerInfo. Ensuite, le processus de calcul du condensé de la signature est réalisé à partir du contenu de message ainsi que des données présentes dans la structure des attributs signés.

La norme de référence pour l'implémentation des attributs signés est la RFC 3852.

Architecture

Préférences de compte

Une section "entêtes sécurisés" est insérée pour chaque compte utilisateur afin de définir le fichier XML contenant les entêtes à sécuriser. Quant au fichier XML de description des entêtes, un fichier par défaut se trouve dans les sources et est copié dans le répertoire du profile utilisateur lors de l'installation du client.

SecureHeader sch settings.png

Composition de message

Deux items de menu sont intégrés dynamiquement par le javascript dans la fenêtre de composition pour activer l'option des entêtes sécurisés. La valeur que va prendre le menuitem va déterminer si le message sera envoyé avec les entêtes sécurisés. La fenêtre d'information de sécurité est enrichie de la liste des entêtes à sécuriser à l'envoi du message.

SecureHeader sch compose.png

Lors de la génération de la signature, pour chaque entête à sécuriser est appliqué l'algorithme suivant:

  • renseignement du champ HeaderFiledName avec le nom de l'entête,
  • canonisation de la valeur de l'entête,
  • renseignement du champ HeaderFieldValue avec la valeur canonisée,
  • renseignement du champ HeaderFieldStatus avec le statut de l'entête.

La structure SecureHeaderFields (syntaxe ASN.1 présentée ci-dessous) est ensuite intégrée dans les attributs signés de l'objet SignerInfos.

 SecureHeaderFields ::= SET{
   canonAlgorithm Algorithm,
   secHeaderFields HeaderFields
 }
 
 Algorithm ::= ENUMERATED {
   canonAlgorithmSimple(0),
   canonAlgorithmRelaxed(1)  
 }
 
 HeaderField ::= SEQUENCE{
   field-Name HeaderFieldName,
   field-Value HeaderFieldValue,
   field-status HeaderFieldStatus OPTIONAL
 }

Réception de message

A la lecture d'un message, une enveloppe avec un point rouge permet de voir les entêtes qui ont été sécurisés.

SecureHeader sch read.png

Arborescence

La sécurisation des entêtes est intégrée dans les sources de Thunderbird pour le produit TrustedBird. La majorité du code se trouve dans comm-1.9.2/mailnews/extensions/secureheaders, cette partie correspond aux interfaces graphiques spécifiques des entêtes sécurisées. D'autres fichiers sont modifiés pour utiliser les IHMs déjà présentes et surcharger l'existant afin d'intégrer cette fonction supplémentaire. Ainsi, comm-1.9.2/mailnews/extensions/smime contient des ajouts pour afficher dans des fenêtres déjà existantes les informations sur les entêtes sécurisés. C'est aussi cette extension qui est utilisée pour le chiffrage et déchiffrage des entêtes. Les fichiers concernés pour les secureHeaders sont:

 ./comm-1.9.2/mailnews/extensions/makefile.in
                                 /secureheaders/resource
                                 /secureheaders/src
                                 /secureheaders/jar.mn
                                 /secureheaders/makefile.in
             /mail/installer/package-manifest.in

Intégrer le service de configuration des Secure Headers dans les préférences de compte

Pour la compilation, le fichier am-service-secureheaders.js doit être déclaré dans le makefile.in du composant via la variable

 EXTRA_COMPONENTS = src/am-service-secureheaders.js

Pour le packaging, le fichier am-service-secureheaders.js doit être déclaré dans le fichier .\comm-1.9.2\mail\installer\package-manifest.in

 @BINPATH@/components/am-service-secureheaders.js