Categories
Security

Keybase

Après plus de six mois d’attente, mon compte Keybase est enfin activé. Pour rappel, Keybase est un service où l’on peut envoyer une clé publique et ensuite prouver son identité sur divers sites. Tout est réalisable à l’aide d’un petit client. C’est plutôt bien pensé.

$ keybase id cedricbonhomme
✔ public key fingerprint: 55F5 D60E EFCA 3591 0089 18E7 A1CB 94DE 57B7 A70D
✔ "cedricbonhomme" on github: https://gist.github.com/e8cba56e5b85517c6758
✔ "cedricbonhomme" on hackernews: https://news.ycombinator.com/user?id=cedricbonhomme
✔ admin of www.cedricbonhomme.org via HTTP: http://www.cedricbonhomme.org/keybase.txt
฿ bitcoin 1GVmhR9fbBeEh7rP1qNq76jWArDdDQ3otZ

Pour que vous puissiez faire ceci, j’ai préalablement du vérifier ces différents compte avec ma clé privée. Par exemple, voici pour GitHub:

$ echo '{"body":{"key":{"fingerprint":"55f5d60eefca3591008918e7a1cb94de57b7a70d","host":"keybase.io","key_id":"a1cb94de57b7a70d","kid":"XXXXXXXXXXXXXXXXXXXXX","uid":"XXXXXXXXXXXXXX","username":"cedricbonhomme"},"service":{"name":"github","username":"cedricbonhomme"},"type":"web_service_binding","version":1},"ctime":1421089840,"expire_in":157680000,"prev":"XXXXXXXXXXXXXXXXXXXXXXXXXXXX","seqno":2,"tag":"signature"}' | \
> gpg -u '55f5d60eefca3591008918e7a1cb94de57b7a70d' -a --sign | \
> perl -e '$_ = join("", <>); s/([^\w\.@ -])/sprintf("%%%2.2x",ord($1))/eg; s/ /+/g; print("sig=", $_)' | \
> curl -d @- \
>   -d type=web_service_binding.github \
>   -d session=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx \
>   -d csrf_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx \
>   -d plain_out=1 \
>   -d remote_username=cedricbonhomme \
>   https://keybase.io/_/api/1.0/sig/post.json
 
You need a passphrase to unlock the secret key for
user: "Cedric Bonhomme <cedric@cedricbonhomme.org>"
4096-bit RSA key, ID 57B7A70D, created 2010-09-25
 
Success!
========
 
Please refer to your browser session for more information.
 
(Signature id: XXXXXXXXXXXXXXXXXXXXXXX)

De même pour les autres services (Bitcoin, Hacker News, etc.) que l’on souhaite vérifier.

Et si vous voulez m’envoyer un message, c’est aussi simple que ceci:

$ keybase encrypt cedricbonhomme -m 'Salut Cédric!'
-----BEGIN PGP MESSAGE-----
Version: GnuPG v2                                                                                                                                                                  
 
hQIMA8Z4yvxpw8/YAQ/+Of5EvcLRB92we/afSXrVZHsqh4y7AhjlhEOby/h28TMq
1tdF3BGNUojm031v0eoJjC0lATTijq2wqCLJEI+HSqHDDGd9Y70ln69M3c8Pw7XZ
YoQ0RvKKkulQ5GwhU38TiwYQvLk3eDHeS46P4h/Cmge/Iyr1WZ0jzCLZcJRjXDa+
M2wlzjrtFiVnxzkYK8C0uEvVmPjMbkYr6E5mpAkrOLk9WnFfKJEKaVIKZoZavw2C
iAgw1BKCfvnOYE4fkunaZOkNNj26rV1RqbK7XWg59Tgha+oXALgdi2O/TrpNzTHB
+SZoexrM4mfv9btMpmMHyQ8YF93bdMgl4REgtyxcA3bAzwGFUjiNlxjUiPf3qyIp
MkGWX14RUbS+4yZZc9toOdDvQnZmtftSc4ZN/iwaa1MDbHY+HHdU/YhzQj6Z8/sY
RSJ128q0kR63PCNs5LS/Fal7+YwMPKJA2AFzkDeKCqEnsV4KgQ1Fco97exPcaBRk
rnL88Zpii1SJJ/9+Xrooja2Y/HO+KeFUFGZKuXsECAXAepTNJ/doM/RZ0TsuIXhZ
u5AKcbr41gnAiJDCwT+4KCunyiGOX8A0/7tGlgdQ5uKusbfBypNWNOMnz1d0lDei
41yNXCSt7SNrjGjhUCmH6ac47iB0cl+VyQ3U64aj4Jk28fUYp+IpxWivmam7AOzS
SQH4ZfICAkQAPKQVAUOmrijO3u3ORltnS38IhztB204PCJPMyP2HMPl0k2uW4rPv
bxxVinbzTveX6+e0oE3/402K+Rw2C2DuKlA=
=EZW8
-----END PGP MESSAGE-----

Vous allez me dire que ce n’est pas beaucoup plus compliqué avec GPG/mutt. Mais avec keybase, vous pouvez aussi «traquer» une personne (keybase track cedricbonhomme) de manière à garder les informations à propos de celle-ci à jour (et sur différentes machines). Et voilà comment faire ceci:

$ keybase track mitsuhiko
info: ...checking identity proofs
✔ public key fingerprint: D0C6 A999 5649 E5B4 0748 3E54 1D8F BE76 FDD3 E6F2
✔ "mitsuhiko" on twitter: https://twitter.com/mitsuhiko/status/483692975814635520"mitsuhiko" on github: https://gist.github.com/5e106bf001aacf4594b3
✔ admin of the DNS zone for lucumr.pocoo.org
Is this the mitsuhiko you wanted? [y/N] y
Permanently track this user, and write proof to server? [Y/n] y
info: Updated file: /home/cedric/.cache/keybase/session.json
 
You need a passphrase to unlock the secret key for
user: "Cedric Bonhomme <cedric@cedricbonhomme.org>"
4096-bit RSA key, ID A1CB94DE57B7A70D, created 2010-09-25
 
info: ✔ Wrote tracking info to remote keybase.io server
info: Success!

Évidemment si vous ne voulez pas utiliser Keybase pour me contacter de façon plus anonyme, des informations similaires (clés GPG, OTR, etc.) sont disponibles ici. Mais ces informations ne sont pas vérifiées avec ma clé privée.