In crittografia, CRAM-MD5 è un meccanismo di autenticazione challenge-response definito nel RFC 2195 basato sull'algoritmo HMAC-MD5 MAC. È utilizzato da alcune implementazioni SASL ed è spesso supportato dagli agent SMTP.

Protocollo Challenge: nell'autenticazione CRAM-MD5, il server invia una stringa di sfida al client Response: il client risponde con una stringa con questa struttura: La stringa, inviata con base64, viene decodificata La stringa decodificata viene criptata con HMAC-MD5 usando la password dell'utente come chiave segreta La sfida codificata viene convertita in cifre esadecimali La username ed uno spazio blank vengono aggiunti all'inizio della stringa hex La concatenazione viene codificata in base64 ed inviata al server Comparazione: il server esegue lo stesso metodo del client e se la stringa calcolata è uguale a quella inviata dal client allora l'autenticazione è concessa.

Questo metodo fornisce tre importanti tipi di sicurezza. Nessuno può duplicare l'hash senza conoscere la password Nessuno può replicare l'hash perché dipende dalla sfida che non è prevedibile Eventuali osservatori del traffico non possono leggere la password

I due elementi che forniscono questi tipi di sicurezza sono l'algoritmo di hash e la sfida generata casualmente.

Debolezze del protocollo Non c'è mutua autenticazione: il client non verifica l'identità del server Memorizzazione debole della password: alcune implementazioni richiedono l'accesso alla password in chiaro mentre altri utilizzano lo step intermedio processato con HMAC per memorizzare una specie di MD5 della password Minaccia di reversibilità: l'attacco tramite dizionario offline diventa fattibile dopo aver catturato un frame scambiato con successo nel processo di autenticazione

Voci correlate Simple Authentication and Security Layer (SASL) Simple Mail Transfer Protocol (SMTP) Internet Message Access Protocol (IMAP) Post Office Protocol (POP) HMAC, MD5, SMTP-AUTH

Categoria:Crittografia