Защитим электронную почту!::Журнал СА 1.2003
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы
  Статьи

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

 Читать далее...

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9890
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8106
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8204
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5195
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5873
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Защитим электронную почту!

Архив номеров / 2003 / Выпуск №1 (2) / Защитим электронную почту!

Рубрика: Безопасность /  Электронная почта

ВСЕВОЛОД СТАХОВ

Защитим электронную почту!

Электронная почта – это одно из самых популярных средств общения в Cети. Но при всей её привлекательности в обычной схеме – это довольно небезопасная система. Единственной защитой (да и то сомнительной) являются пароли для почтовых ящиков, но почтовые сообщения могут просто подменить или послать от вашего имени. Содержимое сообщений никак не шифруется и может быть прочитано всеми, кто имеет доступ к каналу передачи данного сообщения. Но с недавнего времени электронная почта практически достигла того же уровня, что и бумажная. Электронные сообщения можно подписывать, исключая возможность их изменения. Причём подделать электронную цифровую подпись намного сложнее технически, чем рукописную. В России (и во многих других странах) был даже принят закон, по которому электронная подпись приравнивается к рукописной (хотя в данных законах обязательно оговорён алгоритм подписи, что немного неудобно). Алгоритмы асимметрического шифрования позволяют также не только подписывать сообщения, но и зашифровывать их от постороннего взора. При этом обмен ключами упрощён до минимума: намного удобнее обменяться публичными ключами через Сеть (правда публичный ключ, передаваемый через сеть, должен быть подписан либо комплементарным секретным ключом, либо неким доверенным ключом сторонней организации, но об этом далее), чем париться с симметрическим ключом и передавать его на дискетке, которую потом долго и упорно форматировать. Хотя асимметрическое шифрование медленнее, оно увеличивает размер данных, но если другой человек живёт в какой-нибудь папуасии, а вы – в каком-нибудь Мурманске, то обмен публичными ключами – единственное решение для безопасной переписки. Кроме этого, чем больше людей знает ваш публичный ключ, тем лучше, так как они уже смогут проверять подписанные вами сообщения. Для подтверждения получения именно того публичного ключа, который был отослан, можно использовать метод проверки хешей. Его идея такова: после получения публичного ключа через Сеть, вы звоните отправителю и просите его продиктовать вам его публичный ключ (4096 бит), дружно идёте в известное место и вспоминаете о хешах. Можно просто узнать у него 32-х битный хеш и сравнить с тем, что было получено. Так как у двух разных ключей не может быть одинаковых хешей, можете быть смело уверены, что ключ получен правильный. Такая схема не оставляет никаких шансов злоумышленнику (кроме брутфорса или физического на вас нападения с применением пыток), но несколько проблематична, поэтому используется только в крайних случаях. Итак, хватит теории и перейдём к практике. Я расскажу в данной статье о почтовом клиенте The Bat, системе защиты данных PGP и GnuPG, а также о сертификатах S/MIME.

Начнём с The Bat. Данный почтовый клиент имеет отличные возможности по защите вашей корреспонденции. Во-первых, The Bat поддерживает различные средства, позволяющие не передавать пароль почтового ящика в открытом виде, а передавать его MD5 хеш или производить аутентификацию средствами NTLM (для Windows NT серверов), но, к сожалению, безопасная аутентификация POP и SMTP поддерживается далеко не всеми серверами, да и сами сообщения передаются в открытом виде. Поэтому для защиты сообщений используются механизмы PGP и S/MIME. Первый из них – PGP (pretty good privacy) – служит для подписывания или шифрования почтовых сообщений (вложения не шифруются и не подписываются, для этого существует S/MIME). Данный механизм просто добавляет текстовую ЭЦП в тело сообщения. После этого модификация письма приводит к тому, что подпись становится невалидной (как я уже говорил, подпись – это хеш-функция, и невозможно подобрать два письма с одинаковым хешем (в идеале)). Шифрование сообщения осуществляется на основании генерируемого случайным образом и зашифрованного публичным ключом получателя симметрического ключа, что не очень увеличивает размер письма, особенно если используется сжатие сообщения. Фактически, при шифровании письма размером в 500 байт получилось сообщение в ~800 байт, а при шифровании письма в 24101 байт – 11270 байт (вот что сжатие животворящее делает)! Из недостатков PGP я заметил лишь один: не умеет оно шифровать и/или подписывать вложения (хотя это тоже легко лечится). Но есть ещё один недостаток PGP – его небесплатность и то, что различные его версии рассчитаны для определённых стран (это связано с законами об ЭЦП, как я уже говорил). Но Bat имеет встроенный алгоритм PGP, соответствующий rfc-1991, и что самое примечательное, он умеет генерировать пары ключей встроенным алгоритмом. Встроенное PGP использует алгоритм IDEA (128 бит) для симметрического шифрования сообщений и MD5 для составления ЭЦП. И что ещё я бы хотел отметить до перехода к непосредственно описанию всего вышесказанного, это что The Bat умеет работать со многими версиями PGP, включая GnuPG(!), которые должны быть установлены, как внешние модули; для выбора версии PGP зайдите в меню «Инструменты> OpenPGP > Выбор версии PGP». Теперь я бы хотел подробно описать процесс работы с ключами PGP (для встроенной версии PGP):

  • Для начала создадим пару ключей: «Инструменты-> OpenPGP-> Управление ключами», нажать и далее следовать инструкциям по созданию ключей (размер ключа желательно указывать не короче 1024 бит, а лучше, на мой взгляд, не менее 2048 бит).
  • Передадим своим собеседникам свой публичный ключ, подписанный секретным (этим мы гарантируем, что ключ был неизменен в ходе передачи через Сеть). Для копирования публичного ключа в буфер обмена заходим в управление ключами, выбираем нужную пару ключей и из выпрыгивающего меню выбираем «копировать». После этого вставляем ключ в сообщение и в редакторе ставим галочки напротив следующих пунктов меню: «Защита –> Подписать перед отправкой» и «Защита –> Авто-PGP». При помещении в папку «Исходящие» будет запрошен пароль секретного ключа и письмо будет подписано.
  • Получатель импортирует ваш публичный ключ и с его помощью проверяет ЭЦП вашего сообщения. Если подпись верна, то ключ также валиден, иначе ваш публичный ключ был изменён и получатель должен его немедленно удалить! Импортировать ключ совсем просто: просто выберите письмо, содержащее ключ, и в меню OpenPGP надавите «Импортировать ключ OpenPGP» (при импорте учтите, что должна быть выбрана та версия PGP, в которой был создан данный публичный ключ).
  • получатель в свою очередь присылает вам свой публичный ключ, подготовленный таким же образом, и у вас оказывается пара ключей, которую можно использовать как для подписывания сообщений, так и для шифрования. Можно также проверить хеш публичного ключа, если вы считаете, что кто-то не спит ночами, чтобы поиметь ваши секретные данные.

Для проверки подписи необходимо нажать клавиши , а для расшифровки – , при этом учтите, что для проверки подписи вам необходимо иметь публичный ключ отправителя, а для расшифровки – свой секретный ключ. И зашифровав сообщение публичным ключом получателя, вы не сможете расшифровать его сами, так как у вас нет его секретного ключа! Все сообщения PGP имеют схожий формат и представляют из себя простой текст:

Публичный ключ:

-----BEGIN PGP PUBLIC KEY BLOCK-----

Version: 2.6

mQEPAz2wAdcAAAEIAMbtzluSULSrU3X1qvf9QBeY+VCI7Pe/Wi0eSun8g7do9V0q

....

-----END PGP PUBLIC KEY BLOCK-----

Электронная цифровая подпись:

-----BEGIN PGP SIGNED MESSAGE-----

Hash: MD5

ТЕКСТ_СООБЩЕНИЯ

-----BEGIN PGP SIGNATURE-----

Version: 2.6

iQEVAwUAPcbEbnuMbS82Jh/FAQFWvwf/aJEiMj/mUPlHzNLIelDMwJZMxK+9UuBL

-----END PGP SIGNATURE-----

Зашифрованное сообщение:

-----BEGIN PGP MESSAGE-----

Version: 2.6

lIwRIouHmq+nJjsBBEA7FCH1rS6C/hfi4J1MHN+q/EycFltExRTqjIcOtoiDYNvJ

-----END PGP MESSAGE-----

Поэтому все операции с PGP являются достаточно прозрачными, так как сама реализация PGP определяет из сообщения всю необходимую информацию. Для разных версий PGP различается только поле Version: и поле Hash: в ЭЦП (выбор алгоритма хеширования, обычно SHA1 (160 бит) или MD5 (128 бит)).

Выбор версии PGP должен исходить из того, с какими людьми вы преимущественно общаетесь. До обмена ключами необходимо узнать у собеседника, какой версией PGP располагает он. Думаю, что для The Bat идеально использование встроенного алгоритма PGP а для *nix-машин обычно используется GnuPG. Вот о нём-то я и хочу сказать пару слов.

GnuPG разрабатывался в противовес коммерческому PGP, и, надо сказать, получился инструмент что надо. GnuPG (www.gnupg.org) представляет из себя утилиту командной строки, обладающей кучей параметров и навороченных фич. Я не буду подробно рассказывать о данной системе, так как на www.gnupg.org есть линк на русскую доку, в которой всё отлично разжевано. Напишу для лентяев основные принципы использования gnupg.

  • gpg --help – получить список всех режимов gnupg (думаю дальше уже просто писать не о чем);
  • gpg --gen-key – генерация пары ключей в интерактивном режиме;
  • gpg -s -o out_file in_file – подписать(-s) файл in_file ключом по умолчанию о сохранить подписанный файл в out_file;
  • gpg --verify signed_file – проверить ЭЦП файла signed_file;
  • gpg --export – экспортировать все публичные ключи (вывод в stdout) во внутреннем формате;
  • gpg --export --armor – экспортировать все публичные ключи в текстовом формате:

-----BEGIN PGP PUBLIC KEY BLOCK-----

Version: GnuPG v1.2.1 (Linux)

вывод также в stdout;

  • gpg --import filenames – импортировать публичные ключи из перечисленных файлов;
  • gpg -e -r recipient@mail.ru filename – зашифровать сообщение file-name, используя публичный ключ recipient@mail.ru (он должен быть импортирован предыдущей командой). Ключ -e можно комбинировать с ключом -s, тогда зашифрованное сообщение будет также подписано;
  • gpg --fingerprint – выводит md5 хеш ключа username (или хеши всех известных ключей, если username не определено).

Ещё отмечу, что при экспорте публичного ключа GnuPG генерирует подписанный комплементарным секретным ключом (self-signed public key) публичный ключ и не импортирует ключей, которые не являются self-signed. Кроме этого, если не указать gnupg опцию --armor (для любых операций), то происходит бинарное шифрование/подписывание и экспорт (в каком-то встроенном формате), что не подходит для пересылки в теле письма или через веб. Поэтому в таких случаях всегда указывайте опцию --armor, что принудит gnupg работать с текстовым форматом PGP (стандартный). Имя получателя (-r) указывает gnupg, какой публичный ключ ей использовать. Имя может быть в нескольких форматах: адрес e-mail, полное имя, идентификатор ключа (краткий или полный), шаблон поиска.

Ну вот, с PGP покончили. Теперь я бы хотел рассказать об S/MIME. Это формат, который используется многими почтовыми приложениями (среди них The Bat, Mozilla Messenger, Outlook). S/MIME позволяет шифровать и подписывать почтовые сообщения целиком (т.е. включая вложения) при помощи сертификатов. Сертификат – это набор из секретного ключа (необязательный компонент, имеет смысл только для ваших собственных сертификатов, шифруется паролем – а как же без этого) и публичного ключа, подписанного данным секретным (уф, короче, self-signed). Поэтому при подписи своего сообщения S/MIME сертификатом нет необходимости передавать свой публичный ключ, так как он уже есть в ЭЦП. Вот два удобства, предоставляемые S/MIME, а также удобно то, что S/MIME интегрирован со многими почтовыми клиентами. Вот так примерно выглядит заголовок S/MIME подписанного письма:

Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="----------C61031FF2231ECF0"

This is a cryptographically signed message in MIME format.

------------C61031FF2231ECF0

Content-Type: text/plain; charset=koi8-r

Content-Transfer-Encoding: 8bit

Текст Письма

------------C61031FF2231ECF0

Content-Type: application/pkcs7-signature; name="smime.p7s"

Content-Transfer-Encoding: base64

Content-Disposition: attachment; filename="smime.p7s"

Content-Description: S/MIME Cryptographic Signature

MIIFPQYJKoZIhvcNAQcCoIIFLjCCBSoCAQMxCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCCAyow

...

------------C61031FF2231ECF0--

В подписи содержится публичный ключ, которым эта подпись проверяется. Данный сертификат также может быть сразу же импортирован.

Единственное, что резко испортило мое мнение об S/MIME – это то, что генерировать сертификаты умеет, пожалуй, один The Bat, остальные говорят, что сертификаты можно получить от root ca (корневые центры сертификации). Сертификаты The Bat могут спокойно импортироваться любой программой, поддерживающей S/MIME, если эти сертификаты не содержат секретного ключа. Все мои попытки импортировать последние завершились зависанием или «неизвестной» ошибкой (думаю, что это от того, что The Bat использует собственную реализацию S/MIME ни с чем не совместимую на уровне секретных ключей). Поэтому я ограничусь рассказом про The Bat (в других мейлерах всё сделано по тому же принципу, разве что называется по-другому). Для начала зайдём в «Настройки –> S/MIME», там выберем внутреннюю реализацию S/MIME, алгоритм симметрического шифрования и алгоритм хеширования (тут на ваше усмотрение). После этого заходим в свойства нужного почтового ящика на закладку «Общие», давим кнопку «Cертификаты» и там видим потрясающее пустое окно. Создаём сертификат волшебной кнопкой «Cоздать» и дальше следуйте инструкциям. Появился сертификат, который является опасным по умолчанию. Ага, как же, дважды щёлкаем по нему мышой и добавляем к trusted ca. После чего сертификат окрашивается в радостный зелёный цвет и им можно подписать письмо хоть Папе Римскому. Для импорта чужого сертификата необходимо проделать с ним такие же действия, после чего эти сертификаты заносятся в адресную книгу «trusted root ca». При получении письма с сертификатом значок в поле вложений указывает на проверку сертификата (обратите внимание на его цвет, форму, попробуйте дважды щёлкнуть мышой или попытайтесь его импортировать). Думаю, что использование S/MIME для написания собственных писем не должно вызвать затруднений. Просто в редакторе The Bat сбросьте галочку «Защита –> Авто OpenPGP» и установите «Защита –> Авто S/MIME». Дальше всё как в OpenPGP. Ещё полезно установить галочку компрессии в опциях S/MIME, иначе шифрование увеличивает размер сообщения где-то в 2 раза (при ключе длиной 2048 бит и алгоритме IDEA – 128 бит).

Вообще, по-моему, оптимально использовать The Bat с OpenPGP (внутренней или gnupg, для последней надо прописать путь к исполняемому файлу gpg.exe в PATH). Хотя использование сертификатов тоже не составляет никаких проблем, я, честно говоря, больше предпочитаю OpenPGP, так как генерация ключей намного проще в исполнении, чем получение сертификатов (если использовать мейлер, который эти сертификаты делать сам не умеет). Опять же это только моё мнение...

Всем пользователям Win* я советую использовать The Bat или gnupg, а всем пользователям *nix – gnupg. Эти две программы решат все ваши проблемы безопасной почты (хотя ещё неплохо бы найти мыльный сервер с безопасной передачей паролей).

Привожу список сайтов, содержащих полезную информацию по данной теме:

  • www.nobat.ru – неофициальный сайт The Bat;
  • www.gnupg.org – официальный сайт gnupg;
  • www.ritlabs.com – официальный сайт The Bat (а всё-таки вампира написали наши программеры – честь им и хвала);
  • www.certs.netscape.com – список корневых центров сертификации, где можно получить сертификат.

Ну, вот и всё!

Приложение

Для получения «мыльного» сертификата от доверенной организации можно зайти на узел www.thawte.com и запросить бесплатный «мыльный» сертификат (personal freemail certificate). Далее вас попросят пройти здоровую процедуру регистрации, где вы должны ввести свои личные данные. В конце регистрации на ваш e-mail будет послан сабж (mail ping) и вы будете должны пройти по указанной ссылке и ввести две строки, высланные в сабже. После всей этой мороки у вас будет зарегистрированный профиль на сайте(туда вы попадаете автоматически после завершения регистрации), где вы можете запросить сертификат. Учтите, что процедура получения сертификата для разных браузеров различна и вам необходимо выбрать один из поддерживаемых (IE, Netscape, Opera), я бы посоветовал использовать IE, т.к. полученный ослом сертификат помещается в хранилище сертификатов Windows. В ходе получения сертификата в начале вам будет передан публичный сертификат thawte freemail, который вам нужно отнести к доверенным (просто ответьте положительно на вопрос о занесении в Trusted root CA). Далее по мылу будет прислано сообщение об успешной генерации сертификата и опять же надо пройти по ссылке (тем же браузером с той же машины!). Получение сертификата сопровождается кучей подтверждений, но в виде компенсации за мороку будет получен персональный сертификат, подписанный thawte freemail сертификатом. Данный сертификат будет помещён в хранилище винды, и его уже можно будет использовать в Outlook Express для подписывания и расшифровывания сообщений. Для экспорта данного сертификата в файл заходим в Outlook, «Сервис –> Параметры –> Безопасность –> Цифровые удостоверения». Там находим наш сертификат (на вкладке «Личные») и экспортируем его в файл. У меня получилось импортировать этот файл в The Bat и в Mozilla, а также в Оперу, думаю, с этим проблем не возникнет. Замечу, что The Bat нужно сделать ещё пару вещей. The Bat доверять такому сертификату не будет, т.к. подписан он неизвестным ключом. Для устранения этой проблемы делаем следующее: в окне удостоверений Outlook заходим на вкладку «Промежуточные центры сертификации», находим там два сертификата: Thawte Personal Freemail CA и Personal Freemail RSA 2000.x.x. Экспортируем эти сертификаты в файлы, затем создаём в адресной книге вампира Trusted Root CA новый элемент и называем его как-нибудь Thawte personal freemail. Заходим на страницу сертификатов и импортируем эти два сертификта из Outlook. Таким образом, мы внесли сертификаты Thawte Freemail к доверенным. После этого наш персональный сертификат будет действительным, и его можно смело использовать (можете посмотреть путь сертификации: он должен быть примерно таким «Thawte Freemail CA –> Personal freemail RSA 2000.x.x –> Thawte Freemail Member»).


Комментарии отсутствуют

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

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru