<?xml version="1.0"?>
<rss version="2.0"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/" >
<channel>
<title>Caveat lector</title>
<link>http://log.lateralis.org/</link>
<description>Caveat lector</description>
<item>

	<title>L&#x27;entropie c&#x27;est la vie</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/devotee_weakness/</guid>

	<link>http://log.lateralis.org/posts/devotee_weakness/</link>


	<category>/tags/crypto</category>

	<category>/tags/debian</category>

	<category>/tags/fr</category>


	<pubDate>Sun, 29 Apr 2012 21:34:55 +0200</pubDate>
	<dcterms:modified>2012-04-29T19:34:55Z</dcterms:modified>

	<description>&lt;p&gt;Nous avons élu le &lt;em&gt;leader&lt;/em&gt; du projet Debian, comme chaque année. Les
résultats ont été proclamés le 15 avril (plus d&#39;infos sur &lt;a href=&quot;http://www.debian.org/vote/2012/vote_001&quot;&gt;la page du
vote&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Dix jours plus tard, Timo Juhani Lindfors &lt;a href=&quot;http://lists.debian.org/debian-devel/2012/04/msg00528.html&quot;&gt;publie une
faiblesse&lt;/a&gt;
dans le logiciel qui gère le vote et qui permet de casser le secret du
vote, et ce pour tous les votes (dans la foulée : plouf l&#39;anonymat du
vote).&lt;/p&gt;

&lt;p&gt;Pour ceux qui veulent jouer à la maison, une
&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670583#10&quot;&gt;approximation&lt;/a&gt;
&lt;a href=&quot;http://anonscm.debian.org/gitweb/?p=users/srivasta/debian/devotee.git;a=summary&quot;&gt;du code
source&lt;/a&gt;
qui gère le vote est disponible. Ce n&#39;est &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=470995&quot;&gt;pas encore un paquet
debian&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;L&#39;analyse du problème est amusante, et la morale en est
essentiellement le titre de cette entrée. Dans la suite je ne fais que
reprendre l&#39;analyse de Timo Juhani Lindfors en y ajoutant mes propres
commentaires.&lt;/p&gt;

&lt;p&gt;Le token secret qui permet à chaque votant de vérifier que son vote a
bien été pris en compte est constitué de la concaténation de l&#39;instant
auquel on prend en compte le vote (modulo 21 jours, cf. le fichier
&lt;code&gt;dvt-gack&lt;/code&gt; autour de la ligne 160) et de 8 caractères pris au hasard
parmi les alphanumériques (soit 26+26+10 = 62 possibilités).&lt;/p&gt;

&lt;p&gt;Si le vote est pris en compte à un moment parfaitement aléatoire dans
cette période de 21 jours, et si les 8 caractères sont eux aussi pris
au hasard uniforme, j&#39;obtiens une borne sur l&#39;entropie de ce token
secret d&#39;environ 69 bits. Notons déjà que le vote n&#39;est ouvert que
pendant 14 jours.&lt;/p&gt;

&lt;p&gt;Première faiblesse: les votants ne choisissent pas leur instant pour
voter de façon parfaitement aléatoire, et d&#39;autre part l&#39;utilisation
d&#39;un cronjob (toutes les 5 minutes) réduit encore plus l&#39;ensemble des
valeurs possibles pour ce &lt;em&gt;timestamp&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Là où les choses s&#39;effondrent, c&#39;est dans le calcul des 8 caractères
supplémentaires. Le script utilise la fonction &lt;code&gt;rand&lt;/code&gt; de perl sans
utiliser de graine particulière. Cette fonction utilise en interne
&lt;code&gt;drand48()&lt;/code&gt;, mais avec une graine de 32 bits uniquement. Comme il
s&#39;agit d&#39;un générateur déterministe, la connaissance de ces 32 bits
de graine suffit à prédire complètement la séquence des 8 caractères
du token secret. On passe donc d&#39;une entropie théorique d&#39;environ 47
bits pour ces 8 caractères, à seulement 32 bits. En supposant que la
machine n&#39;est pas trop surchargée et que &lt;code&gt;cron&lt;/code&gt; lance le script de
vérification des votes toutes les 5 minutes exactement, on obtient
maintenant une borne sur l&#39;entropie d&#39;environ 45 bits.&lt;/p&gt;

&lt;p&gt;Une autre faiblesse amusante se trouve dans &lt;code&gt;dvt-tally&lt;/code&gt; et concerne
l&#39;ordre dans lequel on affiche les votes. On commence par trier les
votes par le nom réel du votant, puis on retire au hasard un nom dans
cette liste pour l&#39;afficher en premier, et ainsi de suite jusqu&#39;à
épuisement des votes. On affiche évidemment les votes masqués, mais
l&#39;utilisation de la même fonction &lt;code&gt;rand&lt;/code&gt; sans initialisation explicite
nous rend vulnérable à une attaque exhaustive. Et vu que l&#39;anonymat du
vote est déjà compromise, ce problème est juste la cerise sur le
gâteau.&lt;/p&gt;

&lt;p&gt;Quelles conclusions tirer de ce problème? Voici les miennes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;même dans un monde idéal, l&#39;entropie bornée par 69 bits pour le
secret est insuffisante si on veut sérieusement protéger le vote
individuel de chaque votant. On a longtemps recommandé 80 bits pour
se placer au delà de ce qui est réaliste pour une attaque par force
brute. L&#39;amélioration des capacités de calcul amène l&#39;ANSSI &lt;a href=&quot;http://www.ssi.gouv.fr/IMG/pdf/RGS_B_1.pdf&quot;&gt;à
recommander 128 bits&lt;/a&gt;
pour résister au delà de 2020 (recommandation faite en 2010).&lt;/li&gt;
&lt;li&gt;l&#39;utilisation du temps comme source d&#39;entropie (car sa présence dans
le token secret n&#39;a pas d&#39;autre usage) est discutable. Les
évènements dépendants d&#39;êtres humains n&#39;ont pas tendance à se
distribuer dans le temps avec l&#39;uniformité voulue. Et si on
s&#39;attaque à mon vote à moi, il est plus raisonnable d&#39;attaquer
d&#39;abord les instants auxquels je suis réveillés, que les autres. Si
on ajoute à cela le fait que l&#39;application ne maîtrise pas l&#39;instant
auquel elle tourne, car lancée par &lt;code&gt;cron&lt;/code&gt;, l&#39;utilisation du temps
est simplement une mauvaise idée.&lt;/li&gt;
&lt;li&gt;utiliser un générateur de nombres aléatoires sans l&#39;initialiser avec
une graine revient à fermer les yeux et espérer que la voiture va
magiquement éviter le mur (alors qu&#39;on garde le pied à fond sur
l&#39;accélérateur).&lt;/li&gt;
&lt;li&gt;utiliser un générateur de nombre aléatoire déterministe pour des
tirages successifs d&#39;une quantité que l&#39;on espère aléatoire est une
mauvaise idée.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ma suggestion pour corriger ces problèmes serait de calculer le token
secret comme la représentation hexadécimale de 128 bits lus
directement depuis &lt;code&gt;/dev/urandom&lt;/code&gt; (ou son équivalent sur d&#39;autres
systèmes). Cela revient à un token secret de 32 caractères, ce qui
reste raisonnable dans le contexte, et cela aligne la sécurité
attendue dans la confidentialité de chaque vote avec les
recommandations de la communauté crypto. Lire depuis &lt;code&gt;/dev/urandom&lt;/code&gt;
est raisonnablement rapide (et essentiellement négligeable dans la
mesure où on vient de vérifier une signature RSA ou DSA) et
suffisamment sûr aussi (et si on doute de &lt;code&gt;/dev/urandom&lt;/code&gt;, je suppose
qu&#39;on peut jeter l&#39;éponge sur ce système, car si le noyau n&#39;est pas en
mesure de fournir de l&#39;entropie de qualité je me demande bien qui peut
l&#39;être).&lt;/p&gt;

&lt;p&gt;Et pour finir, afficher les votes en triant selon le hash md5 (comme
cela a été suggéré dans le fil de discussion).&lt;/p&gt;
</description>


	<comments>http://log.lateralis.org/posts/devotee_weakness/#comments</comments>

</item>
<item>

	<title>YEP: le retour du retour</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/yep_de_retour/</guid>

	<link>http://log.lateralis.org/posts/yep_de_retour/</link>


	<category>/tags/fr</category>

	<category>/tags/yep</category>


	<pubDate>Sun, 29 Apr 2012 04:18:37 +0200</pubDate>
	<dcterms:modified>2012-04-29T02:19:46Z</dcterms:modified>

	<description>&lt;p&gt;Après presque 4 mois sans nouvelles, le nouvel épisode de
&lt;a href=&quot;http://yep.lateralis.org/&quot;&gt;YEP&lt;/a&gt; (n°739) est en ligne.&lt;/p&gt;

&lt;p&gt;S&#39;agit-il d&#39;un évènement isolé ou les frémissements d&#39;une reprise plus
régulière de la publication? Je répondrais avec une de mes citations
d&#39;économiste préférée (attribuée à John Maynard Keynes) :&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Demain, on ne sait pas.&lt;/p&gt;
&lt;/blockquote&gt;
</description>


	<comments>http://log.lateralis.org/posts/yep_de_retour/#comments</comments>

</item>
<item>

	<title>Y U NO READ?</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/tenuki/</guid>

	<link>http://log.lateralis.org/posts/tenuki/</link>


	<category>/tags/fr</category>


	<pubDate>Thu, 26 Apr 2012 05:06:31 +0200</pubDate>
	<dcterms:modified>2012-04-26T03:06:31Z</dcterms:modified>

	<description>&lt;p&gt;Trop dur de lire la situation locale dans votre partie de Go?&lt;/p&gt;

&lt;p&gt;Suivez donc le conseil de Bill.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://log.lateralis.org/./posts/tenuki/bill.jpg&quot;&gt;&lt;img src=&quot;http://log.lateralis.org/./posts/tenuki/bill.jpg&quot; width=&quot;477&quot; height=&quot;361&quot; alt=&quot;Fuck it. I&amp;#39;ll tenuki!&quot; class=&quot;img&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</description>


	<comments>http://log.lateralis.org/posts/tenuki/#comments</comments>

</item>
<item>

	<title>Sous un tunnel</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/cell_phone/</guid>

	<link>http://log.lateralis.org/posts/cell_phone/</link>


	<category>/tags/CA</category>

	<category>/tags/fr</category>

	<category>/tags/rants</category>


	<pubDate>Wed, 25 Apr 2012 08:28:07 +0200</pubDate>
	<dcterms:modified>2012-04-25T06:28:07Z</dcterms:modified>

	<description>&lt;p&gt;J&#39;ai été relativement surpris de constater que les tarifs des
communications mobiles, avec ou sans contrat, sont significativement
plus élevés ici (en Californie) qu&#39;en France (en pleine effervescence
due à Free quand je suis parti, mais cela reste vrai même en
négligeant l&#39;effet des offres Free dans le paysage français).&lt;/p&gt;

&lt;p&gt;Et non seulement c&#39;est plus cher, mais la qualité des communications
voix est lamentable, et je ne suis pas impressionné non plus par les
débits data.&lt;/p&gt;

&lt;p&gt;Comment le service de téléphonie mobile peut-il être pire dans ce que
je croyais être l&#39;utopie de la concurrence libre et non faussée, que
dans un pays économiquement arriéré  &lt;a href=&quot;http://www.parti-socialiste.fr/&quot;&gt;où les ogres communistes mangent
les petits enfants&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;Une piste d&#39;explication: ici on n&#39;achète pas un téléphone nu (sans
carte SIM), ou une carte SIM nue (sans téléphone) permettant d&#39;accéder
à un réseau. On achète majoritairement le combo. En France, on lie
souvent les deux. Mais la règle ici, c&#39;est de lier les deux
commercialement &lt;em&gt;et&lt;/em&gt; technologiquement. Les deux sont physiquement
solidaires. Il ne s&#39;agit pas d&#39;un simple &lt;em&gt;simlockage&lt;/em&gt; temporaire
qu&#39;une loi de protection du consommateur permettrait de déblocker au
bout d&#39;un certain temps. C&#39;est juste soudé.&lt;/p&gt;

&lt;p&gt;Du coup, l&#39;utilisateur est bien plus captif ici qu&#39;en France.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cette entrée vous était présentée par le comité de soutien de la main
invisible du marché.&lt;/em&gt;&lt;/p&gt;
</description>


	<comments>http://log.lateralis.org/posts/cell_phone/#comments</comments>

</item>
<item>

	<title>Devinette de geek matheux</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/corps_fini/</guid>

	<link>http://log.lateralis.org/posts/corps_fini/</link>


	<category>/tags/fr</category>

	<category>/tags/geek</category>

	<category>/tags/math</category>


	<pubDate>Fri, 23 Mar 2012 16:43:40 +0100</pubDate>
	<dcterms:modified>2012-04-06T02:26:21Z</dcterms:modified>

	<description>&lt;p&gt;Je profite de mon anniversaire pour vous poser une devinette bien
débile:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Pourquoi est-ce que tous les polynômes irréductibles de degré 5 sur F2
  sont primitifs?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Parce que mon âge est premier!&lt;/p&gt;

&lt;p&gt;(Je prends ici la définition de primitif comme signifiant « polynôme minimal d&#39;un élément primitif », bien entendu)&lt;/p&gt;
</description>


	<comments>http://log.lateralis.org/posts/corps_fini/#comments</comments>

</item>
<item>

	<title>Un roman b&#xE2;cl&#xE9;: Google D&#xE9;mocratie</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/gdemocratie/</guid>

	<link>http://log.lateralis.org/posts/gdemocratie/</link>


	<category>/tags/fr</category>

	<category>/tags/lecture</category>


	<pubDate>Fri, 24 Feb 2012 08:55:36 +0100</pubDate>
	<dcterms:modified>2012-02-24T07:55:36Z</dcterms:modified>

	<description>&lt;p&gt;J&#39;ai fini (il y a deux semaines) de lire &lt;em&gt;Google Démocratie&lt;/em&gt;. Il
s&#39;agit d&#39;un roman d&#39;anticipation centré autour d&#39;un projet de super IA
développé par Google (avec l&#39;appui du gouvernement US).&lt;/p&gt;

&lt;p&gt;Je ne sais pas trop par où commencer. D&#39;un côté ce livre est sans
doute le plus mauvais que j&#39;ai lu depuis longtemps. De l&#39;autre, je
n&#39;ai quasiment lu d&#39;une traite parce que l&#39;histoire n&#39;est pas si
mauvaise que cela. Certes, la partie « services secrets et complot
mondial » est une caricature du genre; je n&#39;ai pas réussi à m&#39;attacher
aux personnages (aucun d&#39;entre eux), et la fin est navrante.&lt;/p&gt;

&lt;p&gt;Mais c&#39;est sans doute le style d&#39;écriture qui m&#39;aura le plus
frappé. On a l&#39;impression que le tapuscrit n&#39;a pas été relu. Ou alors
qu&#39;il a été mal traduit de la VO, alors que manifestement la VF est la
VO.&lt;/p&gt;

&lt;p&gt;Je retourne bientôt à l&#39;épisode suivant de &lt;em&gt;The Black Company&lt;/em&gt;, dès
que j&#39;ai fini mon livre en cours, à savoir une étude ethnographique
des Français vus par deux Nord-Américains.&lt;/p&gt;
</description>


	<comments>http://log.lateralis.org/posts/gdemocratie/#comments</comments>

</item>
<item>

	<title>D&#xE9;buts en Californie</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/CAW03/</guid>

	<link>http://log.lateralis.org/posts/CAW03/</link>


	<category>/tags/CA</category>

	<category>/tags/fr</category>


	<pubDate>Sun, 22 Jan 2012 20:12:50 +0100</pubDate>
	<dcterms:modified>2012-01-22T19:25:37Z</dcterms:modified>

	<description>&lt;p&gt;Qu&#39;importe la banque, pourvu qu&#39;on &lt;a href=&quot;http://blog.wellsfargo.com/guidedbyhistory/2011/11/welcome_snowflake.html&quot;&gt;ait le
poney&lt;/a&gt;! Je
suis donc bien arrivé en Californie dimanche dernier, et dans cette
première semaine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;j&#39;ai trouvé un appartement en location à environ 10 mn
en vélo de mon futur boulot;&lt;/li&gt;
&lt;li&gt;j&#39;ai ouvert un compte en banque sur lequel j&#39;ai les plus grandes
difficultés du monde à faire un transfert depuis la France;&lt;/li&gt;
&lt;li&gt;j&#39;ai compris qu&#39;une voiture serait sans doute nécessaire, et qu&#39;il
fallait que je me jette sur les possibilités de m&#39;endetter, pour
avoir l&#39;occasion ensuite de m&#39;endetter &lt;strong&gt;plus&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;j&#39;ai découvert des carrefours où tout le monde a un stop, et ensuite
on se démerde pour savoir qui a la priorité (c&#39;est par ordre
d&#39;arrivée, et en cas d&#39;arrivée simultanée—ce qui arrive avec proba
0—c&#39;est priorité à droite); et les feux rouges sont
tout au plus indicatifs si on tourne à droite. On ne roule pas à
droite (cette voie sert plutôt aux entrées-sorties) sur l&#39;autoroute
et il y a souvent une voie à gauche réservée bus et covoiturage, ce
qui ici signifie simplement ≥ 2 personnes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;À propos de voiture, il n&#39;y a pas besoin de permis pour en acheter
une, mais il faut un numéro de sécu. Il faut aussi un
numéro de sécu pour faire un crédit, d&#39;ailleurs j&#39;ai presque réussi à
acheter un vélo pour aller au boulot (point 1), mais en l&#39;absence de
cash (point 2) j&#39;ai misérablement échoué dans l&#39;achat à crédit en
l&#39;absence de ce précieux numéro de sécu.&lt;/p&gt;

&lt;p&gt;Il va falloir apprendre à montrer mon passeport quand je commande une
bière dans un resto, et à se présenter avec poignée de main virile à
environ chaque personne que je rencontre (agent immobilier, vendeur de
voitures...). Sans oublier le délicat art du &lt;em&gt;tip&lt;/em&gt;. San Francisco
contraste bien avec l&#39;espèce d&#39;énorme assemblage de cités-dortoirs
qu&#39;est la Sillicon Valley (ou ce que j&#39;en ai vu pour le moment) et
ressemble à peu près à une ville comme on l&#39;entend en France, même si
sous la pluie en hiver, c&#39;est sans doute moins sympa à visiter. Pas de
panique, j&#39;aurai le temps de visiter en été, vu que je ne pars nulle
part, et SF non plus (modulo le &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Big%5FOne&quot;&gt;Big One&lt;/a&gt; bien sûr, ne pas y penser,
ne pas y penser, et merde j&#39;y ai pensé).&lt;/p&gt;

&lt;p&gt;Bref, rien de bien révolutionnaire dans ce premier épisode de
« Laurent découvre la Californie ». Demain je commence mon nouveau
travail, sur lequel je compte a priori me montrer plutôt discret. On
verra bien.&lt;/p&gt;
</description>


	<comments>http://log.lateralis.org/posts/CAW03/#comments</comments>

</item>
<item>

	<title>Calamities of Nature</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/calamities/</guid>

	<link>http://log.lateralis.org/posts/calamities/</link>


	<category>/tags/fr</category>

	<category>/tags/lecture</category>


	<pubDate>Fri, 23 Dec 2011 17:01:29 +0100</pubDate>
	<dcterms:modified>2011-12-23T16:01:29Z</dcterms:modified>

	<description>&lt;p&gt;J&#39;ai découvert un nouveau comics intitulé &lt;a href=&quot;http://www.calamitiesofnature.com/&quot;&gt;Calamities of
Nature&lt;/a&gt;. Comme le veut l&#39;usage,
j&#39;ai relu toutes les archives et je vous le recommande.&lt;/p&gt;
</description>


	<comments>http://log.lateralis.org/posts/calamities/#comments</comments>

</item>
<item>

	<title>In your face</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/cassant/</guid>

	<link>http://log.lateralis.org/posts/cassant/</link>


	<category>/tags/enseignement</category>

	<category>/tags/fr</category>


	<pubDate>Tue, 20 Dec 2011 19:40:03 +0100</pubDate>
	<dcterms:modified>2011-12-20T18:40:03Z</dcterms:modified>

	<description>&lt;p&gt;Pour sa réponse bien sentie à l&#39;étudiant,
&lt;a href=&quot;http://i.imgur.com/iHL2S.jpg&quot;&gt;ce prof&lt;/a&gt; est un modèle à suivre.&lt;/p&gt;
</description>


	<comments>http://log.lateralis.org/posts/cassant/#comments</comments>

</item>
<item>

	<title>R&#xE9;surrection</title>


	<guid isPermaLink="no">http://log.lateralis.org/posts/le_retour_du_retour/</guid>

	<link>http://log.lateralis.org/posts/le_retour_du_retour/</link>


	<category>/tags/fr</category>


	<pubDate>Fri, 16 Dec 2011 16:42:08 +0100</pubDate>
	<dcterms:modified>2011-12-16T15:42:08Z</dcterms:modified>

	<description>&lt;p&gt;Tel le phénix qui toujours renait de ses cendres, le &lt;a href=&quot;http://komite.net/&quot;&gt;site du
KomiTê&lt;/a&gt; est à nouveau opérationnel. Pas de
panique : il n&#39;y a pas de nouveau contenu depuis plus de 5 ans. C&#39;est
juste que le site n&#39;est plus un énorme 404 comme il l&#39;était suite au
dernier déménagement informatique (qui se produisent au rythme
approximatif de 1 par an).&lt;/p&gt;

&lt;p&gt;Merci à ceux qui m&#39;ont signalé le problème.&lt;/p&gt;
</description>


	<comments>http://log.lateralis.org/posts/le_retour_du_retour/#comments</comments>

</item>

</channel>
</rss>

