Sécurité: par confiance ou obscurantisme

Quand on fait un programme, il y a deux possibilités. On donne les sources afin qu’elles puissent être analysées ou on garde le tout secret.

En exemple concret on peut citer Linux pour le premier et Microsoft pour le second.

Il existe en réalité une troisième solution, on utilise du code libre avec obligation de le montrer, et on cache le reste. Et devinez qui serait un exemple de ce cas? Mac OS !

Alors quelle solution est la meilleure ?

Réponse courte (ctb ou cvb si on veut être poli) : aucune.

Voilà fin de l’article, merci d’être venu.

Bon OK, on va faire la version longue.

Dans un cas comme dans l’autre il y a une histoire de confiance.

  • Cas un : je partage les sources.

Soit tout le monde se dit : « Les autres ont du corriger les failles » soit quelqu’un aura bien l’idée de les lire.
Si personne ne les consulte, alors le partage n’aura servi à rien.
En revanche si elles sont lues, là encore deux possibilités.

Si la personne est gentille : elle signale la faille, voir même fournit le correctif.
Si la personne est un gros nucl3arsnake connard : elle utilise la faille.

  • Cas deux : je garde tout secret.

Ici pas le choix, on fait confiance et on espère que les programmeurs ont bien bossés.
On recevra donc uniquement les mises à jour avec explication du correctif (et encore, si ce n’est pas un « améliorer la sécurité ») dans le meilleur des cas, et dans le pire ont lira un article d’un chercheur exaspéré qui fuitera une faille.

  • Dans un cas comme dans l’autre…

Il faut faire confiance, soit à l’éditeur, soit aux utilisateurs.
Les deux systèmes ont connu des failles.

Microsoft nous le prouve quasi quotidiennement, mais pour sa défense il doit aussi couvrir un parc très varié.

De l’autre côté la récente faille découverte sur Mac OS X 10.9.1 était dût à une erreur d’écriture sur du code libre. (On passera sur le fait que ça veuille dire que Apple — entre autres — ne relit pas du code aussi crucial.)

  • Personnellement :

J’ai lu du code libre rarement, parce que je ne suis pas très bon mauvais développeur (je serais capable de relever des erreurs là où il n’y en aurait pas).
En revanche je sais que je préfère faire confiance à un logiciel visible par tous.

Souvent la traçabilité est bien meilleure (par exemple sous Fedora j’avais un problème avec le yum update, j’ai trouvé directement le pourquoi et corriger <troll> en installant Debian </troll> ; alors que sous Windows j’ai 14 mises à jour et une qui bloque à 32 %, mais pas d’information), et ensuite si je veux l’adapter à mes besoins j’ai directement accès à tout.

Maintenant il faut aussi relativiser, une entreprise préfère parfois utilisé un logiciel privateur aux sources fermées, car en cas de problème elle se défausse directement à coup de « Comment je pouvais le savoir !? ».

Et vous, vous préférez quelle solution ? Est-ce qu’elle dépend de votre utilisation/logiciel souhaitée ?

4 Comments

  1. wilfried18

    12 mars 2014 at 17 h 03 min

    Moi , sur ordinateur, j’utilise quasiment du libre ou opensource (code ouvert) (dans la limite du possible)non pas pour contribuer au code car je suis pas développeur mais remonter les bugs.

    • nucl3arsnake

      12 mars 2014 at 19 h 33 min

      Chose possible même avec un logiciel fermé 🙂

  2. Rob Lemon

    12 mars 2014 at 19 h 08 min

    Personnellement, je suis loin d’avoir un niveau suffisamment avancé en programmation pour pouvoir relever des erreurs. Mais je préfère de loin faire confiance à un développeur qui sait avoir assez bien bossé pour rendre son code dispo, et qui demande explicitement qu’on lui envoie les failles: c’est une relation saine entre développeur et utilisateur.
    Mais il me semble certains logiciels propriétaire son tout autant à l’écoute des utilisateurs (même si je n’ai jamais eu l’occasion de signaler un bug à un éditeur à source fermées, pour cause de procédure trop lourde).

    • nucl3arsnake

      12 mars 2014 at 19 h 36 min

      Après il y en a qui laisse le code et quand tu signal on t’envoie chier ^^.

      Pour les procédures trop lourdes souvent un simple contact@blabla suffit souvent (il passe ça en procédure interne ^^).
      L’intêret de la procédure lourde c’est la traçabilité, par contre regarde un article “procédure PSD commentaire” sur google tu va voir que ça sert aussi parfois a masquer des info ^^”.