3.2 GNOME Keyring
Total Page:16
File Type:pdf, Size:1020Kb
Masarykova univerzita Fakulta informatiky Systémy pro ukládání autentizačních informací Bakalářská práce Radek Jirovský Brno, Jaro 2012 Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Radek Jirovský Vedoucí práce: RNDr. Jan Kasprzak ii Poděkování Rád bych na tomto místě poděkoval svému vedoucímu, doktoru Janu Kasprzakovi, za zajímavý námět na bakalářskou práci a věnovaný čas. Dále bych chtěl poděkovat své rodině za poskytnutou podporu a zázemí. iii Shrnutí V této práci popisuji problematiku uchovávání autentizačních informací a porovnávám vybrané systémy na platformě Linux (Figaro©s Password Manager 2, GNOME Keyring, KeePassX, KWallet a pwsafe). Analyzuji je jak z hlediska uživatelského rozhraní, tak z hlediska bezpečnosti ± implementované bezpečnostní mechanizmy a použité algoritmy. Součástí práce je implementace vlastní konzolové aplikace pro správu autentizačních informací. Při vývoji jsem vycházel z poznatků získaných při zkoumání existujících systémů. Výsledkem je jednoduchá C++ aplikace s názvem Safe Storage s přehledným strukturovaným kódem, která imple- mentuje základní funkcionalitu pro organizaci hesel. Aplikace využívá symetrické šifrování AES-256. iv Klíčová slova uchovávání hesel, správa hesel, bezpečnost, Linux, symetrická kryptografie, CLI aplikace v Obsah 1 Úvod..........................................................................................................3 2 Uchovávání autentizačních informací................................................6 2.1 Terminologie..............................................................................................6 2.2 Zamezení úniku tajných informací.........................................................7 3 Přehled vybraných systémů..................................................................9 3.1 Figaro©s Password Manager 2 ................................................................10 3.1.1 Uživatelské rozhraní a funkce......................................................................10 3.1.2 Generátor hesel..............................................................................................11 3.1.3 Formát dat.......................................................................................................11 3.1.4 Export/Import...............................................................................................12 3.1.5 Manipulace s hesly........................................................................................12 3.1.6 Bezpečnostní problémy a nedostatky ........................................................12 3.2 GNOME Keyring.....................................................................................14 3.2.1 Uživatelské rozhraní a funkce......................................................................14 3.2.2 Generátor hesel..............................................................................................15 3.2.3 Formát dat......................................................................................................16 3.2.4 Export/Import...............................................................................................16 3.2.5 Manipulace s hesly........................................................................................16 3.2.6 Nedostatky a bezpečnostní problémy........................................................17 3.3 KeePassX...................................................................................................18 3.3.1 Uživatelské rozhraní a funkce.....................................................................18 3.3.2 Generátor hesel..............................................................................................19 3.3.3 Formát dat......................................................................................................20 3.3.4 Export/Import...............................................................................................20 3.3.5 Manipulace s hesly........................................................................................21 3.3.6 Nedostatky a bezpečnostní problémy........................................................21 3.4 KWallet.....................................................................................................22 3.4.1 Uživatelské rozhraní a funkce.....................................................................22 3.4.2 Generátor hesel..............................................................................................23 3.4.3 Formát dat......................................................................................................23 3.4.4 Export/Import...............................................................................................23 3.4.5 Manipulace s hesly........................................................................................24 3.4.6 Nedostatky a bezpečnostní problémy........................................................24 3.5 pwsafe.......................................................................................................25 3.5.1 Uživatelské rozhraní a funkce.....................................................................25 3.5.2 Generátor hesel..............................................................................................27 3.5.3 Formát dat......................................................................................................27 3.5.4 Export/Import...............................................................................................27 3.5.5 Manipulace s hesly........................................................................................28 3.5.6 Nedostatky a bezpečnostní problémy........................................................28 3.6 Přehledová tabulka.................................................................................29 4 Vlastní aplikace.....................................................................................30 4.1 Uživatelské rozhraní................................................................................30 1 4.2 Popis zdrojového kódu...........................................................................32 4.3 Formát dat................................................................................................33 4.4 Šifrování a bezpečnost............................................................................33 4.5 Web projektu............................................................................................33 5 Závěr........................................................................................................34 5.1 Zhodnocení existujících systémů...........................................................34 5.2 Shrnutí vlastní aplikace..........................................................................35 Seznam zdrojů...........................................................................................36 2 1 Úvod Lidé používají čím dál více služeb vyžadujících autentizaci, nejčastěji uživatelským jménem a heslem. Ať už se jedná o oblast IT nebo např. bankovnictví. Navíc bývá doporučováno používat pro každou službu jiná hesla. V praxi se spíše setkávám s tím, že uživatelé volí opakovaně stejné heslo. To aby nemuseli řešit, ke které službě patří jaké. Dalším nešvarem je také volba jednoduchých hesel. Podle mých zkušeností běžní uživatelé nejčastěji volí hesla vycházející z osobních údajů a čísel týkajících se jejich osoby ± kombinace adres, dat narození nebo výročí, čísel telefonu nebo již používaných hesel apod. Snaží se jakkoliv vyhnout nutnosti pamatovat si desítky různých hesel. Pokud má jít navíc o bezpečná hesla (8 a více znaků, náhodné kombinace), je jejich zapamatování téměř nemožné. Tento problém uživatelé, kteří jsou nuceni volit bezpečná hesla, přirozeně řeší zapisováním hesel. Ať už na papír nebo v elektronické podobě do textového souboru. Tím se sice eliminují jednoduchá hesla, ale ta bezpečná jsou na druhou stranu relativně volně přístupná (papírek nalepený na monitoru, v lepším případě soubor hesla.txt na Ploše operačního systému). Řešením těchto problémů jsou právě systémy pro správu a uchovávání autentizačních informací. Pomocí jednoho pokud možno silného hesla jsou chráněna všechna ostatní hesla. Ta jsou šifrována pomocí symetrické kryptografie. V současné době existují dvě základní skupiny těchto systémů. V první skupině jsou systémy určené pro ruční správu hesel. Uživatel do nich sám podle uvážení vkládá používané autentizační údaje, třídí je do skupin, zapisuje si k nim poznámky apod. Pokud chce tyto údaje použít v nějaké aplikaci, obvykle je to vyřešeno jejich zkopírováním do systémové schránky. Uživatel je pak vloží na vhodné místo v cílové aplikaci. Často mají systémy v této skupině vylepšenou podporu pro přihlašovací údaje na webových stránkách, 3 1 Úvod což je obvykle nejčastější oblast vyžadující autentizaci. Systém pak například dokáže otevřít webovou stránku patřící k daným autentizačním údajům. Druhou skupinu tvoří systémy pro správu autentizačních informací integrované do operačního systému. Tyto systémy pak poskytují bezpečné úložiště autentizačních údajů pro další aplikace přes aplikační rozhraní. Toto rozhraní má obvykle každý systém specifické. V současnosti však existuje návrh univerzálního rozhraní Secret Service API1, které by poskytovalo jednotný přístup k bezpečnému úložišti bez ohledu