Способ обезопасить каналы общения с помощью шифрования в Jabber

0
125

Постепенно вопросы безопасности передачи сообщений становятся жизненно важными. С этим я полностью согласен с автором (http://breys.ru/blog/478.html) приведенной ниже методики шифрования.

В связи с последними событиями вокруг нашей милиции не озаботится шифрованием лишь идиёт и несовершеннолетний школьник

Есть два момента которые не всем понятны

  • SSL — это всего лишь защита канала до сервера, а GPG защита канала от клиента до клиента
  • Включать шифрование можно выборочно, а это значит, что не придётся генерировать и импортировать ключи со всеми учётками в ростере
  • Настроить шифрование довольно просто, но муторно и будут жертвы. Вы первых Pidgin, эту программу придётся выбросить так как она не умеет шифровать каналы связи (ну разве что SSL), но на его замену придут Gajim или Psi (мой выбор Gajim — ибо наше всио)

    Во вторых, операцию генерации и импорта ключей придётся проделать и тем, с кем вы хотите зашифровать связь

    В третьих, придётся озаботиться настройкой gpg агента и размещением скрытого ключа везде гдe он может использовать (в Ubuntu он работает без рукоприкладства)

    Для настройки шифрования необходимо проделать небольшую цепочку действий

  • создать собственный закрытый ключ
  • создать публичный ключ
  • выложить публичный ключ на публичное место (он для того и создан)
  • импортировать закрытый ключ в Jabber клиента
  • вынудить своих друзей шпиёнов включить шифрование:
  • испортировать ваш публичный ключ и связать его с вашей учёткой в их ростере
  • сгенерировать собственные ключи и выслать вам их публичные ключи
  • импортировать публичные ключи своих друзей шпиёнов в Gajim
  • всё
  • Для начала убеждаемся, что у вас ещё нет ключа, затем создаём новый ключ и снова смотрим список ключей и получем ID вашего ключа

    gpg —list-keys # смотрим список имеющихся ключей
    gpg  —gen-key # отвечаем на простые вопросы на русском языке, особо не стоит мудрить
    gpg —list-keys|egrep -o «/[^ ]+»  # смотрим результат(у меня он такой EF593D88)

    Теперь генерируем публичный ключ и выкладываем на свой сайт

    gpg —armor —export EF593D88 > 2jabber_gpg.asc
    Sendfile.ssh 2jabber_gpg.asc  # так я иногда выкладываю файлы на хостинг

    В Gajim заходим в настройки акаунта -> личная информация, выбираем созданный GPG ключ и можно включить агента, который во время сессии будет помнить ваш пасскей

    Затем требуете чтобы секретные друзья скачали ваш публичный ключ, выполнили его импортирование

    wget http://breys.ru/tmp/2jabber_gpg.asc (это мой публичный ключ)
    gpg —import 2jabber_gpg.asc

    и включили привязку этого ключа в вашему контакту, вот так

    Привязка GPG ключа к контакту в ростере Gajim

    Когда они это сделают, ваш клиент запросит ввести паскей указанный при создании приватного ключа, после этого остаётся лишь импортирвать публичные ключи друзей у себя и связать их с контактами ну и не забывать включать шифрование во время секретных разговоров

    Gajim может потребовать запустить gpg-agent, эта программа по функции схожа с ssh-agent, её задача помнить введённый  passkey, возможно его потребуется установить и перезапустить сесию

    sudo aptitude install gnupg-agent
    # после перезапуска сесии проверяем процессы
    ps ax gpg
    31332 ? Ss 0:00 /usr/bin/ssh-agent /usr/bin/gpg-agent —daemon
    —sh —write-env-file=/home/ubuntu/.gnupg/gpg-agent-info-ffsdmad-home /usr/bin/dbus-launch
    —exit-with-session /usr/bin/pulse-session gnome-session
    31333 ? Ss 0:00 /usr/bin/gpg-agent —daemon —sh —write-env-file=/home/ubuntu/.gnupg/gpg-agent-info-ffsdmad-home
    /usr/bin/dbus-launch —exit-with-session /usr/bin/pulse-session gnome-session
    # смотрим статус
    cat ~/.gnupg/gpg-agent-info-ffsdmad-home
    GPG_AGENT_INFO=/tmp/gpg-Xv8aaG/S.gpg-agent:31333:1
    30992 ?        Ss     0:00 gpg-agent -daemon

    Стоит отметить что в Ubuntu имеется отличная программа seahorse с её помощью, можно управлять всеми операциями: генерация, импорт, экспорт, синхронизация с серверами ключей и не только gpg ключей, но и ssh и всякими паролями.

    Кстати, во многом именно благодаря шифрованию передающихся конфиденциальных данных рынок Форекс стал настолько популярен в мире. Ведь через сеть ежеминутно передается информация стоимостью миллионы долларов, при этом обеспечивается ее надежная защита.