La sécurité ne repose pas sur le secret de l'algorithme

La sécurité par l'obscurité, un piège

À l'inverse du principe de Kerckhoffs, une tentation revient sans cesse chez les concepteurs pressés : garder l'algorithme secret en espérant que « personne ne devinera comment ça marche ». On appelle cela la sécurité par l'obscurité (en anglais security through obscurity).

De quoi s'agit-il

La sécurité par l'obscurité consiste à faire reposer la protection d'un système sur le secret de son fonctionnement plutôt que sur le secret d'une clé. On mise sur l'ignorance de l'attaquant : tant qu'il ne connaît pas la recette, il ne pourra rien faire.

C'est exactement ce que le principe de Kerckhoffs interdit.

Pourquoi cela échoue toujours

L'histoire de la cryptographie est un cimetière d'algorithmes secrets. Trois raisons expliquent ces échecs.

  • Le secret finit toujours par fuiter. Un logiciel se décompile, une puce se rétro-conçoit, un employé parle, un document est volé. Un algorithme déployé à grande échelle ne reste jamais secret longtemps.
  • L'absence d'audit cache des failles. Un algorithme que personne n'examine n'est pas plus sûr : il est simplement plein de failles que personne n'a encore corrigées. Le secret n'élimine pas les défauts, il les dissimule jusqu'au jour fatal.
  • L'effondrement total. Le jour où le secret est révélé, il n'y a plus aucune protection. Tout s'effondre d'un coup, et il faut tout reconstruire.

Comparons les deux approches :

+---------------------+----------------------+----------------------+
|                     | Securite par la CLE  | Securite par         |
|                     | (Kerckhoffs)         | l'OBSCURITE          |
+---------------------+----------------------+----------------------+
| Algorithme          | public, audite       | secret, non audite   |
| Ce qu'on protege    | la cle seule         | tout le mecanisme    |
| Si le secret fuite  | on change la cle     | tout s'effondre      |
| Failles cachees     | traquees par tous    | ignorees jusqu'au    |
|                     |                      | jour de la fuite     |
| Verdict             | solide               | illusoire            |
+---------------------+----------------------+----------------------+

Des exemples bien réels

  • L'A5/1 du GSM. L'algorithme qui chiffrait les communications des téléphones mobiles a été conçu en secret dans les années 1980. Une fois divulgué par rétro-ingénierie, il s'est révélé truffé de faiblesses et a été cassé, exposant des millions de conversations.
  • Les chiffrements propriétaires. De nombreux systèmes « maison » gardés secrets (badges d'accès, consoles, DVD) ont été brisés en quelques semaines dès que des chercheurs ont mis la main dessus. Le secret n'avait fait que retarder l'inévitable.

La nuance à retenir

L'obscurité n'est pas totalement inutile : cacher la version d'un logiciel ou la structure interne d'un réseau peut ralentir un attaquant. Mais c'est une couche supplémentaire, un bonus, jamais la base. Un système dont toute la sécurité repose sur l'obscurité est un système sans sécurité.

En résumé

La sécurité par l'obscurité mise sur le secret de l'algorithme plutôt que sur celui de la clé. Elle échoue toujours : le secret finit par fuiter (rétro-ingénierie, fuite), l'absence d'audit laisse des failles cachées, et le jour de la révélation tout s'effondre. Des cas réels comme l'A5/1 du GSM le confirment. L'obscurité peut être une couche défensive supplémentaire, jamais le fondement de la sécurité.