• [^] # Re: Les chinois du FBI...

    Posté par (site web personnel) . En réponse au journal Backdoor dans OpenBSD ?. Évalué à 6.

    À mon humble avis, le problème avec un langage comme le C, c'est que tu as vite fait de passer à coté d'une déclaration tout à fait valide, mais qui ne fait pas exactement ce que tu penses au premier regard.

    Cela est du aux symboles identiques utilisés pour des sens différents, quelques exemples :
    * a = b et a == b
    * a & b, a && b, a = &b
    * int *a, a = *b, a = b * c

    C'est surtout un problème de perception visuel, sauf à sciemment se concentrer, on ne lie pas en déchiffrant symbole par symbole, mais par groupe, comme on lit des mots et pas une succession de lettres. Si en plus un commentaire à coté vient renforcer ce biais cognitif en te confortant dans l'idée que l'incantation de C que tu vois là fait bien ce que tu imagines, t'as encore moins de chance de la détecter.

    Je doute que Dennis Ritchie avait ces problématiques cognitives en tête quand il à conçu C. À moins qu'il ait été payé par la NSA pour pondre un langage qui permettrait justement d'introduire facilement des backdoors grâce à sa syntaxe ambiguë (pour l'humain, s'entend).

    Une syntaxe moins susceptible d'entraîner l'erreur pourrait être, par exemple à la place des usages du &:
    * a and b (et logique)
    * a & b (et logique bit à bit)
    * a = @b (adresse de b)

    Mais bon, maintenant c'est trop tard. :)