Penso che abbia più senso nel contesto di quante informazioni extra vengono distribuite, piuttosto che quanto sarebbe facile forzare le cifre rimanenti.
Un PAN non è interamente un valore casuale, è composto da:
- a six-digit Issuer Identification Number (IIN) (previously called the "Bank Identification Number" (BIN)) the first digit of which is
the Major Industry Identifier (MII),
- a variable length (up to 12 digits) individual account identifier
- a single check digit calculated using the Luhn algorithm
link
Pertanto, utilizzando queste informazioni:
My company's database supplies me with name, address, card type,
truncated PAN, and expiry date of the card/holder
Probabilmente potresti restringere abbastanza facilmente le prime 6 cifre a un numero abbastanza limitato di possibilità.
Questo lascia solo le ultime 4 cifre, una delle quali è una cifra di controllo e quindi non contiene alcuna entropia aggiuntiva.
Quindi in pratica stai dando via solo 3 cifre, anche se tutti i 10 consentiti sono esposti.
this leaves only 100,000 card numbers to brute force in order to get
the one I want
Immagino che sarebbe abbastanza difficile eseguire un attacco di forza bruta dato che la maggior parte dei processori di pagamento blocca molto velocemente.
PCI DSS dice anche:
Note: It is a relatively trivial effort for a malicious individual to
reconstruct original PAN data if they have access to both the
truncated and hashed version of a PAN. Where hashed and truncated
versions of the same PAN are present in an entity‘s environment,
additional controls should be in place to ensure that the hashed and
truncated versions cannot be correlated to reconstruct the original
PAN.
Che dovrebbe impedire all'attaccante di mettere in scena un attacco di forza bruta offline.
Inoltre, questi sono i requisiti minimi. In linea di principio afferma che:
Requirement 7: Restrict access to cardholder data by business need to
know
Immagino che la visualizzazione di tutte e 10 le cifre consentite per i clienti non rientri nella "necessità di sapere". Forse gli ultimi 4 sono richiesti per identificare quale carta è quale, ma la maggior parte degli utenti non avrebbe bisogno di conoscere i primi 6 tranne forse per mostrare il tipo di carta che è.