Il PCI esclude l'uso di MD5 per archiviare dati sensibili?

4

Solo un venditore mi ha detto che, poiché i loro auditori PCI non consigliavano di vietare l'uso di MD5 non salato per archiviare i dati sensibili in questo momento con il loro attuale livello di conformità PCI, essi non vieterebbero l'uso di MD5 per memorizzare dati sensibili.

NOTA: il venditore ha rifiutato di dire se i revisori: (1) hanno scoperto che il fornitore stava utilizzando MD5 per archiviare dati sensibili, ma ha affermato che non si trattava di un problema; (2) non ha scoperto che lo stavano facendo, ma ha detto che usare MD5 per archiviare dati sensibili era okay; (3) non ha scoperto che lo stavano facendo, e non dire che usare MD5 per archiviare dati sensibili era okay; (4) se il loro livello di conformità PCI non richiede l'uso di hash MD5 per archiviare dati sensibili secondo il PCI Security Standards Council. (5) ecc.

Ancora una volta, tutto quello che direbbero è che i loro auditori PCI non consigliano di vietare l'uso di MD5 non salato per archiviare dati sensibili.

Mettere da parte se il divieto di utilizzare MD5 per archiviare dati sensibili è giusto o meno, quali livelli di conformità PCI se vietano l'uso di MD5 e / o MD5 non salati per archiviare dati sensibili?

    
posta blunders 05.09.2013 - 23:00
fonte

3 risposte

2

PCI-DSS non menziona alcun algoritmo. Dice solo che quando si usano gli hash, dovrebbero essere gli hash a senso unico basati sulla crittografia avanzata. A seconda di chi parli, potrebbe ancora includere MD5 (ah bene).

PCI-DSS è in realtà un contratto tra il venditore e la società emittente della carta di credito. Probabilmente vorrai che ti forniscano un rapporto SOC 2 con la clausola che gli algoritmi di hashing siano coperti.

    
risposta data 05.09.2013 - 23:14
fonte
4

Usando qualsiasi algoritmo di hash per "fuzz", la carta è spesso reversibile.

Dato che ci sono solo una quantità limitata di numeri di carte, ricorda l'ultima cifra, forse una cifra di controllo. Non è necessario controllare tutto lo spazio della carta. È noto quali sono i prefissi degli emittenti delle carte, quindi esegui le tue ricerche lì. Così ora il tuo PAN a 16 cifre, ha perso l'ultima cifra per la cifra di controllo e la prima da 4 a 6 per l'emittente di carte. Non ci sono molte combinazioni di forza bruta, forse un solo PC con una GPU può farlo in poche ore.

Quindi anche i dati salati sono inutili quando puoi cercare esaurientemente l'intero spazio delle chiavi con pochi clic e un cluster AWS o maligno botnet e ottenere i risultati in un'ora. I computer sono abbastanza veloci da scorrere tutte le combinazioni per trovare l'hash che corrisponde. Il sale è generalmente noto e progettato per la protezione contro il precalcolo, ma non importa se è possibile ricalcolare rapidamente un nuovo set di dati completo basato su sale conosciuto.

Quindi ciò che è importante è l'algoritmo esatto usato in combinazione con un hash come MD5.

Qual è lo scopo di usare MD5 comunque? Se hai bisogno di un token, rappresenta un numero di carta che lo emette da uno spazio di chiavi indipendente. Un contatore sequenziale che inizia a 000000001 e crittografato con una chiave completamente segreta ti garantisce sempre un valore di output univoco per il blocco che non è completamente correlato ai dati della carta (e quindi non reversibile) senza che il database di mappatura venga compromesso.

Se hai davvero bisogno di sfogliare il numero della carta, guarda verso PBKDF2 per tutti gli usi in cui hai considerato un hash. Dal momento che è possibile riportare l'intenzione del sale rendendolo troppo costoso per la forza bruta (anche su GPU anche su cluster AWS).

Chiedi al tuo personale addetto alla conformità PCI se hai sostituito il numero 0 per A, 1 per B, ... 9 per J, ecc. e lo hai archiviato nel database se questo è abbastanza "strong".

L'uso diretto di MD5 sul numero di carta fuzz (anche con sale conosciuto) può essere interrotto al ritmo di 450 milioni / sec su una GPU (dal mio rapido google). Ricorda che abbiamo perso alcune cifre PAN in brute, quindi possiamo fare 10 cifre in 2 secondi.

Scusa se non al 100% sull'argomento, ma l'uso di MD5 per la "sicura" carta di credito sicura è uno scherzo nel 2013.

    
risposta data 06.09.2013 - 00:22
fonte
0

Il glossario PCI DSS definisce il minimo di 112 bit di forza chiave effettiva (vedi Crittografia strong) e questo è indicato nello standard principale (ad esempio req 2.2.3).

Wikipedia mostra la forza effettiva dei vari algoritmi di hashing sotto la voce SHA-1. Questo mostra MD5 come avente < 64 bit e SHA-1 < 80 bit. Le serie SHA-2 e -3 sono attualmente molto migliori e sono supportate immediatamente per gli strumenti / gli ambienti di sviluppo mainstream.

PCI DSS fa anche riferimento a OWASP e il loro "Cheat Sheet di archiviazione crittografica" afferma "Non utilizzare algoritmi deboli, come MD5 o SHA1.".

Sarebbe bello poter ottenere una lista di tutti questi diversi algoritmi e algoritmi e ottenere una dichiarazione definitiva della loro forza relativa per evitare discussioni con auditor / banche / avvocati.

    
risposta data 13.09.2016 - 17:55
fonte

Leggi altre domande sui tag