{"id":48,"date":"2017-07-03T17:12:47","date_gmt":"2017-07-03T17:12:47","guid":{"rendered":"http:\/\/www.technologue.net\/?p=48"},"modified":"2017-07-03T19:04:55","modified_gmt":"2017-07-03T19:04:55","slug":"dechiffrage-dune-communication-ssltls","status":"publish","type":"post","link":"http:\/\/www.technologue.net\/?p=48","title":{"rendered":"D\u00e9chiffrage d&rsquo;une communication SSL\/TLS"},"content":{"rendered":"<p style=\"padding-left: 30px;\">L&rsquo;approche classique pour d\u00e9chiffrer des paquets SSL est d&rsquo;utiliser un proxy ou un logiciel MITM.<br \/>\nDepuis quelques temps, WireShark d\u00e9chiffre les paquets SSL si on lui fournit les cl\u00e9s du chiffrage. Il y a 2 fa\u00e7ons d&rsquo;obtenir ces cl\u00e9s:<\/p>\n<h2>PrivateKey<\/h2>\n<p>C&rsquo;est la cl\u00e9 priv\u00e9e utilis\u00e9e par le serveur. La seule fa\u00e7on de l&rsquo;obtenir est d&rsquo;avoir acc\u00e8s aux fichiers du serveur et de la copier vers votre machine WireShark. Attention \u00e0 bien la prot\u00e9ger; cette cl\u00e9 ne doit pas \u00eatre connue du public.<br \/>\nLa position du fichier de cl\u00e9 varie d&rsquo;un serveur \u00e0 l&rsquo;autre; vous avez donc int\u00e9r\u00eat \u00e0 bien conna\u00eetre votre serveur ou d&rsquo;en avoir la documentation technique.<br \/>\nLorsque la cl\u00e9 est copi\u00e9e sur votre machine, il suffit d&rsquo;en informer WireShark:<\/p>\n<p style=\"padding-left: 30px;\"><em>\u00c9diter \/Pr\u00e9f\u00e9rences\/Protocols\/SSL\/Edit(RSA key list)\/<\/em><\/p>\n<p>On peut y sp\u00e9cifier:<\/p>\n<p style=\"padding-left: 20px;\">&#8211; adresse IP du serveur SSL qu&rsquo;on veut d\u00e9coder (0 pour toutes)<br \/>\n&#8211; port des messages \u00e0 d\u00e9coder (g\u00e9n\u00e9ralement 443, 0 pour tous)<br \/>\n&#8211; protocole (smtp, http, etc): vide indique tous les protocoles<br \/>\n&#8211; key file: le nom du fichier qui contient la cl\u00e9 import\u00e9e<br \/>\n&#8211; password: mot de passe du fichier (si besoin est)<\/p>\n<p>Il peut y avoir plusieurs de ces fichiers. Wireshark choisit le fichier appropri\u00e9 en fonction des adresseIP\/port\/protocole que vous avez sp\u00e9cifi\u00e9 plus haut.<br \/>\nNote: la m\u00e9thode PrivateKey ne fonctionne qu&rsquo;avec un chiffrage de type RSA. Les chiffrages DH (Diffie-Hellman) sont plus complexes et ne peuvent \u00eatre d\u00e9cod\u00e9s avec la m\u00e9thode PrivateKey. Utilisez plut\u00f4t la seconde m\u00e9thode (<em>preMaster Secret<\/em>).<\/p>\n<h2>preMaster Secret<\/h2>\n<p>Il ne s&rsquo;agit pas vraiment d&rsquo;une cl\u00e9 mais plut\u00f4t d&rsquo;un r\u00e9sultat interm\u00e9diaire enregistr\u00e9 lors de la n\u00e9gociation SSL initiale entre le client et le serveur. Firefox et Chrome permettent d&rsquo;enregistrer facilement ces r\u00e9sultats interm\u00e9diaires. Cette option porte le nom de SSLKEYLOGFILE.<\/p>\n<h3>Pour activer l&rsquo;option SSLKEYLOGFILE<\/h3>\n<p>Il faut sp\u00e9cifier o\u00f9 seront d\u00e9pos\u00e9s les secrets.<br \/>\nDans une fen\u00eatre bash:<\/p>\n<pre>export SSLKEYLOGFILE=\/chemin\/fichier; firefox (ou chrome)<\/pre>\n<p>Une autre fa\u00e7on est de l&rsquo;activer de fa\u00e7on permanente. Ajoutez \u00e0 la fin de votre fichier .bashrc:<\/p>\n<pre>export SSLKEYLOGFILE=\/chemin\/fichier<\/pre>\n<p>Red\u00e9marrez l&rsquo;usager pour que cette commande prenne effet puis d\u00e9marrez Firefox (ou Chrome)<br \/>\nIndiquer \u00e0 Wireshark o\u00f9 est ce fichier:<br \/>\n<em>\u00c9diter\/Pr\u00e9f\u00e9rences\/Protocols\/SSL<\/em><br \/>\nEntrez le chemin\/fichier dans le champ <em>(pre)Master-Secret log filename<\/em><br \/>\nSi les 2 \u00e9tapes pr\u00e9c\u00e9dentes ont bien fonctionn\u00e9, vous verrez dans Wireshark, pour chacun des paquets SSL, un nouvel onglet Decrypted SSL data au bas de la fen\u00eatre de donn\u00e9es.<\/p>\n<h3>Versions:<\/h3>\n<table>\n<tbody>\n<tr>\n<td><strong>M\u00e9thode<\/strong><\/td>\n<td><strong>Outil<\/strong><\/td>\n<td><strong>Version<\/strong><\/td>\n<td><strong>Note<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>PrivateKey<\/strong><\/td>\n<td>Wireshark<\/td>\n<td>&gt;=1.6<\/td>\n<\/tr>\n<tr>\n<td><strong>PreMasterSecret<\/strong><br \/>\n(SSLKEYLOGFILE)<\/td>\n<td>Firefox<\/td>\n<td>&lt;=48<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Firefox<\/td>\n<td>&gt; 48<\/td>\n<td>Seulement dans la version pour d\u00e9veloppeurs<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Chrome<\/td>\n<td>&lt; 59<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Chrome<\/td>\n<td>\u00a0 59<\/td>\n<td>Seule la version 59 a \u00e9t\u00e9 test\u00e9e<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Chrome<\/td>\n<td>&gt; 59<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Wireshark<\/td>\n<td>&gt;=1.8<\/td>\n<td>PrivateKey et preMaster<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Conclusion<\/h2>\n<p>Le d\u00e9chiffrage des paquets SSL peut s&rsquo;av\u00e9rer tr\u00e8s utile lorsque vous avez \u00e0 r\u00e9gler un probl\u00e8me subtil avec un nouveau serveur (ou un objet Internet). Vous avez surement compris que la 2i\u00e8me m\u00e9thode (SSLKEYLOGFILE) est la plus facile.<\/p>\n<h2>R\u00e9f\u00e9rences:<\/h2>\n<p><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Transport_Layer_Security\">fr.wikipedia.org\/wiki\/Transport_Layer_Security<\/a><br \/>\n<a href=\"https:\/\/fr.wikipedia.org\/wiki\/\u00c9change_de_cl\u00e9s_Diffie-Hellman\">fr.wikipedia.org\/wiki\/\u00c9change_de_cl\u00e9s_Diffie-Hellman<\/a><br \/>\n<a href=\"https:\/\/jimshaver.net\/2015\/02\/11\/decrypting-tls-browser-traffic-with-wireshark-the-easy-way\/\">jimshaver.net\/2015\/02\/11\/decrypting-tls-&#8230;<\/a><br \/>\n<a href=\"http:\/\/www.root9.net\/2012\/11\/ssl-decryption-with-wireshark-private.html\">www.root9.net\/2012\/11\/ssl-decryption-with-wireshark-private.html<\/a><br \/>\n<a href=\"https:\/\/www.m00nie.com\/2015\/05\/decrypt-https-ssltls-with-wireshark\/\">www.m00nie.com\/2015\/05\/decrypt-https-ssltls-with-wireshark\/<\/a><br \/>\n<a href=\"https:\/\/certsimple.com\/blog\/ssl-wireshark-mac-osx\">certsimple.com\/blog\/ssl-wireshark-mac-osx<\/a><br \/>\n<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Projects\/NSS\/Key_Log_Format\">developer.mozilla.org\/en-US\/docs\/Mozilla\/Projects\/NSS\/Key_Log_Format<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;approche classique pour d\u00e9chiffrer des paquets SSL est d&rsquo;utiliser un proxy ou un logiciel MITM. Depuis quelques temps, WireShark d\u00e9chiffre les paquets SSL si on lui fournit les cl\u00e9s du chiffrage. Il y a 2 fa\u00e7ons d&rsquo;obtenir ces cl\u00e9s: PrivateKey C&rsquo;est la cl\u00e9 priv\u00e9e utilis\u00e9e par le serveur. La seule fa\u00e7on de l&rsquo;obtenir est d&rsquo;avoir &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.technologue.net\/?p=48\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;D\u00e9chiffrage d&rsquo;une communication SSL\/TLS&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":[],"categories":[10],"tags":[11],"_links":{"self":[{"href":"http:\/\/www.technologue.net\/index.php?rest_route=\/wp\/v2\/posts\/48"}],"collection":[{"href":"http:\/\/www.technologue.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.technologue.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.technologue.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.technologue.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=48"}],"version-history":[{"count":3,"href":"http:\/\/www.technologue.net\/index.php?rest_route=\/wp\/v2\/posts\/48\/revisions"}],"predecessor-version":[{"id":53,"href":"http:\/\/www.technologue.net\/index.php?rest_route=\/wp\/v2\/posts\/48\/revisions\/53"}],"wp:attachment":[{"href":"http:\/\/www.technologue.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=48"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.technologue.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=48"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.technologue.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}