PGP – ЛУЧШИЙ КРИПТОГРАФИЧЕСКИЙ ПАКЕТ
1. Общие вопросы криптографии.
Почти любая лекция о криптографии для широкой публики начинается с весьма правдоподобной истории. Мол, ещё Гай Юлий Цезарь, не доверявший своим посыльным, шифровал письма элементарной заменой A на D, B на E и так далее по всему латинскому алфавиту. При таком кодировании комбинация XYZ была бы записана как ABC, а слово “ключ” превратилось бы в неудобоваримое “нобъ” (прямой код N+3). Есть основания полагать также, что за сотни лет до Великого Диктатора тайнописью пользовались египетские фараоны и евреи в период вавилонского пленения. Да так ли уж важно, когда всё это началось. Люди издревле не доверяли друг другу.
Криптография. Это слово из мира шпионских страстей щекочет нервы. Рядовой компьютерный пользователь зачастую полагает, что данная область знания является для него недоступной. Абсолютному большинству кажется бессмысленной сама идея “компьютерной тайнописи”. Безусловно, эта штука может пригодиться разведслужбам, органам защиты правопорядка и военным, а также власть предержащим с их извечными “тайнами мадридского двора”. Кому ещё? Ну, само собой, хакерам. Хотя этих скорее должна волновать не проблема защиты сообщений от посторонних глаз, а разработка сценариев взлома такой защиты. Да, не забыть бы упомянуть крупных бизнесменов, которым вечно мерещится, что кто-то вынюхивает их коммерческие тайны. Вот и весь перечень заинтересованных лиц? Нет, круг значительно шире. Практически любое обсуждение или просто личную переписку участники могут пожелать утаить от посторонних глаз. Кроме того, компьютерная криптография позволяет “закрыть на ключ” не только текстовое сообщение, но и произвольно взятый файл или группу файлов любого типа.
Криптография начинается с нескольких трудно переводимых терминов (см. табл.1).
Таблица 1. Основные термины в криптографии.
Термин | Перевод | Описание |
plaintext (cleartext) | явный (чистый) текст | открытые данные, читаемые без применения специальных средств |
Продолжение таблицы 1.
encryption | Шифрование | метод маскировки открытых данных |
ciphertext | шифрованный текст | нечитабельная тарабарщина, следствие маскировки |
decryption | расшифровка | перевод вышеуказанной тарабарщины на человеческий язык |
Запутались? Взгляните на картинку. Так проще запомнить.
Известен принцип: чем глубже спрячешь, тем дольше выкапывать. В недалёком прошлом, всякий раз, определяя необходимую степень защиты данных, надо было помнить о стороне, для которой предназначена информация. С развитием программных средств эта проблема постепенно теряет актуальность. Сложность криптографического алгоритма практически не влияет на время “санкционированного вскрытия” данных, если обе стороны используют программные пакеты типа PGP. Что же до подлинной безопасности при передаче данных, то она зависит не только от “крутизны” применяемого алгоритма, но и от элементарной способности конкретной программы надёжно спрятать ключ.
Полная криптографическая система (cryptosystem) состоит из трёх частей: собственно алгоритма, всевозможных ключей, а также протоколов передачи данных. Так называемая “конвенциональная” криптография подразумевает использование одного и того же ключа и для кодирования, и для декодирования данных. Описанный выше архаичный “метод Цезаря” - простейший образчик “конвенциональной” криптографии. У этого метода и ему подобных есть один существенный недостаток: для вскрытия всех сообщений, достаточно единожды перехватить ключ. Как это ни парадоксально, но спасением от этой напасти может служить выставление ключа для шифрования на всеобщее обозрение (public key – общественный или открытый ключ). Таким образом, им может воспользоваться любой человек, желающий отправить вам закодированное сообщение. А вот открываете сообщение вы уже совершенно другим ключом (private или secret key – личный или закрытый ключ), которым ни с кем не делитесь. Генерируются такие ключи одновременно. В дальнейшем, закрытый ключ используется вами для подписи посланий и файлов, адресованных другим, а также для расшифровки входящей корреспонденции. Открытыми ключами шифруется исходящая почта и проверяется подлинность цифровых подписей корреспондентов. На самом деле, открытый ключ шифрует не само сообщение, он шифрует лишь некий временный ключ (session key), который получатель затем расшифровывает своим открытым ключом. Свой личный закрытый ключ вы используете также и для создания цифровой подписи, подлинность которой получатель может проверить, имея на руках копию вашего общественного открытого ключа. Этот метод был детально разработан британской разведкой в начале 70-х годов.
Программа PGP использует гибридную криптографическую систему. Кодирование и декодирование происходят в несколько этапов (см. табл.2).
Таблица 2. Основные этапы кодирования и декодирования в PGP.
Кодирование | 1. сжатие открытых данных (plaintext), предназначенных к пересылке (что повышает скорость передачи и снижает вероятность использования взломанных фрагментов текста для декодирования всего пакета), зашифрованные данные невозможно подвергнуть дополнительному сжатию, 2. создание ключа сессии (session key) - секретного одноразового ключа (secret key) (ключ генерируется программой как производная случайных перемещений мыши и данных, набранных на клавиатуре), 3. шифрование данных с помощью секретного ключа сессии (session key), 4. шифрование самого ключа сессии (session key) посредством общественного ключа (public key), 5. передача зашифрованного текста (ciphertext) и зашифрованного ключа сессии (session key) получателю. |
Декодирование | 1. получатель использует свой собственный частный ключ (private key) для декодирования использованного отправителем ключа сессии (session key), 2. зашифрованный текст (ciphertext) вскрывается ключом сессии (session key), 3. распаковка данных, сжатых при отправлении (plaintext). |
Снова запутались? Ничего страшного. Во-первых, потому что, если уже только одно описание основных этапов шифрования данных заставляет подолгу вглядываться в текст, то подсознательно пользователь описываемого криптографического пакета начинает доверять разработчику. А во-вторых, совершенно необязательно запоминать все этапы кодирования-декодирования. Поехали дальше.
Применяемые в криптографии ключи можно попытаться классифицировать. Однако не будем тратить на это время. Запомните только, что криптографический ключ это большое или очень большое число, измеряемое в битах (bit) или, иначе, разрядах. Чем больше ключ, тем в большей безопасности находятся зашифрованные данные (ciphertext). Хотя, конечно, очень многое зависит и от применяемого алгоритма. Помните также о том, что гипотетическая мощь секретного личного ключа (secret key) и ключа общественного (public key) различна. Скажем, личный 80-битный ключ эквивалентен по силе 1024-битному общественному ключу, а секретный ключ 128 бит соответствует общественному размером в 3000 бит. При выборе размера ключа рекомендуется прежде всего оценивать время, в течение которого информация должна быть надёжно защищена. Если вы, скажем, запираете дверь на ночь, не стоит навешивать сто замков, есть шанс провозиться до утра. Будьте благоразумны и прислушивайтесь к советам специалистов. Конечно, с развитием компьютерной техники и передовой хакерской мысли сколь угодно хитрые криптографические алгоритмы “ветшают”. Но на сегодняшний день ещё никому не удалось “победить” секретный личный ключ размером свыше 56 бит. Завтра это уже может показаться смешным, ничто не стоит на месте (а пока народ собирается в команды для взлома 64-битного ключа RC5). Программа PGP хранит общественные и личные ключи в зашифрованном виде в двух разных файлах на жёстком диске вашего компьютера, рекомендуется сохранить их также и на дискете. Файлы эти именуют “брелками” (keyrings). Не теряйте их. Особенно бережно относитесь к “брелку” с личными ключами.
При создании личного ключа принято не доверять паролю из одного слова, обычно прибегают к помощи так называемой “ключевой фразы” (passphrase). Ключевая фраза обладает сразу двумя преимуществами перед обычным паролем. Её и легче запомнить, и сложнее угадать (разумеется, под словом “угадать” скрыт сложнейший алгоритм нелегального взлома). Как так? Очень просто. Скажите, какой пароль вы бы предпочли держать в уме:
· вариант 1 - “AU63Db35”,
· вариант 2 - “храните деньги в сберегательной кассе”
(пусть даже и записанный на транслите)? Практика показывает - 90% предпочитают второй вариант просто потому, что забыть подобный пароль невозможно при всём желании. А теперь представьте себе, сколько жизней уйдёт у какого-нибудь прославленного заграничного хакера на вскрытие данного пароля второго типа. Хотя и к выбору ключевой фразы в последнее время приходится подходить крайне аккуратно, - библиотека наиболее популярных цитат на всех языках уже создана и постоянно пополняется. Поэтому желательно, для пущей безопасности, в качестве пароля выбирать что-то более оригинальное, нежели фразочки типа “у вас продаётся славянский шкаф?” или образчик, указанный выше. Впрочем, можно обойтись и обычным паролем. Старайтесь только не использовать слова, которые легко найти в словаре, имена, а также памятные даты.
Немаловажную роль в криптографии играют и цифровые подписи (digital signatures), о которых уже упоминалось выше. Некоторые даже считают, что основное внимание при разработке криптографических алгоритмов нужно уделять именно невозможности подделать личную цифровую подпись, а не сверхсложным закрытым личным ключам. Апологеты такой концепции в чём-то правы. Ведь, так ли уж важно, что кому-то стало известно, например, о моём очередном банковском вкладе, значительно важнее, чтобы вклад был принят настоящим работником банка, а не кем-то, сумевшим подделать его цифровую подпись.
Основная задача цифровой подписи - подтверждение подлинности происхождения информации. Кроме того, сохранность цифровой подписи означает, что информация дошла до получателя в неповреждённом виде. Тут у читателя может и должен возникнуть справедливый вопрос: “А что, так ли уж сложно подделать цифровую подпись, имея на руках её образчик?” Да уж, непросто. Ведь, само собой, цифровая подпись не передаётся в виде открытых данных. Для её кодирования используются так называемые “хэш-функции” (hash functions; hash (англ.) - мешанина, фарш). У англоязычных пользователей слово “хэш” или “хаш” вызывает особое доверие, поскольку “хаш”, записанное как hush, соответствует русскому “тсс!”, а двойное “хаш-хаш” (hush-hush) обозначает информацию, закрытую для посторонних ушей и глаз.
“Хэш-функция” видоизменяет открытые данные любого объёма до компактного “дайджеста” фиксированной длины. Цифровая подпись является производной “дайджеста” и личного ключа, чем гарантируется её абсолютная уникальность. Не последнюю роль в подтверждении подлинности личности отправителя играет и традиционное цифровое удостоверение личности (digital certificate), включающее в себя имя, прозвище, адрес электронной почты и некоторые другие персональные данные. Ради пущей безопасности удостоверение отправителя должно быть подписано получателем (такая вот бюрократия).
Практикуется также и подтверждение подлинности чужих открытых ключей. Скажем, вы случайно столкнулись с N на выставке достижений народного хозяйства, и N передал вам лично свой ключ. Он может попросить вас опубликовать на сервере свой открытый ключ за вашей подписью, для того, чтобы знающие вас люди отнеслись с большим доверием и к данному ключу. Доверие к ключу и доверие к его владельцу отнюдь не одно и то же. Когда вы подписываете чужой открытый ключ, вы всего лишь ручаетесь за подлинность отпечатка, и вас не должны мучить сомнения, является ли владелец добропорядочным гражданином. Вы не отвечаете за правдоподобность или, если угодно, презентабельность чужой информации, вы лишь гарантируете её аутентичность, то есть принадлежность перу данного автора.
Да, непросто жить в виртуальном мире тотального недоверия. Поэтому, если вам приходится трудиться в неком коллективе в обстановке повышенной секретности, рекомендуется выделить толкового сотрудника для обеспечения информационной безопасности или даже создать целую службу для этой цели. Пусть у специально обученных людей болят головы на эту тему. Да, вам придётся исполнять издаваемые ими инструкции, придерживаться вводимых ими правил, мириться со своим скромным местом в иерархии доверия, но зато вы будете чувствовать себя абсолютно защищёнными от внешних напастей. Под крылом настоящего профессионала всякий почувствует себя орлом. Мне знаком один руководитель средней руки, который страшно гордится тем, “какую пакость придумали его ребята”. Они “раскололи” на три части общественный ключ компании и раздали его части работникам компании в зависимости от их иерархического положения в компании. Первую часть получили только директор, его зам и главный бухгалтер, второй осколок был вручён начальникам отделов, третья часть досталась всем сотрудникам, допущенным к закрытой информации. В большинстве случаев для выпуска исходящей корреспонденции достаточно одной трети ключа, но если перехват может нанести сколько-нибудь существенный ущерб компании, требуется сложить какие-либо две части вместе. Информация, которой был присвоен гриф “секретно”, могла выйти только, если были сложены вместе “обломки” первого и второго уровня. Метод, безусловно, стандартный. Но поскольку внедрён он был специальной службой, доверия к нему прибавилось.
Итак, главный предварительный (утешительный) вывод: желаете сохранить что-либо в тайне, установите на все компьютеры в офисе и по домам у сотрудников криптографическую программу PGP. Разработку точного сценария пользования лучше всего доверить профессионалам, хотя не мешало бы и самому в общих чертах разобраться с программой. И, ради всего святого, не пишите ключевые фразы на цветных бумажках, во множестве разбросанных по вашему рабочему столу. Не то - всё пропало.
Установка PGP.
Программа Pretty Good Privacy (PGP), как следует из названия, должна обеспечивать “довольно хорошую секретность”, впрочем, многое зависит как от правильной первоначальной установки, так и от разумного использования программы в дальнейшем.
Инсталляция программа PGP 6.0 мало чем отличается от аналогичных процедур по установке нового программного обеспечения. Этапы таковы:
· рекомендуется перед установкой закрыть все открытые приложения,
· запустить инсталляционный файл (PGP60.exe),
· согласиться со стандартным лицензионным соглашением, опубликованным компанией-продавцом - Network Associates International,
· ввести имя пользователя (Name) и название вашей компании (Company),
· согласиться с предлагаемым местом прописки программы на вашем компьютере или предложить своё собственное место жительства (второй вариант только для тех, кто точно знает, зачем им это нужно),
· выбрать необходимые для установки на вашем компьютере компоненты (отказ от лишних компонент позволит несколько сэкономить место на вашем жёстком диске) и подтвердить свой выбор,
· теперь можно запустить процесс инсталляции программы на вашем компьютере; машина несколько минут будет переваривать свежую пищу, после чего с сомнением спросит “А нет ли у тебя каких-нибудь старых брелков, дружок?”;
· человек, знакомый с основами криптографии, знает как отвечать на подобные вопросы; если вы никогда ранее не использовали PGP, очевидно, что никаких старых брелков у вас нет,
· не тратьте время на чтение readme файла, если у вас его (времени) нет, а просто жмите на кнопку Finish, за чем последует перезагрузка вашего компьютера,
· ваш Windows поднимается со свежим довеском в зубах; теперь у вас есть средство для защиты по прозванию PGP, важно им верно распорядиться.
Дата добавления: 2016-06-22; просмотров: 1629;