Athos hívta fel a figyelmem a pam_env és pam_mail modulok egy igen érdekes, információszivárgást okozó hibájára, amely bizonyos esetekben a DSA kulcsot privát változóit is kellemetlenül érintheti.
A probléma gyökere az, hogy az említett modulok nem dobják el a privilégiumaikat a bejelentkező felhasználók fájljainak olvasása előtt. Peter van Dijk erre alapozva egy igen ötletes támadással állt elő:
Az ssh-keygennel generált kulcsok általában base64 kódolással kerülnek tárolásra. A base64 karakterláncok bizonyos esetekben '==' -re végződhetnek. Amennyiben a ~/.pam_environment fájlt szimbolikus linkként hozzuk létre a rendszer egy másik felhasználójának privát DSA kulcsára, úgy a következő bejelentkezéskor a PAM modulok root szintű jogosultságának köszönhetően a titkos kulcsfájl tartalma olvasódik fel, a kulcs utolsó sora pedig mint környezeti változó kerül regisztrálásra a bejelentkező felhasználó kontextusában.
Ez az utolsó sor általában a titkos paraméter jelentős részét, 160 bitből 128-at tartalmaz, a maradék a publikus kulcs felhasználásával, brute-force módszerrel hamar megkapható.
A módszert korlátozza, hogy csak az esetek mintegy 10%-ában áll elő olyan kulcs, melynek kódolt formája '=='-re végződik és nem számmal kezdődik, így elfogadható környezeti változóként, ezen kívül nyilvánvalóan nem megyünk sokra, ha a kulcs jelszóval védett.
A nagyobb disztribúciók javították a hibát, frissítsétek a pam_modules csomagot!
+++
Lazán kapcsolódó téma, hogy két finn kutató időzítésen alapuló támadást talált az OpenSSL ECDSA implementációjában. A papírt sajnos még nem sikerült elolvasnom, ezért hálás lennék, ha valaki felhomályosítana engem és a Nagyérdeműt a támadás részleteiről!
Tyra3l 2011.06.01. 17:39:19
eprint.iacr.org/2011/232
Tyrael
buherator · http://buhera.blog.hu 2011.06.01. 17:44:56
EQ · http://rycon.hu 2011.06.01. 17:59:00
kis kritika: tudományos körökben a paper megfelelője cikk és nem papír.
buherator · http://buhera.blog.hu 2011.06.01. 18:02:05
EQ · http://rycon.hu 2011.06.01. 18:02:52
Aron bacsi 2011.06.02. 09:21:19
Jelszó (rejtjelezés) nélküli privát kulcsokat max. akkor szoktunk mi is csak használni, ha a háttérben, interakció nélkül vminek egyik gépről be kell SSH-znia a másikra (pl. cronba rakott backup SCP-zése). A jelszót nem lehet paraméterben átadni, ezért ilyen esetekre valóban csak a (jelszó nélküli) kliens kulcsos megoldás marad. És, ezek szerint az is már csak RSA esetében jó...
buherator · http://buhera.blog.hu 2011.06.02. 09:24:57