Шифровка из центра (защита пересылаемых писем)
[кусочек из моей книги «Omert@ – руководство по безопасности для больших боссов»]
Можно долго защищать электронную почту от, так сказать, обезличенных нападений – вирусов-троянов и спама, – однако при этом вопрос о том, что творится с безопасностью почты, проходящей в своём путешествии от отправителя к адресату через серверы провайдеров, по-прежнему остается открытым.
Раз через что-то там проходит – значит, может быть сохранена (скопирована) и изучена. Таким образом, твои секреты, секретики и секретищи могут стать известными непонятно кому, а может быть, и вполне понятно кому, что тем более печально. Вот тут во весь рост и встаёт проблема защиты переписки на промежуточных этапах. Да и на стартовых и конечных тоже. То есть в памяти сразу всплывает термин «шифровка из центра», которая указывает на старый как мир способ обмена информацией так, чтобы содержание её было доступно только посвящённым.
Впрочем, нужно разделять скрытие информации и шифрование. Скрытие – это когда на первый взгляд перед тобой обычное письмо (не электронное), но если его подержать над паром от чайника, то между строк о погоде проявятся желтоватые буквы статьи «Как нам реорганизовать Рабкрин», которую ваш дедушка Ленин написал молоком или ещё чем похуже. На научном языке это называется стеганография – то есть тайнопись (от греческих слов steganos и graphy).
Стеганография
Итак, стеганография. Основная её цель – скрыть сам факт существования секретного сообщения. То есть чтобы у предполагаемого противника (жены, конкурента и так далее) не было даже мысли о том, что в обычном послании содержится нечто секретное.
В современных условиях развития компьютерной техники уже нет необходимости писать текст на деревянных табличках, покрывая их затем воском (данный способ исповедовали древние греки, когда они ещё не осознавали свою древность), или писать молоком между строк.
При наличии компьютера тебе самому уже не нужно думать, как извратиться, а достаточно просто приготовить информацию для сокрытия и выбрать способ, который будет использован.
А способы эти следующие...
1. Неиспользуемые поля в специальных
форматах файлов
Способ на самом деле довольно простой.
Есть много различных видов данных, в
формате которых зарезервированы поля под
дальнейшие расширения возможностей этих
форматов. Переводя это на русский язык –
есть файлы, внутри которых
зарезервированы определённые
последовательности символов, которые не
используются. Как, например, потайной
кармашек в сумке, скрытый за тканью
подкладки. В эти неиспользованные
последовательности можно записать
секретную информацию. Посторонний человек
в подобном файле увидит всего лишь обычный
документ (видео, звук и так далее), а вот
посвящённый человек (например, твой
партнер по бизнесу) воспользуется
специальной программой, которая из файла
вытащит скрытые данные.
Способ, кстати, неплохой – пусть
злоумышленники попробуют догадаться, что
и где скрывается в треке песни Лены
Зосимовой «Падрушки маи, ни ривнуйте»,
которую вы переслали знакомому, особенно
если каждый день вы ему шлёте по песенке, в
которой ничего не скрывается. Но в данном
способе также есть и недостатки, потому
что свободных полей не так уж и много, то
есть таким образом можно передавать лишь
небольшой объём информации, а кроме того,
уровень скрытности весьма и весьма на
троечку...
2. Хитрое форматирование текстовых
файлов
Вот здесь веселее. Потому что в данном
случае пересылается как бы обычный текст,
в котором законсервирована тайная
информация. Посторонний человек видит
обычный текст, а перципиент (я его так
называю просто для прикола, на самом деле
это всего лишь твой абонент), который знает,
что за метод используется, из невинного
текста «вытаскивает» интереснейшую
информацию.
Методов тут, кстати, несколько. Вот самые
основные:
а. Специальная расстановка пробелов
Как известно, при выравнивании текста по ширине (левой и правой границе страницы) между словами образуется различное количество пробелов. Существуют разработанные методы, которые с помощью определённого алгоритма форматирования слов пробелами позволяют передавать нужную информацию. То есть текст как текст, выровненный определённым образом, однако если на него напустить соответствующую программу – она выцепит оттуда скрытые данные.б. Выбор определённых позиций букв
Тут легче пояснить на примере. Вот белый стих (писал я сам, поэтому не пугайтесь):
Жёлтые листья рябин
Опали вчерашним дождём.
Половозрелый мальчуган
Амидопиразолин разрезает ножом.
Если теперь прочитать сверху вниз первые буквы каждой строки, то можно узнать, что я думаю по поводу нынешней политической ситуации.
Но акростих – это самый элементарный и, разумеется, до предела ненадёжный способ. Обычно используется более сложный и на порядок менее очевидный метод, при котором позиции значащих букв на каждой строке совершенно разные. То есть из первой строки – десятая буква, из второй – третья, из третьей – восьмая и так далее. Какие именно позиции используются между тобой и твоим партнёром (юной подружкой) – знаете только вы двое. Поэтому, даже если и знать, что в данном тексте закодировано какое-то сообщение подобным методом, раскодировать его будет не так-то и просто.в. Метод имитации стихов
Частный случай того же акростиха, только всё делается автоматически. Например, тебе нужно партнёру переслать секретную фразу: «Колян, ну чо, сегодня вечером в сауну забуримся – обсуждать численные методы решения уравнений высших порядков?» Ты её скармливаешь программе, а она, попыхтев немного, выдаёт целое стихотворение, внешне вполне похожее на те плоды алкоголизации худощавых юнцов с безумным взглядом, которые продаются во всех книжных под названием «Концептуальная поэзия». Этот галимый концептуализм ты простым электронным письмом пересылаешь Коляну, а тот или вспомнит, что ему нужно воспользоваться специальной программой, после чего получит нужную фразу, или не вспомнит и тогда решит, что у тебя слегка поехала крыша.г. Невидимые сноски и ссылки
Наиболее дуболомный способ, но иногда применяется. Это когда нужная информация пишется во всякие специальные поля – например, колонтитулы и сноски – белым по белому или чёрным по чёрному. Для шестиклассников – сойдёт. Серьёзные мужчины такую стеганографию не используют – так можно весь авторитет потерять.
3. Нестандартная запись на определённые
носители
Можно взять обычную дискету и записать
информацию на такие дорожки, которые
обычным способом читаться не будут. Не
сильно продвинутый метод, но иногда
используется. От жён и любовниц сработает, а
вот по-настоящему ценную информацию
пытаться скрывать таким образом – это
детский сад, штаны на лямках.
4. Использование избыточности
музыкальных, графических и видеофайлов
Довольно забавный способ, который основан
на том, что в мультимедийных форматах
всегда есть определённая избыточность, – то
есть в звуковой, графический файл или
видеопоток, грубо говоря, можно воткнуть
определённую информацию, которая на
качество воспроизведения практически не
повлияет. Таким образом, несведущий человек
(злоумышленник), запустив этот файл, увидит
картинку, видеоклип или услышит песенку, а
получатель, знающий об использовании
данного способа, с помощью специальной
программы вытащит оттуда передаваемые
данные.
Вот что такое современная стеганография – в весьма упрощённом и популярном (раскланиваюсь) изложении. Чтобы использовать любой из этих методов (кроме, конечно, акростиха, но и ребёнку понятно, что акростих защитой считать нельзя), ты должен договориться со своим абонентом о том, какой из методов вы будете использовать, и установить на ваши компьютеры соответствующие программы.
Неудобств у данных методов довольно много. Во-первых, и это довольно важно, во всех них используется огромная избыточность: то есть, чтобы передать небольшой текст, нужно пересылать на порядок (или порядки) больший объём. Ну и, во-вторых, уровень защиты при использовании данных способов считается весьма низким.
Поэтому стеганография, как правило, используется в каких-то частных случаях. Для постоянной переписки используют криптографию...
Садокриптомазохизм
Между стеганографией и криптографией есть весьма важное концептуальное отличие (хотя, конечно, эти методы могут и комбинироваться для вящей защищённости). Стеганография скрывает сообщение во внешне безобидном тексте (файле), а криптография ничего не скрывает – то есть посторонние в курсе, что это зашифрованная информация, – однако делает невозможным (скажем так – сильно затруднительным) для посторонних расшифровку данных.
Суть практически любого криптографического метода заключается в ключах. («Ключах, ключах...» – подключилось эхо.) Это звучит каламбуром, но тем не менее совершенно верно отражает суть. Шифрование текста (для простоты восприятия будем говорить только о тексте, хотя, разумеется, шифровать можно любые файлы – звуковые, видео, графические и так далее) производится отправителем с помощью специального ключа. У получателя текста должен быть ключ для расшифровки, с помощью которого он и восстанавливает первоначальный вид текста.
Таким образом, чтобы обеспечить взаимопонимание между отправителем и получателем, они должны обменяться ключами для шифрования.
Что такое этот ключ? Такая же золотая фигня, с помощью которой Буратино стал владельцем собственного театра? Разумеется, нет, ведь речь идёт о компьютерном веке. Ключ для шифрования/расшифровывания – это компьютерный файл, который использует специальная программа.
Кстати, криптография кроме шифрования информации выполняет также и ещё одну довольно важную задачу – обеспечивает неизменяемость передаваемой информации, то есть у получателя всегда есть возможность проверить, не внесли ли в полученный текст по пути какие-то искажения. Сам понимаешь, в контракте иногда можно стереть или приписать одну цифру, чтобы это имело катастрофические последствия. Или отправить груз вместо Нью-Йорка в Нью-Васюки.
Простенькая классификация криптографических методов
Криптографические методы можно делить по принципу действия и по характеру алгоритма. Знать характер алгоритмов (перестановочные, подстановочные, смешанные и прочая галиматья) для понимания технологии тебе совершенно необязательно, поэтому мы ими голову забивать и не будем, а вот принцип различать крайне желательно, ибо это важно именно с точки зрения удобства и безопасности использования...
По принципу действия криптографические методы делятся на три группы: тайнопись, симметричные алгоритмы и асимметричные алгоритмы. Я понимаю, что это всё звучит зубодробительно, но после небольшого пояснения тебе всё станет более чем понятно.
Тайнопись – это самый древний криптографический метод, восходящий (впрочем, правильнее в данном случае сказать – нисходящий) ещё к древним египтянам. Заключается он в замене используемых букв какими-нибудь другими символами. Самый простейший вариант – замена букв другими буквами. Например, алгоритм гласит, что букву «а» меняем на «с», букву «б» меняем на «щ», букву «г» меняем на «х» – и так далее до «я». После этого берём текст и меняем все буквы по данному алгоритму. Получится совершеннейшая белиберда. Но если произвести обратное преобразование – снова появится осмысленный текст.
Более сложный вариант тайнописи – замена букв специальными символами. Помните канонических «Пляшущих человечков» Артура Конан Дойля? Вот это классический вариант тайнописи. И если бы не гений Шерлока Холмса, который резко предположил, что последняя строчка на стене – это подпись, причём подписанта зовут Аб Слени, то никто и никогда этих человечков бы не расшифровал. В том смысле, что никому это и на фиг не было бы нужно.
Аналогичный случай был и у меня. В руки одному моему клиенту попал листочек, испещрённый странными и загадочными символами. Я сделал первое предположение о том, что последняя строчка – это подпись, и второе предположение о том, что имя подписавшегося – Квандрупий Прикопаевич Кшиштопоповжицкий, после чего с лёгкостью расшифровал всё послание. Это оказался счёт за сексуальные услуги.
К чему это лирическое отступление? К тому, что сейчас использовать тайнопись – это всё равно что приходить в казино с десятью баксами в кармане: над тобой смеяться будут. Расшифровать подобный алгоритм можно, даже не прибегая к помощи зала, а уж при использовании компьютера любой тайнописный алгоритм будет расщёлкан за несколько секунд.
Второй вид – так называемые симметричные криптоалгоритмы. В отличие от тайнописи, где алгоритм нужно скрывать почище номера кредитки, сами алгоритмы являются вполне открытыми – бери да пользуйся. Но для шифрования и расшифровывания нужен тот самый ключ (специальный файл), о котором мы уже говорили. Минусом данного метода является то, что секретный ключ нужно передавать получателю зашифрованных данных, а это снижает безопасность. Лучше всего передавать такой ключ лично – так сказать, мано а мано, – например, на дискете, компакт-диске или flash-drive. Как ваш визави сохранит этот ключ в недоступности – уже его дело, но ты можешь дать ему почитать эту книжку, и перед ним также откроется истина. Если ключ невозможно передать лично или с помощью Наших знакомых, тогда его придётся пересылать, например, через Интернет, воспользовавшись каким-нибудь действительно секьюрным способом – той же стеганографией. Причём сам файл с ключом обязательно зашифруй с паролем, а пароль сообщи получателю голосом по телефону (дабы он не передавался тем же способом, что и ключ).
Третий вид – асимметричные криптоалгоритмы, которые нередко называют по-другому – шифрование с открытым ключом. Это наиболее популярные, надёжные и часто используемые алгоритмы. Здесь также используются ключи, но не один, а два. Первый ключ – публичный или открытый. Его можно передавать всем желающим. Второй ключ – закрытый или секретный. Он хранится у владельца, причём вся прелесть данного метода заключается в том, что секретный ключ никому и никуда передавать не нужно (точнее, не просто не нужно, но и нельзя категорически). Ты понял, в чем цимус? Открытые ключи можно передавать хоть через уличные плакаты, и это никоим образом не повлияет на защиту. Схема действия тут следующая...
Ты со своим партнёром обменялся открытыми ключами. У каждого из вас есть свой секретный ключ. С помощью открытого ключа партнёра ты шифруешь сообщение для него. Расшифровать его сможет только он – с помощью своего секретного ключа. Вот и всё. По-моему, это просто прелестный метод в отличие от всех остальных. О нём мы подробно поговорим в следующей главе, потому что самая знаменитая программа, реализующая алгоритм с открытыми ключами, так и называется – Pretty Good Privacy, то есть PGP.
Бунтовщик Циммерман
История создания программы PGP неотделима от светлой (говорю это без тени иронии) личности её создателя – Фила Циммермана, американского математика и программиста, человека, борющегося с Системой...
Ещё в колледже молодой Фил Циммерман разработал алгоритм, который самонадеянный юноша посчитал «невскрываемым». Перед его глазами забрезжила Нобелевка, и он уже стал репетировать свою речь, которую произнесёт при вручении премии, как вдруг на глаза Филу попалась работа какого-то другого студента, в которой приводился практически точно такой же алгоритм, который придумал Циммерман, а кроме того – о, ужас! – давались данные о том, как этот алгоритм вскрывать. И вот тут Фил пришёл к довольно интересной мысли, которая звучала так: «Невскрываемых алгоритмов не бывает». Вторая мысль по тому же направлению давала повод для пессимизма. Звучала она следующим образом: «Вот ведь, мать вашу, сколько приходится попотеть, чтобы выдумать алгоритм, который хоть не сразу вскроют!» Ну и третью мысль, в одночасье посетившую Фила, можно выбить золотыми буквами на мраморе: «Куча людей, используя какие-то алгоритмы защиты, действительно считают, что их информацию невозможно вскрыть. Между тем очень часто под видом так называемых «алгоритмов защиты» им продают полное дерьмо».
Осенённый этими мыслями, Циммерман занялся разработкой такой системы шифрования, которая была бы не просто стойкой, а очень стойкой. Кроме того, он значительно усовершенствовал изобретённый в 1971 году Мартином Хеллманом, Уайтфилдом Диффи и Ральфом Мерклом метод шифрования открытым ключом, добавив туда механизм взаимной сертификации, после чего появилась Царица Полей – программа PGP, то есть Pretty Good Privacy – Классная Прелестная Уединённость моей, твоей и вообще любой информации.
У Циммермана получилась действительно классная программа. Более того, Фил совершенно сознательно полностью открыл исходные коды PGP, чтобы, во-первых, ими могли воспользоваться все желающие, а во-вторых, чтобы их могли проанализировать специалисты по безопасности на предмет уязвимости.
И знаете, что сказали специалисты? «Эту штуку хрен вскроешь», – заявил один из них. «Вот, блин, какая программуля шикарная», – заметил второй. «Не знаю, что думаете вы, коллеги, но я считаю, что этот Циммерман – действительно крутой сукин сын», – признался третий.
Что это означает? То, что PGP не вскрывается. В том смысле, что невозможно (по крайней мере, сейчас) сделать программу, которая мигом вскроет защищённый с помощью PGP файл. (В отличие, кстати говоря, от некоторых других систем защиты, к которым хакеры-шмакеры уже подобрали ключики...)
«И что? – спросишь ты. – Получается, что PGP вообще невозможно расковырять?» Разумеется, нет. Возможно. Старина Норберт Винер (который, между прочим, в 18 лет уже носил звание доктора по специальности «математическая логика») сформулировал этот принцип следующим образом: «Любой шифр может быть вскрыт, если только в этом есть настоятельная необходимость и информация, которую предполагается получить, стоит затраченных средств, усилий и времени».
Это означает, что вскрывается любой шифр – с помощью компьютера, который последовательно подбирает ключ к алгоритму шифрования. А вот какое время и какие ресурсы на это придётся затратить – и является краеугольным камнем в вопросе выбора алгоритма шифрования. По сути, все системы шифрования – и PGP в том числе – просто или делают взлом зашифрованной информации заведомо дороже данных, содержащихся в сообщении, или затягивают расшифровывание на слишком большой срок по времени.
Что характерно, когда Циммерман выпустил программу PGP в свет и в 1991 году с помощью Сети распространил её всем желающим, американское правительство и спецслужбы встрепенулись. И не просто встрепенулись, а стали кричать, орать и яростно брызгать слюной. Потому что Циммерман покусился на святое – на право властей влезать в частную жизнь граждан. Теперь, если гражданин шифровал своё сообщение с помощью PGP и пересылал его другому гражданину, то спецслужбы, перехватившие данное письмо для каких-то своих целей, с ним уже толком ничего не могли сделать – письмо ведь было круто зашифровано. Понятно, что всяких пляшущих человечков, книжные шифры (когда зашифровывание текста сообщения делается с помощью текста любой книги) и тому подобные тайнописи криптоаналитики вскрывали фактически мгновенно. А вот PGP им был не по зубам. Конечно, и зашифрованное с помощью PGP письмо можно вскрыть, но если на это придётся потратить, например, год машинного времени самого мощного пентагоновского компьютера – тогда овчинка явно не стоит выделки. Тухловатая такая овчинка получается, короче говоря...
Так что неудивительно, что ребята сверху слегка рассердились. А этот негодяй Циммерман тыкал в глаза правительству Билль о правах, нахально утверждая, что тайна частной жизни в этом Билле буквально прёт из каждой строчки.
В качестве ответной любезности правительство стало шить Филу другую овчинку – уголовное дело о разглашении государственной тайны (дескать, алгоритм PGP, разработанный Филом, нужен правительству, а значит, является строго секретным), ну и заодно ему ещё вменили и нарушение таможенного законодательства, потому что программа PGP распространялась через BBS (так называемые электронные доски объявлений – предвестники веб-страничек) за пределы страны.
Так бы и сгинул бедняга Фил в застенках ЦРУ, однако простые граждане и крупные корпорации, благодарные Циммерману за предоставление механизма, хоть как-то сохраняющего право на частную жизнь, подняли большой шум по поводу того, что дело Циммермана носит явный политический характер, и в 1996 году его всё-таки оставили в покое, заставив, впрочем, по крайней мере ограничить размер ключа шифрования в продаваемых программах, что даёт спецслужбам хотя бы надежду на то, что зашифрованное письмо при необходимости можно будет вскрыть, не привлекая для этого всю вычислительную мощь страны.
Но после печально известных событий 11 сентября Циммермана вновь стали обвинять в том, что он является пособником террористов – мол, при подготовке секретной операции программа PGP использовалась ими очень активно. Однако Циммерман отверг все обвинения и ещё раз заверил общественность в том, что никакое давление правительства и спецслужб не заставит его встроить в PGP «червоточинки» или «чёрные ходы», позволяющие мгновенно вскрывать зашифрованные сообщения. В этом ему можно верить – хотя бы в силу того, что исходные коды новых программ PGP открыто публикуются, а это делает невозможным встраивание подобных штучек...
Размер имеет значение
Если все персональные компьютеры мира (260 миллионов штук) заставить работать с единственным сообщением, зашифрованным PGP, расшифровка такого сообщения в среднем потребует времени, в 12 миллионов раз превышающего возраст Вселенной.
Уильям Кроуэлл, заместитель
директора Агентства национальной
безопасности,
20 марта 1997 г.
Один из наиболее важных параметров при использовании современных средств криптографии (под этим я, разумеется, буду подразумевать именно PGP) – это размер ключа. Как в случае с кинофильмом «Годзилла» (и как не в случае с утешительной для многих мужчин фразой, относящейся к размеру его мистера Грандиозо) – размер имеет значение. Причём зависимость совершенно прямая: значение растёт вместе с размером. Потому что, как мы уже сказали, алгоритм PGP не вскрывается кроме как перебором (подбором) ключей. Этот перебор называется «взять грубой силой», хотя вся грубость заключается в тупом вводе и переборе паролей. А это означает, что чем больше ключ, тем сложнее его подобрать.
Размер ключа задается в битах. (Бит – наименьшая единица информации на компьютере. Восемь бит составляют один байт, то есть, грубо говоря, один символ или цифру.) Чем больше ключ, тем дольше его вскрывать, но, соответственно, больше времени уйдёт на кодирование текста. Минимальный размер ключа – 768 бит. Можно, конечно, использовать и меньшие размеры, но такие ключи легко вскрываются за вполне обозримый срок даже при использовании обычного компьютера.
Более или менее стандартные современные размеры ключей – 1024 и 2048 бит (то есть один-два килобита). PGP допускает использование четырехкилобитного ключа, и такой размерчик быстро не оприходовать просто по определению.
Впрочем, нужно чётко понимать, что даже четырехкилобитный ключ может быть вскрыт – при использовании соответствующих мощностей и при наличии достаточного времени. Но это должны быть очень серьёзные мощности, да и времени на это уйдёт – я вас умоляю...
Электронная подпись
Как я уже говорил, PGP-шифрование предоставляет ещё одну очень интересную возможность под названием электронная подпись. Она выполняет сразу две функции:
1. Совершенно однозначно идентифицирует отправителя письма. Точнее, сигнализирует, если кто-то пытается выдать себя за вас.
2. Гарантирует, что в первоначальный текст письма не внесено никаких изменений.
«Но как она это делает?!!» – можешь спросить ты. Это же прям шайтан какой-то получается, да? Шайтан, однозначно! Но имеющий под собой вполне чёткое математическое обоснование. Впрочем, я не буду грузить тебя терминами вроде «хеш-функции» и тому подобных. Просто скажу, что всё дело в волшебных пузырьках – то есть в публичном ключе.
Физически это выглядит следующим образом. Под каждым зашифрованным письмом PGP ставит так называемый «отпечаток пальца». Это некий код, то есть набор символов. При получении письма абонент сравнивает этот отпечаток с текстом – таким образом выясняется, были ли внесены в текст какие-то изменения, – а затем отпечаток сверяется с твоим публичным ключом. Если всё совпадает, значит, письмо точно написано тобой, причём в него не было внесено никаких изменений.
Подделать этот «отпечаток пальца» практически невозможно. Только если украсть у тебя секретный ключ.
Психологический практикум
«Карл, заканчивай мне голову морочить – ключи, размеры, подписи-шмотписи, циммерманы-шмимерманы! – можешь заявить ты. – Лучше расскажи, как всей этой хренотой пользоваться».
О’кей, босс, не волнуйся, всё будет. Но мне нужно было, чтобы ты всё-таки уяснил основные понятия PGP-шифрования, потому что без этого мы не смогли бы перейти к водным процедурам. Но сейчас перейдём. Итак, рассказываю о том, как это всё используется в нашей реальной суровой жизни...
Прежде всего нужна сама программа PGP или встроенный модуль PGP в почтовом клиенте. Программу можно взять где угодно: она распространяется бесплатно, поэтому доступна как на сотнях тысяч сайтов в Интернете, так и на дисках, продающихся в любой подворотне. Хотя я рекомендую купить лицензионную версию – нужно же как-то отблагодарить Фила за его самоотверженность.
Далее твои действия (именно твои, потому что установку личного PGP крайне нежелательно доверять даже админу)...
1. Установи PGP на свой компьютер.
2. Создай пару ключей – открытый и закрытый. При этом PGP тебе будет задавать всякие пикантные вопросы по поводу размера, а также потребует произвести всякие странные вещи, которые кроме как танцами с бубном не назовёшь. Но я объясню, что это означает. С размером мы уже определились – выбирай от килобитного до двухкилобитного варианта в зависимости от желаемой стойкости шифра. В принципе килобитного ключа будет достаточно почти для всех областей применения. Но если ты считаешь свою информацию супермегасекретной (надеюсь, что ты не международный террорист, потому что, если моим надеждам не суждено сбыться, я требую, чтобы ты немедленно закрыл этот учебник и тут же его сжёг), тогда выбирай максимальный размер ключа – в четыре килобита. Но имей в виду, что это очень сильно замедлит скорость шифрования (да и расшифровки тоже). Далее система сообщит, что ей нужно получить всякие случайные символы – чтобы создать специальный временный ключ (я чуть ниже расскажу о том, зачем он нужен). Для этого тебе нужно будет или повозить мышкой туда-сюда, или пошлёпать по совершенно произвольным клавишам.
3. Распространи свой открытый ключ среди всех своих корреспондентов. Напоминаю, что открытый ключ на то и открытый, что его можно раздавать всем желающим.
4. Заставь корреспондентов сверить подлинность открытого ключа. Ну, то есть убедиться, что это именно ты прислал данный ключ. (Для удобства подлинность каждого ключа можно сверить по «отпечатку пальца» – уникальному идентификационному коду.) Таким же образом сверь открытые ключи, полученные тобой от корреспондентов.
И всё, теперь программой можно пользоваться. Если у тебя почтовый клиент поддерживает встроенную PGP (например, The Bat! умеет это делать, да и для Outlook 2003, насколько я помню, существуют соответствующие плагины), то процедура шифрования/расшифровывания производится практически автоматически. Ты просто пишешь письмо (или прикладываешь текстовый файл к письму), нажимаешь кнопку «Зашифровать», далее письмо зашифровывается и его можно отправлять.
Если интересно, могу чуть подробнее рассказать, что именно делает, например, The Bat!, когда ей поступает команда зашифровать письмо...
1. Сначала сообщение сжимается (архивируется). Это делается в двух целях. Во-первых, сжатое сообщение занимает меньше места, а следовательно, быстрее передаётся. Во-вторых, сообщение, которое перед зашифровкой сжимается, намного труднее дешифровать посторонним лицам.
2. Далее PGP создаёт уникальный временный ключ, представляющий собой некое число, полученное в результате совершенно случайных величин – координат движения вашей мышки, скорости нажатия на клавиатуру и так далее, – чтобы его невозможно было вычислить и подобрать.
3. Затем с помощью этого временного ключа (его также называют «сессионным») производится зашифровывание самого сообщения.
4. После этого сессионный ключ также шифруется с помощью открытого ключа, который вы получили от вашего абонента.
5. В конце концов зашифрованное сообщение вместе с зашифрованным ключом отправляется абоненту.
Расшифровка письма производится в обратной последовательности. Сначала PGP получателя с помощью его закрытого ключа дешифрует сессионный ключ, после чего с помощью этого ключа расшифровывается уже всё сообщение. Таким образом, даже если некто перехватит твоё сообщение вместе с ключом, то он не сможет его расшифровать обычными средствами.
Со стороны это всё выглядит достаточно сложным, но не пугайся – даже при использовании отдельной программы PGP эти процессы автоматизируются. А уж когда PGP встроена в почтовый клиент, всё происходит полностью автоматически. От тебя требуется только нажать кнопку «Зашифровать» или «Расшифровать».
Как сохранить секретный ключ? Да так же, как и любой другой секретный файл: держать его в папке, недоступной остальным пользователям, либо же вообще носить, например, на flash-drive. Также напоминаю, что секретный ключ ещё и защищён паролем, то есть, даже если его вдруг кто-то свистнет, воспользоваться ключом у злоумышленника всё равно не получится (если пароль отвечает требованиям, сформулированным в одной из глав этой книги).
Ну и ещё тебе нужно знать о том, что у секретного ключа можно задать срок действия – так же как, например, задаётся срок действия пароля пользователя в локальной сети. По истечении срока действия PGP потребует от тебя создать новый секретный ключ.