Convinci la compagnia a non memorizzare i numeri delle carte di credito nella tua app web

36

L'azienda per cui lavoro ha bisogno di un sistema per eseguire addebiti mensili con carta di credito sui conti dei clienti. I clienti saranno in grado di aggiornare i dati della carta di credito da un'interfaccia online scritta in PHP (che sarà presentata tramite HTTP su SSL). Gli addebiti mensili verranno eseguiti manualmente attraverso un'area di amministrazione protetta da password della stessa interfaccia, che sostanzialmente equivale a una chiamata batch all'API Authorize.Net.

I miei colleghi desiderano archiviare le informazioni della carta di credito (crittografate) in un database MySQL. Hanno in programma di crittografare i numeri delle carte di credito con l'estensione mcrypt di PHP , presumibilmente usando Rijndael / AES o Twofish. Il tema della gestione delle chiavi è stato sorvolato, ma sono state citate le seguenti due opzioni:

  1. memorizzazione chiavi nel database, con una chiave separata per ogni voce della carta di credito; o

  2. memorizzazione di una singola chiave di crittografia per tutte le voci della carta di credito in un file PHP come variabile (simile a come le applicazioni PHP come WordPress e MediaWiki memorizzano le credenziali del database).

Come posso convincerli a non seguire questa strada? Useremo Authorize.net per elaborazione dei pagamenti, quindi ho menzionato il loro servizio Customer Information Manager come alternativa all'archiviazione delle informazioni relative alla carta di credito. Tuttavia, non conosco abbastanza bene l'argomento per formulare argomenti convincenti (i miei argomenti erano "nessuno di noi è esperto di sicurezza" e "Non mi sentirei a mio agio con una società che memorizza le informazioni della mia carta di credito in questo modo").

Se non riesco a convincerli a utilizzare un servizio di terze parti come Customer Information Manager , cosa dovrei tenere a mente per mantenere le informazioni sulla carta di credito dei clienti sicuro? In particolare, come devo gestire le chiavi di crittografia? Dovrebbe esserci una chiave di crittografia separata per ogni voce del cliente? Dove posso archiviare le chiavi in modo da poter decifrare i dati della carta di credito prima di inviare le transazioni a Authorize.Net? Le due opzioni sopra menzionate non mi sembrano molto valide (ma, ancora una volta, non conosco abbastanza bene l'argomento per rendere un argomento convincente contro entrambi).

Aggiornamento : ho trovato qualcuno della società che ha familiarità con la conformità PCI DSS, quindi sto lavorando con lui per assicurarmi che tutto funzioni correttamente. Tuttavia, apprezzerei ancora le risposte alle mie domande precedenti (sia per migliorare le mie conoscenze che per aiutare gli altri in una situazione simile).

Aggiornamento 2 : successo! Un altro sviluppatore si è seduto e ha letto le linee guida PCI DSS e ha deciso che è una cattiva idea archiviare le informazioni da soli. Utilizzeremo il servizio Customer Information Manager di Authorize.Net.

    
posta M8R-53mg86 14.08.2012 - 22:40
fonte

4 risposte

32

Memorizzare i numeri delle carte significa che devi rispettare i requisiti di PCI-DSS, altrimenti rischierai multe e violazioni del contratto del tuo conto commerciale. PCI-DSS ha una enorme serie di requisiti - un po 'sensibile, un po' oneroso, alcuni di dubbia utilità -. E il costo del rispetto di tale termine, e certificare che hai rispettata, può essere molto elevato

PCI-DSS 2.0 standard ed avere paura.

In particolare, nessuno degli approcci suggeriti è conforme allo standard PCI-DSS. Le chiavi non devono essere archiviate senza protezione o nello stesso posto dei dati dei titolari di carta che proteggono.

Se è necessario implementare questo in-house, è necessario isolare i componenti che toccano i numeri delle carte da qualsiasi altra cosa, in modo che PCI-DSS si applichi solo a un numero limitato di sistemi. Guarda le soluzioni di tokenizzazione per aiutarti a mantenere l'esposizione dei dati dei titolari di carta al minimo. Se non si esegue questo diritto si può facilmente cadere tutti i server (o anche tutti i desktop aziendali!) Nel campo di applicazione del PCI, in cui la conformità punto diventa difficile da impossibile.

Authorize.net offre servizi di fatturazione ricorrenti automatizzati. Per amore della sanità mentale, usa quello.

    
risposta data 16.08.2012 - 00:20
fonte
27

"Nessuno di noi è esperto di sicurezza" e "Non mi sentirei a mio agio con una società che memorizza le informazioni della mia carta di credito in questo modo" sono argomenti completamente validi. Dal punto di vista tecnico (nel merito), dovrebbero porre fine alla discussione. Ma se stai discutendo con persone che non sono esperti di sicurezza, potrebbero non essere in grado di riconoscere buoni argomenti.

Quindi, se trovi che discutere sul merito non ti porta da nessuna parte, tira fuori The Sledgehammer of Compliance (fa +20 danni ai burocrati). In particolare, ricorda loro PCI DSS. Chiedete loro se hanno valutato i costi per ottenere la conformità PCI DSS. Chiedete loro un'analisi costi-benefici delle entrate aggiuntive che questa funzione fornirà (di solito, la risposta è: 0) e quanto sarà il costo per l'azienda (di solito, la risposta è: grande). Nella maggior parte delle situazioni, sarà game over.

O, almeno, dovrebbe terminare la discussione. In caso contrario, parla con i tuoi dirigenti, in quanto si tratta in ultima analisi di una decisione aziendale e dovrebbero riconoscere molto rapidamente la chiamata corretta.

E se i tuoi dirigenti non capiscono - beh, tutto quello che posso suggerire è: ottenere nuovi manager. Forse è il momento di aggiornare il tuo curriculum.

    
risposta data 15.08.2012 - 02:42
fonte
7

Non sembra che la tua azienda abbia mai superato una valutazione PCI DSS in loco o abbia persino provato a rispondere a tutte le domande del SAQ D. Per quasi tutte le aziende che hanno, stanno cercando un modo per sbarazzarsi dei dati dei titolari di carta e sperare che non sia troppo costoso per loro farlo. Se ti trovi in un punto in cui non è ancora costoso implementare una soluzione, devi assolutamente archiviare i tuoi dati con Authorize.net o un'altra terza parte.

Il miglior argomento che puoi fare ai tuoi colleghi è quello di spiegare quanto grande sia un PCI fastidioso e quanto questo problema si riduce se non si memorizzano da soli i dati del titolare della carta. Mantenere la conformità PCI è un lavoro a tempo pieno. Se si stanno archiviando i dati dei titolari di carta ci sono molti più requisiti che è necessario soddisfare per mantenere la conformità (il DQ SA D PCI ha il doppio del SAQ C). Lo scarico dei dati è il modo più semplice per andare. Onestamente, non prenderei nemmeno in considerazione di archiviare i dati da soli.

    
risposta data 15.08.2012 - 18:31
fonte
4

La maggior parte dei Boss / Collaboratori non comprende necessariamente tutti i problemi "tecnici" che potresti presentare loro.

Quindi è necessario indirizzarli in un'area che possono comprendere perfettamente: costo / denaro.

Una delle cose che trovo utile quando spieghiamo questo è che se dovessi essere compromesso e le informazioni della carta di credito vengono rubate saranno responsabili, non solo per le multe ma anche per il costo di ri-emissione di una nuova carta di credito .

Ad esempio: se la tua azienda ha 100.000 numeri di carta di credito, costerebbe loro un milione di dollari per la sostituzione di quelle carte PRIMA di pagare multe ecc. (oh e dal modo in cui il CFO può andare in prigione se non fosse PCI compliant)

Proprio come hanno l'assicurazione per la loro proprietà

    
risposta data 16.08.2012 - 02:19
fonte

Leggi altre domande sui tag