Certyfikaty klienta
Logowanie za pomocą certyfikatu klienta
Od dawna znana jest możliwość logowania do serwisu NickServ z wykorzystaniem hasła do nicka. Natomiast od niedawna dostępne jest rozwiązanie alternatywne, wykorzystujące możliwość połączenia SSL: logowanie za pomocą certyfikatu klienta. Metoda ta nie wymaga podawania hasła – nie trzeba go ani wpisywać ręcznie przy każdym połączeniu, ani ustawiać i zapisywać w swoim programie. Polega ona na stworzeniu certyfikatu, który jest unikalny dla Twojego klienta i używanego do nawiązywania połączenia SSL. Certyfikat taki posiada tzw "odcisk palca" (certificate fingerprint, certfp), który można dodać do specjalnej listy w usłudze NickServ, dzięki czemu klient ten zostanie w momencie połączenia zalogowany do swojego konta (niezależnie nawet od używanego nicka). Jeśli korzystasz z wielu klientów, nie ma problemu – lista w NickServ może zawierać wiele certyfikatów, więc można dodać do niej każdy z programów.
Konfiguracja certyfikatu w programie Irssi
Zakładamy, że korzystasz ze shella systemu Linux lub podobnego, i posiadasz wszelkie niezbędne programy (są one dostępne domyślnie w większości dystrybucji).
Aby stworzyć certyfikat nie posiadający hasła i ważny przez 600 dni, użyj polecenia (w shellu):
openssl req -newkey rsa:2048 -days 600 -x509 -keyout irssi.key -out
irssi.crt -nodes
Program zada kilka pytań, odpowiedzi nie mają znaczenia. Jeśli chcesz,
aby certyfikat miał hasło, usuń argument -nodes
(przy
generacji pojawi się dodatkowe pytanie o "pass phrase"). Aby certyfikat
był ważny bezterminowo, usuń argument -days 600
.
Wygenerowane zostaną pliki irssi.key oraz irssi.crt.
Następnie stwórz plik irssi.pem, ustaw mu odpowiednie uprawnienia, i usuń oba poprzednio wygenerowane pliki:
cat irssi.crt irssi.key > ~/.irssi/irssi.pem
chmod 600 ~/.irssi/irssi.pem
rm irssi.crt irssi.key
"Odcisk palca" możesz uzyskać (wyświetli się w terminalu) używając polecenia:
openssl x509 -sha1 -fingerprint -noout -in ~/.irssi/irssi.pem | sed -e
's/^.*=//;s/://g;y/ABCDEF/abcdef/'
Rozłącz się z serwerem IRC poleceniem /disconnect PIRC
.
Usuń posiadane serwery sieci PIRC, a następnie dodaj nowy z odpowiednimi
opcjami – wpisz w Irssi:
/server add -ssl_cert ~/.irssi/irssi.pem -ssl_pass
hasło_do_certyfikatu -network PIRC irc.pirc.pl 6601
Oczywiście pomiń opcję -ssl_pass
jeśli Twój certyfikat nie
ma hasła. Teraz połącz się z siecią, zaloguj do nicka (jeszcze używając
hasła) i dodaj aktualnie używany "odcisk palca":
/connect PIRC
/msg NickServ IDENTIFY hasło
/msg NickServ CERT ADD
Sprawdź listę certyfikatów przypisanych do nicka, i upewnij się, że jest na niej "odcisk palca" uzyskany wcześniej:
/msg NickServ CERT LIST
Jeśli wszystko się powiodło, będziesz od teraz logować się za pomocą swojego certyfikatu, nie używając hasła. Uprawnienia do konta w NickServ powiązanego z posiadanym certyfikatem uzyskasz nawet używając innego nicka.
Konfiguracja certyfikatu w programie WeeChat
Najpierw generujemy certyfikat następującymi poleceniami (szczegółowych informacji szukaj w instrukcji dla Irssi powyżej):
mkdir ~/.weechat/ssl
openssl req -newkey rsa:2048 -x509 -keyout nick.key -out nick.crt
-nodes
cat nick.crt nick.key > ~/.weechat/ssl/nick.pem
chmod 600 ~/.weechat/ssl/nick.pem
rm nick.crt nick.key
Teraz skonfigurujmy sieć PIRC w WeeChat (najpierw rozłącz się z serwerem):
/server add PIRC irc.pirc.pl/6601
/set irc.server.PIRC.ssl on
/set irc.server.PIRC.ssl_cert "%h/ssl/nick.pem"
/connect PIRC
... i dodaj certyfikat do listy NickServ:
/msg NickServ IDENTIFY hasło
/msg NickServ CERT ADD
Gotowe!