tokenizzazione distribuita per numeri di carte di credito

5

Ho due sedi all'interno della stessa azienda che detengono i numeri delle carte di credito. Voglio essere in grado di "partecipare" al numero di carta di credito per fare business analytics dopo aver trasmesso i dati numerati da una posizione all'altra.

Il numero della carta di credito non è effettivamente necessario per collegare i set di dati. Un gettone, con collisioni zero o molto rare, sarebbe abbastanza buono.

Il problema diventa quindi come generare token nelle due posizioni in modo tale che la stessa carta di credito si associ allo stesso token e lo faccia in modo sicuro.

Ingenuamente, si potrebbe semplicemente usare un hash crittografico, ma poiché lo spazio che si sta mappando è così piccolo (facially 10 ^ 16, ma ovviamente in realtà inferiore a quello), questa non è una buona soluzione, specialmente se gli hash non sono salato. (E non è chiaro in che modo la salatura funzionerebbe e tuttavia consentirebbe di collegare i record in ogni caso.)

Si potrebbe anche proporre l'uso di una strong crittografia simmetrica dei CCN stessi, con una condivisione molto accurata della chiave segreta, ma non sono abbastanza esperto in crittografia per sapere se il fatto che l'insieme di testi in chiaro sia così limitato apra il schema per attaccare.

(NB: so che non si dovrebbe "eseguire il proprio criptaggio" .Non sono direttamente coinvolto in questo progetto, ma sono curioso delle soluzioni che sento essere discusse.)

    
posta user1071847 06.07.2015 - 16:46
fonte

1 risposta

1

La prima cosa che farei è eseguire qualsiasi soluzione proposta oltre il tuo auditor PCI per assicurarti di non implementare nulla che possa causare problemi e mettere l'azienda fuori dalla conformità PCI.

Sembra che tutto ciò di cui hai bisogno è che i numeri delle carte vengano tokenizzati in modo tale da ottenere sempre lo stesso token con lo stesso numero di carta e non è necessario tornare indietro in altro modo? Questo indicherebbe che stai cercando un hash piuttosto che una crittografia. Puoi aggiungere anche un sale.

Molto dipenderà da quali dati saranno associati a queste informazioni. Se gli unici dati che hai collegato a questi hash (al di fuori del tuo deposito sicuro) è l'hash del numero della carta e nessun altro dato identificativo personale, come il nome del titolare della carta ecc., Quindi un buon hash, con un sale per aumentare la lunghezza , sarà probabilmente sufficiente. I numeri delle carte di credito solo da soli senza altre informazioni non sono così utili. Conosciamo già l'algoritmo per verificare i numeri di carta di credito validi e quindi è altrettanto facile generare un numero elevato di numeri di carte validi. È solo quando puoi aggiungere le informazioni aggiuntive, come la data di scadenza, il nome del titolare della carta ecc. Che i dati diventano davvero utili.

D'altra parte, se intendi includere dati sensibili aggiuntivi nel tuo lavoro, allora guarderei ai modi per generare un token univoco che non si basa sul numero della carta di credito - ID cliente o forse un hash che consiste di più campi: dipende in realtà dai dettagli di ciò che stai cercando di fare.

In generale, pensa allo scenario peggiore: non pensare che la tua soluzione sia sicura. Invece, supponiamo che qualcuno sarà in grado di decodificarlo a un certo punto. quindi fare una valutazione del rischio di quale sarà l'impatto se sono in grado di farlo. Quindi esaminare i modi in cui è possibile ridurre tale impatto e i modi per ridurre la probabilità. Ad esempio, sii molto sicuro che tutti i dati siano effettivamente necessari - a volte, solo la rimozione di alcuni bit di dati può fare la differenza. Considera anche quali controlli puoi mettere in atto per avvisarti di un problema, ad esempio rilevamento di accesso non autorizzato, risposta ad accesso non autorizzato, ecc.

    
risposta data 10.07.2015 - 00:47
fonte

Leggi altre domande sui tag