2009-09-28 14 views
20

possibili duplicati:Memorizzazione di numeri di carte di credito parziale

  1. Best practices for taking and storing credit card information with PHP
  2. Storing credit card details
  3. Storing Credit Card Information

ho bisogno di memorizzare i numeri di carta di credito all'interno di un sito di e-commerce. Non intendo memorizzare l'intero numero di carta di credito, in quanto ciò sarebbe altamente rischioso. Vorrei memorizzare almeno le prime cinque cifre in modo da poter identificare successivamente l'istituto finanziario che ha emesso la carta. Idealmente, mi piacerebbe memorizzare il numero di credito che posso in tutta sicurezza, per facilitare future consultazioni incrociate ecc.

Quante cifre e quali cifre particolari, posso memorizzare in modo sicuro?

Per esempio, immagino che questo non sarebbe abbastanza sicuro:

5555 5555 555* 4444 

Perché si potrebbe calcolare la cifra mancante.

Allo stesso modo, questo sarebbe al sicuro, ma non essere così utile:

5555 5*** **** **** 

C'è un modello ben accettato per la memorizzazione dei numeri di credito parziali?

+0

Le ultime 4 cifre devono essere ok. Ma controlla le possibili domande doppie che ho aggiunto. – Shoban

risposta

38

Lo standard di sicurezza dei dati della carta di pagamento afferma che se si stanno gestendo i dati dei titolari di carta, si è soggetti ai vincoli del PCI DSS (che è molto completo e una sfida da rispettare). Se si desidera memorizzare parte di un numero di carta e non si vuole avere a che fare con lo standard, è necessario assicurarsi che a) si memorizzi NO MORE THAN the first 6 and last 4 digits; b) non conservi, elabori o trasmetta mai più di questo. Ciò significa che il troncamento deve essere eseguito prima che i dati entrino nel tuo controllo.

Dato che si sta parlando di un sito di e-commerce, credo che prima o poi si dovrà trattare con lo standard PCI DSS (poiché se non si utilizzano i PAN completi, non è possibile elaborare le transazioni). Realisticamente, quindi, dovresti evitare di memorizzare più delle prime 6 e ultime 4 cifre di un PAN; lo Standard quindi non "cura" di questi dati, e puoi conservarlo in qualsiasi forma tu ritenga opportuno. Se si memorizzano, ad esempio, le prime 7 cifre, entra in vigore il Requisito 3 dello standard (e si inizia a comprendere veramente la gestione delle chiavi in ​​crittografia).

Spero che questo sia utile.

+2

Qualcuno ha dei riferimenti effettivi per questo? per esempio. "lo standard non si preoccupa di questi dati" ... – Kzqai

+1

BK è corretto - ecco la risposta ufficiale PCI: http://selfservice.kb.net/article.aspx?article=9488&p=81 – chrishiestand

+0

@chrishiestand , sembra che il collegamento sia scaduto, dovrebbe essere bello se hai un modo per trovare di nuovo la risposta ... – T30

1

Il modello accettato non li memorizza affatto.

In alcune giurisdizioni potrebbe infrangere la legge archiviandole o parte di esse.

Si potrebbe invece memorizzare un hash unidirezionale (e quindi irrecuperabile) del numero della carta di credito.

+0

L'hash a senso unico non è una cattiva idea. Mi consentirà di identificare se due numeri di carta di credito erano uguali. Grazie per l'idea! Vorrei comunque memorizzare un numero parziale, tuttavia. Ma forse le prime cinque cifre e un hash sarebbero sufficienti .. – Joel

+12

Non sono d'accordo su tutti i punti. La memorizzazione dei dati della carta non è illegale. I requisiti per la memorizzazione e l'elaborazione sicure sono regolati dall'industria delle carte. I requisiti PCI/DSS sono disponibili online e si applicano a te se memorizzi i dati o no !! L'uso di un algoritmo di hash da solo in questo caso è generalmente superiore a quello pericoloso data la bassa entropia dei numeri di carta e il ripristino delle dimensioni del blocco del numero di origine sarebbe abbastanza facile da eseguire utilizzando tabelle precompilate e altre tecniche di forza bruta. – Einstein

+0

È possibile aggiungere un valore salt statico che potrebbe rendere un po 'più difficile la forza bruta. Ma penso che tu abbia ragione. Dovrò ripensare a questo. Se lo spazio dell'hash era più piccolo del numero di carte di credito, questo potrebbe prevenire il problema della forza bruta, ma è meno utile perché le diverse carte potrebbero avere lo stesso hash. Forse lascerò cadere l'idea dell'hash. – Joel

3

Se non è necessario memorizzare l'intero numero di carta di credito, perché è necessario memorizzarlo? Se si desidera salvare l'istituto finanziario che ha emesso la carta, perché non si memorizza l'istituto finanziario che ha emesso la carta?

+4

Come utente, è utile per me vedere quale scheda viene utilizzata per una particolare transazione. Posso sapere se un sito sta ancora utilizzando il mio vecchio numero su una carta che è stata persa e cancellata, o se sta usando la mia nuova carta. –

0

Qui in Canada, il modo usuale è quello di memorizzare le prime 4 cifre (per identificare l'istituto finanziario) e le ultime 4 cifre per identificare la carta di credito.

Ma assicuratevi di non aver infranto nessuna legge.

1

Le società di carte di credito hanno uno standard per questo. Probabilmente lo troverai sepolto da qualche parte nei termini di servizio del tuo processore di pagamento che obbedirai a questo standard. Risponde alle tue domande. È possibile trovare lo standard here

4

marzo 2013 Modifica:
Una risorsa molto pertinente è il PCI Security Standards Council, un'organizzazione fondata nel 2006 da cinque dei più grandi marchi della carta di credito globale (AmEx, Visa, MasterCard, JCB International e Discovery) e che è l'autorità de facto in materia di sicurezza per l'industria delle carte di pagamento (PCI).
Questa organizzazione pubblica in particolare lo PCI Data Security Standard, attualmente nella sua versione 2.0, che copre questioni come la gestione di numeri di carte di credito completi o parziali.Questo documento è disponibile gratuitamente ma richiede una semplice registrazione e il riconoscimento dei termini della licenza.

Quanto segue è l'originale, c. Risposta 2009, per lo più corretta ma apocrifa.
Una pratica comune (legale o no che non conosca) è di memorizzare le ultime 4 cifre, in quanto ciò può essere utilizzato per aiutare il cliente a confermare quale delle sue carte di credito sono state utilizzate per una particolare transazione.

Senza migliorare significativamente le probabilità di una persona malintenzionata che indovina il numero completo, è possibile memorizzare le prime 4 cifre s che sono rappresentative dell'istituto finanziario che ha emesso la carta, come indicato nella domanda.

non lo fanno, salvare molte più cifre di questi 8 cifre perché altrimenti, data la LUHN-10 checksum, l'utente possa fornire abbastanza informazioni per fare indovinare il numero completo più plausibile (se ancora relativamente difficile, anche con una visione della serie utilizzata da un determinato emittente, in un dato periodo di tempo, ma bisogna stare attenti ...)

per rendere questa cosa più sicuro, tecnicamente e giuridicamente, si può considerare solo la memorizzazione di tali informazioni se il cliente consente esplicitamente . Si dovrebbe anche considerare di mascherare queste informazioni con un semplice hash per la memorizzazione nel database.

Inoltre, ciò che è possibile/deve memorizzare in seguito a una determinata transazione, è l'ID transazione fornito dall'elaboratore della carta di credito, al momento dell'invio del transacton. Questo ID è la chiave che consente di localizzare la maggior parte (tutte?) Delle informazioni che avresti anche bisogno, se ci fosse qualche problema con una particolare transazione. In genere questo tipo di informazioni può essere interrogato da un sito Web protetto gestito dalla società di elaborazione, insieme ad alcuni rapporti aggregati che possono includere un raggruppamento per tipo di carta (Amex, Visa ...) se è per questo che stai pensando di archiviare i primi quattro.

1

La risposta alla domanda specifica è stata fornita nella sezione 3.3 del documento PCI/DSS. I primi sei e gli ultimi quattro sono max per la visualizzazione. Le ricevute del cliente (carta?) Sono più restrittive. Coloro che hanno bisogno di conoscere legittimamente possono vedere i dati completi della carta.

La mia raccomandazione è di contattare il fornitore del commerciante e vedere quali opzioni sono disponibili.Un certo numero di gateway di transazione moderni dispone di funzioni di "vault" in cui le informazioni sensibili vengono archiviate presso il provider e si fa semplicemente riferimento ai clienti tramite un numero di token quando si desidera fatturarli o controllare le informazioni dell'account.

Lungo le stesse linee, l'utilizzo di token specifici della transazione può essere utilizzato per fare riferimento ai dati necessari memorizzati nel sistema dei provider.

Tuttavia, non posso sottolineare abbastanza l'importanza di leggere e comprendere PCI DSS. Semplicemente punting storage sicuro non magicamente obsoleto da essere soggetto ai requisiti di conformità PCI !! Questo è possibile solo quando il tuo sistema non tocca mai i dati completi della carta.

+2

"Leggere e comprendere PCI DSS." Sì, buona fortuna. :) In tutta onestà, non appena le società di carte di credito iniziano a imporre rigorosamente questo, ogni sviluppatore avrà bisogno di avere accesso a un esperto, probabilmente in veste giuridica, per assicurarsi che il suo software e hardware siano conformi agli standard. Non è stato sicuramente scritto per il programmatore di computer medio per capire. –

Problemi correlati