Existe-t-il une « conspiration du code propriétaire » ? s’interroge Joanna Rutkowska. Et ce, particulièrement dans le domaine de la cryptologie ? Et de soulever à nouveau l’éternelle question de la « solidité » d’un programme de chiffrement, de l’éventualité d’une porte dérobée dans son code ou d’une invérifiable erreur dans sa conception.
L’idée n’est ni nouvelle, ni ne relève du fantasme. Il suffit de lancer une requête Google avec la chaîne « Hans Buehler Crypto AG » pour se rappeler que le chiffrement est avant tout une « arme de guerre », et qu’à la guerre, tous les coups sont permis. Mais est-ce une raison, se demande Rutkowska, d’en conclure par l’absurde que tout ce qui n’est pas propriétaire, tout ce qui relève de l’Open Source est par conséquent dénué de chausse-trappe ? C’est là d’ailleurs une rumeur entretenue par les tenants du Libre, qui ne repose généralement sur aucune preuve tangible (ndlr, Rutkowska ne cite absolument pas l’affaire Crypto AG). Et de rappeler un défaut de conception qui avait frappé l’OpenSSL de Debian. Le bug malheureux est toujours possible en raison de l’origine humaine du code. Et rien de ce qui est humain n’est infaillible. Mais, sous-entend la chercheuse, peut-on pousser le raisonnement plus loin ? Peut-on imaginer, avec des techniques de camouflage, instiller une porte dérobée dans le source d’un des multiples parfums Linux par exemple ? Question qui en soulève une autre, qui donc peut affirmer le contraire, qui donc peut assurer avoir lu –et compris- les milliers de lignes d’un TrueCrypt ou GnuPG ? Les programmes propriétaires ne sont pas « plus sûrs » que les logiciels « ouverts », et vice versa. Car affirmer un niveau de sécurité donné implique nécessairement une analyse fine de l’ensemble du processus de chiffrement, une maîtrise de chaque élément. Et tout ceci ne peut se résumer à une simple analyse du source C/C++. Cela implique également un examen attentif de l’architecture du système, de la manière dont interagissent les différents éléments, et ce jusqu’aux couches basses situées parfois bien en dessous du « kernel land ». Des terres où, généralement, l’on ne rencontre pas souvent de langages autres que propriétaires.