CRAM-MD5 - CRAM-MD5
v kryptografie, CRAM-MD5 je ověřování výzva-odpověď mechanismus (CRAM) založený na HMAC-MD5 algoritmus. Jako jeden z mechanismů podporovaných Jednoduché ověřování a vrstva zabezpečení (SASL), je často používán v e-mailovém softwaru jako součást Ověření SMTP a pro ověřování POP a IMAP uživatelů, stejně jako při implementaci aplikací LDAP, XMPP, PÍPNUTÍ a další protokoly.
Pokud takový software vyžaduje autentizaci přes nešifrovaná připojení, je před mechanismy, které přenášejí hesla „v čistém“, upřednostňována CRAM-MD5 PŘIHLÁSIT SE
a PROSTÝ
. Nemůže však zabránit odvození hesla prostřednictvím a útok hrubou silou, takže je méně efektivní než alternativní mechanismy, které se vyhýbají heslům nebo používají připojení šifrovaná Zabezpečení transportní vrstvy (TLS).
Protokol
Protokol CRAM-MD5 zahrnuje jeden cyklus výzev a odpovědí a je iniciován serverem:
- Výzva: Server odešle base64 -kódovaný řetězec klientovi. Před kódováním to může být libovolný náhodný řetězec, ale standard, který aktuálně definuje CRAM-MD5, říká, že je ve formátu
ID zprávy
hodnota záhlaví e-mailu (včetně úhelníky ) a zahrnuje libovolný řetězec náhodných číslic, a časové razítko a server plně kvalifikovaný název domény. - Odpověď: Klient odpoví řetězcem vytvořeným následujícím způsobem.
- Výzva je dekódována na base64.
- Dekódovaná výzva je hašována pomocí HMAC-MD5, s sdílené tajemství (obvykle heslo uživatele nebo jeho hash) jako tajný klíč.
- Hašovaná výzva se převede na řetězec malých hexadecimálních číslic.
- The uživatelské jméno a znak mezery jsou před hexadecimálními číslicemi.
- Zřetězení je poté kódováno pomocí base64 a odesláno na server
- Srovnání: Server používá stejnou metodu k výpočtu očekávané odezvy. Pokud se daná odpověď a očekávaná odpověď shodují, pak ověření proběhlo úspěšně.
Silné stránky
Jednosměrný hash a nová náhodná výzva poskytují tři typy zabezpečení:
- Jiní nemohou duplikovat hash bez znalosti hesla. To poskytuje ověřování.
- Jiní nemohou hash přehrát - záleží na nepředvídatelné výzvě. To se různě nazývá svěžest nebo prevence přehrání.
- Pozorovatelé se heslo nenaučili; tomu se říká utajení.
Slabé stránky
- Ne vzájemné ověřování: klient neověřuje server. Ověření SASL se však obvykle provádí přes a TLS připojení, které ověřuje identitu serveru.
- Slabé ukládání hesel: některé implementace vyžadují přístup k heslům prostého textu uživatelů, zatímco jiné (např. Holubník ) použijte mezikrok procesu HMAC k uložení souboru MD5 -hash hesla (přesně řečeno o interních proměnných HMAC i_key_pad a o_key_pad).[1][2] Takové implementace využívají to, že pro výpočet md5 (something_with_64_bytes || something_else) je potřeba znát pouze md5_internal (something_with_64_bytes) a something_else (kvůli Merkle – Damgård použití v MD5; md5_internal je md5 bez posledního bloku). Protože i_key_pad a o_key_pad jsou na začátku vnitřní a vnější hodnoty hash HMAC a mají délku 64 bajtů, lze tuto skutečnost použít.
- Hrozba reverzibility: offline slovníkový útok obnovení hesla je možné po zachycení úspěšné výměny protokolu CRAM-MD5 (např. pomocí Cain & Abel ). Tato hrozba je nevyhnutelná v každém schématu hašování hesel, ale používají se modernější algoritmy protahování klíčů za zvýšení ceny útoku o faktor jeden a více. Naopak, výpisy CRAM-MD5 lze vypočítat pomocí velmi malého počtu výpočetních prostředků na vyhrazeném hardwaru nebo dokonce jen standardně CPU.
- Schopnost proxy: Na rozdíl od a smlouva s klíčem ověřeným heslem (PAKE), CRAM-MD5 nevytváří tajemství sdílené mezi těmito dvěma koncovými body, ale neznámé pro odposlech. Aktivní muž uprostřed může proto otevřít připojení k serveru, získat výzvu, nabídnout tuto výzvu klientovi, obdržet odpověď klienta a předat tuto odpověď serveru. Nyní může odhodit další zprávy klienta při zosobnění klienta na server.
Standardy
CRAM-MD5 je definován Dokument pro sledování standardů IETF RFC 2195, který nahrazuje RFC 2095, z dřívějšího roku 1997. Tyto de facto standardy definujte CRAM-MD5 jako metodu ověřování pro protokoly pro správu e-mailové schránky POP a IMAP.
CRAM-MD5 je jednou z metod ověřování podporovaných serverem Jednoduché ověřování a vrstva zabezpečení (SASL), definované v roce 2006 RFC 4422, který nahrazuje standard z roku 1997 RFC 2222.
The Autorita přidělených čísel na internetu (IANA) udržuje registr mechanismů SASL,[3] včetně CRAM-MD5, pro omezené použití.
CRAM-MD5 je vyžadován pro Přenos pošty na vyžádání (ODMR), definované v RFC 2645.
Zastaralý
Doporučit podporu standardu ukončit dne 20. listopadu 2008. Jako alternativu doporučuje např. SCRAM nebo SASL Prostý chráněn TLS namísto.[4]
Viz také
Reference
- ^ "funkce verify_credentials". Zdroj Dovecot 2.0. Citováno 23. ledna 2014.
- ^ "soubor hmac-md5.c". Zdroj Dovecot 2.0. Citováno 23. ledna 2014.
- ^ „Mechanismy jednoduché autentizace a bezpečnostní vrstvy (SASL)“. Registry protokolů. IANA.
- ^ Zeilenga
, Kurt. „CRAM-MD5 to Historic“. tools.ietf.org. Citováno 2020-12-05.