{"id":3657,"date":"2019-07-10T10:07:09","date_gmt":"2019-07-10T08:07:09","guid":{"rendered":"https:\/\/www.unicoda.com\/?p=3657"},"modified":"2019-06-20T23:32:16","modified_gmt":"2019-06-20T21:32:16","slug":"reinitialisation-du-jeton-cryptographique-gnuk","status":"publish","type":"post","link":"https:\/\/www.unicoda.com\/?p=3657","title":{"rendered":"R\u00e9initialisation du jeton cryptographique Gnuk"},"content":{"rendered":"\n<p>Apr\u00e8s avoir r\u00e9alis\u00e9 quelques tests du jeton cryptographique fra\u00eechement cr\u00e9\u00e9 \u00e0 partir d&rsquo;un ST-Linkv2 et de Gnuk, j&rsquo;ai cherch\u00e9 \u00e0 nettoyer les clefs stock\u00e9es sur ce jeton de test. Mes recherches m&rsquo;ont guid\u00e9 vers le dossier tool du d\u00e9p\u00f4t gnuk, qui contient plusieurs scripts permettant de r\u00e9aliser divers op\u00e9rations sur le jeton. L&rsquo;instruction <em>factory-reset<\/em> ne fonctionnant pas sur les jetons Gnuk, je me suis tourn\u00e9 vers le script <em>gnuk_remove_keys_libusb.py<\/em>. Script qui n\u00e9cessite d&rsquo;arr\u00eater <em>gpg-connect-agent<\/em> avant d&rsquo;\u00eatre ex\u00e9cut\u00e9. Je n&rsquo;ai au final pas pu valider son fonctionnement, pour la raison que vous d\u00e9couvrirez au paragraphe suivant.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">gpg-connect-agent \"SCD KILLSCD\" \"SCD BYE\" \/bye<br>.\/tool\/gnuk_remove_keys_libusb.py -p <\/pre>\n\n\n\n<p>Lors de mes premi\u00e8res tentatives, je n&rsquo;avais pas utilis\u00e9 le param\u00e8tre p de la commande et celle-ci utilisait donc le PIN par d\u00e9faut \u00e0 savoir 12345678 pour le PIN admin. Ayant chang\u00e9 ce dernier, j&rsquo;ai tr\u00e8s vite atteint la limite d&rsquo;essai autoris\u00e9 et ai rendu mon jeton inop\u00e9rant. Il a donc fallu s&rsquo;int\u00e9resser \u00e0 la fa\u00e7on de r\u00e9installer Gnuk sur un jeton bloqu\u00e9.<\/p>\n\n\n\n<p>Pour effectuer la reprogrammation, il faut connecter le jeton \u00e0 notre ST-Link comme dans <a rel=\"noreferrer noopener\" aria-label=\"l'article pr\u00e9c\u00e9dent (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/www.unicoda.com\/?p=3592\" target=\"_blank\">l&rsquo;article pr\u00e9c\u00e9dent<\/a>. Afin de d\u00e9verrouiller le jeton, il est \u00e9galement n\u00e9cessaire de connecter les pins 7 (NRST) et 8 (VSSA) du micro-contr\u00f4leur STM8F103. Une fois les deux pins connect\u00e9s, avec la pointe de mesure d&rsquo;un multim\u00e8tre par exemple, il faut lancer <em>openocd<\/em> comme pr\u00e9c\u00e9demment. Une fois le programme en cours de fonctionnement, sans erreur ni tentative permanente de reconnexion, on peut arr\u00eater de maintenir la connexion entre les deux pins.<\/p>\n\n\n\n<p>Pour rep\u00e9rer les deux pins concern\u00e9s, voir le sch\u00e9ma ci-dessous.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/4.bp.blogspot.com\/-iITvQvVDrKU\/V-vjFrb6ftI\/AAAAAAAAGv8\/DTLtT80PtlolDDrSbmbZvanSNCsugbMJQCLcB\/s1600\/STM32F103C8T8.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"297\" src=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/STM32F103C8T8-300x297.png\" alt=\"\" class=\"wp-image-3659\" srcset=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/STM32F103C8T8-300x297.png 300w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/STM32F103C8T8-150x150.png 150w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/STM32F103C8T8-768x761.png 768w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/STM32F103C8T8.png 932w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><figcaption>Pins d&rsquo;un STM32F103C8T6<\/figcaption><\/figure><\/div>\n\n\n\n<p>L&rsquo;op\u00e9ration n&rsquo;\u00e9tant pas des plus \u00e9videntes, j&rsquo;ai d\u00fb effectuer plusieurs tentatives avant de pouvoir reprendre la main pour reprogrammer le micro-contr\u00f4leur. Par ailleurs, impossible de me reconnecter correctement aux pins du ST-Link, j&rsquo;ai donc \u00e9t\u00e9 oblig\u00e9 de sortir le fer \u00e0 souder, d&rsquo;autant plus que le STM32 est positionn\u00e9 de l&rsquo;autre c\u00f4t\u00e9 de la carte et donc impossible d&rsquo;y acc\u00e9der pour connecter les deux pins en utilisant le pr\u00e9c\u00e9dent syst\u00e8me de connexion.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/stlink-soudure.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"225\" src=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/stlink-soudure-300x225.jpg\" alt=\"\" class=\"wp-image-3660\" srcset=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/stlink-soudure-300x225.jpg 300w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/stlink-soudure-768x576.jpg 768w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/stlink-soudure-1024x768.jpg 1024w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2019\/05\/stlink-soudure-1200x900.jpg 1200w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><figcaption>Le montage apr\u00e8s reprogrammation et juste avant de retirer les fils soud\u00e9s.<\/figcaption><\/figure><\/div>\n\n\n\n<p>Pas de changement dans les instructions de programmation \u00e0 part l&rsquo;ajout du <em>mass_erase<\/em> pour supprimer tout le contenu de la m\u00e9moire.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">halt\nstm32f1x unlock 0\nreset halt\n<strong>stm32f1x mass_erase 0<\/strong>\nflash write_bank 0 .\/src\/build\/gnuk-vidpid.bin 0\nstm32f1x lock 0\nreset halt<\/pre>\n\n\n\n<p>Apr\u00e8s reprogrammation, le jeton est \u00e0 nouveau vierge de toutes informations et pr\u00eat \u00e0 recevoir de nouvelles cl\u00e9s!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apr\u00e8s avoir r\u00e9alis\u00e9 quelques tests du jeton cryptographique fra\u00eechement cr\u00e9\u00e9 \u00e0 partir d&rsquo;un ST-Linkv2 et de Gnuk, j&rsquo;ai cherch\u00e9 \u00e0 nettoyer les clefs stock\u00e9es sur ce jeton de test. Mes recherches m&rsquo;ont guid\u00e9 vers le dossier tool du d\u00e9p\u00f4t gnuk, qui contient plusieurs scripts permettant de r\u00e9aliser divers op\u00e9rations sur le jeton. L&rsquo;instruction factory-reset ne &hellip; <a href=\"https:\/\/www.unicoda.com\/?p=3657\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;R\u00e9initialisation du jeton cryptographique Gnuk&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[377],"tags":[],"class_list":["post-3657","post","type-post","status-publish","format-standard","hentry","category-crypto"],"_links":{"self":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/3657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3657"}],"version-history":[{"count":3,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/3657\/revisions"}],"predecessor-version":[{"id":3682,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/3657\/revisions\/3682"}],"wp:attachment":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}