Шифрование почты и файлов в GnuPG и TrueCrypt

Здравствуй-здравствуй, дорогой читатель. Сегодня я хотел бы рассказать о ещё одном найденном мной средстве защиты приватности и персональных данных при общении в сети. Это средство является продолжением небезызвестного ранее WinPT — графического интерфейса для шифрования по алгоритмам с асимметричными ключами. В частности RSA и DSA. Называется оно GnuPT Portable, и я хотел бы подробно рассмотреть его во всех его ипостасях. Сразу хочу предупредить, что текста будет много, но это оправдано в таком деле как шифрование и защита данных, не обессудьте.

Для начала небольшой экскурс, а что же это такое? Это программное обеспечение, предназначенное, чтобы осуществлять шифрование с открытым ключом. Что это значит? Вот давайте вспомним все классические шифры — симметричные, которые появились исторически раньше. Какая была основная проблема этих шифров? А то, что ключ-пароль, должен был в одинаковом виде присутствовать как у одного абонента так и у второго, допустим у Саши и Гены. Т.е. если пароль для связи, условно, «123456», то этот пароль должен быть у абонента Саши и у абонента Гены. Иначе — пароль не подойдёт к шифру, и вскрыть его будет невозможно. Пароль требовалось как-то передать обоим до начала обмена сообщениями. Это было сопряжено с трудностями огромными, ибо требовалось это сделать безопасно, чтобы противник Вася — не смог применить этот пароль к шифрованному сообщению, и не узнал, что Саша и Гена в это воскресенье договариваются пойти на рыбалку. Условно — требовался защищённый канал, которому требовалось во-первых, доверять, и который, во-вторых, должен был быть защищён от влияний извне. Понимаете какой геморрой? А если курьера, который несёт пароль — допустим сына Саши — Вову, перехватит сын Васи — Петя, и побив отберёт пакет, после чего отнесёт его Васе? Будет плохо.

В общем, всё было бы так плохо, если бы однажды добрые люди не придумали шифрование с открытым ключом. Базируется оно на очень высокой сложности обратного разрешения некоторых математических уравнений — односторонних функций, это если просто говорить, на самом деле теория сложна, и приводить тут теоретические выкладки я не буду. Мы с вами лучше займёмся практикой. Так вот, смысл асимметричного шифрования (которое является синонимом шифрования с открытым ключом) в том, что существует пара ключей — секретный и публичный. Шифровать сообщения публичным ключом может кто угодно, а вот расшифровать с его помощью уже ничего нельзя. Расшифровать может только обладатель секретного ключа. Ключевая пара позволяет не заботиться о защите канала связи, да и в целом, рекомендуется распространять свой публичный ключ как можно большему числу абонентов — чтобы все могли вам писать защищённые сообщения как можно больше людей. В нашем примере это выглядит следующим образом.

И Саша и Гена имеют ключевые пары. Приватный и публичный ключ. Саша хочет сообщить Гене, что в воскресенье они пойдут на рыбалку. Но у Саши нет публичного ключа Гены. Что делать? Он даёт сыну Вове конверт, в котором лежит его публичный ключ, и отправляет его к Гене. Даже если сын Васи, Петя, побьёт Вову и отберёт конверт — толку от этого будет немного, ибо сам по себе публичный ключ на то и публичный, что им можно только шифровать, но не расшифровывать. Гена, благополучно получив конверт, пишет своё сообщение, шифрует его открытым ключом Саши, и вложив в ответный конверт свой публичный ключ вместе с шифрованным сообщением — отправляет Вову к Саше. Теперь у обоих есть публичные ключи друг друга, и они не зависят от надёжности канала. Вася может сколько угодно читать их кракозябры, но толку от этого будет мало. В этом и состоит принцип шифрования с открытым ключом: имея в распоряжении алгоритм, открытый ключ, зашифрованные сообщения (кракозябры) и возможно даже некоторые из открытых нешифрованных текстов, которые впоследствии были зашифрованы открытым ключом, т.е. текстовые пары — противник (Вася в нашем примере) не сможет расшифровать все остальные сообщения.
Впрочем, ни Гена ни Саша не могут быть до конца уверены, что когда они таки попрутся на рыбалку в ближайшее воскресенье, Вася не подберёт ключ к квартире обоих, и проникнув внутрь не выкрадет (попросту скопировав) секретные ключи, позволяющие спокойно читать закрытую переписку. Потому обоим требуется сейф для хранения закрытых ключей, и отсутствие копий этих ключей, разбросанных по всей квартире, равно как и частей этого ключа, например в виде разорванной на клочки бумаги в мусорке. В реальной жизни существуют сейфы, которые невозможно вскрыть «брутально» без уничтожения содержимого. В компьютерной области тоже есть нечто подобное, правда там всё сложнее. Вот компьютерное приложение мы и рассмотрим сейчас.

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

В качестве сейфа, в котором абоненты будут хранить ключи — может выступать TrueCrypt, на мой взгляд лучшая из существующих программ в этой сфере по отношению к конечному пользователю. А в качестве программы-шифровальщика текстов и файлов — будет выступать GnuPT Portable – немецкий проект ПО, позволяющий осуществлять шифрование с открытым ключом по стойким алгоритмам. Обе программы бесплатны, и довольно удобны в применении. TrueCrypt – позволяет создать на USB-флеш накопителе файл-контейнер, в котором будет храниться переписка и ключи. Более того, он позволяет создать систему, которая не позволит выпытать у вас данные под физическим либо иным давлением. А то есть, знаете ли, метод — терморектальный криптоанализ — вскрытия контейнера, путём засовывания паяльника в задницу того, кто знает пароль от системы. Некоторые коррупционные следователи работающие в малоразвитых странах, подкупленные вашим конкурентом Васей, могут даже подбросить вам в квартиру 50 грамм героина, изъять, вас арестовать, и потом долго бить арматурой в КПЗ, угрожая попеременно физической расправой и уголовным преследованием, если вы не скажете пароль от диска. Система эта базируется на вложенных томах, как в матрёшке, с той лишь разницей, что если открыв большую матрёшку — можно найти маленькую внутри, то здесь — открыв «внешний» том доказать наличие внутреннего уже проблематично (впрочем, зависит от выдержки испытуемого). Разумеется, в нашей прекрасной стране РФ, согласно УПК, подобные доказательства не могут засчитываться в суде, и потому наши следователи, самые справедливые и добросовестные в мире, такие методы не применяют, так как свято блюдут и УПК и права человека. Но вдруг вы живёте не у нас, и вам грозит подобное? Так что на всякий случай я приведу информацию по этой теме — ведь не перевелись ещё в мире рейдерские захваты предприятий, с изыманием всей аппаратуры и применением репрессивных методов против владельцев, с целью выпытывания коммерчески значимой информации.

В нашей стране — РФ, нелицензированное ФСБ криптографическое ПО запрещено к использованию в коммерческих структурах и госучреждениях, а вот насчёт использования его для личных целей — там ничего не сказано, согласно Федеральному Закону № 149-ФЗ. Таким образом, если для обмена бизнес-планами использовать это ПО, вероятно, всё-таки нельзя, то вот о рыбалке между двумя товарищами-параноиками договориться вполне можно.
Итак, вводная была достаточно большая, и если вы её осилили, то таки вам респект. Теперь рассмотрим, как же это всё создавать.

Наверх

Автор

Алекс Разгибалов

Сумасшедший мужчина, неопределённого возраста, наслаждающийся манией преследования. Паталогически недоверчив, эгоистичен, авторитарен. Вторичные диагнозы - программист и поц. Владеет английским языком на уровне около хренового разговорного. Также знаком с некоторыми другими языками. Интересуется всем и вся, за счёт чего в любой области знания являются поверхностными, неглубокими. Характер невыдержанный. Крепость - 55 градусов.

Шифрование почты и файлов в GnuPG и TrueCrypt: 19 комментариев

  1. Очень доступно отписал, спасибо! Поржал над персонажами, малолетним подонком Васей, охотник за криптоключами)) Водправь ссылочку на свой my_public_key.asc, а то чет 404ю выдает.. Еще раз спасибо тебе за GnuPT Portable — очень удобная, я пользовался всякой чушью, либо стандартной убунтовской либо еще чем-нить, а эта очень уж приглянулась, жаль под линь нет ее, ну ниче, мб когда-нить напишут. Кста, посмотрел тут короткометражный мульт КодХантерс, чем-то цепанул он меня..Это трейлер, вот жду полнометражки))Мб и тебе понравится http://www.codehunters.tv/

    1. Данке за багрепорт, поправил :) Кстати под линукс ГнуПТ же вроде есть? Я просто как-то привык, что сначала всё такого вот рода появляется в никсах, а потом портируется на винду :))

      Мультег порадовал)) Чем-то напомнило последнюю фантазию… Особенно улыбнула картина в поезде: когда хрупкая девушка с шуменом и бахом снимала часового с автоматом в руках… :)) Любят же творцы нереалистичную зрелищность… Этим кстати грешит и manhunt — игрушка в смысле, симулятор маньяка :) Ну, или нечто близкое к оному… Мда… Правда игра созданная с нужной долей реализма не пройдёт цензуру))

  2. Но получается, что кто угодно может удалить этот файл (контейнер).
    Есть ли возможность защитить этот файл от удаления ?
    Кстати когда я создал этот файл на диске С, то удалить его не мог
    (выскакивало окно, что файл в system или что то похожее, но вырезав
    его смог переместить на другой диск и уже там удалил).

    1. Да, кто угодно :) Такова цена за сокрытие данных… Вообще, можно поставить ему владельца, тогда оперировать им смогут только админ и конкретный юзер. В принципе — файл-контейнер такой же файл, как скажем фильм, или исо-образ, лежащий на диске, со всеми достоинствами и недостатками. Кстати модель угроз довольно интересная — скажем, данные из контейнера, когда он примонтирован как диск, могут утекать в файл подкачки, в hiberfil.sys, в список последних документов… Т.е. анонимность требует некоторого подхода.

  3. А данные шифруются автоматически, сразу, как только попадают в контейнер со скоростью в зависимости от алгоритма шифрования ?
    Я правильно понял ?

    1. Да, шифрование происходит в поточном режиме. А скорость зависит от носителя — например на жёстком диске она мало отличается от скорости копирования без шифрования. На флешке если контейнер — у меня меньше получается скорость. Скажем, в обычном режиме — 12 мб/с, а с шифрованием на контейнер — 7 — 7,5. Это я про троекратное шифрование говорю. Одним алгоритмом смысла не имеет мучать — он конечно надёжен, но паранойя, паранойя мешает установить один AES :)

  4. Есть ли какое нибудь существенное различие между программами True Crypt и Drive Crypt?
    Можно ли сказать, что платная программа Drive Crypt чем то лучше бесплатной программы True Crypt ?

    1. Ну для начала хотя бы то, что платный софт содержит «черный ход» для любого рода власть имущих. Как правило, для тех, кто правит бал в стране, где софт пытается пройти сертификацию: если производитель отказывается делать подобную лазейку — то сертификацию (и разрешение на продажу) он вряд ли получит. Черный ход должен предоставлять возможность либо 1. Получить доступ к данным без ввода ключей доступа, либо 2. Получить, собственно, сам пароль доступа.

      В TrueCrypt есть гарантия, что любые подобные закладки отсутствуют, так как ПО распространяется совместно с исходными кодами, а сборка — подписана производителем. Здесь, вообще, надо выявить круг тех, от кого вы защищаете информацию. Если от всех и вся, и вам плевать на техподдержку — выбирайте TrueCrypt. Если же от недобросовестных конкурентов, а на власть имущих вам положить — то есть вы собираетесь использовать софт в коммерческих целях — то вам однозначно требуется сертифицированное ПО, ибо если вы предоставляете кому-то услугу на основе такого ПО, то вам требуется только «разрешённое» согласно федеральному закону 149 «о связи».

  5. Что будет происходить со скрытым томом и с его информацией, на отдельном диске (флешке), когда я начну заполнять открытый том до отказа ?
    И что подумает злоумышленник, если увидит, что заявленная емкость флешки не заполняется до конца (если такая функция предусмотрена для сохранения информации в скрытом томе) ?
    Надеюсь смысл вопроса понятен, не смотря на его витиеватость.

    1. ) Вообще, происходить будет вполне логичное — у вас скрытый том затрётся, чтобы не выдавать его наличие. Реально — trueCrypt сам не знает о наличии скрытого тома во внешнем, пока ему об этом не сообщил пользователь.

      Но в TrueCrypt реализована функция «монтировать внешний том в режиме защиты скрытого», т.е. требуется ввести сразу два пароля — от внешнего и от скрытого, и с внешним в этом случае работать можно уже более или менее нормально (правда мои эксперименты показали что, нифига не нормально, а очень даже глючно).

      Впрочем есть там ещё одна засада — это утечки данных при работе в операционной системе. Т.е. том сам — безупречен, он стойко зашифрован и без закладок. А вот ОС может провоцировать утечку данных — начиная от временных файлов при работе специфичного софта (если на томе что-то хранится), и заканчивая утечками областей памяти в файл подкачки. Но это не актуально при шифровании всего диска с операционной системой.

  6. Есть ли в TrueCrypt такие функции как автомонтирование (файла или диска) при запуске системы и мгновенное размонтирование по горячим клавишам в случае неожиданной опасности (много ли разнообразных вариантов) ?

  7. Очень неплохая программа, но видел ли кто-нибудь исходники этого фронтенда? В случае защиты информации, имхо, это критично. Пока юзать не буду

    1. Ну, вообще видели)) Они просто открыты — дело в том, что стоит появиться малейшему подозрению (а тем более, если его подтвердят и документируют) программой резко перестанут пользоваться многие. Оно им просто не надо. Да и услышали бы мы если так. По крайней мере данный софт однозначно надёжнее коммерческих сертифицированных решений.

  8. Дело в том, уважаемый, что на официальном сайте GnuPT есть сырцы только компонентов GnuPT, а никак не самого GnuPT-Portable. Имхо, использование приложения с закрытым исходным кодом для защиты информации — моветон, даже если оно оперирует опенсорсными компонентами. Именно из-за этого я в своё время отказался от использования данной прграммы, а наткнувшись на Вашу статью, решил поинтересоваться, где Вы нашли её исходники. Хотелось бы порекомендовать Вам внимательней читать комментарии, а не отписываться саркастическими ссылками на гугл. Успехов.

    1. Ну вы же нашли сами зато информацию — а это и предполагалось. А кто вам мешает самостоятельно сделать сборку из открытых исходников? Портативная версия ничем не отличается от обычной, кроме путей к файлам ключей и настроек. Согласитесь, помех к этому в общем-то нет, если софтина не использует системно-ориентированные возможности, по типу реестра в винде или путей типа /etc/ прошитых в код… Остальное в принципе поправимо :) К тому же зависит от целей использования — в большинстве случаев абсолютной защиты всё равно не получить, на уровне прикладных задач, и появляется понятие приемлемого уровня защиты. Чтобы переговорить с коллегой, например, совсем не обязательно скрывать тотально всё. Я думаю, что данный способ шифрования подойдёт даже для более специального применения, к примеру, для слива информации каким-нибудь учёным за рубеж, заказчику. Правда за ними то как раз присматривают обычно. И в том и в другом случае, расшифровать данную информацию у начальства, или гэбни — не выйдет. Ключики-то на западе (если они вообще есть, замечу). Потому до определённого уровня применимости — данный софт вполне пригоден к использованию.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Собирать идеально - не обязательно, просто приблизительно соберите картинку (должен быть включен JavaScript).WordPress CAPTCHA