NSI · terminale spe
Chapitre 7 — Sécurité informatique
L'essentiel en 30 secondes
La sécurité repose sur trois piliers : confidentialité, intégrité, disponibilité. Le chiffrement symétrique (AES) utilise une seule clé partagée. Le chiffrement asymétrique (RSA) utilise une paire clé publique / clé privée. HTTPS = HTTP + TLS : le navigateur vérifie le certificat du serveur, puis établit un canal chiffré. L'injection SQL exploite les entrées non vérifiées pour exécuter du code SQL malveillant.
Notions clés
- Chiffrement symétrique
- Une seule clé pour chiffrer et déchiffrer. Rapide mais nécessite un échange sécurisé de la clé. Ex : AES.
- Chiffrement asymétrique
- Deux clés : publique (chiffrement) et privée (déchiffrement). Résout le problème de l'échange de clés. Ex : RSA.
- HTTPS et TLS
- HTTPS = HTTP chiffré par TLS. TLS combine asymétrique (échange de clé de session) puis symétrique (chiffrement des données).
- Certificat numérique
- Document signé par une autorité de certification (CA) qui garantit l'identité du serveur et sa clé publique.
- Injection SQL
- Attaque consistant à insérer du code SQL via un champ de saisie non filtré. Ex : ' OR 1=1 -- dans un formulaire de login.
Formules
Injection SQL — exemple d'attaque
Condition : L'attaquant contourne l'authentification en injectant une condition toujours vraie
Protection contre l'injection SQL
Condition : Les requêtes paramétrées (ou préparées) empêchent l'interprétation du SQL injecté
Principe de TLS simplifié
Condition : Asymétrique pour l'échange de clé, symétrique pour les données (plus rapide)
A retenir
- HTTPS utilise les DEUX types de chiffrement : asymétrique pour échanger la clé de session, symétrique pour chiffrer les données.
- La protection n°1 contre l'injection SQL : les requêtes paramétrées. Jamais de concaténation de chaînes avec des saisies utilisateur.
- Un certificat numérique lie une clé publique à une identité, garantie par une autorité de certification.
Erreurs classiques
Erreur : Croire que HTTPS est 100% sécurisé
Correction : HTTPS chiffre le canal, mais ne protège pas contre le phishing, les failles côté serveur ou les malwares côté client.
Erreur : Penser que le chiffrement asymétrique est utilisé pour tout chiffrer
Correction : L'asymétrique est trop lent pour les données. Il sert uniquement à échanger la clé de session (symétrique).
Erreur : Construire des requêtes SQL par concaténation de chaînes
Correction : Toujours utiliser des requêtes paramétrées (? ou %s selon le driver). C'est la seule protection fiable.
Astuce méthode
Au bac, si on te donne un code SQL vulnérable, repère la concaténation de chaîne avec la saisie utilisateur, montre l'injection possible (ex : ' OR 1=1 --), puis propose la correction avec une requête paramétrée.