<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hardening consulting</title><link>https://www.hardening-consulting.com/</link><description>Du contenu venu du cyber-espace</description><atom:link href="https://www.hardening-consulting.com/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>fr</language><lastBuildDate>Mon, 20 Apr 2026 09:08:50 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Utiliser socket pair et passfd     </title><link>https://www.hardening-consulting.com/posts/20260417-socketpair-et-passfd.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/improvement.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;J'ai toujours eu en tête cette fonctionnalité de &lt;code&gt;passfd&lt;/code&gt; disponible sous Linux mais je n'avais
jamais eu l'occasion de vraiment m'en servir. Au gré de tests d'architecture,
j'ai pu expérimenté ça, et je trouve que ça ouvre plein de perspectives, je vous parle de tout ça.&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;Socket pair&lt;/h2&gt;
&lt;p&gt;Rien de bien compliqué avec &lt;code&gt;socketpair&lt;/code&gt; ça permet en un appel système d'avoir 2 sockets inter-connectées:
quand on envoie des octets sur une socket ou peut les lire sur l'autre:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cpf"&gt;&amp;lt;sys/socket.h&amp;gt;&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;socketpair&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;protocol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ça reste quand même plus pratique que les appels systèmes &lt;code&gt;pipe&lt;/code&gt; ou &lt;code&gt;pipe2&lt;/code&gt;, qui fournissent un file
descriptor pour lire et un autre pour écrire. &lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20260417-socketpair-et-passfd.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 6 min. de lecture)&lt;/p&gt;&lt;/div&gt;</description><category>C</category><category>linux</category><category>passfd</category><category>socketpair</category><guid>https://www.hardening-consulting.com/posts/20260417-socketpair-et-passfd.html</guid><pubDate>Fri, 17 Apr 2026 06:11:00 GMT</pubDate></item><item><title>Installer Ogon avec Accendino     </title><link>https://www.hardening-consulting.com/posts/20260105-installer-ogon-avec-accendino.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/accendino.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;La version 0.10 d'accendino ne devrait pas tarder à sortir, mais en attendant, j'ai
quelques requêtes pour essayer &lt;a href="https://github.com/ogon-project/ogon"&gt;ogon&lt;/a&gt;, comment l'installer, le configurer, etc. &lt;/p&gt;
&lt;p&gt;C'est tout simple pour ça soit on suit les &lt;a href="https://github.com/forgiare/ogon/blob/master/doc/build-debian-ubuntu.md"&gt;instructions&lt;/a&gt; fournies dans le répertoire
doc d'ogon. Soit on utilise Accendino pour faire la majorité du boulot et on finit "à la main",
toutes manipulations qui demande une intervention humaine pour la configuration. &lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;Utiliser accendino&lt;/h2&gt;
&lt;p&gt;Sur une Ubuntu 24.04 fraichement installée, on commence par s'installer accendino dans
un venv qu'on appellera &lt;code&gt;_venv&lt;/code&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;python3-venv
&lt;span class="gp"&gt;$ &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;clone&lt;span class="w"&gt; &lt;/span&gt;https://github.com/forgiare/accendino.git
&lt;span class="go"&gt;...&lt;/span&gt;
&lt;span class="gp"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;accendino
&lt;span class="gp"&gt;$ &lt;/span&gt;python3&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;venv&lt;span class="w"&gt; &lt;/span&gt;_venv
&lt;span class="go"&gt;...&lt;/span&gt;
&lt;span class="gp"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;_venv/bin/activate
&lt;span class="gp gp-VirtualEnv"&gt;(_venv)&lt;/span&gt; &lt;span class="gp"&gt;$ &lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;.
&lt;span class="go"&gt;... &lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20260105-installer-ogon-avec-accendino.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 1 min. de lecture)&lt;/p&gt;&lt;/div&gt;</description><category>accendino</category><category>freerdp</category><category>ogon</category><guid>https://www.hardening-consulting.com/posts/20260105-installer-ogon-avec-accendino.html</guid><pubDate>Tue, 13 Jan 2026 07:11:00 GMT</pubDate></item><item><title>QFreeRDP platform QPA    </title><link>https://www.hardening-consulting.com/posts/20260105-qfreerdp-platform.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/qt.jpg" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;Premier billet de 2026, je vous souhaite tous mes meilleurs vœux pour cette nouvelle année.&lt;/p&gt;
&lt;p&gt;Dans ce billet, je vais parler d'un vieux projet que je trouve très intéressant et qui n'a pas perdu une ride depuis ses plus
de 10 ans d'existence: &lt;a href="https://github.com/hardening/qfreerdp_platform"&gt;qfreerdp_platform&lt;/a&gt;. J'ai fait quelques amélioration intéressantes sur ce projet récemment,
et je vais donc en parler un peu. &lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;Fonctionnement interne de Qt&lt;/h2&gt;
&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/specifications.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;Le framework Qt fonctionne avec une abstraction de la plateforme sur laquelle il tourne: en gros on a
des classes indépendantes qui implémentent les widgets, le scripting QML, le rendu, etc. Mais toute la partie qui
doit vraiment interagir avec le système, comme par exemple envoyer du contenu à la carte graphique ou
bien collecter les signaux des périphériques d'entrée (clavier, souris ou touchscreen), est implémentée
par des QPA (Qt Platform Abstraction). Par exemple, quand on lance une application Qt sous Linux, il va y
avoir un système d'heuristique qui va soit charger le QPA pour X11 (xcb) ou bien le QPA wayland.&lt;/p&gt;
&lt;p&gt;J'en parlais déjà en 2013 dans ce &lt;a href="https://www.hardening-consulting.com/posts/20130917passer-des-arguments-a-son-platform-integration-plugin.html"&gt;billet&lt;/a&gt;, une chose intéressante est qu'on peut forcer le QPA qui va être utilisé par une application, celà se
fait en passant le paramètre &lt;code&gt;-platform &amp;lt;nom du qpa&amp;gt;&lt;/code&gt; lors de l'appel du programme Qt (c'est pour ça qu'il
faut passer les paramètres de ligne de commande à la &lt;code&gt;QApplication&lt;/code&gt;, c'est pour que Qt puisse sélectionner
les arguments qui lui sont destinés). La chose vraiment surprenante est que le programme Qt sans recompilation
peut tourner à la fois sous X11 et Wayland, ou bien sur un QPA qu'on lui dit d'utiliser...&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20260105-qfreerdp-platform.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 4 min. de lecture)&lt;/p&gt;&lt;/div&gt;</description><category>freerdp</category><category>qpa</category><category>qt</category><guid>https://www.hardening-consulting.com/posts/20260105-qfreerdp-platform.html</guid><pubDate>Mon, 05 Jan 2026 07:11:00 GMT</pubDate></item><item><title>FreeRDP et le kerberos coté serveur    </title><link>https://www.hardening-consulting.com/posts/20251208-freerdp-et-kerberos-serveur.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/rdplogo.jpeg" width="100px"&gt;
Ces derniers temps, j'ai pas mal exploré  des sujets de FreeRDP avec remote credential guard, Kerberos et NLA, je fais donc
un petit billet sur comment kerberossiser sa partie serveur de FreeRDP. &lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;NLA, SPNego et Kerberos&lt;/h2&gt;
&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/kerberos.png" width="150px"&gt;&lt;/p&gt;
&lt;p&gt;Toute la kerberosserie commence avec le &lt;em&gt;NLA&lt;/em&gt;: si on se connecte sur un serveur &lt;em&gt;RDP&lt;/em&gt;
avec &lt;em&gt;mstsc&lt;/em&gt; et que la configuration est à peu près standard. &lt;/p&gt;&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20251208-freerdp-et-kerberos-serveur.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 4 min. de lecture)&lt;/p&gt;&lt;/div&gt;</description><category>freerdp</category><category>kerberos</category><category>nla</category><category>spnego</category><guid>https://www.hardening-consulting.com/posts/20251208-freerdp-et-kerberos-serveur.html</guid><pubDate>Mon, 08 Dec 2025 11:08:00 GMT</pubDate></item><item><title>Un petit tour des NTLM_REMOTE_SUPPLEMENTAL_CREDENTIAL    </title><link>https://www.hardening-consulting.com/posts/20251205-NTLM_REMOTE_SUPPLEMENTAL_CREDENTIAL-fr.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/rdplogo.jpeg" width="100px"&gt;
Il y a quelques temps j'ai travaillé sur la partie Kerberos de remote credential guards, et suite à des 
rapports de compatibilité avec du windows 11 et des controlleurs de domaine avec des versions
récentes, je me suis un peu intéressé à la partie NTLM.&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;Remote credential guards&lt;/h2&gt;
&lt;p&gt;L'idée derrière &lt;em&gt;remote credential guards&lt;/em&gt;, c'est qu'on se connecte à une machine
distante, le mot de passe n'est pas envoyé à cette machine, mais qu'on a quand même du SSO. Et donc en théorie, même si on
se connecte à une machine compromise, on ne se fait pas voler son mot de passe.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20251205-NTLM_REMOTE_SUPPLEMENTAL_CREDENTIAL-fr.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 3 min. de lecture)&lt;/p&gt;&lt;/div&gt;</description><category>freerdp</category><category>ntlm</category><category>remote credential guard</category><guid>https://www.hardening-consulting.com/posts/20251205-NTLM_REMOTE_SUPPLEMENTAL_CREDENTIAL-fr.html</guid><pubDate>Fri, 05 Dec 2025 06:08:00 GMT</pubDate></item><item><title>Accendino 0.5.10 alpha 1</title><link>https://www.hardening-consulting.com/posts/20251003-sortie-d-accendino-0.5.10-alpha-1.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/accendino.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;Encore beaucoup d'améliorations sur &lt;em&gt;Accendino&lt;/em&gt;, et on a cette version 0.5.10 qui est en
cours de stabilisation avec cette alpha 1. &lt;/p&gt;
&lt;p&gt;FFmpeg fait partie de ces logiciels qui sont horribles à 
construire de manière automatique sous windows (juste derrière OpenSSL), et un des buts recherchés 
pour cette version c'était de pouvoir construire FreeRDP avec le support d'FFmpeg sous windows avec la chaine de compilation de Visual Studio
et tout ça de manière automatique. 
Pas de bidouilles à faire à la main pour que ça fonctionne, on tape &lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;accendino&lt;span class="w"&gt; &lt;/span&gt;--targets&lt;span class="o"&gt;=&lt;/span&gt;freerdp3&lt;span class="w"&gt; &lt;/span&gt;freerdp.accendino
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ça checkout, ça compile et c'est prêt.&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;Les nouveautés dans la version 0.5.10 alpha 1&lt;/h2&gt;
&lt;h3&gt;Support d'Msys2&lt;/h3&gt;
&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/msys2.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;Première étape pour compiler FFmpeg avec Visual Studio: il y a besoin de passer des commandes sous &lt;code&gt;msys2&lt;/code&gt;, et donc cette
version amène le support d'installation des packages dans cet environnement. Si on met en dépendance
de packages &lt;code&gt;'msys2/yasm'&lt;/code&gt;, &lt;em&gt;accendino&lt;/em&gt; installera les packages correspondants dans l'environnement &lt;code&gt;msys2&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;Petit extrait du fichier accendino de FFmpeg:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="o"&gt;...&lt;/span&gt;

&lt;span class="n"&gt;ffmpegPkgs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;'Darwin'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'nasm'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="s1"&gt;'Windows'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'choco/nasm|path/nasm'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'msys2/make'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'msys2/yasm'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'msys2/diffutils'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;...&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ce support n'a pas été très compliqué à coder car c'est &lt;code&gt;pacman&lt;/code&gt; qui est utilisé &lt;/p&gt;&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20251003-sortie-d-accendino-0.5.10-alpha-1.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 4 min. de lecture)&lt;/p&gt;&lt;/div&gt;</description><category>accendino</category><category>freerdp</category><category>ogon</category><guid>https://www.hardening-consulting.com/posts/20251003-sortie-d-accendino-0.5.10-alpha-1.html</guid><pubDate>Fri, 03 Oct 2025 06:15:00 GMT</pubDate></item><item><title>Sortie d'accendino 0.5.9</title><link>https://www.hardening-consulting.com/posts/20250210-sortie-d-accendino-0.5.9.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/accendino.png" width="100px"&gt;&lt;/p&gt;
&lt;p&gt;J'ai fais quelque petites mises à jour sur mon script &lt;em&gt;Accendino&lt;/em&gt;, jusqu'à en faire un petit programme à part entière avec
des fonctionnalités intéressantes. Cette version 0.5.9 vient ajouter plein de choses sympatiques par rapport à la version
précédente. Avec le temps, je vois plus &lt;em&gt;Accendino&lt;/em&gt; comme un programme permettant de construire un logiciel complexe à partir
de plusieurs sources logicielles, et sur plusieurs plate-formes. Pour l'instant mon cas d'école est FreeRDP, j'essaye d'avoir
des fichiers accendino qui permettent de construire FreeRDP à partir de zéro sur le plus de plate-formes possibles (linux, mac,
windows, mingw, ...)&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;Historique&lt;/h2&gt;
&lt;p&gt;Originellement &lt;em&gt;accendino&lt;/em&gt; n'était qu'un petit script permettant de jouer les instructions d'installation d'&lt;em&gt;Ogon&lt;/em&gt;. Il était
néanmoins un peu plus complexe car on pouvait spécifier les emplacements git à descendre. Par exemple, pour utiliser les repos
de &lt;em&gt;Forgiare&lt;/em&gt; à la place des repos officiels d'&lt;em&gt;Ogon&lt;/em&gt;. Avec la version 0.5.0, j'ai pas mal étendu ses fonctionnalités:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la possibilité d'inclure des fichiers accendino pour réutiliser des définitions existantes;&lt;/li&gt;
&lt;li&gt;les sources des programmes ont été beaucoup étendues et ne viennent plus nécessairement de git. On peut avoir des sources locales, 
  ou bien de git. Beaucoup d'options git sont désormais accessibles;&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20250210-sortie-d-accendino-0.5.9.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 5 min. de lecture)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description><category>accendino</category><category>freerdp</category><category>ogon</category><guid>https://www.hardening-consulting.com/posts/20250210-sortie-d-accendino-0.5.9.html</guid><pubDate>Mon, 10 Feb 2025 10:15:00 GMT</pubDate></item><item><title>Astuce rapide: le plugin massif de Valgrind</title><link>https://www.hardening-consulting.com/posts/20240618-valgrind-et-massif.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/valgrind.png" width="100px"&gt;
Une petite astuce que j'ai découvert il y a quelque temps: l'outil &lt;code&gt;massif&lt;/code&gt; de &lt;code&gt;valgrind&lt;/code&gt;. Il permet d'adresser des cas
où on a un programme qui mange trop de mémoire inutilement, mais comme il fait correctement le ménage à la fin, on ne
voit rien avec les outils de leak standard (&lt;code&gt;valgrind&lt;/code&gt; ou &lt;code&gt;asan&lt;/code&gt;)  &lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;Massif&lt;/h2&gt;
&lt;p&gt;C'est là qu'intervient l'outil &lt;code&gt;massif&lt;/code&gt; de &lt;code&gt;valgrind&lt;/code&gt; ainsi que l'outil de visualization &lt;code&gt;massif-visualizer&lt;/code&gt;. Cet
outil va permettre de régulièrement faire des snapshots des allocations mémoires, et de voir les callstacks
des endroits de nos programme qui font ces allocations.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20240618-valgrind-et-massif.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 1 min. de lecture)&lt;/p&gt;&lt;/div&gt;</description><category>freerdp</category><category>massif</category><category>valgrind</category><guid>https://www.hardening-consulting.com/posts/20240618-valgrind-et-massif.html</guid><pubDate>Tue, 18 Jun 2024 05:08:00 GMT</pubDate></item><item><title>Se connecter avec une carte à puce dans FreeRDP    </title><link>https://www.hardening-consulting.com/posts/20231004-smartcard-logon-fr.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/rdplogo.jpeg" width="100px"&gt;
Dans (le futur) FreeRDP 3.0, il y a le support pour le &lt;em&gt;smartcard logon&lt;/em&gt;, sur lequel j'ai pas mal travaillé, voyons un petit peu ce qu'il en est.&lt;/p&gt;
&lt;p&gt;&lt;br style="clear: both;"&gt;&lt;/p&gt;
&lt;h2&gt;Support smartcard&lt;/h2&gt;
&lt;p&gt;On commence par vérifier qu'on voit bien la smartcard, dans mon cas il s'agit d'un &lt;em&gt;yubikey(TM)&lt;/em&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;opensc-tool&lt;span class="w"&gt; &lt;/span&gt;-l
&lt;span class="gp"&gt;# &lt;/span&gt;Detected&lt;span class="w"&gt; &lt;/span&gt;readers&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;pcsc&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="go"&gt;Nr.  Card  Features  Name&lt;/span&gt;
&lt;span class="go"&gt;0    Yes             Yubico YubiKey OTP+FIDO+CCID 00 00&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20231004-smartcard-logon-fr.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 4 min. de lecture)&lt;/p&gt;&lt;/div&gt;</description><category>carte à puce</category><category>freerdp</category><category>smartcard</category><guid>https://www.hardening-consulting.com/posts/20231004-smartcard-logon-fr.html</guid><pubDate>Wed, 04 Oct 2023 05:08:00 GMT</pubDate></item><item><title>Support d'UDP dans FreeRDP partie 2   </title><link>https://www.hardening-consulting.com/posts/20230109-support-d-udp-2.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" src="https://www.hardening-consulting.com/images/rdplogo.jpeg" width="100px"&gt;
Intéressons nous un peu plus au protocole RDPUDP qui va transporter les données RDP au
dessus d'UDP.
Pour commencer, on se souviendra que seules les données de canaux virtuels (virtual channels) peuvent être transportées
au dessus d'UDP, donc ça ne concerne pas les ordres graphiques anciens (donc si vous comptiez sur UDP pour accélérer
des &lt;em&gt;bitmapUpdates&lt;/em&gt; c'est perdu), par contre ça fonctionnera avec un rendu &lt;em&gt;egfx&lt;/em&gt;. De même la migration de TCP à UDP se
fait au travers du canal dynamique, donc le &lt;em&gt;drdynvc&lt;/em&gt; est obligatoire. Ce mécanisme permet aussi aux
 canaux statiques d'être migrés vers UDP en mettant le flag &lt;code&gt;TRANSPORTTYPE_UDP_PREFERRED&lt;/code&gt; dans le paquet gcc 
de multi-transport channel data.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/posts/20230109-support-d-udp-2.html"&gt;Lire la suite…&lt;/a&gt; (Il reste encore 8 min. de lecture)&lt;/p&gt;&lt;/div&gt;</description><category>freerdp</category><category>rdp</category><category>ssl</category><category>tls</category><category>udp</category><guid>https://www.hardening-consulting.com/posts/20230109-support-d-udp-2.html</guid><pubDate>Mon, 09 Jan 2023 10:08:00 GMT</pubDate></item></channel></rss>