Sécurité informatique: foire aux questions

Contenu:
·  Je suis à la recherche de la sécurité à 100%.  Comment atteindre la sécurité absolue?
· Je dois présenter un plan de sensibilisation à la sécurité: que puis-je y mettre?
· Quels sont les enjeux et les objectifs de la sécurité informatique?
· Comment aborder la sécurité informatique? Où trouver des documents sur la sécurité informatique?
· Quelles études sont à conseiller dans le domaine de la sécurité informatique?
· Les méthodes de sécurité informatique: comment se les procurer?  Qu'est-ce qui se cache derrière les noms MARION, MEHARI, MELISA, ISO 27001…? Y a-t-il des livres qui en parlent?
· Les certifications de sécurité (CISA, CISSP…), comment les obtenir?
· Qu'est-ce que les attaques buffer overflow?
· Les attaques anniversaires (birthday attacks), comment ça marche?
· La cryptographie: comment l'aborder?  Peut-on chiffrer sur son ordinateur personnel?
· Les one-time passwords: comment ça marche?
· Où trouver un générateur automatique de mots de passe?
· Qu'est-ce que le PSN?  Menace-t-il la vie privée?
· Et si je veux en savoir plus sur la sécurité informatique?

Introduction

Cette Foire Aux Questions est le résultat d'années de dialogue fructueux avec les visiteurs de ma page Web consacrée à la sécurité informatique.  C'est une compilation de nos dialogues.  Mes remerciements vont aux internautes qui m'ont confié leurs interrogations et avec qui j'ai eu le plaisir de dialoguer par delà le réseau.  La plupart reconnaîtront leurs questions.  Merci de tenir compte des conditions d'utilisation de ce site.

Si vous ne trouvez pas votre bonheur dans cette FAQ, envoyez-moi un message.  Merci par avance et à bientôt.

Que mettre dans un plan de sensibilisation à la sécurité?

On me dit parfois: Je dois présenter un plan de sensibilisation à la sécurité: que puis-je y mettre? Voici quelques pistes.

La sécurité est l'affaire de tous, pas seulement du RSSI (Responsable de la Sécurité des Systèmes d'Information).  Chaque acteur de l'entreprise est responsable de la sécurité dans son environnement de travail et l'entreprise attend de lui qu'il manipule l'outil informatique de la manière la plus appropriée.  Un programme de sensibilisation apprend à chacun quelle est sa responsabilité en matière de sécurité.

Le responsable de la sécurité informatique est le maître d'œuvre du programme de sensibilisation.  Il a plusieurs outils à sa disposition:

Faire sa publicité

C'est la façon la plus classique et la plus facile de travailler.  Du matériel est rendu accessible à tous ceux qui, de près ou de loin, utilisent l'informatique dans l'entreprise.  Des sociétés de conseil ou de formation peuvent fournir ce matériel.
Vade-mecum Le vade-mecum peut contenir les «dix commandements de la sécurité», par exemple:
  • Tu ne révèleras ton mot de passe à personne, et surtout pas au téléphone
  • Tu n'ouvriras pas de pièces jointes suspectes dans ta messagerie
  • Tu protègeras ton économiseur d'écran par un mot de passe, etc.
Affiches,
calendriers
Une affiche avec un message simple («avez-vous sauvegardé vos fichiers cette semaine?») et qui est renouvelée régulièrement est un outil simple et efficace.
Intranet Pour un contenu plus élaboré, quelques pages dans l'Intranet de l'entreprise sont le meilleur véhicule.

Pour faciliter l'accès aux pages sur la sécurité, introduire dans la page d'accueil de l'Intranet un lien qui référence ces pages.

Conférences et ateliers

Plus difficiles à réaliser et plus coûteux en temps, les conférences et ateliers de sensibilisation sont plus efficaces parce qu'ils sont interactifs.

Quelques heures suffisent pour faire le tour de la question.  Voici quelques domaines à aborder :

Pour contrôler l'efficacité de la conférence, prévoyez un questionnaire de fin de session, avec distribution d'un certificat de réussite.  Important: les conférences sont aussi destinées aux nouveaux engagés qui doivent les suivre dès le premier jour afin d'acquérir d'emblée les bons réflexes.

Quels sont les enjeux et les objectifs de la sécurité informatique?

Enjeux de la sécurité informatique

Comme toute activité de l'entreprise, l'informatique contribue à ses objectifs généraux: Pour maintenir son avantage compétitif de manière durable, l'entreprise doit assurer la disponibilité constante de tous ses outils, et particulièrement de son outil informatique dont elle est de plus en plus dépendante.  L'entreprise doit aussi assurer l'intégrité de l'information qu'elle a stockée dans son système informatique.  Enfin, elle doit préserver la confidentialité de cette information.  Tel est l'enjeu, qui a pris une importance croissante depuis de plus en plus d'opérations naguère manuelles sont informatisées, depuis que les réseaux d'entreprise permettent de distribuer l'informatique dans toute l'organisation et depuis que ce réseau s'ouvre sur l'extérieur.

Objectifs de la sécurité informatique

Pour atteindre le niveau de sûreté requis, la sécurité informatique se fixe l'objectif suivant:
Protéger les actifs informatiques de l'entreprise contre les risques et ce, d'une manière qui est adaptée à l'entreprise, à son environnement et à l'état de son outil informatique
Chaque aspect de cet objectif est couvert par une activité spécifique:
Objectif: Ce qui implique que le responsable de sécurité se charge des activités de:
Protéger… Conception, mise en œuvre, et maintenance des contre-mesures de sécurité
…les actifs informatiques de l'entreprise… Identification des actifs informatiques (information, applications, systèmes, ressources humaines). Détermination de la valeur des actifs:
  • pour l'entreprise, et
  • pour les intrus potentiels
…contre les risques… Identification des risques, ce qui implique l'identification des actifs vulnérables sur lesquels pèsent des menaces significatives
…et ce, d'une manière qui est adaptée à l'entreprise,… Détermination du niveau de criticalité des différents actifs informatiques. Détermination du meilleur équilibre entre risques et coût de protection
…à son environnement… Identification des menaces:
  • internes et externes,
  • d'origine accidentelle ou intentionnelle
…et à l'état de son outil informatique. Identification des vulnérabilités des actifs informatiques

Activités

Les activités qui couvrent l'objectif de sécurité ne peuvent pas être réalisées dans l'ordre qui est montré plus haut.  Par exemple, l'analyse de risques doit suivre l'identification des menaces et des vulnérabilités. Dans le tableau ci-dessous, les activités sont réalisées de haut en bas :
Identification des actifs Identification des menaces
Détermination de la valeur des actifs
Identification des vulnérabilités
Identification des
risques
Détermination du niveau de
criticalité des actifs
Conception, mise en œuvre et maintenance des contre-mesures
Les contre-mesures de sécurité sont donc l'étape ultime du processus.  Elles sont le résultat d'une série d'analyses préliminaires qui garantissent que les contre-mesures s'attaquent aux risques les plus importants.

Comment aborder la sécurité informatique? Où trouver des documents, des dossiers?

Souvent on me dit «Je suis un administrateur système (ou un étudiant, ou…) et la sécurité informatique m'intéresse.  Par où commencer? Quels sont les outils, les normes?» Parfois on me demande s'il faut d'abord devenir un pirate.

La Toile regorge de sources, par exemple :

D'autres idées :

Une démarche d'analyse de la sécurité informatique

À ceux qui doivent réaliser une étude de sécurité informatique dans une entreprise, sans y être réellement préparés, je devrais donner ici tout un cours de sécurité, ce qui est impossible.  Voici donc une démarche.  Dans une étude de sécurité, avant de penser à des techniques de sécurité informatique, il faut déterminer ce qui mérite d'être protégé et contre quoi.  On peut résumer cette démarche en 3 mots: actifs, risques, contre-mesures:
Actifs: On se demande d'abord quelles fonctions informatiques sont vraiment indispensables pour que l'entreprise puisse remplir la mission qu'elle s'est assignée.  En d'autres termes, quels sont les équipements, les applications, le personnel informatique dont l'entreprise ne peut pas se passer?

A priori, tous les actifs informatiques semblent importants.  Toutefois, un examen attentif permet de classer les équipements, applications et membres du personnel dans une hiérarchie des besoins: ce dont on a absolument besoin pour faire fonctionner l'entreprise, ce dont on peut se passer pendant un jour, deux jours, une semaine, etc.

Risques: Le risque résulte de la combinaison de menaces et de vulnérabilités.  Ici, on privilégie les menaces probables (on ne s'attarde pas sur les menaces d'inondation quand on habite au sommet d'une montagne, même si nul n'est à l'abri d'un déluge), ainsi que les vulnérabilités les plus pertinentes (la vulnérabilité d'un actif non critique est moins pertinente que celle d'un actif essentiel):
O Menaces: la menace majeure vient-elle de l'extérieur de l'entreprise ou de l'intérieur? (attention: ¾ de la sinistralité informatique résulte d'attaques de l'intérieur!).  Vient-elle d'interventions humaines (fraude, vol, sabotage, grève…) ou de phénomènes «naturels» (inondation, incendie…)?
O Vulnérabilités: sont-elles liées à des faiblesses de l'organisation du service informatique ou de l'entreprise en général?  Sont-elles liées aux techniques informatiques utilisées (trop faibles, obsolètes…)?  Quels sont les actifs critiques qui sont les plus faibles?
Contre-
mesures:
À ce stade, on sait quels sont les vrais risques qui pèsent sur les actifs les plus importants.  On sait par où commencer, quoi protéger et contre quoi.  Les contre-mesures de sécurité découlent naturellement.  Ici —et seulement ici— on entre dans la technique!
Une identification des actifs critiques et une étude de risques ont peut-être déjà été réalisées dans l'entreprise qui vous charge de sa sécurité.  Procurez-vous ces études et partez de là.

En ce qui concerne les normes et les outils, au risque d'en décevoir beaucoup, je dirai que le meilleur outil est le bon sens, doublé d'une bonne connaissance du fonctionnement de l'entreprise.

Quelles études sont à conseiller dans le domaine de la sécurité informatique?

Nombreux sont ceux qui désirent se spécialiser dans la sécurité informatique.  Des formations spécifiques dans le domaine de la sécurité informatique apparaissent petit à petit en France et en Belgique.  On peut citer : Si vous êtes encore aux études, vous pouvez orienter votre spécialisation.  Par exemple, préparez votre prochain stage en entreprise en essayant de l'orienter vers la sécurité informatique.  Par exemple, visez les banques qui sont grosses consommatrices de sécurité.

Les méthodes de sécurité informatique: Mehari, Marion, Melisa, INCAS, CRAMM, ISO 27001…

Les méthodes du CLUSIF: INCAS, MARION et MEHARI

INCAS (Intégration dans la Conception des Applications de la Sécurité) est une méthodologie de développement d'applications sécurisées.  INCAS prend en compte les besoins de sécurité autant que les besoins fonctionnels dans un développement informatique.  Suivant INCAS, les données stratégiques sont classifiées objectivement en fonction de l'impact qu'aurait un sinistre sur la Disponibilité, l'Intégrité ou la Confidentialité (retenez: DIC) de ces données.  Rien de révolutionnaire, semble-t-il.  INCAS est la propriété du CLUSIF.

MARION est une méthode d'analyse de risques qui prend en compte les aspects tant organisationnels que techniques de la sécurité informatique.  MARION permet de réaliser un audit de sécurité qui débouche sur une évaluation des niveaux de risque dans une série de domaines: organisation générale, sécurité physique, sécurité logique, sécurité applicative, etc.  Cette évaluation permet ensuite de sélectionner les mesures de sécurité qui «bouchent les trous» de manière optimale, c'est-à-dire, qui égalisent les niveaux de risque dans les divers domaines à un niveau homogène et acceptable.

Le CLUSIF a cessé tout nouveau développement de MARION et a lancé une nouvelle méthode: MEHARI.  MEHARI va plus loin que l'analyse de risques puisqu'elle englobe le développement complet du plan de sécurité.  Il y a un bon résumé sur le site du CLUSIF; on peut acheter les manuels qui décrivent la méthode.

MELISA

MELISA est une méthode d'analyse de vulnérabilités qui fut mise au point par la DGA (Direction Générale des Armements) et qui a été reprise par la société CF6.  Il s'agit d'une méthode relativement lourde (qui s'applique donc à des grosses entreprises) qui part d'un thesaurus de questions.  CF6 en a fait son cheval de bataille pendant des années, mais il semble que cette méthode soit aujourd'hui délaissée par CF6: on ne trouve en effet plus guère de trace de Melisa dans le discours commercial de CF6, qui a été rachetée par Telindus.

ISO/IEC 27002

La norme ISO/IEC 27002 fournit une série de «bonnes pratiques» en matière de sécurité.  Les bonnes pratiques («Business Best Practices») permettent à l'entreprise de réagir efficacement et rapidement à toute circonstance sans devoir ré-inventer la roue.  Avec l'apparition de l'Internet et de l'e-business, les impératifs d'efficacité et de rapidité sont accrus et l'application de bonnes pratiques est devenue essentielle à la compétitivité de l'entreprise, donc à sa survie.

En plus des impératifs internes d'efficacité et de rapidité, les bonnes pratiques répondent à des impératifs externes.  Une entreprise qui cherche un partenaire doit avoir une assurance raisonnable de la fiabilité du partenaire potentiel.  Cela est particulièrement vrai quand le partenaire potentiel est éloigné, ce qui interdit le contact direct.

D'où la nécessité d'avoir des certificats de bonne pratique qui soient délivrés par une autorité reconnue et qui permettent de s'assurer rapidement que le partenaire potentiel a des pratiques adaptées au métier, qu'elles sont efficaces et qu'elles sont appliquées effectivement.  Ce schéma existe dans le domaine de la qualité avec les certifications ISO9000.  La norme anglaise BS7799 (dont découle ISO/IEC 27002) a initié une démarche similaire dans le domaine de la sécurité informatique: une entreprise qui a la certification BS7799 a été auditée et a été reconnue capable de faire du commerce électronique en toute sécurité avec ses partenaires commerciaux.

BS7799 a deux parties: BS7799-1 explique le «quoi» et BS7799-2 explique le «comment».  BS7799-1 a donné la norme internationale ISO/IEC 27002, et BS7799-2 a donné ISO/IEC 27001:

ISO27001 PDCAISO/IEC 27001 décrit le développement de l'ISMS comme un processus, à la manière de la norme ISO 9000 qui décrit le processus qualité.  ISO/IEC 27001, comme ISO 9000 se fondent sur le modèle classique «Plan— Do— Check— Act» (PDCA) qu'on pourrait traduire par «Planifier— Implanter— Surveiller— Améliorer» (PISA).  Ce modèle n'est rien d'autre qu'un rappel que la sécurité est un processus itératif qui inclut successivement la préparation et la planification de l'ISMS (P), la mise en œuvre/ implantation de la sécurité (I), la surveillance (S) et —enfin— l'amélioration et la maintenance de la mise en œuvre (A).  De plus, ISO/IEC 27001 reflète les principes des lignes directrices de l'OCDE régissant la sécurité des systèmes et réseaux d'information.

La certification BS7799 vérifie que l'ISMS prévu dans ISO/IEC 27002 rencontre bien les besoins de sécurité de l'entreprise.  Cette certification est réalisée par un auditeur accrédité.  L'auditeur vérifie, sur base de l'ISMS, que la sélection de contre-mesures est appropriée et qu'elle a été documentée à la suite d'une analyse de risques formelle; il vérifie aussi que les contre-mesures ont été mises en œuvre correctement et complètement.  C'est à l'auditeur de juger de la validité de l'application de la norme et du bien-fondé des contre-mesures.  Son jugement est essentiel et la norme ne fournit pas de règle à ce sujet.

BS7799-1 a acquis une reconnaissance internationale depuis son adoption par l'ISO.  En France, l'administration préfère les méthodes d'analyse développées par la DCSSI.

CRAMM

CRAMM est une méthode de gestion du risque imposée par le gouvernement britannique.  C'est lourd, exhaustif (plus de 3000 points de contrôle) et donc adapté à de grosses entreprises uniquement (il y a 550 clients dans le monde).

Suite à la création de la version 2002 de BS7799-2 (voir plus haut), Insight Consulting a créé une nouvelle version (CRAMM Version 5) qui vise également à la certification BS7799.

Les certifications de sécurité (CISA, CISSP…), comment les obtenir?

De plus en plus de visiteurs s'intéressent aux certifications de sécurité.  On me demande quelle est la meilleure préparation aux examens CISA et CISSP.

Les certifications de sécurité

Des certifications professionnelles ont été créées dans différents domaines de l'informatique.  La certification est un moyen pour un professionnel de valider ses connaissances et de prouver qu'elles sont complètes et à jour.  Il faut passer un examen, généralement un questionnaire à choix multiples.

Les certifications de sécurité sont des certifications de constructeurs, des certifications «indépendantes» ou des certifications d'entreprises de formation, par exemple LearningTree.  Ces dernières sont plus rares.

Certifications de constructeurs

Ces certifications portent sur des produits (logiciels et matériels) et sont organisées par les constructeurs à l'intention de leurs distributeurs.  Elles valident une connaissance d'un produit, de ses caractéristiques, de la manière de l'installer, de le configurer, de l'administrer, etc.  La plupart des constructeurs de produits de sécurité organisent ces certifications, par exemple Cisco, CheckPoint ou RSA.

Certifications indépendantes

Les certifications indépendantes sont organisées par des organismes indépendants des constructeurs et ne sont donc rattachées à aucun produit commercial.  Les dernières années ont vu la création d'une multitude de certifications: Ces certifications demandent des connaissances diversifiées.  Pour avoir accès à la plupart des certifications, il faut une expérience préalable dans le domaine couvert.  La certification n'est pas acquise pour toujours: après la certification, il y a une exigence de formation continue (CPE - Continuing Professional Education) et celui qui n'atteint pas le minimum requis perd sa certification et doit repasser l'examen.  On peut aussi gagner des crédits CPE en donnant des conférences et des cours ou en écrivant des articles.

Il faut aussi citer les certifications GIAC organisées par le SANS Institute, qui s'adressent de préférence à des praticiens de la sécurité (administrateurs système ou réseau, etc.), mais dont certaines peuvent convenir à des gestionnaires de sécurité en début de carrière:

Cela en vaut-il la peine?

Les certifications apportent-elles un avantage qui justifie les importants efforts en argent et en temps que cela implique? (en ce qui concerne l'argent, il y a des droits d'inscription pour l'examen, non récupérables en cas d'échec, et une cotisation annuelle ensuite).  On me demande parfois si cela permet de trouver un emploi: la réponse est: non, ce n'est pas un sésame, c'est une référence qui aide le recruteur.  Pour évaluer rapidement l'expérience d'un candidat et appliquer un premier filtre, le recruteur peut d'abord vérifier s'il est certifié: c'est plus rapide que d'explorer tout son CV.  Mais la certification est un argument parmi d'autres et ce n'est pas suffisant.  L'expérience reste le premier critère.

Les certifications de constructeurs offrent des avantages immédiats, tels que: l'accès à des forums de discussion ou à des informations techniques au travers de sites réservés, des abonnements à prix réduit, voire gratuits, à des magazines spécialisés, ou la mise à disposition de versions «bêta».

En ce qui concerne les certifications indépendantes, même si les certifications CISA et CISSP sont reconnues, même si leur nombre s'accroît sans cesse (presque 100% de croissance entre 2001 et 2002 pour les certifiés CISSP), les offres d'emploi qui exigent une certification CISSP ou CISA commencent seulement à apparaître en Belgique et en France.  Ceci dit, cela en vaut la peine: si vous êtes déjà actif dans une des professions couvertes par les certifications indépendantes, ces certifications vous permettent de faire le point de vos connaissances et de les consolider.  De plus, certaines certifications indépendantes vous ouvrent à des activités organisées localement.  Par exemple, l'ISACA a 160 chapitres nationaux qui organisent des conférences et qui sont un précieux lieu de contact.

Comment se préparer?

Vous trouverez des informations utiles dans les sites dédiés à la certification comme CertMag.  D'autres sites: CertCities, CramSession et GoCertify.

Je ne peux parler que des certifications que j'ai passées, CISA, CISSP et ABCP.  La meilleure préparation vient de la pratique professionnelle: si vous avez dix ans d'expérience dans le domaine de la certification que vous visez, l'examen est conçu de telle sorte que votre préparation peut se réduire au minimum.  La majorité des candidats ont moins de dix ans d'expérience et ils doivent consentir un effort important d'étude, une ou deux heures par jour pendant plusieurs mois.  Les candidats aux certifications les plus courantes ont beaucoup de matériel à leur disposition pour se préparer :

CISA

L'ISACA vend des manuels de préparation (suivre le lien "Publications").  Il y a aussi des exercices qui sont des listes de questions et qui sont un bon reflet du niveau de difficulté de l'examen.  Un conseil: procurez-vous ces exercices afin de vous familiariser avec le style des questions.  Les questions sont parfois difficiles à comprendre et le choix de la bonne réponse dépend de nuances difficiles à déceler immédiatement.  Un bon entraînement est la meilleure des préparations.

La langue est aussi un obstacle.  On peut passer l'examen CISA en anglais qui est la langue d'origine, ce qui évite tout problème de traduction.  On peut aussi le passer en français: pour éviter les problèmes, consultez le glossaire anglais-français de l'ISACA.

L'ISACA organise des sessions de préparation qui sont un bon complément.  Attention: ces sessions comprennent des exercices qui sont généralement trop faciles et qui procurent un faux sentiment de confiance.

CISSP

Les manuels et les exercices sont nombreux et une recherche sur la Toile vous donnera une multitude de références.  Celles que je préfère sont :

Qu'est-ce que le Buffer Overflow?

Sébastien me dit: je recherche des infos sur le buffer overflow.  Voici une explication.

Les exploits

Les exploits buffer overflow («débordement de tampon») exploitent la méthode d'allocation de mémoire des variables locales dans les routines codées en C.  Les variables locales sont stockées dans la pile (le stack) et la quantité de mémoire qui y est réservée (le tampon ou buffer) est fixe. Si la variable est plus longue que le tampon, elle écrase ce qui se trouve derrière dans la pile.  Or, dans ce qui se trouve derrière, il y a des adresses de retour de routines qui n'ont pas encore rendu le contrôle au programme qui les a appelées.

L'attaque consiste à envoyer à un logiciel une requête ou un paquet plus long que ce qu'il attend.  Si une des routines qui traite cette requête la stocke dans la pile sans vérifier la longueur, cette routine écrase une partie de la pile.  Tout l'art est d'écraser une adresse de retour avec une adresse de code bien choisie, de manière qu'un retour ultérieur de routine branche le programme vers du code qui (dans le meilleur des cas) le plantera ou qui (quand l'exploit est bien conçu) permettra à l'attaquant de prendre le contrôle du système en root.  Sous Unix, il est facile de lancer un shell à partir d'un programme; l'attaquant se trouve branché sur le shell avec les mêmes privilèges que le programme qu'il a attaqué, ce qui lui permet d'aller plus loin dans son attaque, par exemple, en installant un code malicieux dans la machine cible.  Le buffer overflow est donc un véhicule efficace des virus et les chevaux de Troie.

Comment est-ce possible?

On peut être surpris que tant d'attaques aient pu exploiter une erreur de programmation aussi grossière.  Le programmeur débutant sait qu'avant de stocker de l'information en mémoire, il doit en vérifier la longueur ou utiliser les fonctions C qui font cette vérification pour lui.

L'origine du problème est le sacro-saint time-to-market: il vaut mieux être le premier sur le marché en offrant des produits mal ficelés que d'être le second avec le meilleur produit du monde (qui connaît encore le nom du deuxième aviateur qui a traversé l'Atlantique?)  La conséquence est que les logiciels sont bâclés, les programmeurs oublient les critères de qualité les plus élémentaires et ils ne vérifient ni la longueur, ni le contenu de l'information que le logiciel reçoit de l'extérieur.  Les versions bêta n'aident pas, puisqu'elles permettent de découvrir des erreurs fonctionnelles, pas des défauts de sécurité ou de qualité du logiciel.

La quasi totalité des logiciels du marché ont été la victime de multiples exploits et Microsoft est en première ligne sur ce terrain.  Ces exploits obligent les vendeurs de logiciels à émettre des correctifs (patches) à une cadence accélérée, d'où une surcharge de travail que peu d'utilisateurs se permettent.  Les logiciels Open Source devraient être moins sujets à de telles attaques, puisqu'ils ne sont pas soumis à la loi du time-to-market.  De plus, les programmeurs Open Source sont généralement connus et tiennent à leur réputation de qualité, alors que les programmeurs de logiciels commerciaux sont anonymes.  Pourtant, les exploits buffer overflow ont frappé Linux avant de s'attaquer à Windows.

Une attaque buffer overflow peut être difficile à réaliser, surtout sous Windows, mais les hackers ne sont pas chiens: dès que l'un d'eux a programmé une attaque, il s'empresse de passer son programme à ses petits camarades afin qu'ils puissent jouer aussi.

Alors, comment se protéger?

Pour se protéger, on peut s'armer de mesures de prévention ou de détection : Il faut noter qu'Intel offre la fonction Execute Disable Bit sur ses processeurs Itanium (et successeurs).  Cette fonction permet d'interdire l'exécution de code dans des pages de mémoire.  Grâce à cette fonction, l'Operating System peut marquer la pile comme «no execute» (NX), ce qui rend inopérantes les attaques les plus dangereuses.  L'Operating System doit donc supporter cette fonction pour qu'elle soit active (Windows XP SP 2 la supporte).

Les attaques anniversaires, comment ça marche?

Les explications qu'on trouve sur la Toile au sujet des attaques qui se fondent sur le paradoxe des anniversaires sont souvent incomplètes, voire inexactes.  Voici une tentative de description de quelques types d'attaques et de ce que le paradoxe des anniversaires peut apporter.

Attaques exhaustives (brute-force attacks)

Une attaque exhaustive consiste à découvrir un secret en essayant toutes les valeurs possibles de ce secret.  Par exemple, une attaque exhaustive pour découvrir un mot de passe essaie toutes les combinaisons de lettres (A, B, C…Z, puis AA, AB, AC…) jusqu'à ce qu'une soit acceptée.

Si vous avez perdu le mot de passe d'une feuille de calcul, un programme de recherche exhaustive de mots de passe vous dépannera: il y en a de nombreux sur la Toile.  La recherche peut être longue, mais le programme découvrira le mot de passe à coup sûr.

Attaques par dictionnaire (dictionary attacks)

La recherche de mots de passe peut être considérablement accélérée en essayant des mots de passe extraits du dictionnaire.  En effet, les utilisateurs choisissent souvent des mots du dictionnaire ou des combinaisons courantes comme, par exemple: «azerty».  Beaucoup choisissent des substitutions comme «@zerty» ou des inversions comme «ytreza»; d'autres choisissent des noms d'artistes connus ou d'animaux familiers.  Les programmes de recherche de mots de passe connaissent ces habitudes et les exploitent.  Ils tentent d'abord une recherche par dictionnaire qui prend quelques secondes, puis, en cas d'échec, lancent une attaque exhaustive.

Attaques anniversaire (birthday attacks)

Le paradoxe des anniversaires est à la base d'attaques plus rapides que la simple attaque exhaustive.

Le paradoxe des anniversaires

Supposons une population d'entités (personnes, messages…).  Supposons qu'on attribue un numéro à chaque entité (une date de naissance, le résultat d'un algorithme de «hash»…).  Supposons enfin que les numéros attribués vont de 1 à N.  Pour un petit nombre d'entités, il y a peu de chances que deux entités aient le même numéro; la probabilité augmente à mesure qu'on ajoute des entités et atteint 1 quand il y a N entités.  La question est : combien faut-il d'entités pour avoir 50% de chances que deux entités aient le même numéro?

Par exemple, combien de personnes faut-il assembler pour qu'il y ait 50% de chances que deux d'entre elles aient la même date d'anniversaire?  À première vue, on est tenté de répondre 183, la moitié de 365.  En réalité, ce nombre est plus petit.  Pour le calculer, on raisonne comme suit (supposons que personne n'est né un 29 février):

Pour 22 personnes, ce calcul donne une probabilité de 47% et, pour 23 personnes, 51%.  Il ne faut donc pas plus de 23 personnes pour avoir 50% de chances d'une «collision» de dates d'anniversaire.

Le calcul est fastidieux et il y a moyen de le simplifier.  En effet, on démontre que, quand N tend vers l'infini, M tend vers: 

Cette formule donne un résultat presque correct quand N vaut 365 (24 au lieu de 23).  Plus N est grand, plus le résultat est correct.

Exemple d'utilisation: comment imiter une signature

Bob envoie des ordres de payement à sa banque via des courriels.  Il ne chiffre pas ses messages, mais il les signe.  Bob produit la signature en calculant un condensat («hash») du message et en le chiffrant avec sa clef secrète.  Supposons que le condensat a 16 bits: il y a donc 65536 condensats possibles.

Alice intercepte les messages de Bob et modifie le nom du bénéficiaire afin de détourner les ordres à son profit.  Or, dès qu'on modifie le message, la signature n'est plus valide; Alice n'a pas la clef secrète qui permet de la recalculer.  Comment Alice doit-elle procéder pour que la signature reste valide?  Il y a deux méthodes: une efficace et une autre qui ne l'est pas.

Avec la première méthode, Alice doit créer plus de 32000 variantes pour avoir 50% de chance de succès.  Avec la deuxième, pour avoir les mêmes chances de succès, ce nombre tombe à 320.  Alice ira donc 100 fois plus vite.

Autre utilisation: deviner des mots de passe

Des techniques semblables s'appliquent aux attaques contre les mots de passe.  Par exemple, Elcomsoft vend des logiciels de récupération de mots de passe Windows perdus:

La cryptographie: comment l'aborder? Puis-je chiffrer sur mon ordinateur personnel?

Pour les passionnés de cryptologie, je conseille l'ouvrage de Bruce Schneier, «Cryptographie appliquée» (ISBN 2-84180-036-9) qui est la bible dans ce domaine.  Vous pouvez aussi visiter le site de RSA qui contient beaucoup de renseignements intéressants.

À ceux qui recherchent un logiciel de chiffrement sur PC, je propose PGP.  PGP est surtout connu pour son chiffrement du courriel, mais il peut aussi chiffrer des fichiers sur le disque dur. Tous les renseignements se trouvent sur le site de PGP.  Il est désormais possible de télécharger PGP hors des Etats-Unis.  Certains modules sont gratuits pour une utilisation personnelle.  Attention toutefois aux limitations à l'utilisation de la cryptographie en vigueur dans votre pays, même si ces limitations ont tendance à disparaître en Europe.  Il y a d'autres solutions que PGP et ces solutions sont généralement disponibles sous forme de partagiciels (sharewares).  Il y a plusieurs sites en français, dont Espace francophone (suivez le lien «Utilitaires») et le site du magazine 01net (il y a une fonction de recherche).

Il faut souligner que les algorithmes de chiffrement de ces partagiciels sont souvent secrets.  Contrairement à ce que leurs auteurs affirment, les algorithmes secrets n'offrent pas les mêmes garanties de solidité que les algorithmes publiés.  Seuls les algorithmes de chiffrement publiés (comme DES, AES ou RSA, ou—plus récemment—RC4) ont été étudiés par la communauté des cryptographistes et peuvent donc être considérés comme sûrs tant qu'ils n'ont pas été «cassés» par cette communauté.  Ces solutions ne seront jamais aussi éprouvées que PGP qui utilise des algorithmes publiés.  De plus, il existe une littérature abondante sur PGP.

Pour une utilisation professionnelle de la cryptographie, consulter plutôt un fournisseur spécialisé, comme Utimaco Safeware.

Les one-time passwords: comment ça marche?

On trouve sur la Toile peu d'explications des one-time passwords ou «mots de passe uniques» ou encore «mots de passe dynamiques».  En voici une.

Les premières formes de mot de passe unique mettaient en œuvre un protocole d'authentification de type «défi-réponse».  Un tel protocole s'établit entre un authentifieur (généralement un serveur ou une application) et un authentifié (généralement un individu).  Les différentes étapes d'un protocole défi-réponse sont:

L'authentifié ne peut pas faire ses calculs cryptographiques à la main.  Il doit donc disposer d'un dispositif qui permet deux choses: Généralement, ce dispositif prend la forme d'une calculette avec un clavier et un affichage numériques et la calculette est protégée par un code secret: comme pour une carte bancaire, l'utilisateur doit fournir son code secret pour pouvoir utiliser la calculette.  L'utilisateur encode ce code secret sur le clavier de sa calculette.  Les calculettes sont personnalisées, c'est-à-dire que chacune contient une clef secrète différente et est activée par un code secret différent.

Le mode opératoire de la calculette est le suivant:

Les avantages du mot de passe dynamique par rapport au mot de passe classique (statique) sont multiples : Il y a des variantes au schéma décrit plus haut : Pour plus de renseignements sur les one-time passwords, consultez l'article Les mots de passe à usage unique.

Calculettes qui utilisent le temps

Les calculettes telles que le Digipass fonctionnent principalement sur base du temps.  La calculette contient une horloge interne et elle calcule le mot de passe à partir de deux valeurs: d'une part, la valeur instantanée de son horloge et, d'autre part, une clef secrète, qui a été stockée dans sa mémoire à l'usine.  Le serveur d'authentification a une copie de la clef secrète et a aussi une horloge interne; pour vérifier le mot de passe, il effectue le même calcul que la calculette et vérifie qu'il obtient le même résultat.

Toutefois, le serveur et la calculette doivent rattraper une différence (inévitable) entre leurs horloges internes.  Voici comment ils procèdent: une partie de l'information contenue dans les 6 ou 8 chiffres du mot de passe (ne me demandez pas laquelle, il s'agit probablement de bits répartis sur les différents chiffres) est utilisée pour la re-synchronisation des horloges.  Cette information de re-synchronisation est constituée de la partie la moins significative de l'horloge interne de la calculette.  Quand le serveur d'authentification reçoit le mot de passe, il extrait d'abord cette information pour re-synchroniser son horloge; il effectue ensuite le calcul de vérification du mot de passe sur base du temps re-synchronisé.

La taille de l'information de re-synchronisation dépend de la fréquence de renouvellement des mots de passe ainsi que du décalage maximal admissible entre l'horloge de la calculette et celle du serveur.  Par exemple, on peut imaginer que la calculette a 100 «tics» d'horloge par heure; en d'autres termes, elle renouvelle son mot de passe toutes les 36 secondes.  On peut aussi imaginer qu'on admet une désynchronisation maximale d'¼ d'heure entre la calculette et le serveur.  Dans ce cas, la calculette communique au serveur une valeur qui va de 0 à 49 et qui dit où son horloge interne se trouve dans la demi-heure courante.  Voici un exemple numérique:

Si on admet un décalage des horloges d'une demi-heure au lieu d'un quart d'heure (ou si on double la fréquence de renouvellement des mots de passe), la longueur de l'information de re-synchronisation doit être doublée.  Or, l'information de re-synchronisation doit rester limitée pour laisser la place à l'information «utile» du mot de passe.

Où trouver un générateur automatique de mots de passe?

On me pose parfois la question: Existe-t-il un logiciel permettant de générer automatiquement des mots de passe? Nous avons trop de mots de passe à changer tous les mois.

Un générateur de mots de passe n'a rien de compliqué.  Voici un exemple codé en Javascript (vérifiez que votre navigateur accepte ce langage) qui produit des mots de passe généralement prononçables par un locuteur francophone.  Cliquez sur le bouton Générer pour obtenir des mots de passe aléatoires; vous pouvez cliquer plusieurs fois jusqu'à obtenir un mot de passe que vous ne risquez pas d'oublier :

Un tel outil est utile dans des cas bien précis: un Webmaître s'en servira pour distribuer des mots de passe pour l'accès contrôlé à ses pages Web; un administrateur système s'en servira pour attribuer le mot de passe de départ d'un nouveau compte, à charge pour le titulaire du compte de le remplacer dès le premier log-in par un mot de passe connu de lui seul.

Par contre, il est douteux que cet outil puisse servir à des utilisateurs pour la gestion quotidienne de leurs mots de passe.  Certains utilisateurs seront tentés de faire générer leurs mots de passe automatiquement.  Ce n'est pas la bonne méthode et voici pourquoi: un bon mot de passe a deux caractéristiques contradictoires:

  1. Il est facile à retenir par l'utilisateur.  Le mot de passe lui rappelle quelque chose dont il se souvient sans peine.
  2. Il est difficile à deviner par des tiers.  En particulier, il est suffisamment long; il ne figure dans aucun dictionnaire.  De plus, il n'a pas de rapport trop évident avec une caractéristique que les tiers connaissent (le nom du chien ou la plaque minéralogique).
Un utilisateur ne peut se créer que deux ou trois mots de passe qui conjuguent ces deux qualités.  Au delà du troisième, ses mots de passe sont soit pas assez mnémoniques (la condition 1 n'est pas remplie), soit trop évidents (la condition 2 n'est pas remplie).  Les outils de génération de mots de passe aléatoires n'aident pas: ils remplissent généralement la condition 2, mais rarement la condition 1.

Imposer à l'utilisateur un rythme de renouvellement trop élevé n'a qu'une conséquence: la qualité des mots de passe baisse.  Généralement, l'utilisateur, incapable d'inventer de nouveaux mots de passe suffisamment mnémoniques, les inscrit sur un bout de papier qu'il est facile de trouver dans son tiroir.  Ou alors, il s'invente des mots de passe tellement simples (par exemple, le nom du mois courant) qu'il ne protègent plus rien.

L'administrateur système qui impose une telle politique de mots de passe privilégie la sécurité au dépens de la convivialité, ce qui ne peut mener qu'à l'échec de son action.

Alors, la solution? Voici quelques pistes:

Qu'est-ce que le PSN?  Sert-il à pister les internautes?

Samuel m'interroge sur les «PSN» et veut savoir si le processeur de son ordinateur a un numéro de série.  Est-il vrai, demande-t-il, qu'on peut être pisté grâce à ce tatouage?

Le Processor Serial Number, c'est quoi?

Le PSN est (ou, plutôt, était) le numéro de série du processeur Pentium III.  Il est initialisé en usine, il est unique par processeur et il peut être lu par un logiciel qui tourne sur ce processeur.  Intel prévoyait que ce numéro serait utilisé par les entreprises pour identifier les ordinateurs, ce qui les aiderait à gérer leur parc.  Intel prévoyait surtout une utilisation sur l'Internet comme identification de l'ordinateur (et donc de l'internaute, d'après Intel) qui était censée améliorer la sécurité du commerce électronique.

À ceux qui s'inquiètent des risques à l'égard de la vie privée, Intel répond que toutes les précautions ont été prises.  D'une part, le numéro de série n'est pas lisible de l'extérieur de l'ordinateur, puisqu'il faut un programme qui tourne sur le processeur.  D'après Intel, cela protège contre toute lecture à partir de l'Internet.  D'autre part, l'utilisateur a la possibilité de désactiver le numéro de série afin qu'il ne soit plus lisible par un programme.  La réactivation ne peut se faire qu'au travers d'une commande logicielle suivie d'une réinitialisation du processeur (en pratique, un redémarrage de l'ordinateur).  S'il faut croire Intel, l'utilisateur a le numéro de série de son processeur entièrement sous son contrôle.

Est-ce bien utile?

Le numéro de série pourrait sans doute faciliter une gestion de parc.  Par contre, c'est moins sûr en ce qui concerne la sécurité.

Tout système de sécurité qui se fonde sur le numéro de série du processeur peut facilement être mis en défaut, parce qu'il n'empêche pas un hacker déterminé de faire passer son ordinateur pour celui d'un autre.  Le problème est qu'il s'agit d'un mécanisme d'identification, pas d'authentification.  Si Intel avait vraiment voulu offrir un système sûr pour le commerce électronique, il aurait dû inventer un système d'authentification, par exemple en remplaçant le numéro de série par une clef cryptographique personnalisée, mais cela aurait impliqué un système de distribution de ces clefs aux utilisateurs d'une telle complexité qu'il aurait été ingérable.

Intel l'a rapidement admis et a décidé d'abandonner le système pour ses nouveaux processeurs, à la grande satisfaction des défenseurs de la vie privée.

Est-ce dangereux?

Même si le numéro de série du processeur n'a plus d'avenir, les Pentium III qui seraient encore utilisés aujourd'hui en sont pourvus.  Y a-t-il des risques?

La protection qui consiste à désactiver le numéro de série peut —en dépit des précautions prises par Intel— être mise en défaut facilement.  Un virus élaboré est parfaitement capable de réactiver un numéro de série désactivé, puis d'attendre le redémarrage suivant de l'ordinateur pour le transmettre sur l'Internet.

Et alors?  Dès que le numéro de série est activé sur l'ordinateur d'un internaute, ses visites à différents sites Web peuvent être corrélées et son comportement de consommateur peut ainsi être espionné de manière encore plus efficace que quand il l'est par des témoins (les cookies).  Clairement, la vie privée est menacée.

Quelles précautions prendre?

Suite à son abandon, la technique du numéro de série du processeur n'a guère d'avenir et les internautes ont peu à en craindre.  Ceux qui utilisaient un Pentium III pouvaient prendre la précaution de décharger l'utilitaire Intel de contrôle du numéro de série du processeur.  Cet utilitaire permettait de contrôler l'état activé/désactivé du numéro de série du processeur et fournissait un signal visuel de cet état sur la barre d'outils Windows.  L'utilisateur attentif pouvait ainsi détecter toute activation malveillante du numéro de série du processeur sur son ordinateur.

Qu'est-ce que l'avenir nous réserve?

L'échec du PSN a montré qu'une solution de sécurité qui se fonde uniquement sur le matériel n'est pas suffisante parce qu'elle peut être contournée.  Pour une sécurité solide, la totalité de la chaîne de composants qui forment l'informatique doit coopérer: le matériel, mais aussi le firmware (dans un PC, le BIOS), l'Operating System (par exemple, Windows) et les applications.  C'est le but du consortium TCPA: lisez à ce sujet l'excellente FAQ de Le Bars.

Et si je veux en savoir plus sur la sécurité?

Pour trouver plus d'information, utilisez la recherche spécialisée ci-dessous (rafraîchissez la fenêtre de votre navigateur [F5] si rien n'apparaît):