Bezpečnost počítačových systémů je jednou z věcí, o kterých se v současnosti hodně mluví. Zejména v souvislosti s Internetem. Počítače připojené k Internetu jsou vystaveny většímu nebezpečí než ostatní. Operační systém UNIX sice patří mezi nejstarší systémy, ale zároveň mezi systémy, u kterých byl na bezpečnost kladen zřetel. V následující sérii článků popíšu některé prvky bezpečnosti a jejich potenciální slabá místa.
S prvním prvkem bezpečnosti se uživatel setká hned na začátku své práce v podobě přihlašovací procedury. Ta musí být dostatečně silná, aby zamezila neoprávněnému přístupu k systému. Autentizace uživatele spočívá na uživatelově znalosti, v tomto případě znalosti hesla. Je tedy na místě říci, která hesla jsou špatná a která dobrá.
Špatné heslo je takové, které je snadno uhodnutelné nebo odvoditelné. Týká se to především následujících příkladů:
Dobré heslo naopak splňuje následující požadavky:
Takto specifikované heslo je však obtížně zapamatovatelné. Jak dlouho si budete pamatovat heslo wDf78!@ ? Můžeme tedy zvolit heslo, pro které máme nějakou mnemotechnickou pomůcku. Např. 2Brn2B? (To be or not to be?), první písmena druhé sloky oblíbené písně, značky chemických prvků, jejichž atomová čísla jsou dělitelná 7 atd.
V dřívějších systémech byla hesla uložena nezašifrovaná v souborech přístupných pouze superuživateli. V současné době používá UNIX k ochraně hesel algoritmus crypt(3). Jedná se o modifikovaný algoritmus DES doplněný o metodu solení.
Heslo se zpracovává následovně: Systém získá heslo ze vstupu. Z každého písmene sebere dolních 7 bitů. Pak se vygenerují dva tisknutelné znaky (sůl), které se použijí na permutaci bitů v hesle. Algoritmus má tedy 7x8=56 bitů klíče, které se použijí k zašifrování nulového 64bitového řetězce modifikovaným algoritmem DES. Takto vzniklý šifrový obraz hesla se uloží spolu s vygenerovanou solí, která tvoří předponu takto vzniklého obrazu, do souboru s hesly.
Autentizace uživatele je pak totožná s výše popsaným algoritmem, s tím, že na konci algoritmu je právě vytvořený šifrový obraz porovnán s uloženým obrazem. Jestliže jsou tyto obrazy totožné, pak uživatel zadal správné heslo.
Potenciální útočník má pak několik možností, jak takové heslo zjistit:
Obranou proti útokům na hesla je především volba dobrého hesla. Superuživatel může použít upravený program passwd, který odmítá slabá hesla.
Útok na hesla jejich dešifrováním je možný dvěma způsoby.
Možná se zdá, že tady dávám rady útočníkům, jak narušit systém. Pokud však program crack používá superuživatel, vezme tím útočníkům možnost objevit slabá hesla, protože je před tím objevil sám. (Pozn. pro administrátory: nespustíte-li crack vy, spustí ho určitě někdo jiný!) Procento takovým způsobem odhalených hesel může být poměrně vysoké, zvláště pokud nejsou uživatelé poučeni o volbě správných hesel.
Se vzrůstajícím výkonem počítačů je stále jednodušší se pokoušet o útok na hesla hrubou silou nebo slovníkovým útokem. Proto je důležité uchovat v tajnosti i šifrové obrazy hesel. Tyto obrazy jsou pak uloženy v souboru /etc/shadow, který je čitelný pouze superuživateli. Tím zamezíme možnosti slovníkového útoku na hesla, protože obrazy hesel nejsou dostupné.
V současnosti většina počítačových sítí pracuje na Ethernetu. Všechna data jsou posílána přes přenosovou sběrnici, kterou mají možnost všechny připojené stanice odposlouchávat. Prostředí, kde by byly pouze UNIXové počítače spravované důvěryhodným správcem, by se dalo považovat po této stránce za celkem bezpečné. Většinou tomu tak není a UNIXové počítače slouží jako servery jiným operačním polosystémům, jako jsou MS-DOS nebo Windows 1.0 - 95. Protože tyto systémy nemají žádný mechanismus řízení přístupu k systémovým prostředkům, je pro neprivilegovaného uživatele jednoduché takový počítač zneužít k odposlouchávání provozu v síti. Tento problém je hardwarově řešitelný záměnou tenkého ethernetu nebo strukturované kabeláže s hubem za strukturovanou kabeláž s přepínačem. Toto řešení je finančně velmi náročné a přitom existují programy, které umožnují těmto rizikům předcházet použitím kryptografie. Mezi nejznámější programy tohoto druhu patří systém Kerberos a v poslední době především Secure Shell.