Při instalaci WordPressu se setkáte s požadavkem na definici osmi náhodných řetězců, 64 znaků dlouhých, v souboru wp-config.php. Generování těchto klíčů na stránce https://api.wordpress.org/secret-key/1.1/salt/ je prezentováno jako bezpečné. V tomto článku popisuji zásadní bezpečnostní slabinu tohoto postupu. A z odkazu v tomto článku získáte opravdu bezpečný generátor klíčů.
Klíče a iniciační řetězce
Těchto osm řetězců je obvykle nazýváno klíče, anglicky keys. Jsou to ale čtyři klíče (KEYS) a čtyři iniciační řetězce (SALT). Klíč a iniciační řetězec vždy tvoří dvojici, která je používána pro specifický úkol. Detaily o úkolech, které páry klíč + iniciační řetězec plní, najdete v článku (v angličtině) zde.
Problém serveru api.wordpress.org – vytváří SPOF (jediný bod selhání)
Základním problémem je bezpečnost serveru api.wordpress.org, který se stává kritickým bodem. A my nad ním nemáme naprosto žádnou kontrolu. Je-li pod kontrolou například NSA, nemáme šanci se to ani dozvědět. O možnosti s kompromitací něco dělat ani nemluvě. Je nám předloženo, kde máme získat náhodné řetězce pro naši instalaci WordPressu. A já se obávám, že více než 90 % uživatelů to přesně tak bez přemýšlení udělá.
Server api.wordpress.org se nachází v USA. Provozovatelé serverů jsou v USA povinni ze zákona spolupracovat s bezpečnostními složkami státu. To je v zásadě všude stejné. Pro NSA a další bezpečnostní složky USA je ale získat záznamy o IP adresách a klíčích, za tohoto stavu, jen dětskou hrou.
Nejednodušší cestou je získat SSL klíč, používaný pro komunikaci serveru pomocí protokolu HTTPS, a následně sledovat provoz. Je ale i mnoho dalších možností. Generované řetězce mohou být i přímo zaznamenávány a spolu s IP adresou protistrany ukládány do databáze.
Pro specifickou doménu, na které vznikla prezentace WordPressu, stačí vyzkoušet všechny dříve vygenerované klíče. A začít zemí, ve které se nachází IP adresa, ze které přistoupili ke generátoru klíčů.
Pravděpodobně postačí kontrolovat jen období několika posledních dnů. Generované klíče, oproti vzniklým prezentacím na WordPressu.
Ale i kdyby bylo nutné zkoušet všechny klíče generované v ČR proti všem instalacím WordPressu v České republice, jde pouze o asi 100 000 pokusů* na získanou relaci generovaných klíčů (předpokládaný počet funkčních instalací WordPressu v ČR aktuálně). To je pro výpočetní cloud úloha realizovatelná bleskurychle. A výtěžnost musí být velice „libová“.
A to i v nejhorším případě, kdy by se v praxi kontrolovaly všechny zaznamenané řetězce proti všem známým instalacím WordPressu ve světě.
Ale jak jsem uvedl výše. Při znalosti generovaných řetězců a IP adresy jejich uživatele jsou pravděpodobné cílové instalace WordPressu velice dobře predikovatelné.
Nevěřím proto, že by si NSA, a řada dalších tajných služeb mnoha zemí, takové snadné sousto nechala ujít. 🙂
Nouzové protiopatření – ruční editace řetězců
Ne každý to dělal jako dříve já. Dokud jsem neměl vlastní generátor, řetězce jsem ještě ručně editoval. V každém jsem asi deset znaků náhodně změnil. (Snad to bylo dostatečné.)
Bezpečný generátor klíčů a iniciačních řetězců
Mnohem lepší možností je ale stáhnout si zcela bezpečný generátor klíčů a iniciačních řetězců pro WordPress, který jsem pro vás připravil.
[otw_is sidebar=otw-sidebar-2]
Je to skript, který si uložíte na Linux server. Zkontrolujte si ho, a ujistěte se, že dělá pouze to, co má. 🙂 Pro vygenerování řetězců jej stačí pouze spustit. Superuživatel k tomu není potřeba.
Za stažení od vás budu chtít vaši emailovou adresu. Plánuji více podobných článků a rád bych vás o nich informoval.
Těším se na vaše podněty a reakce. 🙂
* Podle průzkumu z roku 2015 bylo v ČR cca 65 000 aktivních instalací CMS WordPress. Celosvětově bylo v té době cca 11 300 000 instalací. Novější data nemám k dispozici.