Кто может читать почту и передаваемые в Интернете сообщения сообщения
Большинство информации в сетях передаётся и хранится в открытом виде. Вы зашли на форум, ввели свой логин и пароль, написали сообщение — и логин, и пароль, и сообщение передаётся в открытом виде, в качестве простого текста. Причём, в передачи данных участвуют много узлом и на разных этих узлах возможен перехват (сниффинг) данных. Это возможно как в вашей локальной сети начинающим хакером, который скачал программу для пентестинга беспроводных сетей и сумел подобрать пароль от вашего Wi-Fi, это возможно на уровне городского провайдера последней мили, где сидит продвинутый и не в меру любопытный админ, это возможно на последующих узлах вплоть до хостера того форума, где вы общаетесь.
Чтобы хоть как-то защититься от этого, популярные сайты (почтовые службы, социальные сети и другие) обзавелись сертификатами, смысл их в том, что обмен данными между сайтом и вами теперь происходит в зашифрованном виде. Т.е. теперь начинающий хакер, продвинутый админ и другие лица по цепочке не смогут (просто) перехватить ваши данные. Вы защищены от них, но вы не защищены от тех, кто имеет доступ, например, к почтовому серверу, социальной сети в качестве администратора или контролирующего органа. Почта на серверах лежит в виде простых текстовых файлов. К ней может иметь доступ другой любопытный админ, к ней может иметь доступ государство.
Аналогичная ситуация и, например, с программами общения — с чатами: всё в открытом виде.
Есть две новости: хорошая и плохая. Плохая новость в том, что мир обмена информацией прозрачный. Хорошая новость в том, что передаваемые данные можно шифровать и делать это не очень трудно. Причём зашифрованные данные не будут доступны ни промежуточным звеньям, ни кому-либо ещё, кроме людей, у которых есть ключ для расшифровки.
Существует множество алгоритмов шифрования. Их можно разделить, например, на две группы: симметричное и асимметричное. Может быть, в детстве вы играли в такую игру — каждая буква заменяется на определённую другую. Получается бессмысленное сообщение, расшифровать которое можно только зная алгоритм. Знаете за сколько взламывается такой шифр? Если зашифрованный текст достаточно большой, то шифр гарантированно вмазывается программой за секунды. Алгоритм взлома очень простой. В каждом языке буквы повторяются с разной частотой. Например, в русском языке самой часто встречающейся буквой является буква «о». Если в зашифрованном тексте самой часто встречающейся буквой является, например, буква «д», это значит, что все буквы «д» нужно поменять на букву «о» — и т. д. с каждой буквой.
Задача чуть усложняется, если в алгоритм добавлен пароль. Но алгоритмы взлома для таких шифров давным-давно известны и программы (я видел пример реализации такой программы в математической системе Maple, взламывают эти шифры за секунды). На основе статистических частотных закономерностей сначала определяется длина пароля и постепенно шифр «раскручивается» дальше.
Т.е. важно не только шифровать данные, важно шифровать хорошим (т. е. сильным) шифром. О том, как это сделать, и пойдёт речь в этой статье.
Асимметричное шифрование
С асимметричным шифрованием вы сталкиваетесь каждый день. Примером его использования являются SSL-сертификаты сайтов — протокол HTTPS. Но не будем сильно углубляться в теорию. Для этого есть Википедия.
Главное, что нам сейчас нужно понять, то, что для асимметричного шифрования используются два ключа. Первый ключ, он называется открытым, его нужно передавать собеседнику, с помощью этого ключа он будет шифровать сообщения для вас. Эти сообщения не сможет расшифровать никто — даже лицо, у которого есть открытый ключ. Т.е. даже ваш собеседник. Второй ключ — закрытый — должен тщательно храниться у вас. Только этим ключом возможна расшифровка присланных данных.
Ничего сложного нет, давайте сразу приступим к практике.
Программа для шифрования почты
Наиболее известные алгоритмы ассиметричного шифрования входят в открытый международный стандарт криптозащиты OpenPGP. Открытой реализацией OpenPGP является проект GNU Privacy Guard (сокращенно GnuPG или GPG). Ниже приведен весьма удобный, портативный, кроссплатформенный, простой в освоении криптоблокнот на базе GnuPG, созданный в рамках открытого проекта gpg4usb.
Последнюю версию можно скачать на официальном сайте (http://gpg4usb.cpunk.de/download.html). Система не требует инсталляции.
После скачивания архива рекомендуется проверить его целостность и подлинность по оригинальному слепку. Далее необходимо распаковать скачанный zip-архив. В Linux запускать файл start_linux, в Windows выполнять файл start_windows.exe. Можно запустить exe-шник и под Linux, если установлен Wine (про установку Wine в Kali Linux здесь).
О PGP можно дополнительно почитать в Википедии.
GPG-шифрование сообщений
GPG шифрование, позволяет обмениваться сообщениями таким образом, чтобы прочитать их могли, только владельцы GPG ключей.
Цель: отправить человеку зашифрованное сообщение используя его открытый GPG ключ.
Запускаем файл: start_linux
При открытии приложения появится окно «Мастер первого запуска», в нём можете либо указать дополнительные настройки, либо закрыть его. Теперь, нужно сделать свою пару PGP ключей (открытый и закрытый) PGP. Жмём кнопку «Менеджер ключей». В открывшимся окне нажимаем вверху посередине «Менеджер ключей». В открывшемся окне, в верхнем меню пункт «Ключ»->«Генерировать ключ».
В появившемся окне необходимо заполнить поля своими данными (достаточно ввести только имя).
При нажатии кнопки «ОК», начнётся процесс создания ключа. После создания, менеджер ключей, можно закрыть. Теперь у вас есть собственная пара GPG ключей.
Далее, нужно импортировать публичный ключ собеседника. Копируем ключ собеседника, в верхнем меню программы жмём «Ключи»->«Импорт ключей из…»->«Буфер обмена». Появится окно «Детали импорта ключа».
После нажатии «ОК», в списке ключей, появится ещё один ключ.
Далее, свой публичный ключ, надо зашифровать публичным ключом собеседника и отправить ему это зашифрованное сообщение. В результате, собеседник получит ваш публичный ключ, и сможет шифровать им свои сообщения, чтобы прочитать их могли только вы. Экспортируйте свой публичный ключ в буфер обмена: «Менеджер ключей»->(Ставите галочку напротив своего ключа)->«Экспорт в Буфер обмена».
Далее, напишите какое-то сообщение, прикрепите к нему свой ключ, поставьте галочку на против ключа собеседника и нажмите кнопку зашифровать:
В результате, получится зашифрованное сообщение, которое вы должны далее передать собеседнику, любым удобным способом (личным сообщением на сайте, email, jabber, icq и т. д.). Т. к. оно зашифровано его ключом, он его расшифрует и увидит содержимое. Кроме него, никто ваше сообщение, прочесть не сможет.
В ответ, собеседник сможет выслать своё зашифрованное письмо. Чтобы его расшифровать, надо: Вставить зашифрованное сообщение в текстовое поле, поставить галочку напротив своего ключа, нажать кнопку «Расшифровать», ввести пароль указанный при генерации ключа.
Здесь (http://pgp.mit.edu/) прекрасный сервер для хранения ключей.
Шифрование сообщений в чате
Вышеописанный способ вполне подходит для обмена единичными сообщениями (по почте и т. д.). Но если мы общаемся в чате, то не очень удобно постоянно перескакивать в другую программу и расшифровывать там. Сейчас будет описано, как настроить асимметричное шифрование общения в чате.
Psi — программа для мгновенного обмена сообщениями посредством сети Интернет по протоколу XMPP (Jabber). XMPP (Extensible Messaging and Presence Protocol — расширяемый протокол обмена сообщениями и информацией о присутствии), ранее известный как Jabber ([ˈʤæbə(r)], джаббер — «болтовня», «трёп», «тарабарщина») — открытый, основанный на XML , свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии в режиме, близком к режиму реального времени. Изначально спроектированный легко расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети. В отличие от коммерческих систем мгновенного обмена сообщениями, таких как AIM, ICQ, WLM и Yahoo, XMPP является децентрализованной, расширяемой и открытой системой. Любой желающий может открыть свой сервер мгновенного обмена сообщениями, регистрировать на нём пользователей и взаимодействовать с другими серверами XMPP. На основе протокола XMPP уже открыто множество частных и корпоративных серверов XMPP. Среди них есть достаточно крупные проекты, такие как Facebook, Google Talk, Одноклассники.ru, QIP, LiveJournal, Juick и др.
Psi+ / Psi Plus – модификация клиента Psi (Psi IM Jabber client). Целью проекта psi+ является сбор, доработка и создание новых патчей с целью передачи их в основную ветвь Psi.
Для установки
Вводим в терминале:
apt-get install psi-plus apt-get install libqca2-plugin-gnupg
Далее описаны пошаговые инструкции на примере Kali Linux. На других дистрибутивах домашний каталог будет другим.
В /root создаем папку Jabber , а в ней папку Psi+
Для PGP шифрования используем программу pgp4usb.
В папку Jabber распаковываем gpg4usb. Запускаем программу. Создаем ключ.
В папке Jabber создаем новый документ, открываем его и вводим:
#!/bin/sh HERE="$(dirname "$(readlink -f "#!/bin/sh HERE="$(dirname "$(readlink -f "${0}")")" export GNUPGHOME="$HERE/gpg4usb/keydb" export PSIPLUSDATADIR="$HERE/Psi+" export PSIDATADIR="$HERE/Psi+" psi-plus --profile=default "$@" &")")" export GNUPGHOME="$HERE/gpg4usb/keydb" export PSIPLUSDATADIR="$HERE/Psi+" export PSIDATADIR="$HERE/Psi+" psi-plus --profile=default "$@" &
Сохраняем и выходим. Переименовываем созданный файл в psi.sh . По этому скрипту будет запускаться Psi+ с GPG и OTR. Запускаем созданный нами скрипт а не Приложения => Интернет => Psi+
При первом запуске создаем новый аккаунт или подключаем старый. Вот здесь (https://xmpp.net/list.php) список Jabber-серверов. С рейтингом A — самые лучшие. На них желательно и регистрироваться.
Далее выбираем для PGP-шифрования ваш созданный ключ из программы pgp4usb. Выбрать при каждом запуске чтобы спрашивался пароль от ключа шифрования или программа запомнила его.
Все, вы зашли в Psi+ . Можно им пользоваться. Для того чтобы использовать GPG — добавляем ключ нужного вам человека в программу pgp4usb и при написании сообщения сначала нажимаем на иконку замочка в верхнем правом углу окна. Горит желтым — с шифрованием. Серое — без шифрования.
OTR пожно подключить в Настройки => Плагины => Off-the-Record Messaging. Активировать, генерировать новый ключ и применить.
* OTR в Psi+ еще не до конца реализован, поэтому использовать его или нет — выбор за вами. Для OTR лучше подойдет программа Pidgin. А PGP в Psi+ я думаю более чем предостаточно…
Программа на английском. Русификатор можно скачать здесь. Кидаем его в /root/Jabber/Psi+. Язык должен смениться при следующем запуске. Если Psi+ будет все еще на английском — нажмите кнопку главного меню Psi+ и выберите пункт «Изменить профиль», после чего выберите русский язык.
Так же есть новые смайлы, а то старые кривые… Распаковываем в /root/Jabber/Psi+, затем в настройках указываем новые смайлы. Так же можно изменить в настройках звук, шрифты и т. д. Есть возможность подключить разнообразные плагины на свой вкус. Имеется их описание (http://psi-plus.com/wiki/ru:plugins) на русском языке.
А в чем различия Psi+ от Pidgin? Только в OTR и PGP? В основном народ пользуется OTR, в особых случаях PGP — это для параноиков.