Bezpečnost skrze neznalost. Security through Obsucrity. Proč je otevřené u software bezpečnější než uzavřené?

Hned na začátek – ano otevřené je bezpečnější než uzavřené a není o tom pochyb, protože v software je nejbezpečnější systém světa OpenBSD, kam nesmí jediný řádek zavřeného kódu. A teď k otázce proč.

Pro lidi, kteří nejsou z oboru a mnohdy dokonce pro lidi z IT oboru je lepší mluvit v přirovnáních, protože IT je velmi abstraktní obor.

Proto si teď vezmeme velmi jednoduchý příklad z reálného světa, který bude každý chápat. Tím příkladem budiž budova vězení, které z principu musí být velmi dobře zabezpečeno. Nechceme přeci aby vězni utíkali jako krysy z potápějící se lodi. Logika velí všechno schovat, utajit, zakrýt. Včetně plánu vězení. Aby nikdo nic nevěděl, neznal a tudíž nemohl využít znalost k útěku. Ale vězni mají velmi velmi mnoho času. Stejně jako ho mají takzvaní Black Hat Hackeři. V reálu crackeři. Lidé, kteří pronikají do systémů a škodí. Jejich hlavní výhodou je neviditelnost a hromady času, které stejně bezpečnostní průnik do firmy většinou zabírá.

Zpět k plánů vězení. Jistě si vezmeme jako správní architekti a budoucí stavitelé vězení k ruce bezpečnostní poradce. Vezmeme si ale k ruce jen hrstku poradců, kterým ukážeme plány a v závislosti na jejich času a zkušenostech nám pomohou odhalit nedostatky. Následně všechny plány zamažeme černou barvou. V software je to ekvivalent zkompilování kódu a znemožnění přístupu ke zdrojovým kódům. Tím jsme se ale chyb a bezpečnostních nedostatků nezbavili. Pořád tam jsou. A oni vězni, kteří mají hromady času, je pro zábavu a pro plán útěku odhalují a sdílejí. V žádném případě jsme naše vězení neudělali bezpečnější tím, že neexistuje jeho plán.

A teď naopak. Dáme naše plány vězení veřejně na internet. Tam široká odborná komunita architektů vězení má možnost vyjadřovat se k potenciálním nebezpečím, které z plánů vyplývají. A vyjadřují se neustále k modifikacím a stavebním úpravám našeho vězení, protože my stavební úpravy provádíme často. Práve kvůli zvýšení bezpečnosti a díky radám z komunity. A kupodivu do této komunity mohou patřit bývalí trestanci z jiných věznic a také nám mohou radit co kde jak změnit, jak by na systém útočili oni, kde vidí nejslabší místo. Toto se nestane, pokud budeme utajovat a zatajovat.

Dobře – vězení není ideální případ, ale lze vidět, že natření děravé krabice na černo ještě neznamená, že jsem přetřel díry. Lidský mozek totiž říká, že uzavřít systém znamená zabezpečit ho. Přitom je to právě naopak. Na internetu existují desítky mnohé články objasňující tuto problematiku více do hloubky, ale principielně si lze představit hlavně to, že v otevřených kódech se mnohem rychleji hledá a odhaluje potenciální bezpečnostní díra než v kódech uzavřených.

Lepší příklad než ono zmiňované OpenBSD, které mělo za celou existenci systému pouze dvě vzdálené díry oproti Windows a jiným systémům, asi neexistuje. Filozofie Theo de Raadta je, že naprosto vše musí být otevřené, aby se kód dal auditovat. Proto je OpenBSD nejbezpečnějším systémem světa a to je nevyvratitelný fakt. A na základě tohoto předpokladu lze klasifikovat otevřené systémy jako mnohem bezpečnější než systémy uzavřené, které spoléhají na bezpečnost skrze neznalost. Čím více krypticky svou bezpečnostní chybu v systému zakryju, tím méně pravděpodobně ji útočník nalezne. Není to pravda, protože tato chyba stále existuje a oproti otevřenému systému, kde ji může z kódu nareportovat dokonce auditní nástroj, který může použít bezpečnostní expert z druhé strany planety, není taková chyba opravena.

U software platí, že otevřené je bezpečnější než uzavřené, přestože lidský mozek tvrdí opak.