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

Difference between revisions of "IRC/Chiffrement/WeeChat"

From Le L∞p's Wiki
Jump to: navigation, search
m (ToM moved page IRC/Sec/WeeChat to IRC/Chiffrement/WeeChat: Explicit names, pertinence)
m (Undo revision 3911 by Naar (talk))
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==== SASL ====
+
== SASL ==
  
 
Les commandes qui suivent (y compris celles des sections ci-dessous) sont à taper dans le tampon <code>'''core'''</code>.
 
Les commandes qui suivent (y compris celles des sections ci-dessous) sont à taper dans le tampon <code>'''core'''</code>.
Pour ajouter un réseau dans votre configuration, voir <code>/help server</code>.
+
Pour ajouter un réseau dans votre configuration, entrez <code>/help server</code>.
 
   
 
   
 
Chiffrement du mot de passe :
 
Chiffrement du mot de passe :
Line 18: Line 18:
 
  /reload
 
  /reload
  
==== TLS ====
+
== TLS ==
  
Déplacez maintenant votre fichier PEM et son empreinte dans le dossier {{Fichier|~/.weechat/ssl/}} .
+
Déplacez maintenant votre fichier PEM et son empreinte vers le dossier {{Fichier|~/.weechat/ssl/}} .
  
 
Indiquez ici le chemin vers le certificat des autorités de confiance :
 
Indiquez ici le chemin vers le certificat des autorités de confiance :
Line 33: Line 33:
 
  /set irc.server.freenode.ssl "on"
 
  /set irc.server.freenode.ssl "on"
  
Indiquez ici le chemin vers votre certificat SSL pour authentifier automatiquement votre pseudo auprès du serveur :
+
Indiquez ici le chemin vers votre certificat TLS pour authentifier automatiquement votre pseudo auprès du serveur :
 
  /set irc.server.freenode.ssl_cert "%h/ssl/<votre pseudo>.pem"
 
  /set irc.server.freenode.ssl_cert "%h/ssl/<votre pseudo>.pem"
  
Indiquez la taille de la clé pour l'échange de clés Diffie-Hellman (de mémoire, Freenode n'accepte pas les clés de taille supérieure à 1024 bits) :
+
Indiquez leur taille pour l'échange de clés [[wikipedia:fr:Échange_de_clés_Diffie-Hellman|Diffie-Hellman]] (de mémoire, Freenode n'accepte pas les clés de taille supérieure à 1024 bits) :
 
  # Défaut : "2048"
 
  # Défaut : "2048"
 
  /set irc.server.freenode.ssl_dhkey_size "1024"
 
  /set irc.server.freenode.ssl_dhkey_size "1024"
Line 42: Line 42:
 
Activez la vérification du certificat du serveur :
 
Activez la vérification du certificat du serveur :
 
  # Défaut : "on"
 
  # Défaut : "on"
  /set irc.server.freenode.ssl_verify " "
+
  /set irc.server.freenode.ssl_verify null
  
 
À présent, sauvegardez puis rechargez votre configuration. Connectez-vous à Freenode et communiquez à NickServ votre empreinte :
 
À présent, sauvegardez puis rechargez votre configuration. Connectez-vous à Freenode et communiquez à NickServ votre empreinte :
  /msg nickserv cert add <votre empreinte>
+
  /msg NickServ cert add <votre empreinte>
  
==== TOR ====
+
Enfin, effacez le fichier {{fichier|fingerprint}} créé précédemment à l'aide de la commande '''<code>shred -zun 35 fingerprint</code>''' ou, plus sagement, stockez-le sur un support sécurisé.
  
Créez un proxy socks5 pour TOR (le nom/IP et port dépendent de votre configuration :
+
== Tor ==
/proxy add tor socks5 127.0.0.1 9050
+
  
Maintenant, ajoutez un nouveau serveur :
+
Créez un proxy socks5 pour Tor (le nom/IP ainsi que le port dépendent de votre configuration), ajouter un nouveau serveur, puis activer l'utilisation du proxy :
/server add freenode-tor p4fsi4ockecnea7l.onion
+
  
Définissez le proxy pour TOR :
+
/proxy add tor socks5 127.0.0.1 9050
 +
/server add freenode-tor p4fsi4ockecnea7l.onion
 
  /set irc.server.freenode-tor.proxy "tor"
 
  /set irc.server.freenode-tor.proxy "tor"
  
Pour finir, si vous êtes amené-e à conserver les deux configurations pour accéder à Freenode (TLS et TOR), pensez bien à ajuster vos <code>autoconnect</code> en conséquence.
+
Pour finir, si vous êtes amené-e à conserver les deux configurations pour accéder à Freenode (TLS et Tor), pensez bien à ajuster vos <code>autoconnect</code> comme il se doit.
 +
 
 +
== OTR ==
 +
 
 +
{{Attention|Le greffon <code>weechat-otr</code> est publié sans garantie et n'a pas encore été soumis à un audit de sécurité. De plus, n'oubliez pas de mettre à jour régulièrement vos copies locales de ces dépôts.}}
 +
 +
 
 +
Commencez par installer {{Deb|weechat-plugins}}.
 +
 
 +
Rapatriez ensuite <code>[https://github.com/afflux/pure-python-otr potr]</code>, le module Python requis par <code>weechat-otr</code>, et le script <code>[https://github.com/mmb/weechat-otr weechat-otr]</code> lui-même :
 +
 
 +
mkdir <dossier provisoire> && cd !#^
 +
git clone git://github.com/afflux/pure-python-otr.git
 +
git clone git://github.com/mmb/weechat-otr.git
 +
cd pure-python-otr/ && sudo python setup.py install && cd ..
 +
 
 +
Copiez le script <code>weechat_otr.py</code> dans votre répertoire de configuration WeeChat, puis placez un lien symbolique vers le script dans le répertoire qui va bien pour qu'il puisse être chargé automatiquement à chaque démarrage du programme :
 +
 
 +
cp <dossier provisoire>/weechat-otr/weechat_otr.py ~/.weechat/python/
 +
ln -s ~/.weechat/python/weechat_otr.py ~/.weechat/python/autoload/
 +
 
 +
Retournez sur le tampon <code>'''core'''</code> de WeeChat. La commande <code>/reload</code> devrait vous charger le script. Vous pouvez constater que la commande <code>/otr</code> est désormais disponible.
 +
 
 +
{{Note|Rappelez-vous que les échanges ne pourront être chiffrer que si chacun·e dispose du greffon approprié pour son client de messagerie instantanée.}}
 +
 
 +
=== L'indicateur d'état ===
 +
 
 +
Pour être signifié-e de l'état des échanges OTR, vous pouvez ajouter l'objet <code>[otr]</code> dans votre barre de statut comme ceci :
 +
 
 +
/set weechat.bar.status.items "[time],[buffer_count],[buffer_plugin],buffer_number+:+buffer_name+{buffer_nicklist_count}+buffer_filter,[lag],[hotlist],completion,scroll,'''[otr]'''"
 +
 
 +
Vous vous retrouverez donc avec une barre de statut qui pourrait ressembler à ceci :
 +
 
 +
<code><div style="color:white; background:#6495ed;">[21:02] [7] [irc/freenode] '''7''':'''naar''' [Act: 5(8), 3(3), 4(2)] [OTR:<span style="color:red;">!SEC</span>]</div></code>
 +
 
 +
'''Définition des états :'''
 +
* [,!]LOG : Enregistrement du journal<ref>Acessible à {{Fichier|~/.weechat/log/irc.<serveur>.<correspondant·e>.weechatlog}}</ref> <small>(en l'occurence, de la conversation)</small>
 +
* [,!]AUTH : Authentification
 +
* [,!]SEC : Chiffrement
 +
<hr />
 +
<references />
 +
 
 +
=== Définir sa politique ===
 +
 
 +
Comme vous pourrez le constater vous-même en tapant <code>/set otr*</code>, certaines options d'affichage et de politique peuvent être configurées librement. Cette politique établie simplement quelques conditions quant à l'échanges de messages avec vos correspondants.
 +
 
 +
La politique globale peut être définie par les commandes :
 +
 
 +
/set otr.policy.default.* "<'''on''' ou '''off'''>"
 +
 
 +
Vous pouvez également appliquer une politique propre à chaque correspondant. Pour cela, ouvrez une fenêtre d'échange privée avec l'utilisateur en question, puis définissez la politique à suivre :
 +
 
 +
/query <utilisateur>
 +
/otr policy <options> <'''on''' ou '''off'''>
 +
 
 +
<code><options></code> représente l'une des trois suivantes :
 +
* '''allow_v2''' : Autoriser l'usage de la [http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html v2 du protocole OTR].
 +
* '''require_encryption''' : Refuser l'envoi de messages non chiffrés.
 +
* '''send_tag''' : Annoncer votre utilisation d'OTR grâce à l'espace blanche (''the whitespace'').
 +
 
 +
Pour cette dernières option, il s'agit là d'attacher un tag, l'espace blanche, à chacun de vos messages en texte clair à destination de votre correspondant lui indiquant votre aptitude à communiquer par le biais du protocole OTR. Certains clients sont configurés de telle sorte qu'ils n'accepteront d'entamer une conversation avec OTR qu'à la réception de cette demande explicite. Certains serveurs IRC les « aspire », tout simplement. Sachez-le.<br />
 +
Pour la petite info, ce tag peut être envoyé manuellement : <code>'''?OTRv2?'''</code> <small><s>au 6 12 12</s></small> à votre destinataire dans votre tampon privé.
 +
 
 +
Par défaut, définies par la politique globale, les valeurs de ces options sont respectivement '''on''', '''off''' et '''off'''. À vous de voir si cela vous convient ou non et de l'adapter en conséquence.
 +
 
 +
=== Démarrer une conversation privée ===
 +
 
 +
Pour amorcer le chiffrement de vos messages, dans le tampon de discussion privée, entrez :
 +
 
 +
/otr start
 +
 
 +
À chacune de vos premières communications ''via'' OTR avec un nouveau correspondant, vous serez amené·e à confirmer son authentification. Vous tomberez donc face à quelque chose comme ça :
 +
 
 +
Vous pouvez vérifier que cette personne est bien celle qu'elle prétend être par l'une des manières suivantes :
 +
 +
1) Vérifier vos empreinte ''via'' un canal sécurisé <small>(par mails chiffrés par exemple)</small>
 +
  Votre empreinte : <votre empreinte>
 +
  Empreinte du pair : <son empreinte>
 +
  Utilisez alors la commande : /otr trust <pseudo du pair> <réseau>
 +
 +
2) Secret préalablement partagé connu des deux pairs :
 +
    /otr smp ask <pseudo du pair> <réseau> <secret>
 +
 +
3) Secret préalablement partagé connu des deux pairs avec une question :
 +
    /otr smp ask <pseudo du pair> <réseau> <secret> <question>
  
==== OTR ====
+
Une fois la discussion terminée, entrez :
  
Rendez-vous à l'adresse https://github.com/mmb/weechat-otr, lisez le README <small>(j'écris ça ?)</small> et laissez-vous guider.
+
/otr finish

Latest revision as of 12:43, 6 January 2014

SASL

Les commandes qui suivent (y compris celles des sections ci-dessous) sont à taper dans le tampon core. Pour ajouter un réseau dans votre configuration, entrez /help server.

Chiffrement du mot de passe :

# Défaut : "plain" (texte en clair)
# : "dh-blowfish" (texte chiffré)
# : "external" (certificat TLS côté client)
/set irc.server.freenode.sasl_mechanism "dh-blowfish" ou "external"

Votre mot de passe, puis votre nom d'utilisateur ou d'utilisatrice :

/set irc.server.freenode.sasl_password "<votre mot de passe>"
/set irc.server.freenode.sasl_username "<votre pseudo>"

Sauvegardez, puis rechargez votre fichier de configuration :

/save
/reload

TLS

Déplacez maintenant votre fichier PEM et son empreinte vers le dossier ~/.weechat/ssl/ .

Indiquez ici le chemin vers le certificat des autorités de confiance :

# Défaut : "%h/ssl/CAs.pem" (%h → ~/.weechat)
# Alt : "/etc/ssl/certs/ca-certificates.crt"
/set weechat.network.gnutls_ca_file "<chemin vers le certificat>"

Freenode over TLS :

/set irc.server.freenode.addresses "chat.freenode.net/6697"

Activez le chiffrement :

/set irc.server.freenode.ssl "on"

Indiquez ici le chemin vers votre certificat TLS pour authentifier automatiquement votre pseudo auprès du serveur :

/set irc.server.freenode.ssl_cert "%h/ssl/<votre pseudo>.pem"

Indiquez leur taille pour l'échange de clés Diffie-Hellman (de mémoire, Freenode n'accepte pas les clés de taille supérieure à 1024 bits) :

# Défaut : "2048"
/set irc.server.freenode.ssl_dhkey_size "1024"

Activez la vérification du certificat du serveur :

# Défaut : "on"
/set irc.server.freenode.ssl_verify null

À présent, sauvegardez puis rechargez votre configuration. Connectez-vous à Freenode et communiquez à NickServ votre empreinte :

/msg NickServ cert add <votre empreinte>

Enfin, effacez le fichier fingerprint créé précédemment à l'aide de la commande shred -zun 35 fingerprint ou, plus sagement, stockez-le sur un support sécurisé.

Tor

Créez un proxy socks5 pour Tor (le nom/IP ainsi que le port dépendent de votre configuration), ajouter un nouveau serveur, puis activer l'utilisation du proxy :

/proxy add tor socks5 127.0.0.1 9050
/server add freenode-tor p4fsi4ockecnea7l.onion
/set irc.server.freenode-tor.proxy "tor"

Pour finir, si vous êtes amené-e à conserver les deux configurations pour accéder à Freenode (TLS et Tor), pensez bien à ajuster vos autoconnect comme il se doit.

OTR

Attention.png Attention : Le greffon weechat-otr est publié sans garantie et n'a pas encore été soumis à un audit de sécurité. De plus, n'oubliez pas de mettre à jour régulièrement vos copies locales de ces dépôts.


Commencez par installer weechat-plugins.

Rapatriez ensuite potr, le module Python requis par weechat-otr, et le script weechat-otr lui-même :

mkdir <dossier provisoire> && cd !#^
git clone git://github.com/afflux/pure-python-otr.git
git clone git://github.com/mmb/weechat-otr.git
cd pure-python-otr/ && sudo python setup.py install && cd ..

Copiez le script weechat_otr.py dans votre répertoire de configuration WeeChat, puis placez un lien symbolique vers le script dans le répertoire qui va bien pour qu'il puisse être chargé automatiquement à chaque démarrage du programme :

cp <dossier provisoire>/weechat-otr/weechat_otr.py ~/.weechat/python/
ln -s ~/.weechat/python/weechat_otr.py ~/.weechat/python/autoload/ 

Retournez sur le tampon core de WeeChat. La commande /reload devrait vous charger le script. Vous pouvez constater que la commande /otr est désormais disponible.

Icone information.png Note : Rappelez-vous que les échanges ne pourront être chiffrer que si chacun·e dispose du greffon approprié pour son client de messagerie instantanée.

L'indicateur d'état

Pour être signifié-e de l'état des échanges OTR, vous pouvez ajouter l'objet [otr] dans votre barre de statut comme ceci :

/set weechat.bar.status.items "[time],[buffer_count],[buffer_plugin],buffer_number+:+buffer_name+{buffer_nicklist_count}+buffer_filter,[lag],[hotlist],completion,scroll,[otr]"

Vous vous retrouverez donc avec une barre de statut qui pourrait ressembler à ceci :

[21:02] [7] [irc/freenode] 7:naar [Act: 5(8), 3(3), 4(2)] [OTR:!SEC]

Définition des états :

  • [,!]LOG : Enregistrement du journal[1] (en l'occurence, de la conversation)
  • [,!]AUTH : Authentification
  • [,!]SEC : Chiffrement

  1. Acessible à ~/.weechat/log/irc.<serveur>.<correspondant·e>.weechatlog

Définir sa politique

Comme vous pourrez le constater vous-même en tapant /set otr*, certaines options d'affichage et de politique peuvent être configurées librement. Cette politique établie simplement quelques conditions quant à l'échanges de messages avec vos correspondants.

La politique globale peut être définie par les commandes :

/set otr.policy.default.* "<on ou off>"

Vous pouvez également appliquer une politique propre à chaque correspondant. Pour cela, ouvrez une fenêtre d'échange privée avec l'utilisateur en question, puis définissez la politique à suivre :

/query <utilisateur>
/otr policy <options> <on ou off>

<options> représente l'une des trois suivantes :

  • allow_v2 : Autoriser l'usage de la v2 du protocole OTR.
  • require_encryption : Refuser l'envoi de messages non chiffrés.
  • send_tag : Annoncer votre utilisation d'OTR grâce à l'espace blanche (the whitespace).

Pour cette dernières option, il s'agit là d'attacher un tag, l'espace blanche, à chacun de vos messages en texte clair à destination de votre correspondant lui indiquant votre aptitude à communiquer par le biais du protocole OTR. Certains clients sont configurés de telle sorte qu'ils n'accepteront d'entamer une conversation avec OTR qu'à la réception de cette demande explicite. Certains serveurs IRC les « aspire », tout simplement. Sachez-le.
Pour la petite info, ce tag peut être envoyé manuellement : ?OTRv2? au 6 12 12 à votre destinataire dans votre tampon privé.

Par défaut, définies par la politique globale, les valeurs de ces options sont respectivement on, off et off. À vous de voir si cela vous convient ou non et de l'adapter en conséquence.

Démarrer une conversation privée

Pour amorcer le chiffrement de vos messages, dans le tampon de discussion privée, entrez :

/otr start

À chacune de vos premières communications via OTR avec un nouveau correspondant, vous serez amené·e à confirmer son authentification. Vous tomberez donc face à quelque chose comme ça :

Vous pouvez vérifier que cette personne est bien celle qu'elle prétend être par l'une des manières suivantes :

1) Vérifier vos empreinte via un canal sécurisé (par mails chiffrés par exemple)
 Votre empreinte : <votre empreinte>
 Empreinte du pair : <son empreinte>
 Utilisez alors la commande : /otr trust <pseudo du pair> <réseau>

2) Secret préalablement partagé connu des deux pairs :
   /otr smp ask <pseudo du pair> <réseau> <secret>

3) Secret préalablement partagé connu des deux pairs avec une question :
   /otr smp ask <pseudo du pair> <réseau> <secret> <question>

Une fois la discussion terminée, entrez :

/otr finish