Sledujte ma na Twitteri

Bezpečnosť hesiel v MS SQL a možnosti útoku

Kategória: Softvér, publikované: 02.12.2011, autor: Igor Kulman

Hesla k používateľským účtom pre Mixed Authentication sú v MS SQL uložené v tabuľke master.dbo.sysxlogins zahešované. Na hešovanie sa používa bližšie dlhý čas nedokumentovaná funkcia pwdencrypt(), ktorej implementácia a teda aj bezpečnosť sa líši v závislosti od verzie MS SQL.

MS SQL 2000

V MS SQL 2000 vyrába funkcia pwdencrypt() 94 znakový sha-1 heš. Táto implementácia nie je veľmi bezpečná a bol uverejnený popis útoku. Ak použijeme funkciu pwdencrypt() na zašifrovanie nejakého hesla viackrát po sebe, zistíme, že výsledky nie sú rovnaké, závisia od času, ktorý sa používa ako salt. Na základe tohto pozorovania je možné 94 znakový heš

0x010034767D5C0CFA5FDCA28C4A56085E65E882E71CB0ED2503412FD54D6119FFF04129A1D72E7C3194F7284A7F3A

Rozdeliť do štyroch skupín v pomere 6:8:40:40 znakov

0x0100 - pevná hlavička
34767D5C - salt závislý od času
0CFA5FDCA28C4A56085E65E882E71CB0ED250341 - heš rozoznávajúci veľkosť písmen
2FD54D6119FFF04129A1D72E7C3194F7284A7F3A - heš nerozoznávajúci veľkosť písmen

Z tejto implementácie je viditeľná jasná zraniteľnosť. Útok vykonáme najprv na heš nerozoznávajúci veľkosť písmen, pretože nám stačí vyskúšať menej kombinácií (bez malých písmen). Ak nájdeme týmto útokom heslo, tak na zistene jeho verzie rozoznávajúcej veľkosť písmen nám stačí vyskúšať už iba relatívne málo kombinácií. Na útok je možné použiť napríklad Cain.

MS SQL 2005

V MS SQL 2005 funkcia pwdencrypt() funguje trochu inak, neukladá sa už iba heš hesla rozoznávajúci veľkosť písmen. Tento heš je dlhý 54 znakov a dá sa predvídateľné rozdeliť do 3 skupín v pomere 6:8:40 znakov

0x0100 - pevná hlavička
34767D5C - salt závislý od času
2FD54D6119FFF04129A1D72E7C3194F7284A7F3A - heš nerozoznávajúci veľkosť písmen

Útok na heslá v MS SQL 2005 je teda oveľa časovo náročnejší a pre silné hesla prakticky neuskutočniteľný. Použiť však môžete rovnako ako pri MS SQL 2005 program Cain.

MS SQL 2008

V MS SQL 2008 má heš opäť 54 znakov. Pevná hlavička ostala, nie je však už možné jednoducho oddeliť heš a útok je preto oveľa zložitejší, je nutné použiť funkciu pwdcompare() priamo v MS SQL 2008.

Záver

Najlepším odporúčaním k bezpečnosti MS SQL je nepoužívať Mixed Authentication. Ak Mixed Authentication používať musíte, dajde si záležať na dĺžke a komplexnosti hesla, najmä ak ešte stále používate MS SQL 2000.

Sledujte moje články: vybrali.sme.sk Linkuj.cz  

Aký bol MS Fest 2011?
V priestoroch MFF UK v Prahe sa tento rok uskutočnil už šiesty ročník MS Festu; konferencie o Microsoft technológiách... čítať ďalej

Windows Phone 7: užitočné komponenty, knihy, články
V poslednom čase som sa začal zaoberať vývojom aplikácií pre Windows Phone 7 a nazhromaždil som veľa odkazov na... čítať ďalej

Komentáre

RSS komentárovRSS komentárov

K článku "Bezpečnosť hesiel v MS SQL a možnosti útoku" zatiaľ nie sú žiadne komentáre.

 

Pridať komentár

(povinné)

(povinný,nezverejňuje sa)


Odoslať komentár

Autor

Igor Kulman Igor Kulman at LinkeIn
Igor Kulman at Flick
Igor Kulman at Twitter
Igor Kulman at Posterous

Autor je absolventom softvéroveho inžinierstva na Univerzite Karlovej v Prahe, pracuje ako Windows Phone 7 vývojár v Inmite a pôsobil aj ako prispievateľ počítačového magazínu.

Kategórie

Náhodná referencia

NewStyle

NewStyle