LinSign : la signature électronique
          en open source
           David CARELLA
         Expert Sécurité PKI
        dcarella@linagora.com




                                WWW.LINAGORA.COM
L’offre Sécurité




                   2
Composition de l’offre Sécurité (1/3)


Offre LinPKI
L’offre LinPKI – composée des offres EJBCA et LinRA – constitue l’offre de sécurité
de Linagora. Par sa modularité et sa complétude, elle répond à la plupart des
besoins en matière de confiance numérique en termes d’infrastructure de sécurité
SI.
Produit LinSign
LinSign – application de signature électronique de documents – se décline en
3 éditions : LinSign Standalone, LinSign Portal, LinSign API.
LinSign est en cours de certification CSPN auprès de l’ANSSI.
Produit entièrement conçu et développé par LINGORA.
Produit LinShare
LinShare est une application de partage de fichiers sécurisé, qui comporte
également un coffre-fort électronique.
LinShare se distingue par sa simplicité d’utilisation et son extensibilité avec les
plugins suivants : module de signature LinSign, plugin « Send & Share » pour
Thunderbird et Outlook.
Produit entièrement conçu et développé par LINGORA.

                                            3
Composition de l’offre Sécurité (2/3)


EJBCA – Infrastructure de gestion de clés (PKI)
EJBCA est une infrastructure de gestion de clés (en anglais, PKI : Public Key
Infrastructure) complète, interopérable et intégrable avec tout SI.
EJBCA permet de gérer des autorités de certification (AC) via les principaux HSM
(Hardware Security Modules) du marché.


EJBCA peut également être combinée avec un système de gestion de cartes à puce –
CMS : Card Management System –, pour constituer la solution idéale de production
d’identités électroniques.


LinRA – Autorité d’enregistrement
LinRA fournit une autorité d’enregistrement web (en anglais, RA : Registration
Authority) évoluée et simple d’utilisation qui rendra vos utilisateurs autonomes pour la
gestion de leurs certificats numériques : génération, retrait, révocation,
recouvrement, etc.




                                           4
Composition de l’offre Sécurité (3/3)



LinSecure – Coffre-fort électronique pour le jeu en ligne
LinSecure est un coffre-fort électronique pour les applications de jeu en ligne. Cette
application est conçue et réalisée par Linagora.
LinSecure – conforme ARJEL (Autorité de régulation du jeu en ligne) – est cours de
certification CSPN (Certification de sécurité de premier niveau) auprès de l’ANSSI
(Agence nationale de sécurité des systèmes d’information).




SignServer – Notarisation électronique
SignServer est une application serveur de notarisation électronique qui permet de
signer et horodater des documents électroniques.
SignServer est le complément idéal à LinSign pour fournir une solution
d’administration de la preuve électronique.




                                           5
LinPKI : Exemple de fonctionnalité


    Cinématique d’une signature client et serveur, avec horodatage




                     LinPKI                     LinPKI                     LinPKI                   LinPKI     Archivage
                    Signature                  Validation                Signature                Horodatage   des
                                                                                                               documents




Un Utilisateur   L’utilisateur signe     Le service de              Le serveur de             Horodatage des
dépose un        le document avec        validation vérifie le      signature ajoute des      signatures
document         son certificat via le   certificat numérique       éléments de signature :
électronique     composant de            du client qui a signé le   éléments de validation,
                 signature de            document                   horodatage, contre ou
                 LinSign                                            co-signature.




                                                             6                                                       6
Signature électronique de documents




                7
LinSign : Présentation (1/2)


L’application LinSign fournit un service de signature électronique de
documents depuis le poste client.
LinSign est conçu dans un esprit de généricité et de modularité vis-à-vis des
applications. Elle peut être mise en œuvre de plusieurs façons regroupées en trois
éditions.


LinSign Standalone – Édition client autonome
LinSign est utilisée comme un produit prêt à être utilisé sur le poste client. C’est une
sorte de « boîte noire » existante sous plusieurs packagings, permettant plusieurs
modes de déploiement :
① Installation
hors connexion
② Déploiement
par Java Web Start
③ Exécution comme
applet, via un portail




                                           8
LinSign : Présentation (2/2)


LinSign Portal – Édition portail
LinSign est utilisée dans son portail web en mode distant et connecté, avec les
navigateurs standards du marché.




LinSign API – Édition librairie à intégrer

La librairie LinSign API peut être intégrée dans toutes
applications basées sur les frameworks web Tapestry, JSF,
Seam et JSP.
Ainsi, un projet applicatif métier peut s’approprier LinSign en
l’intégrant, voire en l’adaptant à ses propres besoins dans le
cadre du développement d’une l’application (e.g. LinShare).

                                           9
LinSign : Certification de sécurité


LinSign est réalisée selon sa cible de sécurité conformément au profil de protection
« Application de création de signature électronique » des Critères Communs.

Certification CSPN (Certification de Sécurité de Premier Niveau)
Dans un premier temps, LinSign sera évaluée et certifiée dans le cadre de la
CSPN (reconnue au niveau national, en France).
Cette certification est en cours (2011).
Contraintes sur SHA-256 et édition client autonome (Standalone).

Certification Critères Communs (futur)
Dans un second temps, LinSign sera évaluée et certifié dans le cadre des
Critères Communs, au niveau EAL3+ (reconnus au niveau international).
Ces critères ont été pris en compte dès le début de la réalisation de LinSign.
En revanche, cette certification elle-même fera l’objet d’un projet futur.




                                             10
LinSign : Licence libre


La licence libre de l’application LinSign


LINAGORA a opté pour la licence AGPL v3 :
           GNU Affero General Public License, version 3


Caractéristiques de la licence AGPL v3 :
● Elle est dérivée de la Licence publique générale GNU GPL,

● Elle couvre les interactions avec des produits propriétaires à travers un
  réseau comme Internet,
● La version 3 est compatible avec la version 3 de la GPL.




                                      11
LinSign : Caractéristiques fonctionnelles


LinSign est configurable via un système de gestion de politiques de signature
qui lui permet de :
– s’adapter à de nombreux formats de documents à signer et de signature,
– supporter de nombreux divers types de magasins de certificats,
– garantir l’invariance de la sémantique des documents à signer.
Gestion des politiques de signature :
– type de certificat X.509v3 (qualifié ou pas, usage de la clé, etc.) ;
– chaîne de certification : liste des AC acceptées ;
– politique de signature acceptée (identifiant OID) ;
– formats des éléments à signer (PDF, ODF Text, etc.) ;
– formats de la signature (PDF, XAdES, etc.) ;
– types de token (carte à puce, navigateurs web, etc.) ;
– types de signature (co-signature et contre-signature) [futur] ;
– paramètres techniques (algorithmes de signature et des condensés, etc.).
Invariance de la sémantique des documents :
– support du format PDF/A (ISO 19005), contrôle de l’invariance, etc.



                                              12
LinSign : Caractéristiques techniques (1/3)




                               13
LinSign : Caractéristiques techniques (2/3)


LinSign s’adapte à l’hétérogénéité des contextes applicatifs et des
environnements clients :
    ● Windows, Macintosh, GNU/Linux, Unix ;
    ● Navigateurs web : Firefox, Internet Explorer, Safari ;
    ● Java JEE (serveurs de servlets).

Utilisation de certificats X.509 v3 :
    ● Validation du certificat :
          ● AC de confiance, date de validité, usage de clé, etc.

Formats des documents à signer :
    ●   PDF et PDF/A,
    ●   OpenDocument Format Text,
    ●   Texte pur,
    ●   HTML,
    ●   XML,
    ●   Courriel.

                                        14
LinSign : Caractéristiques techniques (3/3)


Utilisation de différents formats de signature :
 PDF/A, ODF Text, XAdES 1.3.2, XML-DSig, CMS/PKCS #7, S/MIME ;
 Roadmap 2011 : PAdES, CAdES, S/MIME.

Utilise différents supports pour la signature :
  Les cartes à puce IAS ECC : Gemalto, Oberthur, Sagem ;
  Les tokens USB cryptographiques : Aladdin ;
  Les magasins des navigateurs web : Mozilla NSS (Firefox), Microsoft
   CryptoAPI (Internet Explorer), Mac OS Keychain (Safari) ;
  Fichiers PKCS #12 ;
  Fichiers Java KeyStore (JKS).

Algorithmes cryptographiques supportés :
  Algorithme asymétrique : RSA (PKCS #1), clés : 1024 et 2048 bits ;
  Fonctions de hachage : SHA-1, SHA-256.


                                  15
LinSign : Signature standard XAdES


Signature XML-DSig détachée
                                                <signature>
                                                <reference>           a.pdf
                                                <reference>

                                                </signature>
                                                                        zip

Signature au format XAdES ETSI TS 101 903 v1.3.2 (2006-03)

                              Signature XAdES           Propriétés XAdES signées :
  Signature XML-DSig                                    (SigningTime)
                                                        (SigningCertificate)
  Signed   Signa-      Key     Signed      Unsigned     (SignaturePolicyIdentifier)
   Info     ture       Info   properties   properties   (SignatureProductionPlace)?
                                                        (SignerRole)?




                                           16
LinSign : Environnement système et matériel


Machine virtuelle Java JRE/JDK 6
 Par défaut, Java JRE/JDK 6 ne supporte pas la signature XML SHA-256
 avec Microsoft Windows. Le JDK [SunMSCapi] n’implémente pas :
        – la signature au format brut ;
        – la signature pour le SHA-256.
 Sous GNU/Linux, le framework swing ne gère que l’environnement de
  bureau Gnome.
 → Pour compenser ces manques, des palliatifs ont été implémentés.
Interface standard PKCS #11
 Entièrement configurable : par exemple avec la carte cryptographique
  Oberthur ID-One IAS ECC (compatible avec la carte du citoyen européen et les
   standards de signature électronique. Cette carte est certifiée Critères Communs
   EAL4+ pour la signature électronique).
Navigateur web Firefox
 Accès au magasin sur tous les systèmes d’exploitation (Windows,
  GNU/Linux, Mac OS, etc.) via la librairie Mozilla NSS.


                                          17
Cinématique d’une signature électronique




                  18                       18
LinSign : Cinématique d’une signature électronique


Sept étapes pour signer des documents :
①   Acception des mentions légales ;

②   Choix de la politiques de signature ;

③   Sélection des fichiers à signer ;

④   Sélection du magasin de certificats ;

⑤   Sélection d’une clé de signature ;

⑥   Consentement à signer (« Lu et approuvé »), puis signature ;

⑦   Liste des fichiers signés.




                                        19
LinSign : Étape 0 – Splash screen


   Affichage du splash screen




                                20
LinSign : Étape 1 – Mentions légales


①   Acception des mentions légales




                                     21
LinSign : Étape 2 – Politiques de signature


②   Choix de la politiques de signature




                                     22
LinSign : Étape 3 – Fichiers à signer


③   Sélection des fichiers à signer




                                      23
LinSign : Étape 4 – Magasin de certificats


④   Sélection du magasin de certificats




                                     24
LinSign : Étape 5 – Clé de signature


⑤   Sélection d’une clé de signature




                                       25
LinSign : Étape 6 – Signature


⑥   Consentement à signer (« Lu et approuvé »), puis signature




                                    26
LinSign : Étape 7 – Les fichiers signés


⑦   Liste des fichiers signés




                                27
LinSign : Outils de vérification


● Outil de vérification de signature XAdES
    ● Cet outil fait partie de l’offre LinSign ;
    ● Permet de faire une vérification technique d’une signature électronique
      au format XAdES ;




                                         28
Merci de votre attention

                                              Contact :
                                LINAGORA – Siège social
                                 80, rue Roque de Fillol
                                        92800 PUTEAUX
                                                 FRANCE
                       Tél. : 0 810 251 251 (tarif local)
                              Fax : +33 (0)1 46 96 63 64
                          Courriel : info@linagora.com
                              Web : www.linagora.com


                       WWW.LINAGORA.COM

LinSign : la signature électronique en Open Source

  • 1.
    LinSign : lasignature électronique en open source David CARELLA Expert Sécurité PKI dcarella@linagora.com WWW.LINAGORA.COM
  • 2.
  • 3.
    Composition de l’offreSécurité (1/3) Offre LinPKI L’offre LinPKI – composée des offres EJBCA et LinRA – constitue l’offre de sécurité de Linagora. Par sa modularité et sa complétude, elle répond à la plupart des besoins en matière de confiance numérique en termes d’infrastructure de sécurité SI. Produit LinSign LinSign – application de signature électronique de documents – se décline en 3 éditions : LinSign Standalone, LinSign Portal, LinSign API. LinSign est en cours de certification CSPN auprès de l’ANSSI. Produit entièrement conçu et développé par LINGORA. Produit LinShare LinShare est une application de partage de fichiers sécurisé, qui comporte également un coffre-fort électronique. LinShare se distingue par sa simplicité d’utilisation et son extensibilité avec les plugins suivants : module de signature LinSign, plugin « Send & Share » pour Thunderbird et Outlook. Produit entièrement conçu et développé par LINGORA. 3
  • 4.
    Composition de l’offreSécurité (2/3) EJBCA – Infrastructure de gestion de clés (PKI) EJBCA est une infrastructure de gestion de clés (en anglais, PKI : Public Key Infrastructure) complète, interopérable et intégrable avec tout SI. EJBCA permet de gérer des autorités de certification (AC) via les principaux HSM (Hardware Security Modules) du marché. EJBCA peut également être combinée avec un système de gestion de cartes à puce – CMS : Card Management System –, pour constituer la solution idéale de production d’identités électroniques. LinRA – Autorité d’enregistrement LinRA fournit une autorité d’enregistrement web (en anglais, RA : Registration Authority) évoluée et simple d’utilisation qui rendra vos utilisateurs autonomes pour la gestion de leurs certificats numériques : génération, retrait, révocation, recouvrement, etc. 4
  • 5.
    Composition de l’offreSécurité (3/3) LinSecure – Coffre-fort électronique pour le jeu en ligne LinSecure est un coffre-fort électronique pour les applications de jeu en ligne. Cette application est conçue et réalisée par Linagora. LinSecure – conforme ARJEL (Autorité de régulation du jeu en ligne) – est cours de certification CSPN (Certification de sécurité de premier niveau) auprès de l’ANSSI (Agence nationale de sécurité des systèmes d’information). SignServer – Notarisation électronique SignServer est une application serveur de notarisation électronique qui permet de signer et horodater des documents électroniques. SignServer est le complément idéal à LinSign pour fournir une solution d’administration de la preuve électronique. 5
  • 6.
    LinPKI : Exemplede fonctionnalité Cinématique d’une signature client et serveur, avec horodatage LinPKI LinPKI LinPKI LinPKI Archivage Signature Validation Signature Horodatage des documents Un Utilisateur L’utilisateur signe Le service de Le serveur de Horodatage des dépose un le document avec validation vérifie le signature ajoute des signatures document son certificat via le certificat numérique éléments de signature : électronique composant de du client qui a signé le éléments de validation, signature de document horodatage, contre ou LinSign co-signature. 6 6
  • 7.
  • 8.
    LinSign : Présentation(1/2) L’application LinSign fournit un service de signature électronique de documents depuis le poste client. LinSign est conçu dans un esprit de généricité et de modularité vis-à-vis des applications. Elle peut être mise en œuvre de plusieurs façons regroupées en trois éditions. LinSign Standalone – Édition client autonome LinSign est utilisée comme un produit prêt à être utilisé sur le poste client. C’est une sorte de « boîte noire » existante sous plusieurs packagings, permettant plusieurs modes de déploiement : ① Installation hors connexion ② Déploiement par Java Web Start ③ Exécution comme applet, via un portail 8
  • 9.
    LinSign : Présentation(2/2) LinSign Portal – Édition portail LinSign est utilisée dans son portail web en mode distant et connecté, avec les navigateurs standards du marché. LinSign API – Édition librairie à intégrer La librairie LinSign API peut être intégrée dans toutes applications basées sur les frameworks web Tapestry, JSF, Seam et JSP. Ainsi, un projet applicatif métier peut s’approprier LinSign en l’intégrant, voire en l’adaptant à ses propres besoins dans le cadre du développement d’une l’application (e.g. LinShare). 9
  • 10.
    LinSign : Certificationde sécurité LinSign est réalisée selon sa cible de sécurité conformément au profil de protection « Application de création de signature électronique » des Critères Communs. Certification CSPN (Certification de Sécurité de Premier Niveau) Dans un premier temps, LinSign sera évaluée et certifiée dans le cadre de la CSPN (reconnue au niveau national, en France). Cette certification est en cours (2011). Contraintes sur SHA-256 et édition client autonome (Standalone). Certification Critères Communs (futur) Dans un second temps, LinSign sera évaluée et certifié dans le cadre des Critères Communs, au niveau EAL3+ (reconnus au niveau international). Ces critères ont été pris en compte dès le début de la réalisation de LinSign. En revanche, cette certification elle-même fera l’objet d’un projet futur. 10
  • 11.
    LinSign : Licencelibre La licence libre de l’application LinSign LINAGORA a opté pour la licence AGPL v3 : GNU Affero General Public License, version 3 Caractéristiques de la licence AGPL v3 : ● Elle est dérivée de la Licence publique générale GNU GPL, ● Elle couvre les interactions avec des produits propriétaires à travers un réseau comme Internet, ● La version 3 est compatible avec la version 3 de la GPL. 11
  • 12.
    LinSign : Caractéristiquesfonctionnelles LinSign est configurable via un système de gestion de politiques de signature qui lui permet de : – s’adapter à de nombreux formats de documents à signer et de signature, – supporter de nombreux divers types de magasins de certificats, – garantir l’invariance de la sémantique des documents à signer. Gestion des politiques de signature : – type de certificat X.509v3 (qualifié ou pas, usage de la clé, etc.) ; – chaîne de certification : liste des AC acceptées ; – politique de signature acceptée (identifiant OID) ; – formats des éléments à signer (PDF, ODF Text, etc.) ; – formats de la signature (PDF, XAdES, etc.) ; – types de token (carte à puce, navigateurs web, etc.) ; – types de signature (co-signature et contre-signature) [futur] ; – paramètres techniques (algorithmes de signature et des condensés, etc.). Invariance de la sémantique des documents : – support du format PDF/A (ISO 19005), contrôle de l’invariance, etc. 12
  • 13.
    LinSign : Caractéristiquestechniques (1/3) 13
  • 14.
    LinSign : Caractéristiquestechniques (2/3) LinSign s’adapte à l’hétérogénéité des contextes applicatifs et des environnements clients : ● Windows, Macintosh, GNU/Linux, Unix ; ● Navigateurs web : Firefox, Internet Explorer, Safari ; ● Java JEE (serveurs de servlets). Utilisation de certificats X.509 v3 : ● Validation du certificat : ● AC de confiance, date de validité, usage de clé, etc. Formats des documents à signer : ● PDF et PDF/A, ● OpenDocument Format Text, ● Texte pur, ● HTML, ● XML, ● Courriel. 14
  • 15.
    LinSign : Caractéristiquestechniques (3/3) Utilisation de différents formats de signature : PDF/A, ODF Text, XAdES 1.3.2, XML-DSig, CMS/PKCS #7, S/MIME ; Roadmap 2011 : PAdES, CAdES, S/MIME. Utilise différents supports pour la signature : Les cartes à puce IAS ECC : Gemalto, Oberthur, Sagem ; Les tokens USB cryptographiques : Aladdin ; Les magasins des navigateurs web : Mozilla NSS (Firefox), Microsoft CryptoAPI (Internet Explorer), Mac OS Keychain (Safari) ; Fichiers PKCS #12 ; Fichiers Java KeyStore (JKS). Algorithmes cryptographiques supportés : Algorithme asymétrique : RSA (PKCS #1), clés : 1024 et 2048 bits ; Fonctions de hachage : SHA-1, SHA-256. 15
  • 16.
    LinSign : Signaturestandard XAdES Signature XML-DSig détachée <signature> <reference> a.pdf <reference> </signature> zip Signature au format XAdES ETSI TS 101 903 v1.3.2 (2006-03) Signature XAdES Propriétés XAdES signées : Signature XML-DSig (SigningTime) (SigningCertificate) Signed Signa- Key Signed Unsigned (SignaturePolicyIdentifier) Info ture Info properties properties (SignatureProductionPlace)? (SignerRole)? 16
  • 17.
    LinSign : Environnementsystème et matériel Machine virtuelle Java JRE/JDK 6 Par défaut, Java JRE/JDK 6 ne supporte pas la signature XML SHA-256 avec Microsoft Windows. Le JDK [SunMSCapi] n’implémente pas : – la signature au format brut ; – la signature pour le SHA-256. Sous GNU/Linux, le framework swing ne gère que l’environnement de bureau Gnome. → Pour compenser ces manques, des palliatifs ont été implémentés. Interface standard PKCS #11 Entièrement configurable : par exemple avec la carte cryptographique Oberthur ID-One IAS ECC (compatible avec la carte du citoyen européen et les standards de signature électronique. Cette carte est certifiée Critères Communs EAL4+ pour la signature électronique). Navigateur web Firefox Accès au magasin sur tous les systèmes d’exploitation (Windows, GNU/Linux, Mac OS, etc.) via la librairie Mozilla NSS. 17
  • 18.
    Cinématique d’une signatureélectronique 18 18
  • 19.
    LinSign : Cinématiqued’une signature électronique Sept étapes pour signer des documents : ① Acception des mentions légales ; ② Choix de la politiques de signature ; ③ Sélection des fichiers à signer ; ④ Sélection du magasin de certificats ; ⑤ Sélection d’une clé de signature ; ⑥ Consentement à signer (« Lu et approuvé »), puis signature ; ⑦ Liste des fichiers signés. 19
  • 20.
    LinSign : Étape0 – Splash screen Affichage du splash screen 20
  • 21.
    LinSign : Étape1 – Mentions légales ① Acception des mentions légales 21
  • 22.
    LinSign : Étape2 – Politiques de signature ② Choix de la politiques de signature 22
  • 23.
    LinSign : Étape3 – Fichiers à signer ③ Sélection des fichiers à signer 23
  • 24.
    LinSign : Étape4 – Magasin de certificats ④ Sélection du magasin de certificats 24
  • 25.
    LinSign : Étape5 – Clé de signature ⑤ Sélection d’une clé de signature 25
  • 26.
    LinSign : Étape6 – Signature ⑥ Consentement à signer (« Lu et approuvé »), puis signature 26
  • 27.
    LinSign : Étape7 – Les fichiers signés ⑦ Liste des fichiers signés 27
  • 28.
    LinSign : Outilsde vérification ● Outil de vérification de signature XAdES ● Cet outil fait partie de l’offre LinSign ; ● Permet de faire une vérification technique d’une signature électronique au format XAdES ; 28
  • 29.
    Merci de votreattention Contact : LINAGORA – Siège social 80, rue Roque de Fillol 92800 PUTEAUX FRANCE Tél. : 0 810 251 251 (tarif local) Fax : +33 (0)1 46 96 63 64 Courriel : info@linagora.com Web : www.linagora.com WWW.LINAGORA.COM