Posted февраля 12th, 2014 by Jolly Roger[3]
По просьбе родственницы, проникшейся таки паранойей нашего времени, помогал ей налаживать канал удалённой шифрованной связи с подругой в другом городе. ...И подумал, что этот скилл может, увы, пригодиться многим в обозримо близкое время.
Итак, мы будем осваивать систему PGP (англ. Pretty Good Privacy), за разработку которой нам всем надо поблагодарить Филлипа Циммермана. Кроме шуток. Спасибо, Фил!
Юзеру в этой системе генерируются два ключа, публичный (PUB) и секретный (SEC).
Понятно из названия, что SECретный ключ должен знать только сам юзер и давать его никому нельзя, а наоборот - нужно беречь его как зеницу ока и т.п.
PUBличный же ключ - напротив, должен быть отправлен тому, с кем юзер хочет шифрованно общаться.
Это т.н. "ассиметричное шифрование".
Получив PUB юзера, его корреспондент может с его помощью зашифровать свой текст - и уже сам не сможет его восстановить. Расшифровка возможна только с помощью SEC. И гарантируется, что никто другой не сможет взломать этот шифр за обозримое разумное время (при достаточно длинном ключе - позже упомяну). Невозможно - даже за дело возьмутся сразу вдвоём директора ФСБ и АНБ, невозможно расшифровать...
Сам юзер, расшифровав послание, должен ответ на него зашифровать с помощью PUB собеседника.
Т.е. для взаимного обмена шифровками требуется предварительно обменяться PUBами по любому открытому каналу. И пофиг, если их кто-то перехватит, т.к. это не даст ему возможности прочитать шифр... (В скобках: PUB-ключи часто выкладывают вообще "для всех", на спец.серверах)
Но остаётся опасность подмены послания - прислать от себя, якобы от корреспондента... (если он не был выложен для всех и вы думаете, что он только у одного есть).
Для защиты от этого ключевая пара может использоваться и для того, чтобы подписать текст (как в шифре, так и в открытую).
Подписание текста производится "с точностью до наоборот" - SEC-ключом, который есть только у подписывающего. А любой владелец PUBа из этой пары может проверить и убедиться, кто подписал.
Подделать подпись ("в обозримое разумное время", ага) также совершенно невозможно.
На этом теоретическую часть можно считать оконченной.
Будем тренироваться на компьютере (ноутбуке) Win.
1.
Идём по адресу http://gpg4usb.org/ и жмём приметную зелёную кнопку
Скачиваем zip-файл, открываем его и сохраняем содержимое куда угодно - программа портабельная и может работать с любой флешки.
2.
Открываем директорию и запускаем exe-файл.
Запустится мастер первичной настройки.
3.
Выберите русский язык и жмите на кнопку
4.
Поскольку мы осваиваем всё с нуля, опять жмем кнопку (прочее - для уже имевших дело с PGP, они сами разберутся)
5.
В следующем окне можно отказаться (а можно и не отказыватся) от лицезрения хелпа системы при запуске и от повторных запусков мастера
6.
Откроется главное окно программы.
Слева - блокнот, в котором будут происходить операции с текстом (мало отличен от Notepad`а, ничего пугающего...)
Справа - перечень ключей, записанных в программе.
Изначально там один PUB, от создателей программы (вдруг вы их захотите шифрованно поблагодарить незлым тихим словом?...)
7.
Давайте разберемся с ключами. Для этого - жмите в меню "Ключи"-"Менеджер ключей"
Откроется менеджер ключей.
8.
...Давайте для начала сотрем ключ создателей - чтобы под ногами не путался.
Выберем его галкой в чекбоксе и похерим кнопкой "Стереть".
9.
...Подтвердим, что мы в здравом уме и трезвой памяти...
И получим менеджер ключей чистым, аки белый лист.
Жмём в меню "Ключ"-"Генерировать ключ"
Теперь внимательно и аккуратно:
- пишем публичные вещи - имя юзера и его е-мэйл (они будут в PUB и доступны всем);
- можете добавить какой-то комментарий - это для себя;
- решите, будет ли ключевая пара иметь "срок годности" (иногда это нужно) или - бессрочной;
- выберите длину ключа
(ВАЖНО! Ключи небольшой длины можно расшифровать тупым перебором на суперкомпьютере... Надежными считаются ключи от 1024 бит - выбирайте это значение, если у вас слабый комп, чтобы не тормозил при шифровании. Если комп современный - выбирайте 2х или лучше 4х килобитные ключи, они еще лет десять будут надежными и тормозов вы не заметите. Параноики - выбирайте самые длинные... :)
- выберите пароль
(ВАЖНО-1.! Пароль должен быть надежным. Он должен содержать не только лат.буквы, но и цифры, и очень желательно чтобы и знаки препинания; от этого зависит стойкость вашей программы ко взлому, доберись до неё кто-то без вашего ведома... Пароль "abc123" не выбирайте ни при каких условиях!, его проверят первым. :)
(ВАЖНО-2.! Пароль надо запомнить навсегда. Не записать на бумажку или в телефон, а хранить исключительно в памяти - ибо человек всегда самое слабое звено в шифровании... Заучите его. И помните, что если забудете, то не прочтёте ничего, вам присланного в шифрованном виде...)
Проявите выдумку. Подберите небанальный пароль, до которого не додумаются ваши родные и друзья, но который никогда не забудете вы сами - и такой длины и состава, чтобы ползунок перешел в "Стойкий"...
Программа начнет генерацию ключевой пары. Если у вас слабый комп, можете заняться пока чем-нибудь другим, это повысит стойкость пары (рандомизируя работу компьютера). Если комп новый и сильный - просто пошевелите мышкой туда-сюда несколько секунд.
Обратите внимание на "связку ключей" слева - это признак наличия SEC, т.е. - это ваш ключ. Чужие PUBы этого значка иметь не будут.
Как его извлечь?
Выберите новосозданную пару галкой в чекбоксе и сделайте "Экспорт в файл" - экспортируется только PUB
(Замечание: вы можете сделать "Экспорт в буфер обмена" и содержимое помянутого буфера запастить "Ctrl+V" в текст письма, на форум, во вконтактик и вообще куда угодно; в большинстве случаев это удобнее, чем возня с пересылкой файлов...)
Отсылаем этот файл вашему корреспонденту (вместе с этим мануалом) - и ложимся спать. Ибо утро вечера мудренее... :)
Следующим утром, при проверке почты, мы находим письмо от корреспондента, в котором, он, умница такая, прислал вам свой PUB.
Пусть - тоже в качестве файла, приложенного к письму. Давайте посмотрим его содержимое через "Блокнот". Вот он, присланный PUB:
Запускаем нашу прогу и в главном окне жмём "Импорт ключа"-"Файл"...
Выбираем присланный файл...
...и - вуаля! - PUB-ключ корреспондента появляется в нашей программе:
(Замечание: как и при отсылке - можно экспортировать не файл с ключом, а сам ключ, присланный в тексте письма и скопированный в буфер "Ctrl+C"; или вообще перенесенный в окно слева программы - посмотреть на него предварительно... Это реально удобнее, и это основной режим работы.)
В левом ("Блокнот") экране программы набираем текст, который вы хотите отправить в зашифрованном виде...
...Когда текст готов - галкой в чекбоксе выбираем PUB корреспондента (Не ваш! Не ошибитесь, вы пишете ему, а не себе... :) ...шифровать надо PUBом того, кому вы отправляете письмо).
И жмём на "Зашифровать.
Алилуйя! Текст зашифровался так, что ни один враг не прочтёт!
Отсылаем его корреспонденту (опять же - либо сохранив в файл, либо, что удобнее, скопипастив прямо в текст письма...) электрической почтой и ждем результатов.
Дзинь! Блямс! На мыльницу свалилось письмо.
Забираем в программу (через файл или копипастой) зашифрованный блок, присланный корреспондентом.
Жмём "Расшифровать".
И вводим тот пароль, что так старательно придумывали и запоминали.
Наслаждаемся расшифрованным текстом.
(Замечание: внимательные заметили, что ключ расшифровки не был выбран галкой в чекбоксе. Программа не дура, у неё есть только один SEC, чтобы что-то расшифровать, его и использует. Когда (и если) вы насоздаёте много своих ключей для разных назначений, то тогда надо будет указывать...)
Всё. Теперь мы умеем делать свои ключевые пары, шифровать свои письма и расшифровывать чужие.
Ничего, как видите, сложного.
Надеюсь, вам никогда не пригодится. Но - береженого бог бережет - побеспокойтесь о своей безопасности и безопасности своих друзей.
Кто знает, что через год будет считаться экстремизмом и не попадёте ли вы под очередной закон "бешеного принтера" в стране, где уже вяжут и бросают в автозаки за выход на улицу с раскрытым зонтиком... Лучше не давайте никому даже теоретической возможности использовать ваши слова против вас же - закон о "царице доказательств" тоже скоро будет принят, если вы не в курсе.
Ну а уж шифровать всю переписку в хозяйственно-коммерческой деятельности - сам бог велел, кто с налоговой сталкивался, тот поймёт...
Замечание о шифровании собственных текстов.
Очевидно, что тексты можно шифровать и своим ключом. Тогда только вы их и прочтёте... Система заточена под это превосходно - забрал шифрованный текст в блокнот, расшифровал, изменил/дополнил зашифровал и тут же сохранил. И нигде на диске не останется варианта без шифрования.
Рекомендую этот метод писателям, опасающимся, что пираты сопрут их недописанный роман. :)
Замечание о PGP-подписях.
Кроме кнопок "Зашифровать" и "Расшифровать" есть еще пара кнопок "Подписать" и "Проверить". Нетрудно догадаться, что они используются для верификации блока текста и проверки этой подписи.
Попробуйте сами повозиться, всё аналогично и ничего сложного. Только не забывайте, что тут - всё наоборот: подписываете вы своим ключом, а проверяете чужим.
1.
AGP:
https://play.google.com/store/apps/details?id=org.thialfihar.android.apg
(PGP-шифровалка)
2.
K9mail:
https://play.google.com/store/apps/details?id=com.fsck.k9
(почтовая программа)
Эти две программы хорошо интегрированы и прекрасно работают в связке.