<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
	<title><![CDATA[Signet Loupe: Découverte de la Nitrokey Pro]]></title>
	<link>https://ememiom.fr/iom/blog/view/619/decouverte-de-la-nitrokey%C2%A0pro</link>
	<atom:link href="https://ememiom.fr/iom/blog/view/619/decouverte-de-la-nitrokey%C2%A0pro" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://ememiom.fr/iom/blog/view/619/decouverte-de-la-nitrokey%C2%A0pro</guid>
	<pubDate>Sun, 30 May 2021 13:25:32 +0000</pubDate>
	<link>https://ememiom.fr/iom/blog/view/619/decouverte-de-la-nitrokey%C2%A0pro</link>
	<title><![CDATA[Découverte de la Nitrokey Pro]]></title>
	<description><![CDATA[<p><a href="https://www.nitrokey.com">La Nitrokey</a> Pro est une clé USB permettant de stocker des clefs PGP de façon sécurisée, un certificat X.509, de gérer des mots de passe de type OTP, HOTP et contient un gestionnaire de mots de passe. Contrairement aux Yubikey, elle est open source (firmware et logiciels) et open hardware; tout est disponible sur un dépôt <a href="https://github.com/nitrokey">github</a>.</p><p></p><p>Dans le cadre de ma reprise d’études en Licence Pro ADSILL, j’ai décidé de présenter ce type de clef, tester les fonctionnalités avec GnuPG et l’identification par <a href="https://fr.wikipedia.org/wiki/X.509">certificats X.509</a>.</p><p>Je vais tenter ici de faire le tour du propriétaire, son installation sous Archlinux et les premiers paramétrages pour la gestion de clefs PGP.</p>
<p>Achat, réception et déballage</p>
<p>J’ai commandé deux clefs (version Pro) directement sur le site officiel. La version deux de la clé, prenant en charge les <a href="https://fr.wikipedia.org/wiki/Cryptographie_sur_les_courbes_elliptiques">courbes elliptiques</a> n’est pas disponible au moment de ma commande, j’ai contacté l’équipe via leur compte Mastodon et ils m’ont proposé la V1, suffisante pour mes besoins.</p><p>Les clefs sont arrivées en mois de cinq jours bien emballées dans une enveloppe protectrice.</p>
<p>Installation de l’application “Officielle”</p>
<p>Branchement de la clef, elle apparaît directement :</p>
<p>lsusb<br />[...]<br />Bus 003 Device 004: ID 20a0:4108 Clay Logic <br />Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />[...]</p>
<p>Nitrokey fournit une <a href="https://github.com/Nitrokey/nitrokey-app">application open</a> source écrite en C++ / QT pour gérer tout ce qui touche aux mots de passe TOTP, HOTP et ceux enregistrés dans la partie gestionnaire de mots de passes.</p><p>Il suffit de l’installer avec votre gestionnaire de paquets préféré, chez moi avec Archinux :</p>
<p>sudo trizen -S nitrokey-app<br />résolution des dépendances…<br />recherche des conflits entre paquets…<br />Paquets (3) hidapi-0.8.0rc1-3  libnitrokey-3.4.1-2  nitrokey-app-1.3.2-3<br />Taille totale installée :  2,82 MiB<br />:: Procéder à l’installation ? [O/n] <br />[...]</p>
<p>Puis de la lancer…</p><p></p><p>Dans le menu Menu &gt; Configurer &gt; Changer le PIN utilisateur et Changer le PIN administrateur il est possible de changer les codes mis par défaut. Il sera aussi possible de le faire avec gpg.</p>
<p>Utiliser le stockage des clefs PGP.</p>
<p>Nous allons nous concentrer sur la partie smartcard et plus précisément le paramétrage pour l’utiliser avec des clefs PGP.</p>
<p>Choix Installation.</p>
<p>Il y a deux façon de faire en fonctions des besoins :</p>
<p>installer libusb-compat pour rendre la smartcard disponible en espace utilisateur et laisser GnuPG l’utiliser en exclusivité<br />installer pcsclite et ccid et permettre l’utilisation d’OpenSC et GnuPG (pksc11 et GnuPG)</p>
<p>Je vais ici détailler la seconde méthode.</p>
<p>Installation des paquets nécessaires et configuration</p>
<p>Je vais suivre la documentation disponible sur le <a href="https://wiki.archlinux.org/index.php/GnuPG#Smartcards">wiki d’Archliux</a>.</p>
<p>trizen -S opensc pcsclite ccid<br />résolution des dépendances…<br />recherche des conflits entre paquets…</p>

<p>Paquets (3) ccid-1.4.30-2  opensc-0.19.0-2  pcsclite-1.8.24-1</p>

<p>Taille totale du téléchargement :  1,20 MiB<br />Taille totale installée :        4,26 MiB</p>

<p>:: Procéder à l’installation ? [O/n] o<br />[...]</p>
<p>Il faut alors creer le fichier .gnupg/scdaemon.conf pour spécifier à gnupg d’utiliser <a href="https://pcsclite.apdu.fr/">pcsclite</a> pour l’accès à la smartcard avec le contenu suivant :</p>
<p>pcsc-driver /usr/lib/libpcsclite.so<br />card-timeout 5<br />disable-ccid</p>
<p>Il faut ensuite activer le service pcscd</p>
<p># systemctl start pcscd.service</p>
<p>Il suffit de remplacer start par enable pour que son activation soit permanente.</p>
<p>Tester…</p>
<p>Après avoir insérer (ou réinsérer) la Nitrokey, on va tester le fonctionnement avec OpenSC et GnuPG, commençons par de dernier :</p>
<p>gpg --card-status<br />Reader ...........: Nitrokey Nitrokey Pro (0000000000000000XXXXXXXX) 00 00<br />Application ID ...: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br />Version ..........: 2.1<br />Manufacturer .....: ZeitControl<br />Serial number ....: XXXXXXXX<br />Name of cardholder: [non positionné]<br />Language prefs ...: de<br />Sex ..............: non indiqué<br />URL of public key : [non positionné]<br />Login data .......: [non positionné]<br />Signature PIN ....: forcé<br />Key attributes ...: rsa2048 rsa2048 rsa2048<br />Max. PIN lengths .: 32 32 32<br />PIN retry counter : 3 0 3<br />Signature counter : 0<br />Signature key ....: [none]<br />Encryption key....: [none]<br />Authentication key: [none]<br />General key info..: [none]</p>
<p>Passons maintenant à OpenSC :</p>
<p>opensc-tool -n<br />Using reader with a card: Nitrokey Nitrokey Pro (0000000000000000XXXXXX) 00 00                                                                           <br />Failed to connect to card: Reader in use by another application</p>
<p>Oups, ça ne s’est pas vraiment bien passé et il y a une raison : GnuPG accède à la smartcard de façon exclusive pour des raisons de sécurité, ça en cause <a href="https://lists.gnupg.org/pipermail/gnupg-devel/2015-September/030247.html">ici</a>. Il y a deux possibilités : installer une version <a href="https://aur.archlinux.org/packages/gnupg-scdaemon-shared-access/">patchée</a> de scdaemon pour l’empêcher de verrouiller l’accès à la smartcard (pas tip-top question sécurité) ou couper le sifflet à scdaemon pour laisser OpenSC y accéder. Nous allons utiliser la seconde méthode :</p>
<p>gpgconf --kill scdaemon</p>
<p>Et là miracle tout fonctionne :</p>
<p>opensc-tool -n<br />Using reader with a card: Nitrokey Nitrokey Pro (0000000000000000XXXXXX) 00 00<br />OpenPGP card v2.1 (0005 00005C17)</p>
<p>Et voilà! Ce n’est pas toujours très pratique mais fonctionnel.</p>
<p>Paramétrer la carte avec GnuPG</p>
<p>Paramétrer la carte se fait avec l’argument --edit-card :</p>
<p>gpg --edit-card<br />Reader ...........: Nitrokey Nitrokey Pro [...]<br />[...]</p>

<p>gpg/carte&gt;</p>
<p>À partir de cette invite de commande, il est possible de rentrer des commandes pour paramétrer la clef, la commande help affiche l’aide. Voici une liste de commande utiles :</p>
<p>admin : activer / désactiver les commandes administrateur<br />passwd : changer les codes PIN, que se soit administrateur ou utilisateur<br />name, login, sex, lang : changer les informations du détenteur de la carte.<br />url : adresse où est stockée la clef publique<br />generate : générer de nouvelles clefs.<br />Changer les codes PIN par défaut</p>
<p>Garder les mots de passes et codes PIN par défaut, nous allons donc tous les changer, enfin le code PIN utilisateur et celui administrateur.</p>
<p>gpg --edit-card<br />[...]<br />gpg/carte&gt; admin<br />Les commandes d'administration sont permises</p>

<p>gpg/carte&gt; passwd<br />gpg: carte OpenPGP nº D27600012401XXXXXXXXXXXXXXXXXXXX détectée</p>

<p>1 - change PIN<br />2 - unblock PIN<br />3 - change Admin PIN<br />4 - set the Reset Code<br />Q - quit</p>

<p>Quel est votre choix ?</p>
<p>Le reset code vous sera demandé si vous réinitialisez le compteur d’essai de code PIN erronés.</p>
<p>Paramétrer ses informations personnelles</p>
<p>A la suite des précédents changements, nous allons paramétrer les informations personnelles sur la clef.</p>
<p>gpg/carte&gt; name<br />Nom du détenteur de la carte : Turanga<br />Prénom du détenteur de la carte : Leela</p>

<p>gpg/carte&gt; login<br />Données d'identification (nom du compte) : leelaturanga</p>

<p>gpg/carte&gt; sex<br />Sexe ((M)asculin, (F)éminin ou espace) : F</p>

<p>gpg/carte&gt; lang <br />Préférences de langue : en</p>

<p>Générer une paire de clef</p>
<p>Maintenant que toutes les informations sont saisies, il ne reste plus qu’à générer les clefs. Mais avant de passer aux choses sérieuses, il faut paramétrer la taille des clefs générée :</p>
<p>gpg/carte&gt; key-attr <br />Changing card key attribute for: Signature key<br />Sélectionnez le type de clef désiré :<br />   (1) RSA<br />   (2) ECC<br />Quel est votre choix ? 1<br />Quelle taille de clef désirez-vous ? (2048) 4096<br />La carte sera maintenant reconfigurée pour générer une clef de 4096 bits<br />Changing card key attribute for: Encryption key<br />Sélectionnez le type de clef désiré :<br />   (1) RSA<br />   (2) ECC<br />Quel est votre choix ? 1<br />Quelle taille de clef désirez-vous ? (2048) 4096<br />La carte sera maintenant reconfigurée pour générer une clef de 4096 bits<br />Changing card key attribute for: Authentication key<br />Sélectionnez le type de clef désiré :<br />   (1) RSA<br />   (2) ECC<br />Quel est votre choix ? 1<br />Quelle taille de clef désirez-vous ? (2048) 4096<br />La carte sera maintenant reconfigurée pour générer une clef de 4096 bits</p>
<p>Le passage des clefs à 4096 bits ralenti sensiblement la génération de celles-ci par la Nitrokey, passant de quelques secondes à plusieurs minutes.</p><p>Il ne reste plus qu’à générer les clefs :</p>
<p>gpg/carte&gt; generate <br />Faut-il faire une sauvegarde hors carte de la clef de chiffrement ? (O/n) o<br />Veuillez indiquer le temps pendant lequel cette clef devrait être valable.<br />         0 = la clef n'expire pas<br />      &lt;n&gt;  = la clef expire dans n jours<br />      &lt;n&gt;w = la clef expire dans n semaines<br />      &lt;n&gt;m = la clef expire dans n mois<br />      &lt;n&gt;y = la clef expire dans n ans<br />Pendant combien de temps la clef est-elle valable ? (0) 1m<br />La clef expire le jeu. 07 mars 2019 22:29:17 CET<br />Est-ce correct ? (o/N) o</p>

<p>GnuPG doit construire une identité pour identifier la clef.</p>

<p>Nom réel : Leela Turanga<br />Adresse électronique : leela.turanga@planetexpress.com<br />Commentaire : <br />Vous avez sélectionné cette identité :<br />    « Leela Turanga &lt;leela.turanga@planetexpress.com&gt; »</p>

<p>Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique<br />ou (O)ui/(Q)uitter ? o<br />De nombreux octets aléatoires doivent être générés. Vous devriez faire<br />autre chose (taper au clavier, déplacer la souris, utiliser les disques)<br />pendant la génération de nombres premiers ; cela donne au générateur de<br />nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.<br />gpg: Remarque : sauvegarde de la clef de la carte dans « /home/lee[...] »<br />gpg: clef 91BF810624DD9070 marquée de confiance ultime.<br />gpg: revocation certificate stored as '/home/lee/.gnupg/openpgp-revocs.d/[...]<br />les clefs publique et secrète ont été créées et signées.</p>
<p>La sauvegarde de la clé permettra de déchiffrer les données en cas de perte, panne ou vol de la Nitrokey. Sauvegardez la bien au chaud, avec son certificat de révocation.</p>
<p>Conclusion</p>
<p>Voici un petit aperçu des fonctionnalités de cette clef open source et étudié plus en profondeur la partie PGP avec GnuPG. Dans un prochain article, nous verrons comment importer un ensemble de clefs existante dans la Nitrokey.</p>]]></description>
	<dc:creator>La loupe</dc:creator>
</item>
<br>Source : <a href="https://xieme-art.org/post/decouverte-de-la-nitrokey-pro/" class="" rel="nofollow">https://xieme-art.org/post/decouverte-de-la-nitrokey-pro/</a><br>
</channel>
</rss>