Les utilisateurs de Linux citent souvent les avantages en matière de sécurité comme l'une des raisons de préférer les logiciels open source. Étant donné que le code est ouvert à tous, il y a plus d'yeux à la recherche de bogues potentiels. Ils se réfèrent à l'approche inverse, où le code n'est visible que pour les développeurs, comme la sécurité par l'obscurité. Seules quelques personnes peuvent voir le code, et les personnes qui souhaitent tirer parti des bogues ne figurent pas sur cette liste.
Bien que ce langage soit courant dans le monde open source, ce n'est pas un problème spécifique à Linux. En fait, ce débat est plus ancien que les ordinateurs. Alors la question est-elle réglée ? Est-ce qu'une approche en fait plus sûr que l'autre, ou est-il possible qu'il y ait du vrai dans les deux ?
La sécurité par l'obscurité est le recours au secret comme moyen de protéger les composants d'un système. Cette méthode est partiellement adoptée par les entreprises derrière les systèmes d'exploitation commerciaux les plus performants d'aujourd'hui :Microsoft, Apple et, dans une moindre mesure, Google. L'idée est que si les mauvais acteurs ne savent pas qu'une faille existe, comment peuvent-ils en profiter ?
Vous et moi ne pouvons pas jeter un œil au code qui fait fonctionner Windows (à moins que vous n'ayez une relation avec Microsoft). Il en va de même pour macOS. Google ouvre les composants de base d'Android, mais la plupart des applications restent propriétaires. De même, Chrome OS est largement open source, à l'exception des éléments spéciaux qui séparent Chrome de Chromium.
Comme nous ne pouvons pas voir ce qui se passe dans le code, nous devons faire confiance aux entreprises lorsqu'elles disent que leur logiciel est sécurisé. En réalité, ils peuvent avoir la sécurité la plus solide du secteur (comme cela semble être le cas avec les services en ligne de Google), ou ils peuvent avoir des trous flagrants qui persistent de manière embarrassante pendant des années.
La sécurité par l'obscurité, à elle seule, n'assure pas la sécurité d'un système. Ceci est considéré comme une évidence dans le monde de la cryptographie. Le principe de Kerckhoff soutient qu'un cryptosystème doit être sécurisé même si les mécanismes tombent entre les mains de l'ennemi. Ce principe remonte à la fin des années 1800.
La maxime de Shannon a suivi au 20e siècle. Il dit que les gens devraient concevoir des systèmes en partant du principe que les adversaires se familiariseront immédiatement avec eux.
Dans les années 1850, le serrurier américain Alfred Hobbs a montré comment sélectionner des serrures à la pointe de la technologie fabriquées par des fabricants qui affirmaient que le secret rendait leurs conceptions plus sûres. Les gens qui gagnent leur vie (pour ainsi dire) en crochetant des serrures deviennent vraiment doué pour crocheter les serrures. Ce n'est pas parce qu'ils n'en ont jamais vu auparavant qu'il est impénétrable.
Cela peut être vu dans les mises à jour de sécurité régulières qui arrivent sur Windows, macOS et d'autres systèmes d'exploitation propriétaires. S'il suffisait de garder le code privé pour cacher les failles, elles n'auraient pas besoin d'être corrigées.
Heureusement, cette approche n'est qu'une partie du plan défensif adopté par ces entreprises. Google récompense les personnes qui découvrent des failles de sécurité dans Chrome, et ce n'est pas le seul géant de la technologie à utiliser cette tactique.
Les entreprises technologiques propriétaires dépensent des milliards pour sécuriser leurs logiciels. Ils ne comptent pas entièrement sur la fumée et les miroirs pour éloigner les méchants. Au lieu de cela, ils s'appuient sur le secret comme première couche de défense, ce qui ralentit les attaquants en leur rendant plus difficile l'obtention d'informations sur le système qu'ils cherchent à infiltrer.
Le fait est que parfois la menace ne vient pas de l'extérieur du système d'exploitation. La sortie de Windows 10 a montré à de nombreux utilisateurs qu'un comportement indésirable peut provenir du logiciel lui-même. Microsoft a intensifié ses efforts pour collecter des informations sur les utilisateurs de Windows afin de monétiser davantage son produit. Ce qu'il fait avec ces données, nous ne le savons pas. Nous ne pouvons pas jeter un oeil au code pour voir. Et même lorsque Microsoft s'ouvre, cela reste délibérément vague.
Lorsque le code source est public, plus d'yeux sont disponibles pour repérer les vulnérabilités. S'il y a des bogues dans le code, pense-t-on, quelqu'un les repérera. Et ne pensez pas à introduire une porte dérobée dans votre logiciel. Quelqu'un le remarquera et vous appellera.
Peu de gens s'attendent à ce que les utilisateurs finaux voient et donnent un sens au code source. C'est aux autres développeurs et experts en sécurité de le faire. Nous pouvons dormir sur nos deux oreilles en sachant qu'ils font ce travail en notre nom.
Ou pouvons-nous? Nous pouvons établir un parallèle facile avec le gouvernement. Lorsqu'une nouvelle législation ou de nouveaux décrets sont adoptés, il arrive parfois que des journalistes et des professionnels du droit examinent le matériel. Parfois, cela passe sous le radar.
Des bugs tels que Heartbleed nous ont montré que la sécurité n'est pas garantie. Parfois, les bogues sont si obscurs qu'ils passent des décennies sans être détectés, même si le logiciel est utilisé par des millions de personnes (pour ne pas dire que cela ne se produit pas non plus sur Windows). Cela peut prendre un certain temps pour découvrir des bizarreries telles que le fait d'appuyer 28 fois sur la touche Retour arrière pour contourner l'écran de verrouillage. Et ce n'est pas parce que beaucoup de gens peuvent regarder du code qu'ils le font. Encore une fois, comme nous le voyons parfois au gouvernement, les documents publics peuvent être ignorés simplement parce qu'ils sont ennuyeux .
Alors pourquoi Linux est-il largement considéré comme un système d'exploitation sécurisé ? Bien que cela soit en partie dû aux avantages de la conception de style Unix, Linux bénéficie également du grand nombre de personnes investies dans son écosystème. Avec des organisations aussi variées et diverses que Google et IBM, le département américain de la Défense et le gouvernement chinois, de nombreuses parties investissent dans la sécurisation du logiciel. Étant donné que le code est ouvert, les utilisateurs sont libres d'apporter des améliorations et de les soumettre à d'autres utilisateurs Linux pour en bénéficier. Ou ils peuvent garder ces améliorations pour eux-mêmes. En comparaison, Windows et macOS sont limités aux améliorations provenant directement de Microsoft et d'Apple.
De plus, alors que Windows peut être dominant sur les ordinateurs de bureau, Linux est largement utilisé sur les serveurs et autres éléments matériels critiques. De nombreuses entreprises aiment avoir la possibilité de faire leurs propres corrections lorsque les enjeux sont aussi élevés. Et si vous êtes vraiment paranoïaque ou avez besoin de garantir que personne ne surveille ce qui se passe sur votre PC, vous ne pouvez le faire que si vous pouvez vérifier ce que fait le code sur votre machine.
Il existe un consensus général sur le fait que les algorithmes de chiffrement doivent être ouverts, tant que les clés sont privées. Mais il n'y a pas de consensus sur le fait que tous les logiciels seraient plus sûrs si le code était ouvert. Ce n'est peut-être même pas la bonne question à poser. D'autres facteurs ont une incidence sur la vulnérabilité de votre système, comme la fréquence à laquelle les failles sont découvertes et la rapidité avec laquelle elles sont corrigées.
Néanmoins, la nature fermée de Windows ou de macOS vous met-elle mal à l'aise ? Les utilisez-vous quand même ? Considérez-vous cela comme un avantage et non comme un inconvénient ? Intervenez !