Guida alla sicurezza dell'integrazione
Come assicurare la conformità alle norme PCI e delle comunicazioni sicure tra il cliente e il server.
Il Payment Card Industry Data Security Standard (PCI DSS) è lo standard di sicurezza globale per tutte le entità che memorizzano, elaborano o trasmettono i dati del titolare della carta o i dati sensibili di autenticazione. Il PCI DSS stabilisce un livello minimo di protezione per i consumatori e contribuisce a ridurre le frodi e le violazioni dei dati nell’intero ecosistema dei pagamenti. Chiunque sia coinvolto nell’elaborazione, nella trasmissione o nella memorizzazione dei dati delle carte deve conformarsi al PCI DSS.
Convalidare la conformità alle norme PCI
La conformità alle norme PCI è una responsabilità condivisa e si applica sia a Stripe che alla tua attività:
- Stripe è certificata annualmente da un QSA (Qualified Security Assessor) PCI indipendente come fornitore di servizi PCI di livello 1 che soddisfa tutti i requisiti PCI.
- In qualità di attività che accetta pagamenti, devi rispettare le norme PCI e attestare annualmente tale conformità.
Esamina i requisiti della documentazione per la tua attività nella Dashboard e continua a leggere questa guida per scoprire come Stripe può aiutarti a garantire la conformità alle norme PCI.
Utilizzare integrazioni a basso rischio
Alcuni modelli di business richiedono l’inserimento di PAN non tokenizzati in una pagina di pagamento. Se la tua attività gestisce direttamente dati sensibili relativi alle carte di credito durante l’accettazione dei pagamenti, potresti dover soddisfare oltre 300 controlli di sicurezza previsti dallo standard PCI DSS. Ciò potrebbe richiedere l’acquisto, l’implementazione e la manutenzione di software e hardware di sicurezza dedicati, nonché l’assunzione di revisori esterni per supportare i requisiti di valutazione annuali.
Molti modelli di business non richiedono la gestione di dati sensibili delle carte. In alternativa, puoi utilizzare una delle nostre integrazioni di pagamento a basso rischio per raccogliere e trasmettere in modo sicuro le informazioni di pagamento direttamente a Stripe senza che transitino sui i tuoi server, riducendo così i tuoi obblighi in termini di PCI.
Dati della carta fuori dal campo di applicazione che puoi memorizzare in sicurezza
In risposta a una richiesta di addebito, Stripe restituisce informazioni non sensibili sulla carta, come il tipo di carta, le ultime quattro cifre e la data di scadenza. Queste informazioni non sono soggette alle norme di conformità PCI e puoi quindi memorizzarle nel tuo database. Puoi inoltre memorizzare tutto quello che ti viene restituito dalla nostra API.
Usare TLS e HTTPS
TLS si riferisce al processo di trasmissione sicura dei dati tra il client (l’app o il browser che il cliente sta usando) e il tuo server. Tale processo veniva originariamente eseguito utilizzando il protocollo SSL (Secure Sockets Layer). Questo protocollo, ormai obsoleto e non più sicuro, è stato sostituito dal TLS. Il termine SSL continua tuttavia a essere usato colloquialmente per riferirsi al TLS e alla sua funzione di protezione dei dati trasmessi.
Le pagine di pagamento devono utilizzare una versione recente (TLS 1.2 o superiore) perché consente di ridurre significativamente il rischio di attacchi man-in-the-middle sia per te che per i tuoi clienti. TLS intende realizzare quanto segue:
- Crittografare e verificare l’integrità dei dati relativi al traffico tra il client e il tuo server.
- Verificare che il client stia comunicando con il server corretto. Normalmente, ciò significa che il proprietario del dominio e il proprietario del server sono la stessa entità. Questo aiuta a evitare attacchi man-in-the-middle. Senza questa verifica, non si può garantire che il traffico venga crittografato verso il destinatario corretto.
L’utilizzo di TLS richiede un certificato digitale, ovvero un file emesso da un’autorità di certificazione (CA, Certification Authority*). Una volta installato, il certificato assicura al client che sta realmente comunicando con il server desiderato e non con un impostore. Fatti rilasciare il certificato digitale da un fornitore di certificati serio, come:
Puoi eseguire il test della tua integrazione senza usare HTTPS e abilitarlo quando è tutto pronto per accettare addebiti in modalità live. Comunque, tutte le interazioni tra il tuo server e Stripe devono usare HTTPS (ad esempio quando usi le nostre librerie).
Configurare TLS
Per configurare TLS:
- Acquista un certificato da un fornitore appropriato.
- Configura il server per l’utilizzo del certificato. Questo passaggio è complesso, quindi segui la guida all’installazione del provider che utilizzi.
Dato che TLS è una complessa suite di strumenti crittografici, è facile trascurare qualche dettaglio. Per accertarsi che la configurazione sia stata completata in modo sicuro, consigliamo di utilizzare SSL Server Test di Qualys SSL Labs.
Considerazioni sulla sicurezza
Includere JavaScript da altri siti può essere un rischio per la sicurezza perché la tua sicurezza diventa dipendente dalla loro. Se quei siti dovessero essere compromessi, un utente malintenzionato potrebbe riuscire a eseguire codice arbitrario sulla tua pagina. In pratica, molti siti utilizzano JavaScript per servizi come Google Analytics, anche su pagine sicure. Tuttavia, ti consigliamo di ridurre al minimo questo rischio.
Se utilizzi i webhook, utilizza TLS per l’endpoint per evitare che il traffico venga intercettato e che le notifiche vengano alterate (le informazioni sensibili non sono mai incluse in un evento webhook). Devi anche verificare le firme webhook e consentire l’inserimento degli indirizzi IP di Stripe per garantire che ogni webhook Stripe ricevuto venga inviato esclusivamente da Stripe.
Quando si parla di sicurezza, non bisogna limitarsi alla conformità con gli standard di sicurezza dei dati. A tal fine, alcune risorse utili sono:
Criteri di sicurezza del contenuto
Se hai implementato dei Criteri di sicurezza del contenuto, l’insieme completo delle direttive necessarie per Checkout, per i componenti incorporati di Connect e per Stripe.js comprende:
Assistenza per l’isolamento multiorigine
Al momento non supportiamo i siti con isolamento multiorigine.
Tuttavia, questa funzionalità richiede il supporto di tutte le dipendenze, e alcune dipendenze chiave per le nostre offerte di pagamento non sono ancora compatibili.