RTFM

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.

...Подтвердим, что мы в здравом уме и трезвой памяти...


И получим менеджер ключей чистым, аки белый лист.


Теперь давайте-ка создадим вашу пару SEC+PUB.

Жмём в меню "Ключ"-"Генерировать ключ"


Теперь внимательно и аккуратно:

- пишем публичные вещи - имя юзера и его е-мэйл (они будут в PUB и доступны всем);

- можете добавить какой-то комментарий - это для себя;

- решите, будет ли ключевая пара иметь "срок годности" (иногда это нужно) или - бессрочной;

- выберите длину ключа

(ВАЖНО! Ключи небольшой длины можно расшифровать тупым перебором на суперкомпьютере... Надежными считаются ключи от 1024 бит - выбирайте это значение, если у вас слабый комп, чтобы не тормозил при шифровании. Если комп современный - выбирайте 2х или лучше 4х килобитные ключи, они еще лет десять будут надежными и тормозов вы не заметите. Параноики - выбирайте самые длинные... :)

- выберите пароль

(ВАЖНО-1.! Пароль должен быть надежным. Он должен содержать не только лат.буквы, но и цифры, и очень желательно чтобы и знаки препинания; от этого зависит стойкость вашей программы ко взлому, доберись до неё кто-то без вашего ведома... Пароль "abc123" не выбирайте ни при каких условиях!, его проверят первым. :)

(ВАЖНО-2.! Пароль надо запомнить навсегда. Не записать на бумажку или в телефон, а хранить исключительно в памяти - ибо человек всегда самое слабое звено в шифровании... Заучите его. И помните, что если забудете, то не прочтёте ничего, вам присланного в шифрованном виде...)

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


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



Всё. Ваша ключевая пара SEC+PUB создана.

Обратите внимание на "связку ключей" слева - это признак наличия SEC, т.е. - это ваш ключ. Чужие PUBы этого значка иметь не будут.



Теперь нужно ваш PUB (без SEC!) отправить вашему корреспонденту.

Как его извлечь?

Выберите новосозданную пару галкой в чекбоксе и сделайте "Экспорт в файл" - экспортируется только PUB


(Замечание: вы можете сделать "Экспорт в буфер обмена" и содержимое помянутого буфера запастить "Ctrl+V" в текст письма, на форум, во вконтактик и вообще куда угодно; в большинстве случаев это удобнее, чем возня с пересылкой файлов...)

Отсылаем этот файл вашему корреспонденту (вместе с этим мануалом) - и ложимся спать. Ибо утро вечера мудренее... :)


***

Следующим утром, при проверке почты, мы находим письмо от корреспондента, в котором, он, умница такая, прислал вам свой PUB.

Пусть - тоже в качестве файла, приложенного к письму. Давайте посмотрим его содержимое через "Блокнот". Вот он, присланный PUB:


Запускаем нашу прогу и в главном окне жмём "Импорт ключа"-"Файл"...



Выбираем присланный файл...

...и - вуаля! - PUB-ключ корреспондента появляется в нашей программе:


(Замечание: как и при отсылке - можно экспортировать не файл с ключом, а сам ключ, присланный в тексте письма и скопированный в буфер "Ctrl+C"; или вообще перенесенный в окно слева программы - посмотреть на него предварительно... Это реально удобнее, и это основной режим работы.)


Теперь давайте обменяемся с вашим корреспондентом шифровками.

В левом ("Блокнот") экране программы набираем текст, который вы хотите отправить в зашифрованном виде...

...Когда текст готов - галкой в чекбоксе выбираем PUB корреспондента (Не ваш! Не ошибитесь, вы пишете ему, а не себе... :) ...шифровать надо PUBом того, кому вы отправляете письмо).

И жмём на "Зашифровать.


Алилуйя! Текст зашифровался так, что ни один враг не прочтёт!

Отсылаем его корреспонденту (опять же - либо сохранив в файл, либо, что удобнее, скопипастив прямо в текст письма...) электрической почтой и ждем результатов.


Дзинь! Блямс! На мыльницу свалилось письмо.


Забираем в программу (через файл или копипастой) зашифрованный блок, присланный корреспондентом.

Жмём "Расшифровать".

И вводим тот пароль, что так старательно придумывали и запоминали.


Наслаждаемся расшифрованным текстом.


(Замечание: внимательные заметили, что ключ расшифровки не был выбран галкой в чекбоксе. Программа не дура, у неё есть только один SEC, чтобы что-то расшифровать, его и использует. Когда (и если) вы насоздаёте много своих ключей для разных назначений, то тогда надо будет указывать...)


Всё. Теперь мы умеем делать свои ключевые пары, шифровать свои письма и расшифровывать чужие.

Ничего, как видите, сложного.


***

Надеюсь, вам никогда не пригодится. Но - береженого бог бережет - побеспокойтесь о своей безопасности и безопасности своих друзей.

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

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


Парочка замечаний.

Замечание о шифровании собственных текстов.


Очевидно, что тексты можно шифровать и своим ключом. Тогда только вы их и прочтёте... Система заточена под это превосходно - забрал шифрованный текст в блокнот, расшифровал, изменил/дополнил зашифровал и тут же сохранил. И нигде на диске не останется варианта без шифрования.

Рекомендую этот метод писателям, опасающимся, что пираты сопрут их недописанный роман. :)


Замечание о PGP-подписях.


Кроме кнопок "Зашифровать" и "Расшифровать" есть еще пара кнопок "Подписать" и "Проверить". Нетрудно догадаться, что они используются для верификации блока текста и проверки этой подписи.

Попробуйте сами повозиться, всё аналогично и ничего сложного. Только не забывайте, что тут - всё наоборот: подписываете вы своим ключом, а проверяете чужим.


P.S. Для юзеров Android

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

(почтовая программа)


Эти две программы хорошо интегрированы и прекрасно работают в связке.

Загрузка...