← Toutes les réalisations

idFod / Eviden / ANTS / 2024

La cryptographie au service des titres

idFod : des services de signature, des certificats CVC et une administration React pour les passeports électroniques et les CNIe.

idFod / Administration & supervision

La cryptographie se pilote aussi.

Une interface React pour suivre les services, les certificats et les opérations de signature.

Captures de l’interface idFod · les indicateurs visibles illustrent les fonctions de supervision.
idFod / Administration & supervision
Interface d’administration idFod : certificats, utilisateurs, volumes de signatures et renouvellements.
Vue de supervision idFod en thème sombre : activité des services, certificats CVCA, DV et IS, et erreurs de renouvellement.

Échap pour fermer.

idFod / Cryptographie appliquée

Des CVC, maîtrisés dans le code.

ASN.1, courbes elliptiques, mécanismes de signature et droits d’accès : des extraits réels d’idFod montrent le travail de nos ingénieurs au plus près des certificats CVC.

Maîtriser les formats.

Conversion d’une clé publique CVC à courbe elliptique en DER, avec son identifiant de courbe et son point public.

CVCSignatureUtils.tsCode
export function cvcPublicKeyEcToDer(
    oid: string,
    publicPoint: Uint8Array,
): Uint8Array {
    const algorithmIdentifier = genASN1Sequence([
        genASN1ObjectIdentifier('1.2.840.10045.2.1'), //ecPublicKey
        genASN1ObjectIdentifier(oid), //curve oid
    ]);

    const publicKey = new asn1.BitString({ valueHex: publicPoint });
    return Buffer.from(
        genASN1Sequence([algorithmIdentifier, publicKey]).toBER(false),
    );
}

Piloter la signature.

Choix du mécanisme PKCS#11 à partir de l’OID, appel au service de signature et assemblage de la demande CVC.

CVCertificateRequest.tsCode
const bsiOID = publicKey.getOID();
const tbsData = Buffer.from(requestBody.encode().toBER(false));
const SignatureRequest = {
    mechanismPkcs11Code: getSignatureAlgorithm(bsiOID),
    data: Buffer.from(tbsData).toString('base64'),
    parameters: getSignatureParameters(bsiOID),
};
const signature = await sign(keyID, SignatureRequest);

// Assemble the request body and the signature
return new CVCertificateRequest(
    requestBody,
    Buffer.from(signature, 'base64'),
);

Interpréter les droits.

Lecture du droit DG3 dans le certificat. Ce contrôle s’inscrit dans la vérification complète de la chaîne et des autorisations.

CVCertificate.ts / canReadDG3()Code
public canReadDG3(): boolean {
    const role =
        this.certificateBody.getCertificateHolderAuthorizationTemplate()
            .discretionaryData;
    if (role[0] === undefined) {
        throw new Error(
            'Invalid CVCertificate, no discretionary data in authorization template',
        );
    }
    const roleBinary = role[0].toString(2).padStart(8, '0');
    // the last bit of the discretionary data is the read right for DG3, xxxxxxx1
    return roleBinary.endsWith('1');
}

Autoriser l’accès aux données biométriques

Pour Eviden et l’Agence Nationale des Titres Sécurisés (ANTS), Stelau a développé idFod, une solution de signature destinée aux échanges avec les passeports électroniques, les cartes nationales d’identité électroniques et les titres de séjour.

Le titre émet un challenge. La signature de ce challenge participe à l’authentification du terminal, qui doit prouver qu’il est autorisé à accéder aux données sensibles. Dans ce projet, l’enjeu est la lecture du Data Group 3 (DG3), contenant les images des empreintes digitales.

Une maîtrise de la chaîne CVC, de bout en bout

Les Card Verifiable Certificates (CVC) sont au cœur de cette réalisation. Nos ingénieurs travaillent sur leur encodage et leur décodage, les clés publiques EC et RSA, la création et l’authentification des demandes de certificats, la vérification des signatures et l’interprétation des droits d’accès.

Cette maîtrise relie la chaîne CVCA → DV → IS aux contraintes concrètes du projet : formats exacts, paramètres cryptographiques, interopérabilité et gestion du cycle de vie des certificats.

Deux fonctions SOAP, un contexte opérationnel

Les webservices SOAP permettent d’obtenir la chaîne de certificats et de demander la signature du challenge. L’intégration tient compte des dispositifs de remise en mairie, préfecture et consulat, ainsi que des équipements de contrôle aéroportuaire.

La solution se connecte aux PKI émettrices de CVC et aux HSM utilisés pour générer les paires de clés asymétriques et effectuer les signatures. La protection des communications complète cette architecture.

Rendre l’exploitation compréhensible

L’interface React permet de gérer les certificats, les clés et les utilisateurs, consulter les journaux et suivre l’état des services. Les captures montrent notamment les familles de certificats CVCA, DV et IS, l’activité des opérations de signature et le suivi des renouvellements.

Les statuts et les diagnostics doivent être explicites. Un renouvellement refusé doit pouvoir être identifié et compris, pour permettre à l’opérateur de poursuivre ses vérifications.

Une demande de renouvellement refusée est rendue visible avec sa cause. Capture de l’interface idFod.
idFod / Diagnostic de renouvellement
Alerte idFod : le certificat du système d’inspection n’a pas été émis, car la demande contient des paramètres invalides.

Échap pour fermer.

De la spécification à une solution intégrée

Les services de gestion des challenges, les connexions PKI et HSM et l’interface d’administration composent une solution intégrée au contexte opérationnel de l’ANTS. Le travail associe interopérabilité, gestion des certificats et maîtrise des opérations cryptographiques.

Les mécanismes de sécurité s’inscrivent dans les spécifications des titres de voyage : ICAO Doc 9303, partie 11, et BSI TR-03110, notamment pour l’authentification du terminal et les certificats CVC.

Trouvons ce qui vous intéresse.

Expertises, réalisations et articles. Échap pour fermer.