Extensions RPPS dans les certificats X.509 des CPS. Addendum au document «Les certificats X.509 et les CRLs des cartes CPS2ter du Système CPS»

Documents pareils
IGC-CPS2bis. Gabarits des certificats X.509. des Classes 4, 5 et mars Version mars 2012 Document ASIP-Santé Page 1 / 34

Plateforme PAYZEN. Définition de Web-services

Définition des Webservices Ordre de paiement par . Version 1.0

Une introduction à SSL

Politique de Certification Pour les Certificats de classe 0 et 4 émis par l autorité de certification Notaires PUBLIÉ

TrustedBird, un client de messagerie de confiance

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

as Architecture des Systèmes d Information

Plan du cours. Historique du langage Nouveautés de Java 7

POLITIQUE DE CERTIFICATION DE L'AC KEYNECTIS SSL RGS * (authentification serveur) Date : 12/08/2011

Création d installateurs pour Windows avec InnoSetup

Utilisation des certificats X.509v3

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

POLITIQUE DE CERTIFICATION. Autorité de certification «CERTEUROPE ADVANCED CA V3»

Direction des Systèmes d'information

Problème physique. CH5 Administration centralisée

UE C avancé cours 1: introduction et révisions

Programmer en JAVA. par Tama

LEGALBOX SA. - Politique de Certification -

Cadre de Référence de la Sécurité des Systèmes d Information

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Acronymes et abréviations. Acronymes / Abbréviations. Signification

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Architectures PKI. Sébastien VARRETTE

ScTools Outil de personnalisation de carte

Approche Contract First

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Clear2Pay Belgium SA Solution B-web V4 Procédure d installation. Solution B-web V4. Procédure d installation. Clear2Pay Belgium SA Page 1 de 18

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

TheGreenBow IPsec VPN Client. Guide de Déploiement Options PKI. Site web: Contact:

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Manuel d'installation

Paginer les données côté serveur, mettre en cache côté client

Java Licence Professionnelle CISII,

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Le Dossier Médical Personnel et la sécurité

Alfstore workflow framework Spécification technique

Programmation en Java IUT GEII (MC-II1) 1

POLITIQUE DE CERTIFICATION DE L AC : Crédit Agricole Cards and Payments

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Guide de démarrage rapide

PUBLIC KEY INFRASTRUCTURE. Rappels PKI PKI des Impôts PKI de la Carte de Professionnel de Santé

Introduction à la programmation concurrente

POLITIQUE DE CERTIFICATION DE L AC : Crédit Agricole Cards and Payments

SERVICES ELECTRONIQUES DE CONFIANCE. Service de Cachet Electronique de La Poste

PHP 5. La base de données MySql. A. Belaïd 1

Module http MMS AllMySMS.com Manuel d intégration

Premiers Pas en Programmation Objet : les Classes et les Objets

TP : Gestion d une image au format PGM

Présentation du langage et premières fonctions

Sécurité des applications web. Daniel Boteanu

UE Programmation Impérative Licence 2ème Année

Banque Nationale de Belgique Certificate Practice Statement For External Counterparties 1

Programme Compte bancaire (code)

Espace pro. Installation des composants avec Firefox. Pour. Windows XP Vista en 32 et 64 bits Windows 7 en 32 et 64 bits

Automatisation de l administration système

Protocole industriels de sécurité. S. Natkin Décembre 2000

Analyse de sécurité de logiciels système par typage statique

I4 : Bases de Données

Network WPA. Projecteur portable NEC NP905/NP901W Guide de configuration. Security WPA. Méthode d authentification supportée

BASES DE DONNEES TP POSTGRESQL

Référentiel d authentification des acteurs de santé

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Tout d abord les pré-requis : Au menu un certain nombre de KB

Fonctionnement des PKI

Network Identity Manager mit SN-Gina Outlook Web Access

Fonctionnement des PKI Architecture PKI

Introduction à l algorithmique et à la programmation M1102 CM n 3

Le prototype de la fonction main()

Politique de Certification Autorité de Certification Signature Gamme «Signature simple»

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc.

Rappels Entrées -Sorties

Autorité de Certification OTU

Gestion du projet pour qu'il soit pérenne et collaboratif

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Structure fonctionnelle d un SGBD

Chapitre 10. Les interfaces Comparable et Comparator 1

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Sélection du contrôleur

Rappels réseaux TCP/IP

Certificats OpenTrust SSL RGS et ETSI

Notion de base de données

1.6- Génération de nombres aléatoires

Gestion des identités Christian-Pierre Belin

Guide de déploiement d'un mécanisme De SmartCardLogon par carte CPS Sur un réseau Microsoft

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

SYSTÈME DE GESTION DE FICHIERS

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Microsoft Hosted Exchange 2010 DOCUMENT D EXPLOITATION

Spécification externe : BIOSERVEUR Protocole de communication sécurisé Medxfer

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51


PRO CED U RE D I N STALLATI O N

Serveur FTP. 20 décembre. Windows Server 2008R2

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Transcription:

Addendum au document «Les certificats X.509 et les CRLs des cartes CPS2ter du Système CPS» Statut : Note validée Date mise à jour : 7 novembre 2007 Référence : ASIP_ExtensionX.509_note V2.doc Documents liés : ASIP_IdentifiantRPPS_note_v9.doc Les certificats X.509 et les CRLs des cartes CPS2ter du Système CPS Auteur(s) * : ASIP/PSCC : Service Poste & Carte Correcteur(s) * : ASIP/PRAS. Valideur(s) * : N/A (*) Nom et fonction Diffusion (libre, restreinte, confidentielle) : LIBRE Liste de diffusion : - Rendu public sur le site éditeurs/cps - Editeurs & Promoteurs - ASIP Agence des Systèmes d Information Partagés de Santé

Evolution des extensions CPS pour le RPPS Introduction sur le projet RPPS Le projet RPPS (Répertoire Partagé des Professionnels de Santé) est un projet national placé sou l égide de l Etat, dont la mise en œuvre est confiée à l ASIP SANTÉ, avec la participation du Ministère de la Santé, du Service de Santé des Armées (SSA), des Ordres professionnels et de la CNAMTS. Jusqu à la mise en fonctionnement du RPPS, les professionnels de santé (PS) continueront à être identifiés par un n ADELI attribué par les DDASS 1. A partir de la mise en fonctionnement du RPPS, tout nouvel inscrit à l Ordre sera identifié par un n RPPS. Les professionnels déjà en exercice se verront également attribuer un numéro RPPS qui leur sera communiqué par les Ordres. Impacts du projet RPPS sur le système CPS La diffusion de l identifiant RPPS aura pour corollaire la diffusion d une table de correspondance entre le dernier numéro ADELI du professionnel et le numéro RPPS qui lui sera affecté et mise à disposition par l ASIP SANTÉ. Pour chaque profession qui s inscrit dans le programme de ce répertoire, les nouveaux inscrits se verront dotés d une carte CPS porteuse de l identifiant RPPS. Par ailleurs, les cartes portant l identifiant ADELI seront renouvelées à échéance ou de façon anticipée, par une carte portant l identifiant RPPS 2. Pour assurer la correspondance entre l ancienne identification ADELI et RPPS, une extension de données dans le certificat permet d y intégrer le dernier identifiant ADELI. La suite de ce document décrit les extensions du certificat CPS et détaille au travers d exemples comment effectuer la relation entre les deux certificats. Le schéma de l annuaire CPS évolue également pour réaliser la correspondance à partir de la fiche personne de l annuaire. Des recherches LDAP sur l ancien ADELI seront alors possibles et des exemples de requêtes sont proposés dans un document ad-hoc. 1 Direction Départementale des Affaires Sanitaires et Sociales 2 Le document Gipcps_IdentifiantRPPS cité en introduction décrit dans le détail l identification RPPS et la structure des données correspondantes. Référence : ASIP_ExtensionX.509_note V2.doc Page 2/9

Les extensions des certificats CPS L ASIP Santé est l autorité de certification, reconnue dans le Secteur Santé, de certification des clés publiques d authentification, de signature et de confidentialité. Les certificats qu il délivre sont conformes à la norme X.509-v3. Un certificat X.509-v3 contient un numéro unique, des données d identification de son porteur (subject) et de son émetteur (issuer), la clé publique, et un ensemble variable d informations complémentaires placées dans des extensions. Il existe des extensions «standard», au sens où elles sont reconnues par l ensemble des produits exploitant les certificats X.509. Mais un émetteur de certificat a la possibilité d ajouter des extensions privées qui ne seront évidement reconnues et traitées que par des applications spécialisées. Ce document décrit les extensions des certificats CPS des certificats X.509 v3 du système CPS. Le lecteur y trouvera les 2 extensions (gipoldidnatps et gipspecialiterpps) liées à la mise en œuvre du RPPS. Format général d un certificat X.509 Un certificat X.509 est un constitué d une suite continue d informations présentées suivant un schéma ASN.1 de structure TLV (Tag, Length, Value), une Value pouvant elle-même contenir d autres TLV : Certificate ::= SEQUENCE { TbsCertificate TBSCertificate, SignatureAlgorithm AlgorithmIdentifier, SignatureValue BIT STRING } tbscertificate ::= SEQUENCE { version [0] Version (v3), serialnumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectpublickeyinfo SubjectPublicKeyInfo, extensions [3] Extensions } Référence : ASIP_ExtensionX.509_note V2.doc Page 3/9

Format général d une extension Les extensions sont regroupées (TAG [3] = 0xA3) et chacune présente : un identifiant de l extension (OID = Object IDentifier) permettant de la reconnaître ; optionnellement un indicateur de criticité de cette extension ; la valeur effective de cette extension. Extensions ::= SEQUENCE OF Extension Extension ::= SEQUENCE { extnid OBJECT IDENTIFIER, critical BOOLEAN, (default = FALSE) extnvalue OCTET STRING } Les identifiants d objet (OID) des extensions privées CPS Ces OID sont organisés au niveau international sous la forme d un arbre. Chaque pays ou organisation (telle que la France ou l ISO) se voit attribuer une branche. Un identifiant est attribué définitivement et peut identifier n importe quel type d objet. Le GIP-CPS s est fait attribuer par l AFNOR l identifiant 1.2.250.1.71 (en hexadécimal : 2A 81 7A 01 47) et peut donc affecter des identifiants sous sa branche aux objets de son choix. Object de l Extension Valeur de l OID (en hexadécimal) gipcardid 2A 81 7A 01 47 01 02 03 gipcardcategory 2A 81 7A 01 47 01 02 05 gipcardtype 2A 81 7A 01 47 01 02 02 gipprofessioncode 2A 81 7A 01 47 01 02 07 gipfutureprofessioncode 2A 81 7A 01 47 01 02 08 gipoldidnatps (*) 2A 81 7A 01 47 04 02 03 gipspecialiterpps (*) 2A 81 7A 01 47 04 02 05 (*) ces 2 extensions sont liées au RPPS Référence : ASIP_ExtensionX.509_note V2.doc Page 4/9

Extensions privées spécifiques RPPS utilisées dans les Certificats X.509 du système CPS Ces extensions sont optionnelles et il n y a pas d extension avec la valeur nulle. Ces extensions sont non critiques par défaut. gipoldidnatps (optionnelle) Cette extension est présente uniquement lorsque l attribut CN= «id-nat-ps» du DN subject est renseigné avec une identité RPPS et qu il existe un format antérieur «id-nat-ps» de l identifiant du porteur. GipOldIDNatPS ::= PrintableString Valeurs définies dans la table G08 de DICO-FR.GIP 1er caractère : type d identifiant caractères suivants : valeur gipspecialiterpps (optionnelle) Cette extension est présente uniquement si le porteur PS arbore au moins une spécialité RPPS, et elle contient l ensemble de ces spécialités RPPS. gipspecialiterpps ::= SEQUENCE SIZE (1.MAX) OF SpecialiteRPPS SpecialiteRPPS ::= UTF8String Exemples de mise en œuvre <To Do David D.> Règles de gestion de référencement des qualifications de spécialités médicales <To Do Serge R. et WI> Quelles professions Quelles règles de gestion Ordre des qualifications Autres extensions privées utilisées dans les Certificats X.509 du Système CPS Certaines de ces extensions sont optionnelles et il n y a pas d extension avec la valeur nulle. Ces extensions sont non critiques par défaut. gipcardid Cette extension, toujours présente, contient l'identification de l'émetteur de la carte et le numéro de série de la carte. Référence : ASIP_ExtensionX.509_note V2.doc Page 5/9

GipCardID ::= PrintableString Format : "8025000001/9999999999" gipcardcategory Cette extension, toujours présente, contient la catégorie de la carte (Carte de Professionnel de Santé, Carte Patient-Assuré, Module de Sécurité). GipCardCategory ::= OctetString Valeurs définies dans la table G01 de DICO-FR.GIP '00' : Carte de la famille CPS '80' : Carte de TEST de la famille CPS gipcardtype Cette extension, concernant uniquement des certificats liés aux cartes de la famille CPS, contient le type de la carte. GipCardType ::= Integer Valeurs définies dans la table G02 de DICO-FR.GIP '00' : CPS '01' : CPF '02' : CDE ou CPE '03' : CPA de responsable ou CPA gipprofessioncode (optionnelle) Cette extension, concernant uniquement des certificats liés aux cartes de type CPS, contient le code de profession du Professionnel de Santé. Valeurs définies dans la table G15 de DICO-FR.GIP GipProfessionCode ::= Integer gipfutureprofessioncode (optionnelle) Cette extension, concernant uniquement des certificats liés aux cartes de type CPF, contient le code de profession du Professionnel de Santé en formation. Valeurs définies dans la table G16 de DICO-FR.GIP GipFutureProfessionCode ::= Integer Référence : ASIP_ExtensionX.509_note V2.doc Page 6/9

Exemples pratiques L exploitation d un certificat X.509 nécessite une connaissance préalable (hors l objet de ce document) des accès vers un annuaire LDAP, de la technologie PKCS#11, de la structure ASN1 des certificats X.509 et de la programmation d une machine ASN1. Recherche d un certificat X.509 Les certificats X.509 peuvent être récupérés depuis l annuaire LDAP CPS et/ou dans la carte CPS pour ses certificats d authentification et de signature (utilisation de PKCS#11). Format générique en LDAP ldap://adresse/dn?attributs?etendu?filtre Vers l annuaire du CPS ldap://annuaire.gip-cps.fr/cn=gip-cps Accès (langage C) par PKCS#11 dans la carte : // Définition variables globales #define ASCII_KEY_ID_SIGN "01000000" #define ASCII_KEY_ID_AUTH "04000000" #define LG_MAX_CERTIFICAT 5000 // Etapes préalables: // 1) Chargement de la DLL PKCS#11 cps_pkcs11_w32.dll [LoadLibrary] // 2) Recherche de la fonction C_GetFunctionList [GetProcAddress] // 3) Récupération du pointeur de fonctions PKCS#11 [C_GetFunctionList] // 4) Initialisation du module PKCS#11 [C_Initialize] // 5) Recherche des slots disponibles [C_GetSlotList] // 6) Ouverture de session sur l'un des slots disponibles [C_OpenSession] // 7) Login sur cette session [C_Login] [...] // Etape de lecture et traitement des certificats (extrait): CK_OBJECT_CLASS classeobjet = CKO_CERTIFICATE; CK_OBJECT_HANDLE infos_handle[2]; CK_ULONG maxobject = 2; CK_BYTE keyid[128]; CK_BYTE certserialnumber[128]; CK_BYTE certvalue[lg_max_certificat]; int i; // Template qui défini la classe d object que l on souhaite récupérer // (ici: CKO_CERTIFICATE) CK_ATTRIBUTE infos_template[] = { {CKA_CLASS, &classeobjet, sizeof(classeobjet)} }; Référence : ASIP_ExtensionX.509_note V2.doc Page 7/9

// Template qui contiendra les valeurs de retour sur l objet recherché CK_ATTRIBUTE templateattr [] = { {CKA_ID, keyid, sizeof(keyid)}, {CKA_SERIAL_NUMBER, certserialnumber, sizeof(certserialnumber)}, {CKA_VALUE, certvalue, sizeof(certvalue)} }; // Recherche des certificats: // Initialiser la recherche à partir du template rv = (*pfunctionlist->c_findobjectsinit)(hsession, infos_template, 1); if (rv!= CKR_OK) return rv; // Récupérer un handle sur les objets trouvés rv = (*pfunctionlist->c_findobjects)(hsession, infos_handle, maxobject, &maxobject); if (rv!= CKR_OK) return rv; // Finaliser la recherche rv = (*pfunctionlist->c_findobjectsfinal)(hsession); if (rv!= CKR_OK) return rv; // Le nombre de certificats trouvés (maxobject) est de 2 pour une carte CPS printf("ok: %d certificats trouves\n", maxobject); // Traitement des certificats trouvés for (i=0; (unsigned) i < maxobject; i++) { // récupération des infos sur le certificat courant rv = (*pfunctionlist->c_getattributevalue)(hsession, infos_handle[i], templateattr, 3); if (rv!= CKR_OK) return rv; // traitement de ce certificat, avec les éléments suivants: // - templateattr[0] contient l'identifiant de la clé du certificat (keyid), // correspondant à l'une des 2 variables globales ASCII_KEY_ID_SIGN // ou ASCII_KEY_ID_AUTH définies ci-dessus // - templateattr[1] contient le numéro de série du certificat (certserialnumber) // - templateattr[2] contient la valeur binaire du certificat (certvalue) [...] } Référence : ASIP_ExtensionX.509_note V2.doc Page 8/9

Extraction d une extension d un certificats X.509 Un certificat peut être exploité par des Boîte à outils du type Open SSL, DumpASN1, SSLDump Exemples : openssl ans1parse -in <MonCertificat.cer> dumpasn1 [-acdefhlprstuxz] <MonCertificat.cer> Référence : ASIP_ExtensionX.509_note V2.doc Page 9/9