S’abonner

Créer un filtre pour un certificat particulier

Dans la sélection des certificats proposée dans les applications, il peut être intéressant de limiter l’affichage à certains types, ne prendre en compte que ceux en cours de validité ou bien de se focaliser sur un ou des certificats bien précis. Cela nécessite l’emploi d’un filtre, dont la structure est détaillée dans le fichier LPCertFilter2.0.xsd fournit avec certaines de nos applications.

Prenons par exemple le cas d’un filtrage sur un certificat bien déterminé. Nous pouvons filtrer par rapport à l’empreinte du certificat (SHA1) afin de ne permettre que l’affichage de celui-ci s’il existe dans l’environnement ou l’application est utilisée.

 

1 - Récupération de l'empreinte

Cette information est disponible selon l’OS par des options différentes

 

A – Windows

Dans les Options Internet :

2018-08-14_11h38_27.png

Sélectionner l’onglet « Contenu » et cliquer sur le bouton « Certificats »

2018-08-14_11h38_14.png

Sélectionner le certificat voulu et cliquer sur le bouton « Affichage »

2018-08-14_11h35_56.png

Dans l’onglet « Détails », retrouver le champ « Empreinte numérique ». Il est ensuite possible de copier la valeur indiquée. Attention cependant à ne prendre que les caractères visibles, dans le cas contraire vous pourriez reprendre des caractères spéciaux non affichables, et qui seront pris en compte par le filtrage. Pour plus de sûreté, il est possible de vérifier la valeur copiée par l’intermédiaire d’un outils tel que CR-Hexact.

 

B – MacOS

Ouvrir le Trousseau d’accès (KeyChain)

Capture_d__cran_2018-08-14___14.27.06.png

Double-cliquer sur le certificat concerné ; une fenêtre de détail s’ouvre

Capture_d__cran_2018-08-14___14.27.44.png

A la fin de cette fenêtre, dans la partie « Empreintes », nous retrouvons le SHA1 du certificat, que l’on peut relever.

 

2 – Création du filtre

Le filtre est composé d’une partie regroupant les conditions (CertFilterConditions), ou l’on définit la ou les conditions devant prévaloir (empreintes, période de validité, émetteurs…), d’une partie spécifiant l’agencement de ces conditions (Expressions) ou l’on indique la règle de filtrage sous forme d’expression booléenne, et d’une partie détaillant le nommage (MessagesBundles). Le filtre est le suivant :

<?xml version="1.0" encoding="UTF-8"?>
<filter:CertFilters Version="2.0" xmlns:filter="http://www.lex-persona.com/schemas/LPCertFilter/v2.0">
 
    <filter:CertFilterConditions>
        <filter:CertFilterCondition Id="condition_sha1" Description="condition.condition_sha1" ApplyOn="EndCertificate">
            <filter:Digest DigestAlgName="SHA1" DigestValue="ef886c7e86773872a01231c150220c4212d7f623"/>
        </filter:CertFilterCondition>
    </filter:CertFilterConditions>
    <filter:CustomTargets/>
 
    <filter:Expressions>
        <filter:Expression Id="filter" Description="expression.filter"><![CDATA[condition_sha1]]></filter:Expression>
    </filter:Expressions>
 
    <filter:MessagesBundles>
        <filter:Messages Language="fr">
            <filter:Message Key="expression.filter">Filtre sur un certificat</filter:Message>
        </filter:Messages>
        <filter:Messages Language="">
            <filter:Message Key="expression.filter">Filter on a certificate with</filter:Message>
        </filter:Messages>
    </filter:MessagesBundles>
 
</filter:CertFilters>

Si l’on souhaite ajouter une condition par exemple sur le fait que le certificat doit permettre de signer, il suffit d’ajouter dans <filter:CertFilterConditions> la condition suivante :

    <filter:CertFilterCondition Id="condition_usage_signature">
            <filter:KeyUsages>
                   <filter:NonRepudiation Presence="PRESENT"/>
            </filter:KeyUsages>
     </filter:CertFilterCondition>

Il convient ensuite d’ajuster l’expression dans <filter:Expressions> qui devient :

<filter:Expression Id="filter" Description="expression.filter"><![CDATA[condition_sha1 && condition_usage_signature]]></filter:Expression>

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0
Vous avez d’autres questions ? Envoyer une demande

0 Commentaires

Cet article n'accepte pas de commentaires.