Pour éditer le wiki, il faut demander un compte à un Lapin !

Difference between revisions of "IRC/Chiffrement"

From Le L∞p's Wiki
< IRC
Jump to: navigation, search
m (SILC: Mise en forme)
m (Undo revision 3910 by Naar (talk))
 
(30 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
Cette page n'est qu'un lâche copier-coller de documentations officielles, mais bon... c'est pas un drame non plus. Ça pourrait même s'avérer utile, au final.
 
Cette page n'est qu'un lâche copier-coller de documentations officielles, mais bon... c'est pas un drame non plus. Ça pourrait même s'avérer utile, au final.
  
=== SASL ===
+
== SASL ==
  
[https://www.ietf.org/rfc/rfc4422.txt SASL] ('''''S'''imple '''A'''uthentication and '''S'''ecurity '''L'''ayer'') est une mécanisme permettant de s'authentifier automatiquement auprès des serveurs IRC (entre autres).
+
[[wikipedia:fr:SASL|SASL]] ('''''S'''imple '''A'''uthentication and '''S'''ecurity '''L'''ayer'') est une mécanisme permettant de s'authentifier automatiquement auprès des serveurs IRC (entre autres).
Il vous est fortement recommandé de le configurer en premier lieu si vous songez à protéger vos correspondances avec les outils qui suivent.
+
Il vous est fortement recommandé de configurer l'authentification par SASL en premier lieu si vous songez à protéger vos correspondances avec les outils qui suivent.
Bien sûr, ça marchera mieux si vous avez enregistré votre pseudo auprès du service approprié.
+
Bien sûr, ça marchera mieux si vous avez enregistré votre pseudo auprès du service approprié (<code>NickServ</code> dans la plupart des cas).
  
 
----
 
----
Line 16: Line 16:
 
|}
 
|}
  
=== TLS ===
+
== TLS ==
  
[https://tools.ietf.org/html/rfc5246 TLS] ('''''T'''ransport '''L'''ayer '''S'''ecurity'') est un protocole cryptographique permettant de chiffrer les données échangées entre un client et un serveur d'un bout à l'autre de la connexion.
+
[[wikipedia:fr:Transport_Layer_Security|TLS]] ('''''T'''ransport '''L'''ayer '''S'''ecurity'') est un protocole cryptographique permettant de chiffrer une connexion d'un bout à l'autre et d'en authentifier les données y circulant.
 
Vous devrez avoir installé les paquets {{Deb|OpenSSL}} et {{Deb|CA-Certificates}} au préalable.
 
Vous devrez avoir installé les paquets {{Deb|OpenSSL}} et {{Deb|CA-Certificates}} au préalable.
  
 +
=== Générer son certificat ===
  
Pour simplifier la suite, créez un dossier provisoire et rendez-vous-y :
+
Pour simplifier la suite, créez un dossier provisoire et rendez-y-vous :
  
  '''user@host:~$''' mkdir <dossier provisoire> && cd !#^
+
  '''user@host:~$''' mkdir <dossier provisoire> && cd !!$
  
Puis générez votre certificat SSL comme ceci :
+
Puis générez votre certificat TLS comme ceci :
  
 
  openssl req -newkey rsa:4096 -days 730 -x509 -keyout <votre pseudo>.key -out <votre pseudo>.cert
 
  openssl req -newkey rsa:4096 -days 730 -x509 -keyout <votre pseudo>.key -out <votre pseudo>.cert
  
 
Le certificat sera valide durant deux ans, paramétré ''via'' l'option <code>-days 730</code>. Modifier donc cette option pour allonger ou raccourcir cette durée.<br />
 
Le certificat sera valide durant deux ans, paramétré ''via'' l'option <code>-days 730</code>. Modifier donc cette option pour allonger ou raccourcir cette durée.<br />
Entrez ensuite une phrase de passe, confirmez-la, puis concaténer votre certificat et sa clé dans un même fichier PEM :
+
Entrez ensuite une phrase de passe, confirmez-la, puis concaténez votre certificat et sa clé dans un même fichier PEM :
  
 
  cat <votre pseudo>.cert <votre pseudo>.key '''>''' <votre pseudo>.pem
 
  cat <votre pseudo>.cert <votre pseudo>.key '''>''' <votre pseudo>.pem
  
Vous devrez par la suite renseigner votre empreinte auprès du service NickServ. Enregistrez-donc provisoirement la sortie de cette commande dans un fichier :
+
=== Extraire l'empreinte ===
 +
 
 +
Vous devrez par la suite renseigner votre empreinte auprès du service NickServ. Enregistrez-donc provisoirement la sortie de cette commande dans un fichier :
  
 
  openssl x509 -sha1 -noout -fingerprint -in <votre pseudo>.pem | sed -e 's/^.*=//;s/://g;y/ABCDEF/abcdef/' '''>''' fingerprint
 
  openssl x509 -sha1 -noout -fingerprint -in <votre pseudo>.pem | sed -e 's/^.*=//;s/://g;y/ABCDEF/abcdef/' '''>''' fingerprint
 +
 +
=== Pour finir ===
  
 
Vous pouvez désormais détruire le certificat et sa clé séparés, puis définir les permissions d'accès aux fichiers restants :
 
Vous pouvez désormais détruire le certificat et sa clé séparés, puis définir les permissions d'accès aux fichiers restants :
  
  rm <votre pseudo>.{cert,key}
+
  shred --iterations=35 --zero --remove <votre pseudo>.{cert,key}
 
  chmod 600 *
 
  chmod 600 *
 +
 +
{{Attention|Notez que <code>shred</code> <small>(paquet {{Deb|coreutils}})</small> se fie à une supposition très importante : le système de fichiers écrase les données en place. Il s'agit de la procédure traditionnelle, mais beaucoup de systèmes de fichiers modernes ne la satisfont pas. Plus de détails dans le manuel...}}
  
 
----
 
----
Line 52: Line 59:
 
|}
 
|}
  
=== TOR ===
+
== Tor ==
  
{{Attention|Certains canaux IRC bloquent les connexions passant par Tor, à l'instar de #ubuntu sur Freenode.}}
+
{{Attention|Certains réseaux IRC bloquent les connexions passant par Tor, à l'instar de Freenode. Ils fournissent cependant souvent un service caché auquel il faut se connecter depuis Tor (voir '''[http://freenode.net/irc_servers.shtml#tor Freenode ''via'' Tor]''').}}
  
  
[http://torproject.org/ TOR] ('''''T'''he '''O'''nion '''R'''outer'') est un réseau mondial acentré de routeurs organisés en couches, appelés « nœuds de l’oignon », dont la tâche est de transmettre de manière anonyme des flux TCP. C’est ainsi que tout échange Internet basé sur TCP peut être rendu anonyme en utilisant TOR.
+
[https://torproject.org/ Tor] ('''''T'''he '''O'''nion '''R'''outing'' <small>- mais chut, c'est pas un acronyme</small>) est un réseau mondial acentré de routeurs organisés en couches, appelés « nœuds de l’oignon », dont la tâche est de transmettre de manière anonyme des flux TCP. C’est ainsi que tout échange Internet basé sur TCP peut être rendu anonyme en utilisant Tor.
  
 
Évidemment, vous devrez avoir installé et configuré {{Deb|Tor}} comme il se doit.
 
Évidemment, vous devrez avoir installé et configuré {{Deb|Tor}} comme il se doit.
Notez qu'il n'est pas nécessaire d'utiliser TLS pour chiffrer des échanges transitant par Tor si le serveur dispose d'un service caché (accessible par une adresse terminant par .onion), TOR s'occupant déjà de ça.
+
Notez qu'il n'est pas nécessaire d'utiliser TLS pour chiffrer des échanges transitant par Tor si le serveur dispose d'un [https://www.torproject.org/docs/hidden-services service caché] (accessible par une adresse terminant par .onion), Tor s'occupant déjà de ça.
 
Si ce n'est pas le cas, il vous l'est en revanche vivement recommandé.
 
Si ce n'est pas le cas, il vous l'est en revanche vivement recommandé.
 +
 +
=== Adresses Tor de quelques réseaux IRC ===
 +
 +
{|
 +
! scope="row" align="left" width="150px" | Freenode
 +
| align="right" | p4fsi4ockecnea7l.onion
 +
|-
 +
! scope="row" align="left" width="150px" | Indymedia
 +
| align="right" | h7gf2ha3hefoj5ls.onion
 +
|-
 +
! scope="row" align="left" width="150px" | Geeknode
 +
| align="right" | <del>m3q3nvxaguu22eyo.onion</del>
 +
|}
  
 
----
 
----
Line 71: Line 91:
 
|}
 
|}
  
=== OTR ===
+
== OTR ==
  
{{Attention|Pour fonctionner, OTR doit être présent chez chaque interlocuteur.}}
+
{{Attention|Pour fonctionner, le client de chaque interlocuteur doit supporter OTR.}}
  
  
[http://www.cypherpunks.ca/otr/ OTR] ('''''O'''ff-'''t'''he-'''R'''ecord'') est un autre protocole cryptographique vous permettant lui aussi de chiffrer les échanges avec votre correspondant. Il intègre également un mécanisme d'authentification par échange de clés.
+
[https://otr.cypherpunks.ca/ OTR] ('''''O'''ff-'''t'''he-'''R'''ecord'') est un autre protocole cryptographique vous permettant lui aussi de chiffrer les échanges avec votre correspondant. Il intègre également un mécanisme d'authentification par échange de clés.
  
 
<blockquote>
 
<blockquote>
''<small>Extraits de la [http://www.cypherpunks.ca/otr/index.php#faqs FAQ du site officiel]</small>''
+
''<small>Extraits de la [https://otr.cypherpunks.ca/index.php#faqs FAQ du site officiel]</small>''
 
   
 
   
;''En quoi est-ce différent du greffon pidgin-encryption''
+
;''En quoi est-ce différent du greffon'' pidgin-encryption
:''Le greffon pidgin-encryption fournit chiffrement et authentification, mais pas le [[wikipedia:fr:déni plausible|déni plausible]] ou la [[wikipedia:fr:confidentialité persistante|confidentialité persistante]]. Si un attaquant ou un virus accèdent à votre machine, toutes vos conversations passées chiffrées par pidgin-encryption seront rétroactivement compromise. De plus, tous les messages étant signés numériquement, il est difficile de réfuter les propos que vous avez tenu : ce n'est pas ce que nous voulons pour une conversation censée être privée.''
+
:''Le greffon'' pidgin-encryption ''fournit chiffrement et authentification, mais pas le [[wikipedia:fr:déni plausible|déni plausible]] ou la [[wikipedia:fr:confidentialité persistante|confidentialité persistante]]. Si un attaquant ou un virus accèdent à votre machine, toutes vos conversations passées chiffrées par'' pidgin-encryption ''seront rétroactivement compromise. De plus, tous les messages étant signés numériquement, il est difficile de réfuter les propos que vous avez tenu : ce n'est pas ce que nous voulons pour une conversation censée être privée.''
  
 
;''En quoi est-ce différent de SILC''
 
;''En quoi est-ce différent de SILC''
Line 90: Line 110:
 
<br />
 
<br />
 
<span style="display:block; text-align: center;">'''ou'''</span>
 
<span style="display:block; text-align: center;">'''ou'''</span>
<br />
+
 
 
''2. Être en mesure d'effectuer une connexion directe de pair à pair avec le client de votre interlocuteur, afin d'engager un [[wikipedia:Key-agreement protocol|accord de clé]] (ce qui vous sera peut-être impossible, en fonction de la configuration du NAT et du pare-feu de votre réseau).''
 
''2. Être en mesure d'effectuer une connexion directe de pair à pair avec le client de votre interlocuteur, afin d'engager un [[wikipedia:Key-agreement protocol|accord de clé]] (ce qui vous sera peut-être impossible, en fonction de la configuration du NAT et du pare-feu de votre réseau).''
 
</blockquote>
 
</blockquote>
  
 
----
 
----
 +
 +
{{Note|Si le greffon de votre client vous empêche de consulter les services IRC proposés dans certains réseaux (<code>NickServ</code> par exemple), il vous suffit de le décharger.}}
 +
 
{|class="wikitable" style="text-align: center;" width="100%"
 
{|class="wikitable" style="text-align: center;" width="100%"
 
| [[IRC/Chiffrement/WeeChat#OTR|WeeChat]]
 
| [[IRC/Chiffrement/WeeChat#OTR|WeeChat]]
Line 102: Line 125:
 
|}
 
|}
  
=== SILC ===
+
== SILC ==
  
Dès que qu'on en aura le besoin, promis.
+
Dès qu'on en aura le besoin, promis.
  
 
{{Bandeau|http://www.silcnet.org/|}}
 
{{Bandeau|http://www.silcnet.org/|}}
  
 
[[Category:IRC]]
 
[[Category:IRC]]

Latest revision as of 12:43, 6 January 2014

Dans la mesure où vous souhaiteriez sécuriser vos échanges sur les réseaux IRC, voici quelques pistes vers lesquelles s'orienter. Cette page n'est qu'un lâche copier-coller de documentations officielles, mais bon... c'est pas un drame non plus. Ça pourrait même s'avérer utile, au final.

SASL

SASL (Simple Authentication and Security Layer) est une mécanisme permettant de s'authentifier automatiquement auprès des serveurs IRC (entre autres). Il vous est fortement recommandé de configurer l'authentification par SASL en premier lieu si vous songez à protéger vos correspondances avec les outils qui suivent. Bien sûr, ça marchera mieux si vous avez enregistré votre pseudo auprès du service approprié (NickServ dans la plupart des cas).


WeeChat Irssi XChat Pidgin

TLS

TLS (Transport Layer Security) est un protocole cryptographique permettant de chiffrer une connexion d'un bout à l'autre et d'en authentifier les données y circulant. Vous devrez avoir installé les paquets OpenSSL et CA-Certificates au préalable.

Générer son certificat

Pour simplifier la suite, créez un dossier provisoire et rendez-y-vous :

user@host:~$ mkdir <dossier provisoire> && cd !!$

Puis générez votre certificat TLS comme ceci :

openssl req -newkey rsa:4096 -days 730 -x509 -keyout <votre pseudo>.key -out <votre pseudo>.cert

Le certificat sera valide durant deux ans, paramétré via l'option -days 730. Modifier donc cette option pour allonger ou raccourcir cette durée.
Entrez ensuite une phrase de passe, confirmez-la, puis concaténez votre certificat et sa clé dans un même fichier PEM :

cat <votre pseudo>.cert <votre pseudo>.key > <votre pseudo>.pem

Extraire l'empreinte

Vous devrez par la suite renseigner votre empreinte auprès du service NickServ. Enregistrez-donc provisoirement la sortie de cette commande dans un fichier :

openssl x509 -sha1 -noout -fingerprint -in <votre pseudo>.pem | sed -e 's/^.*=//;s/://g;y/ABCDEF/abcdef/' > fingerprint

Pour finir

Vous pouvez désormais détruire le certificat et sa clé séparés, puis définir les permissions d'accès aux fichiers restants :

shred --iterations=35 --zero --remove <votre pseudo>.{cert,key}
chmod 600 *
Attention.png Attention : Notez que shred (paquet coreutils) se fie à une supposition très importante : le système de fichiers écrase les données en place. Il s'agit de la procédure traditionnelle, mais beaucoup de systèmes de fichiers modernes ne la satisfont pas. Plus de détails dans le manuel...

WeeChat Irssi XChat Pidgin

Tor

Attention.png Attention : Certains réseaux IRC bloquent les connexions passant par Tor, à l'instar de Freenode. Ils fournissent cependant souvent un service caché auquel il faut se connecter depuis Tor (voir Freenode via Tor).


Tor (The Onion Routing - mais chut, c'est pas un acronyme) est un réseau mondial acentré de routeurs organisés en couches, appelés « nœuds de l’oignon », dont la tâche est de transmettre de manière anonyme des flux TCP. C’est ainsi que tout échange Internet basé sur TCP peut être rendu anonyme en utilisant Tor.

Évidemment, vous devrez avoir installé et configuré Tor comme il se doit. Notez qu'il n'est pas nécessaire d'utiliser TLS pour chiffrer des échanges transitant par Tor si le serveur dispose d'un service caché (accessible par une adresse terminant par .onion), Tor s'occupant déjà de ça. Si ce n'est pas le cas, il vous l'est en revanche vivement recommandé.

Adresses Tor de quelques réseaux IRC

Freenode p4fsi4ockecnea7l.onion
Indymedia h7gf2ha3hefoj5ls.onion
Geeknode m3q3nvxaguu22eyo.onion

WeeChat Irssi XChat Pidgin

OTR

Attention.png Attention : Pour fonctionner, le client de chaque interlocuteur doit supporter OTR.


OTR (Off-the-Record) est un autre protocole cryptographique vous permettant lui aussi de chiffrer les échanges avec votre correspondant. Il intègre également un mécanisme d'authentification par échange de clés.

Extraits de la FAQ du site officiel

En quoi est-ce différent du greffon pidgin-encryption
Le greffon pidgin-encryption fournit chiffrement et authentification, mais pas le déni plausible ou la confidentialité persistante. Si un attaquant ou un virus accèdent à votre machine, toutes vos conversations passées chiffrées par pidgin-encryption seront rétroactivement compromise. De plus, tous les messages étant signés numériquement, il est difficile de réfuter les propos que vous avez tenu : ce n'est pas ce que nous voulons pour une conversation censée être privée.
En quoi est-ce différent de SILC
SILC se base sur un réseau de serveurs complètement isolé et son propre protocole réseau. Dans certains environnements, tels que ceux disposant d'un pare-feu ou d'une configuration d'entreprise, où un protocole propriétaire de messagerie instantanée est peut-être utilisé, SILC pourrait ne pas être disponible. De plus, en exécution normale, tous les messages SILC sont partagés avec le serveur SILC ; si vous désirez envoyer des messages qui ne pourront être lus que par votre correspondant, vous devrez :

1. Partager un secret au préalable (ce qui est gênant pour la confidentialité persistante).
ou

2. Être en mesure d'effectuer une connexion directe de pair à pair avec le client de votre interlocuteur, afin d'engager un accord de clé (ce qui vous sera peut-être impossible, en fonction de la configuration du NAT et du pare-feu de votre réseau).


Icone information.png Note : Si le greffon de votre client vous empêche de consulter les services IRC proposés dans certains réseaux (NickServ par exemple), il vous suffit de le décharger.
WeeChat Irssi XChat Pidgin

SILC

Dès qu'on en aura le besoin, promis.