Plan
• Présentation
• C’est quoi la sécurité ?
• Pourquoi sécuriser une application ?
• Comment fonctionne un paiement en ligne ?
• E-Commerce, des nouveaux risques
• Moyens de paiements
• Protection des paiements
• Prestataires de paiements
Je n’ai pas la clé
• Le crochetage
• Les bumpkeys et les pickguns,
• L’impression, la copie de clé illicite et la
fabrication de passe-partout...
C’est quoi la sécurité ?
Aspect juridique
Un accroissement des responsabilités des dirigeants face à la sécurité des informations
numériques
• + de protection des données
• + de traçabilité
• Nul n’est censé ignorer la loi
• Sensibilisation du personnel interne / externe
• Mettre l’entreprise en conformité avec la législation
Engagement de la responsabilité civile et / ou pénale
• Directive européenne : jusqu’à 5 ans d’emprisonnement et 300 000 euros d’amendes
Pourquoi sécuriser une application ?
OWASP
OWASP : Open Web Application Security Project - Organisation mondiale à but non lucratif
http://www.owasp.org
Son rôle : sensibiliser à la sécurité des Applications Web pour aider à prendre les bonnes
décisions en matière de sécurité
Evènements et présence :
● Des conférences à travers le
monde
● Des listes de diffusion spécifiques
● Des chapitres locaux
Des matériels :
● documentations (Top10, Cheats
Sheets, Normes, Guides, …)
● outils (Samy, ZAP)
● code (Librairies)
Pourquoi sécuriser une application ?
Injection SQL
Pourquoi sécuriser une application ?
Dès lors qu’un utilisateur peut interagir avec le site, il peut aussi entrer
des informations non attendues.
Une requête SQL classique pour la vérification de
mots de passe est SELECT * from admins
WHERE login='$login' AND
password='$password'
Que se passe-t-il si je rentre pour l’identifiant ?
' OR 1=1#
la requête devient alors
SELECT * from admins WHERE login='' OR
1=1
Méditation créative
1 2 3
4 5 6
7 8 9
relier les 9 trésors
4 lignes droites
sans lever le stylo
Pourquoi sécuriser une application ?
Comment fonctionne un paiement en ligne ?
1ère étape
Le site marchand ou le PSP
(Payment Service Provider)
génère le formulaire pour
collecter les données de la
carte du client et l’envoi au
navigateur du client.
2ième étape
Le client saisit les
informations de sa carte et
valide le formulaire. Le
navigateur envoie donc les
données de la carte au PSP
ou au site marchand.
3ième étape
Les données sont reçues par
le PSP ou le site marchand
et transmises au système de
paiement pour autorisation.
Les données doivent absolument être chiffrées lors du transit entre les différentes parties
E-commerce
Le paiement sans contact
• fait directement à partir d'une carte ou d'un téléphone mobile
Le e-commerce
• possible à partir d’un numéro de carte bleue et d’une date de fin de
validité
E-commerce
La sécurité E-Commerce
• doit être partie intégrante du processus de sécurité d’une
application
• a ses propres spécificités et est un des principaux (et des plus
visibles) composants affectant l’utilisateur final au travers de ses
paiements sur Internet
Moyens de paiements
Carte bleue
Vous avez vraiment besoin d’explication ?
E-carte bleue
• service bancaire qui génère un numéro de carte éphémère et pour un montant maximum
pour chaque transaction à réaliser sur Internet
• le numéro de carte bancaire réelle n’est pas utilisé et n’apparaît donc pas dans la
transaction
• le montant maximum de l’e-carte est défini et le marchand ne pourra pas utiliser un
montant supérieur
Moyens de paiements
M-Paiement
• toutes les transactions effectuées depuis un téléphone mobile, le paiement peut être débité
• d’une carte bancaire
• d’un porte-monnaie électronique
• d’une facture d’opérateur téléphonique
• 4 catégories de paiements par mobile
• paiement en ligne
• paiement sans contact sur une borne
• transfert d’argent de mobile à mobile
• paiement par SMS
• Exemples de technologies
• Internet Mobile
• NFC
• SMS
• QR Code
• Bluetooth
Moyens de paiements
Google Wallet
• système de paiement mobile développé par Google
• permet de stocker ses cartes de débits, crédits, …
• peut utiliser la technologie NFC pour le paiement sans contact avec les terminaux de
paiements
Depuis 2013, Google a intégré Gmail et Google Wallet pour pouvoir envoyer de l’argent en pièce
jointe d’e-mails.
• le code PIN à 4 chiffres de l’application peut être trouvé assez rapidement grâce au
bruteforce (10 000 combinaisons)
• facilement sujet à des attaques dès lors qu’une faille est découverte sur le système du
téléphone car stocké directement en crypté sur le téléphone
• il est également recommandé de ne pas “rooté” son téléphone Android
Moyens de paiements
Et bien d’autres
• Apple Pay
• Amazon Payment
• Paypal (porte-monnaie électronique)
• ...
Pré requis
Pré requis essentiels d’une bonne sécurité E-commerce
• Intégrité
• Non répudiation
• Authenticité
• Confidentialité
• Chiffrement
• Disponibilité
Protection des paiements
Mesures
Des mesures à prendre pour assurer la confiance
• Chiffrement
• Signature Digital
• Certificats de sécurité
Protection des paiements
HTTPS
• Couplage du protocole HTTP avec une couche de chiffrement (comme
SSL)
• Protocole de transfert hypertexte sécurisé
• Permet à l’utilisateur de vérifier l’identité du site Web
• Certificat d’authentification émis par une autorité tierce réputée fiable
• Garantit la confidentialité et l’intégrité des données transmises entre
le navigateur du client et le serveur
• Un meilleur référencement du site e-commerce
(http://googlewebmastercentral.blogspot.fr/2014/08/https-as-ranking-signal.html)
Protection des paiements
Certificat SSL
• signé par un tiers de confiance qui assure le lien entre l’entité
numérique (le site) et l’entité physique (la société)
• active le chiffrement des donnés au travers du protocole HTTPS
• 2 méthodes de chiffrement : clés asymétriques et clés symétriques
• Plusieurs types de certificats
• X.509 standard : certificat classique, chiffrement entre 40bits et 256bits
• X.509 étendu : affiche l’indicateur EV (Extended Validation)
• X.509 wildcard : permet de rendre générique une partie du domaine (ex : *.darkmira.fr
-> www.darkmira.fr, tour.darkmira.fr, mais pas darkmira.fr)
• X.509 multisite : certificat contenant une liste de noms de domaine
Certificat SSL
• Certificate
• Version
• Serial Number
• Algorithm ID
• Issuer
• Validity
• Not Before
• Not After
• Subject
• Subject Public Key Info
• Public Key Algorithm
• Subject Public Key
• Issuer Unique Identifier (optional)
• Subject Unique Identifier (optional)
• Extensions (optional)
• …
• Certificate Signature Algorithm
• Certificate Signature
Tokenisation
Problématique : Les données sensibles associées à la carte de paiement et à son détenteur ne
doivent être détenues que entre l’acheteur et la banque / système de paiement.
Tokenisation - solution sécurisée appliquée aux paiements en ligne
• solution récente
• Apple Pay l’intègre depuis son lancement en 09/2014
• Visa et Mastercard approuve au même moment la tokenisation comme solution de sécurisation des
transactions (en particulier sans carte)
=> En cas de vol ou de failles permettant de lire les données, le risque induit par la
transmission de données sensibles est grandement réduit.
Protection des paiements
Tokenisation
Les tokens doivent
• remplacer les données sensibles par des substituts
• n’ont aucun lien avec les données
• être créés à partir de caractères / nombres aléatoires et doivent n'avoir aucun lien avec les
données qu'ils remplacent
• avoir le même format, la même taille et les mêmes caractéristiques que les données
originales
Norme EMV - https://www.emvco.com/specifications.aspx?id=263
Protection des paiements
3D Secure
• Protocole sécurisé (basé sur XML) de paiement sur Internet
• Utilisé par Visa et Mastercard (appelation Verified by Visa et Mastercard SecureCode) puis
American Express ...
• Ajoute une couche de sécurité aux paiements en ligne en demandant une information
d’identification en plus de l’information financière
Une des méthodes principales pour combattre la fraude
• Redirige le client sur une page spécialisée de la banque pour renseigner une ou plusieurs
informations personnelles
• envoi d’un code par sms sur son téléphone
• un mot de passe
• une date de naissance
• un e-mail
Protection des paiements
3D Secure
passe une commande
Utilisateur
essaye de payer en
renseignant les
informations de sa
carte
3D Secure demande des
informations pour identifier
l’utilisateur (ex. : code par
SMS)
Informations non valides
Transaction refusée Continue avec la
transaction
Protection des paiements
Card Security Code
Code de sécurité
• valide l’authenticité de la carte utilisée lors d’une transaction financière
• valide que le consommateur a bien la carte en main
• imprimé sur le devant ou le dos des cartes de crédits
• créé pour les paiements où le code PIN ne peut être utilisé (téléphone, mail, achat sur
internet)
• différents noms suivants les cartes (CVN2, CVC2, CID, CVV2, …)
Apparition
• Mastercard 1997
• American Express 1999
• Visa 2001
Les paiement sans contact ont leur propre système de code généré électroniquement comme le
ICVV ou le Dynamic CVV
Protection des paiements
Card Security Code
La PCI DSS interdit le stockage du CSC lors d’une transaction
• un marchand ne doit ainsi pas stocker ce code dans son système lorsque vous lui
fournissez
• si les données de transactions sont volées, le pirate n’obtient pas le code et ne peut pas
effectuer d’autres achats
Le code de sécurité n’est pas inclus dans la bande magnétique ni la carte à puce
• donc n’est pas transmis automatiquement lors d’une transaction face à face avec un
marchand
Protection des paiements
Card Security Code
3 numéros sur le dos de la
carte pour Visa / Mastercard
4 numéros sur le devant pour
American Express
Il est recommandé de retenir ce numéro et de l’effacer de la carte
Protection des paiements
Chaque banque française (CIC, HSBC, BNP, …) propose plusieurs services pour intégrer leur solution de
paiement à votre site e-commerce. Chaque formule apporte plus ou moins de fonctionnalités et supports :
• leur kit API (à intégrer à votre site e-commerce)
• la page de paiement international
• le paiement multi-devise
• la gestion multi-compte / multi-site
• le support
• …
Pour la plupart, le kit propose sur le site des paiements par :
• Cartes bancaires ou cartes privatives (Aurore, American Express, …)
• Paiement par débit du compte via Paypal
• Facilité de paiements via la mise en place de crédits en ligne
Il convient ainsi de comparer les différentes banques / services et leurs tarifs :
• des frais d’ouvertures
• un abonnement mensuel
• des commissions sur les ventes
Les solutions bancaires
Prestataires de paiements
Les solutions Paypal
• qui ne connaît pas Paypal ?
• créé en 1998, racheté par Ebay en 2002
• service de paiements en ligne pour payer ses achats sur internet, recevoir des paiements,
transférer de l’argent ou en recevoir
• inscription gratuite et ne nécessite pas l’obtention d’un contrat de vente à distance
• montant fixe par vente de quelques centimes + commission sur les ventes (possibilité d’un
abonnement mensuel pour bénéficier de tarifs + avantageux)
Paypal propose la possibilité de ne pas avoir à saisir sa carte bancaire à chaque transaction
d’achat
• possibilité de renseigner son compte bancaire ou sa carte de crédit pour débit lors d’une
transaction
• compte protégé uniquement par un e-mail et un mot de passe (nécessité de fournir un mot
de passe fort)
Prestataires de paiements
La solution Stripe
• Simple d’utilisation et opérationnel rapidement
• Installation rapide, peu de configuration
• possibilité d’intégrer Stripe sans avoir à ce créer un compte marchand
• s’intègre très facilement aux checkouts, modules existants pour les CMS
• montant fixe de 0,30cts + 2,9% sur les ventes
• accessible actuellement dans peu de pays (malgré une bêta en France)
• Supporte l’Apple Pay et les transactions Bitcoin
Prestataires de paiements