вторник, апреля 01, 2008

Psi, Jabber.ru и сертификат

Intro


В Psi есть такая вещь, как подключение к серверу по протоколу SSL.

-А что такое SSL и на кой оно надо?

SSL (Secure Socket Layer) служит для того, чтобы передавать данные по открытым каналам (таким как интернет), но так, чтобы никто не смог их прочесть даже в случае перехвата трафика каким-набудь третьим лицом. Технически представляет собой прослойку (layer) между протоколом высокого уровня и протоколом TCP, для шифрования использует асимметричные алгоритмы.

Обычно применяется между сервером и клиентом, например, протокол https представляет именно SSL-трафик, в который завёрнут обычный http-протокол. Наш любимый жабер тоже поддерживает работу по етому протоколу. Привет любопытным админам ;) .

Как использовать


Влючается в настройках аккаунта, вкладка Connection, комбобокс Encrypt connection (рис.1). Выбрать надо или Always, или When available. Что есть что - думаю, сами поймёте.



Но тут есть одна фича - на стандартной виньХП Псайка плачет при подключении к jabber.ru, говорит,что сертификат какой-то левый (рис.2).

Мы не ленимся, тыкаем батончик Details и видим что да, Certificate is not valid, потому что Self-signed (рис.3).

Тут я мог бы рассказать о сертификатах, как они распространяются, что такое корневые сертификаты, как они попадают в комп... Но это - в другой раз, и то при условии что кому-то ето любопытно. Полюбовавшись на мессагу, тычем Close и на предыдущем вопросе Continue. Дальше всё работает нормально.

Можно терпеть ето окошко, тыкая каждый раз Continue, но настоящий ленивый компьютерщик так делать не станет. Тем более что тыкать придётся на каждом реконнекте. А станет он искать пути избавления от етого надоедливого окошка.

Лечение


Есть два варианта убрать ету надоедливую мессагу:

1. Подавить предупреждение;

2. Заставить Psi доверять сертификату.

1. Давим предупреждение

Порядок действий следующий:

Лезем в настройки аккаунта, вкладка Connection, ставим галочку Ignore SSL warnings (рис.4). Метод действенный, но не совсем кошерный (на мой взгляд).



2. Заставляем Psi доверять сертификату.

Снова обратим внимание на рис.3. Приглядевшись, видим строку: Organizational unit: http://www.cacert.org. Не ленимся, идём на етот сайт, и сразу на главной странице видим линк Root Certificate. Переходим на него, и качаем Root Certificate либо в PEM-формате, либо в DER-формате.

Далее нам надо установить ети сертификаты в ось. Идём к нашему скачанному сертификату, тычем его два раза, выходит окошко с информацией про сертификат (рис.5).

Тычем батон "Установить сертификат", далее нас приветствует мастер импорта сертификатов, Далее, Далее, Готово.

Тут замечу, что у меня он установился как доверенный корневой центр сертификации, как он встанет у вас - не могу сказать. И что будет, если он встанет не сюда - тожу не скажу, могу предположить, что псайка по прежнему будет задавать вопрос, но не уверен. Если будет так, то надо удалить сертификат, и поставить его по-новой, но уже указав на втором шаге импорта путь сертификации вручную ("Поместить все сертификаты в следующее хранилище").

После етой операции, наша ось начинает доверять сертификатам, выданным Сacert, а Псайка как раз проверяет через ось, стало быть, она тоже доверяет сертификату от Jabber.ru, который как-раз-таки получен от Cacert :).

Мораль


Что тут скажешь... Надо быть достаточно ленивым, что бы запариться каждый раз выполнять одни и те же действия, и при етом достаточно любопытным, что бы найти решение, которое избавит вас от етой рутины. Заодно по пути знаний наберётесь и получите через некоторе время левелап :).

+P.S. Да, весь етот SSL даёт шифрование от клиента до сервера, то есть кроме сервера никто не сможет прочесть сообщения. Но настоящим параноикам и етого мало - им надо, чтобы и сервер не мог читать нашу переписку :) . И это тоже можно сделать, используя Псайку и GnuPG-шифрование. Об етом я буду писать позже.