Security through obscurity

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Security through obscurity (bezpečnost skrze utajení) je v informatice označení používané v počítačové bezpečnosti. Používá utajení (například návrhu, implementace, atd.) k zajištění bezpečnosti. Systém využívající toho principu však může obsahovat programátorské chyby i bezpečnostní rizika, ale jeho tvůrce věří, že pokud tyto bezpečnostní chyby nejsou známy, tak je nepravděpodobné, že by na ně útočník přišel. Opačný přístup se nazývá Secure by design (bezpečné díky návrhu). Velká část reálných projektů obsahuje kombinaci obou dvou přístupů.

Popis[editovat | editovat zdroj]

Bezpečnost skrze utajení je důvěra v to, že jakýkoliv systém může být bezpečný po dobu, kdy nikomu kromě lidí, kteří ho implementovali, není dovoleno zjistit nic o jeho vnitřních mechanismech. Například schovávání hesla do binárního souboru, či skriptu s tím, že předpokládáme, že ho nikdy nikdo nenajde, je základní případ bezpečnosti skrze utajení.

Tento přístup je upřednostňován většinou byrokratických organizaci (vlády, armádní složky a průmyslové podniky) a bývala využívána jako hlavní prostředek "pseudobezpečnosti" v počítačových systémech.

S rozšířením open source systémů, síťových připojení, většímu obecnému pochopení programovacích technik a rozšíření relativně výkonných výpočetních systémů, se značně snížila bezpečnost těchto systémů. Základem vždy bylo, že váš systém musíte znát jen do té míry, jak je nutné, tedy co nejzákladněji. Pokud uživatel neví, jak provést nějakou nebezpečnou operaci, pak neexistuje nebezpečí. Ovšem takto je to pouze teoreticky. Bezpečnost se opírá o důvěru v úzký okruh lidí, například zaměstnanců. Pokud tento zaměstnanec odejde pracovat jinam, například kvůli lepšímu platu, toto tajemství odchází s ním. A jakmile jsou jednou tyto tajné informace vyzrazeny, systém přestává být bezpečný.

V dnešní době také čím dál víc běžných uživatelů potřebuje znát detaily, jak daný systém funguje, čímž se opět snižuje účinnost bezpečnosti skrze utajení. I uživatelé mají dnes více pokročilých znalostí, jak pracují operační systémy atd. a dokáží si domyslet tajné věci, čímž vlastně obcházejí to, že uživatel ví, jen to nejzákladnější, co je potřeba. Což je základní myšlenka bezpečnosti skrze utajení a systémy tedy přestávají být bezpečné.

Ukládání hesel do stínových souborů (v Linuxu např. soubor s hesly /etc/shadow, ke kterému má přístup pouze root) je někdy vykládáno jako použití bezpečnosti skrze utajení. Ale to není pravda, protože bezpečnost skrze utajení je striktně vázána na utajení algoritmů nebo technik. V tomto případě se ale jedná o bezpečnost skrze zakázání přístupu k těmto datům.

Pro a proti[editovat | editovat zdroj]

Bezpečnost skrze utajení způsobuje velké kontroverze, které budou dále rozebrány jako argumenty pro a proti jejímu používání.

Pro[editovat | editovat zdroj]

Je velice těžké, až nemožné navrhnout naprosto dokonale bezpečný systém. I když spoléhat se pouze na bezpečnost skrze utajení je většinou velice slabá obrana, je možné použít tuto strategii v kombinaci s dalšími a tím značně snížit možnost zjištění bezpečnostních rizik. Jde vlastně o zamezení možnosti rychle zjistit možné chyby v systému a mít tedy více času na opravu vzniklých chyb.

Dále pokud o chybě víme, je možné tuto chybu použít k detekci nebo zastrašení potencionálního útočníka. Například pokud útočník zjistí v síti počítač, který nemá opravenou známou chybu, útočník se musí rozhodnout, zda této chyby využije nebo ne. Pokud by totiž tento počítač byl nastaven na detekování využití této chyby, může na to reagovat zablokování systému, monitorováním útočníka a jeho vystopováním, jeho odpojením a podobně, což také zvyšuje potřebný čas a rizika útoku.

Nicméně většina odborníků, i těch kteří jsou zastánci bezpečnosti skrze utajení, se shodne, že bezpečnost skrze utajení by nikdy neměla být použita jako hlavní bezpečnostní hledisko. V nejlepším případě jako druhé hledisko.

Proti[editovat | editovat zdroj]

Například kryptografické systémy by neměly vyžadovat utajení, protože pokud by například útočník zjistil jak je navrhnut, měl by prakticky přístup ke všemu. Měl by být závislý pouze na nějakém specifickém klíči (například heslo).

Pokud například zamkneme dům a schováme klíč pod rohožku, spoléháme vlastně na bezpečnost skrze utajení. Útočník se do domu může dostat schovaným klíčem, pokud ho najde. My spoléháme že ho nenajde. Ovšem navíc zloději většinou znají pravděpodobná místa, kam se obvykle schovává klíč. Takže je pravděpodobné, že klíč najdou a do domu se dostanou s menším úsilím, než kdyby použili jinou metodu.

Navíc v minulosti se několikrát stalo, že tajné detaily byly omylem nebo úmyslně odhaleny (například prolomení GSM šifrování, WEP a mnoha dalších pomocí reverzního inženýrství). Zjištění nějaké chyby v určitém systému může být taky předmětem obchodů na černém trhu. Chyba může být tedy už dlouho využívána ke kriminální činnosti a výrobce systému o tom nemusí vědět.

Linusovo pravidlo, pojmenované po Linusu Torvaldsovi, říká, že mnoho očí zmenšuje možnost výskytu chyby. Tedy pokud je kód volně k dispozici a je hodně lidí, co ho zkoumají, je velice pravděpodobné, že někdo, případně i více lidí, tuto chybu odhalí a nahlásí, tudíž bude dříve veřejně známa a opravena.

Vývojáři programů využívajících bezpečnost skrze utajení mohou navíc zatajit jim známou chybu, kvůli spokojenosti zákazníků a také finanční stránce věci. Může být velice těžké a časově a finančně náročné nějaké chyby opravit. Takže je lepší chybu zatajit, doufat, že se na ní nepřijde a vydávat svůj produkt za bezpečný.

Dopad open source[editovat | editovat zdroj]

Open source software (tj. software s otevřeným zdrojovým kódem) poskytuje veřejně své zdrojové kódy, takže nejen bezpečnost skrze utajení nepoužívá, ale ani nemůže. Avšak také může obsahovat bezpečnostní chyby (například Morrisův červ). Argumentem proti je to, že vývojáři mohou být méně důkladní při kontrole vydávaného kódu. Tato práce je totiž považována za méně zábavnou a méně oceňovanou.

Na druhou stranu přesto, že zde není finanční stimul k opravě chyb, neznamená to, že by nebyla žádná motivace opravovat. Dokonce protože jsou kódy volně k dispozici, může si každý tyto chyby opravit sám a případně tyto opravy dál distribuovat. Je těžké tento fakt dokázat, ovšem výzkumy ukazují, že open source software má více objevených chyb, ale i jejich rychlejší nalezení, rychlejší opravení a rychlejší distribuci těchto oprav. Jedna studie dokonce tvrdí, že ve zdrojovém kódu Linuxu je průměrně 0,17 bugů na 1000 řádků kódu, naproti tomu v komerčních, non-open source programech je průměrně 20-30 bugů na 1000 řádků.[1]

Reference[editovat | editovat zdroj]

  1. Keith Curtis: After the Software Wars

V tomto článku byl použit překlad textu z článku Security through obscurity na anglické Wikipedii.

Související články[editovat | editovat zdroj]