Sous-sections
IPsec
IPsec vise à prévenir les diverses attaques rendues possibles par le protocole IP, notamment empêcher un adversaire
d'espionner les données circulant sur le réseau ou de se faire passer pour autrui afin d'accéder à des ressources
ou données protégées.
Dans ce but, IPsec peut fournir, suivant les options sélectionnées, tout ou partie des services de sécurité suivants :
________________________________________________________________ |
Confidentialité des données et protection partielle contre l'analyse du trafic. |
|
Les données transportées ne peuvent être lues par un adversaire espionnant les communications.
En particulier, aucun mot de passe, aucune information confidentielle ne circule en clair sur
le réseau. Il est même possible, dans certains cas, de chiffrer les en-têtes des paquets IP et ainsi de masquer,
par exemple, les adresses source et destination réelles. On parle alors de protection contre l'analyse du trafic.
________________________________________________________________ |
Authenticité des données et contrôle d'accès continu. |
|
L'authenticité est composée de deux services, généralement fournis conjointement par un même
mécanisme : l'authentification de l'origine des données et l'intégrité. L'authentification
de l'origine des données garantit que les données reçues proviennent de l'expéditeur déclaré.
L'intégrité garantit qu'elles n'ont pas été modifiées durant leur transfert.
La garantie de l'authenticité de chaque paquet reçu permet de mettre en oeuvre un contrôle
l'accès fort tout au long d'une communication, contrairement à un contrôle d'accès simple à l'ouverture
de la connexion, qui n'empêche pas un adversaire de récupérer une communication à son compte.
Ce service permet en particulier de protéger l'accès à des ressources ou données privées.
________________________________________________________________ |
Protection contre le rejeu |
|
La protection contre le rejeu permet de détecter une tentative d'attaque consistant à envoyer de nouveau
un paquet valide intercepté précédemment sur le réseau.
Ces services sont basés sur des mécanismes cryptographiques modernes qui leur confèrent un niveau
de sécurité élevé lorsqu'ils sont utilisés avec des algorithmes forts.
Utilisation de Kerberos
Système de sécurité et d'authentification des utilisateurs du réseau local du MIT. Il ne semble pas avoir été
piraté depuis sa mise en service, il y a une dizaine d'années.
Le protocole Kerberos permet un chiffrement de l'ensemble des transactions entre applications adaptés pour l'utiliser.
On trouve des versions dites kerberisées des outils telnet, ftp, fetchmail...
Ce protocole fonctionne sur un contrôle de l'identité des clients, qui peuvent obtenir par la suite des
tickets pour s'authentifier auprès des différents services présents sur le réseau.
Toutes les transactions passant par Kerberos sont chiffrées, ce qui résout un ensemble de problèmes de sécurité.
En revanche, le système impose sur les utilisateurs une certaine lourdeur, et, en dépit de sa fiabilité, ne
peut être recommandé partout.
Ce module détaille le fonctionnement du protocole Kerberos, et son implémentation sous Linux. Il décrit les modalités
d'utilisation de Kerberos et de sa configuration, ainsi que les inconvénients qu'il occasionne.
Ce module est susceptible d'intéresser les administrateurs de réseaux nécessitant une haute sécurité, et
ceux désireux de découvrir la conception d'un protocole sécurisé et les parades possibles aux
problèmes de sécurité.
Signature sécurisé de mail avec GnuPG
___________________________________________________________________ |
Introduction à GnuPG |
|
___________________________________________________________________ |
Pourquoi utiliser GPG ? |
Si l'intérêt de crypter ces fichiers et ces mails ne présente que peu
d'attrait pour le grand public ne désirant pas jouer à James Bond, la
cryptographie offre d'autres avantages plus tangibles comme par exemple:
________________________________________________________________ |
Possibilité de signer un mail |
|
GPG permet à quelqu'un disposant de votre clef publique, (nous reviendrons plus
tard sur les concepts de clés privée et publique), de vérifier que
vous êtes vraiment la personne l'ayant envoyé. La cryptographie
dans ce cas-ci remplit la fonction de signature numérique
________________________________________________________________ |
Possibilité de certifier un mail |
|
Il est aussi possible par le
même mécanisme que le précèdent de certifier que le contenu du
mail n'a pas été modifie depuis son envoi. Il s'agit donc ici d'un
scelle virtuel.
La signature se présentera sous la forme d'un attachement mail
et sera donc interprèté par votre client. Votre mail restera lisible comme par avant.
GPG permet aussi bien sûr de crypter des mails et des fichiers.
___________________________________________________________________ |
Comment ça marche? |
GPG s'appuie sur des algorithmes à clefs privé et
publique. Sans rentrer dans trop de détails, signalons juste que des messages cryptés avec votre
clef privée seront décrypter avec votre clef publique.
Vous ne donnerez donc que votre clef publique a des tierces
personnes, votre clef privée ne sera jamais divulguée d'où un énorme gain
de sécurité par rapport a un système avec une seule clef.
Ceci est pour la partie technique, mais le système repose sur un concept
tout aussi important, les réseaux de Trusted keys. En effet, même si
vous pouvez vérifier la signature d'un mail rien ne vous garantie que la
personne qui vous l'a envoyé existe vraiment et que son identité
correspond. Pour cela, par exemple pendant les réunions de LUG ou autre,
les personnes s'échangent leurs fingerprint tout en vérifiant leurs
papiers d'identités. Puis ils signent les clefs qu'ils ont vérifié.
Quand on récupère une clef d'un serveur, on peut voire la liste des
personnes ayant garantie l'identité de la personne, donc si par exemple,
la clef a été signé par quelqu'un en qui vous avez confiance, vous
pouvez considérer la clef comme valide. Il se crée donc un réseau de
confiance.
___________________________________________________________________ |
Installation de GPG |
|
___________________________________________________________________ |
Configuration initiale de GPG: |
Tout d'abord il vous faudra générer votre clef:
________________________________________________________________ |
Exécuter GPG une première fois pour que les fichiers de configuration soit crée: |
|
$> gpg |
gpg: /home/seb/.gnupg: directory created |
gpg: /home/seb/.gnupg/options: new options file created |
gpg: you have to start GnuPG again, so it can read the new options file |
________________________________________________________________ |
Puis une seconde fois pour générer les trousseaux de clefs privées et publiques. |
|
$> gpg |
gpg: /home/seb/.gnupg/secring.gpg: keyring created |
gpg: /home/seb/.gnupg/pubring.gpg: keyring created |
________________________________________________________________ |
Enfin exécutez: |
|
_______________________________________________________________ |
$> gpg -gen-key |
Please select what kind of key you want: |
(1) DSA and ElGamal (default) |
(2) DSA (sign only) |
(4) ElGamal (sign and encrypt) |
Your selection? |
|
Tapez juste [entrer] a ce prompt |
|
DSA keypair will have 1024 bits. |
About to generate a new ELG-E keypair. |
minimum keysize is 768 bits |
default keysize is 1024 bits |
highest suggested keysize is 2048 bits |
What keysize do you want? (1024) |
|
Pareil, restez avec le choix par défaut. |
|
Requested keysize is 1024 bits |
Please specify how long the key should be valid. |
0 = key does not expire |
<n> = key expires in n days |
<n>w = key expires in n weeks |
<n>m = key expires in n months |
<n>y = key expires in n years |
Key is valid for? (0) |
|
Idem, votre clef sera définitive par défaut. |
|
Key does not expire at all |
Is this correct (y/n)? |
|
Taper [entrer] après avoir vérifier si les options sont correctes. |
|
You need a User-ID to identify your key; the software constructs the |
user id |
from Real Name, Comment and Email Address in this form: |
Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>? |
Real name: |
Il suffit ici de taper son prénom et nom. |
mail address: | |
Assez explicite |
Comment: |
|
C'est la place idéale pour y mettre votre nickname |
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit | |
|
Appuyer sur (O) si vous êtes satisfait. |
|
You need a Passphrase to protect your secret key. |
|
Enter passphrase: |
|
_______________________________________________________________ |
Et voilà enfin le moment tant attendu ou vous entrerez votre mot de |
passe, vu que celui ci vous servira à protéger votre identité, veuillez |
choisir un mot de passe assez facile à retenir pour que vous n'ayez pas |
à le noter quelque part et assez complexe pour éviter que quelqu'un ne |
la devine, une mot de passe composé de caractères alphanumériques en |
mixed case est parfait dans ces cas là. |
|
| We need to generate a lot of random bytes. It is a good idea to perform |
some other action (type on the keyboard, move the mouse, utilize the |
disks) during the prime generation; this gives the random number |
generator a better chance to gain enough entropy. |
.+++++++++++++++..+++++++++++.+++++++++++++ |
++.++++++++++++++++++++.++++++++++.+++++++ |
++++++++......<+++++>..+++++................. |
..................+++++ |
public and secret key created and signed. |
|
Et voilà vos clefs ont été crées.
Maintenant éditez /.gnupg/options et décommentez la ligne:
|
#keyserver wwwkeys.nl.pgp.net |
|
Vous pouvez évidement mettre un autre serveur si vous disposez de son
adresse.
Il s'agit maintenant d'envoyer votre clef sur le serveur pour que les
personnes, voulant récupérer votre clef publique n'aient besoin que de
votre ID. Voyons tout d'abord plus en détail ces différents termes:
tapez:
$> gpg -list-keys |
|
Normalement il devrait y avoir une seule clef, la votre. |
|
/home/seb/.gnupg/pubring.gpg |
--------------- |
pub 1024D/19E27067 2001-10-15 Seb (#####) <##########> |
sub 1024g/B0418883 2001-10-15 |
|
|
* 1024D = la longueur de la clef |
* 19E27067 = votre User ID. |
et maintenant vous pouvez faire un
$> gpg -fingerprint 19E27067* |
pub 1024D/19E27067 2001-10-15 Seb (#####) <#########<> |
Key fingerprint = 767C 7E76 7142 FF87 .... 8788 7F47 .... 19E2 7067 |
sub 1024g/B0418883 2001-10-15 |
Vous avez sûrement remarqué que les 8 derniers caractères de votre
fingerprint contient votre ID.
Donc, si vous voulez donner votre clef à quelqu'un il faudra lui donner
votre fingerprint entier mais il n'aurait qu'à entrer votre ID et
vérifié le reste du fingerprint.
Pour cela il faut évidement que votre clef soit sur un serveur, les
serveurs sont relies entre eux a la manière des serveurs dns, il suffit
donc de l'envoyer sur un des serveur.
$> gpg -send-key 19E27067* |
Ajout de clef:
Vous avez récupérer le fingerprint d'un ami, après avoir vérifier ses
papiers d'identités (cette vérification est obligatoire pour un
fonctionnent du réseaux des trusted key).
Une fois devant votre ordinateur faites:
(rappel: son ID est les 8 derniers caractères de son fingerprint pour
une clef 1024D) Puis:
$> gpg -fingerprint son_id |
et vérifier si le fingerprint correspond bien a celui qu'il vous a donné.
Maintenant que vous pouvez confirmer que son identité correspond bien à
sa clef vous pouvez la signer
Et finalement, il faut faire savoir au serveur que vous avez signer la clef
Ajout d'un UID:
Il arrive souvent qu'une même personne ait plusieurs comptes mails par
exemple, un pour le travail, un personnel etc ...
Dans ce cas gpg permet d'associer plusieurs UID à la même personne. Pour
cela il suffit de faire:
$> gpg -edit-key votre_id |
la, tapez: adduid
À ce moment là, les mêmes questions que lors de la création de la clef
seront posées à la différence qu'une nouvelle clef ne sera pas génèrée.
il suffit de taper: save
pour quitter et sauvegarder les changements.
Vous pouvez voir les changements avec:
Et il faudra évidement mettre a jour la clef dans le serveur:
$> gpg -send-key votre_id |
À noter que les nouveaux ``ids'' devront êtres signés aussi.
Intégration dans les clients mails:
* Dans Sylpheed:
Il suffit d'activer le support gpg dans l'onglet ``privacy'' des
options.
Révoquer une clef:
Si votre clef est corrompue, plus utilisée ou compromise, il vous faudra la
révoquer, mais pour cela il faut créer un certificat de révocation.
$> gpg -gen-revoke user_id |
|
Create a révocation certificate for this key? |
Please select the reason for the revocation: |
1 = Key has been compromised |
2 = Key is superseded |
3 = Key is no longer used |
0 = Cancel |
(Probably you want to select 1 here) |
Your decision? |
|