На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

ИСПОЛЬЗОВАНИЕ  НЕСКОЛЬКИХ МЕТОДОВ ШИФРОВАНИЯ

PGP зачастую называют гибридной системой шифрования потому, что в ней используется четыре элемента кодирования. В этой программе реализован сим­метричный шифр (система с единым ключом), называемый интернациональ­ным алгоритмом кодирования данных (IDEA International Data Encryption Algorithm); асимметричный шифр (открытый и личный ключи, RSA или алго­ритм Диффи-Хеллмана - в зависимости от используемой версии продукта); однонаправленное смешивание (в котором набор чисел преобразуется в одно уникальное число); стандартный генератор случайных чисел.
IDEA — это алгоритм, разработанный Аскомом Цуриком (Ascom Zurich) из Швейцарии. В этом алгоритме используется 128-битный ключ. Специалисты
оценивают его как наиболее надежный современный метод шифрования дан­ных. Этот алгоритм достаточно нов (ему всего лишь несколько лет). До сих пор никто не пытался всерьез взломать его. Современные данные свидетельствуют о том, что единственным методом взлома этого алгоритма применение «грубой» вычислительной силы. Для расшифровки одного ключа потребуется один год работы 100 машин класса Согласитесь, достаточно внушительная цифра. Однако, как уже отмечалось, все алгоритмы шифрования не застрахованы от возможности более простого взлома в будущем. Более подробную
информацию об алгоритме IDEA можно найти на Web-узле http://www.ascom.ch/ web/'systec/'security/idea .htm.
СНОВА о КОНСТРУКЦИИ с ОТКРЫТЫМ ключом
В программных продуктах для шифрования с открытым ключом для работы с ключами используется идентификатор ключа (key ID). Идентификатор ключа -
это крайние (расположенные в конце числа) 64 разряда открытого ключа. На самом деле если документ или ссылка отображает открытый идентификатор (на сервере ключей, как добавку к зашифрованному файлу или как часть цифровой подписи), то этот идентификатор будет представлен только последними 32 бита­ми. Многие ключи обладают одинаковыми пользовательскими идентификатора­ми (у пользователя может быть столько ключей, сколько он захочет), однако не существует двух ключей с одинаковыми идентификаторами.
При работе с PGP и другими инструментами шифрования с открытым ключом отправитель должен поместить в начале документа сертификат подписи, содержащий идентификатор ключа, использованного для шифрования. Затем следует профиль документа, а также дата и время создания подписи. Таким образом, получатель может отыскать при помощи идентификатора расположенный в Internet открытый ключ отправителя и проверить цифровую подпись.
Программы шифрования размещают в начале закодированного файла идентифи­катор ключа, использованного для шифрования последующей информации. При помощи этого идентификатора получатель может найти секретный ключ, необ­ходимый для расшифровки информации. Программное обеспечение автомати­чески проведет поиск необходимого ключа. Для этого оно попытается обратить­ся к кольцу Секретных ключей получателя.
Кольца открытых и секретных ключей — это основные способы хранения клю­чей и управления ими. Вместо того чтобы держать индивидуальные ключи в различных файлах, они все вместе собраны на кольцах ключей. Именно благо­даря этому возможен автоматический поиск ключей при помощи идентификато­ра ключа или идентификатора пользователя. Каждый пользователь содержит пару колец ключей. Индивидуальный открытый ключ временно хранится в отдель­ном файле, достаточно длинном, для того чтобы можно было послать его другу, который добавит его к своему кольцу ключей.
ШИРОКОЕ ИСПОЛЬЗОВАНИЕ PGP
Всем известно, что PGP — это очень популярный во всем мире программный продукт. Больше половины счастливчиков из Fortune 100 использует PGP для шифрования своих сообщений: К их числу относятся и такие известные компа­нии, как IBM, Morgan Bank, American Express и Sears. Может быть вам что-нибудь скажет тот факт, что практически все компании по созданию програм­много обеспечения (включая и Microsoft) используют PGP. Таким образом, эта программа получила достойную оценку всех тех, кому нужна защита конфиден­циальной информации.
КАК НАЙТИ        в КОЛЬЦЕ
в
Как уже говорилось выше, процесс поиска ключа в кольцах является достаточно простым. Большая часть колец предостав­ляет двг способа поиска ключа: при помощи (1) имени вла­дельца или (2) идентификатора ключа. В результате каждого из этих способов поиска пользователю предоставляется спи­сок всех ключей, расположенных на сервере. Найдя нужный ключ, пользо­ватель может при помощи PGP добавить его к своему личному кольцу клю­чей. Для этого ему нужно открыть меню Keys и выбрать пункт Keyserver, а затем — Add New Key. После этого он может использовать новый ключ для шифрования сообщений, отправляемых владельцу ключа, а также для верки цифровых подписей документов. продается по цене 70$, Фил | ■ Циммерман воспользовался правом предоставить рядовым пользователям возможность защитить информацию помо­щи нескольких бесплатных программ, обеспечивающих шиф­рование на уровне коммерческих продуктов. В число таких программ входят:
• PGP5.0 -только для конечных пользователей Windows 95, Windows NT и Macintosh.
• PGP 2.6.2 ~ глобальный стандарт для электронной почты и секретности файлов. Доступны версии для Macintosh, DOS и Unix.
• PGPfone 1.0- программное обеспечение для шифрования телефонных разговоров, которое, по словам Циммермана, позволяет пользователю 1 «шептать на ухо товарищу при помощи Internet». Доступны версии Macintosh, Windows 95 и Windows NT.
Читатель может загрузить все эти программы из Web-узла http://web.mit.edu/ . network/pgp.html.
КОМАНДА  CRYPT и ПРИБОРЫ ENIGMA
Вместо PGP пользователи систем Unix могут шифровать данные при помощи команды crypt. Эта команда реализует алгоритм шифрования, который широко использовался во время второй мировой войны в приборах Enigma. Этот алго­ритм был взломан великим английским математиком Аланом Тьюрингом.
Зашифрованные при помощи этой команды документы обладают очень низким уровнем безопасности. Дело в том, что используемый в команде crypt алгоритм
был разработан задолго до появления мощных вычислительных машин. Для его расшифровки требуется несколько часов работы достаточно мощного компьюте­ра; при этом будет использован наиболее простой метод — метод «грубой силы».
Таким образом, при помощи этой команды можно шифровать только достаточно тривиальную информацию. Ни в коем случае нельзя использовать ее для шифрования важных и конфиденциальных данных.
UUENCODE и SMTP
Для пересылки электронной почты по Internet пользователи наиболее часто ис­пользуют протокол SMTP (Simple Mail Transfer Protocol). Это достаточно эф­фективный протокол, однако с его помощью нельзя передавать зашифрованные сообщения — ведь они по сути представляют собой двоичные данные, а не текст. Таким образом, для передачи шифровок придется «превратить» их в текст.
Наиболее распространенным и простым в использовании инструментом для коди­рования двоичных данных в виде текста является утилита под названием uuencode — она входит в сослав большинства пакетов электронной почты. С ее помощью отправитель может закодировать свое сообщение, а получатель — расшифровать
его. После этого он должен преобразовать полученную шифровку в обычный файл при помощи своего личного ключа. Двойное кодирование исходных дан­ных только повышает их стойкость к взлому и тем самым увеличивает эффектив­ность всего метода в целом. Однако налицо и явный недостаток этого метода -он отнимает достаточно много времени.
БАЗОВЫЕ понятия о MICROSOFT Crypto АР]
Работая над стандартизацией процесса шифрования в своей организации, вы можете обнаружить, что для некоторых приложений очень невыгодно использо­вать РвРяш какой-либо из стандартов РЕМ. Отметим, что для решения подоб­ных вопросов в Windows NT 4.0 Service Pack 3, Windows 95 OEM Service Release 2 и Internet Explorer 3.02 (и более поздние версии) имеется CryptoAPI. Это интер­фейс прикладного программирования, при помощи которого можно добавить функции шифрования к любой программе.
Работа с CryptoAPI очень похожа на работу с PGP или любой другой программой шифрования информации. Возьмите исходные данные, примените к ним набор ключей, а затем сохраните (или перешлите) полученную шифровку. В CryptoAPI имеется три основных набора функций: функции сертификата, упрощенные фун­кции шифрования и базовые функции шифрования.
Упрощенные функции шифрования включают в себя функции высокого уровня, с помощью которых можно создавать и использовать ключи, а также зашифро­вывать и расшифровывать информацию. Функции сертификата предоставляют возможность распаковывать, хранить и сверять помещаемые в документы серти­фикаты, а также работать с расположенными в компьютере сертификатами. Мы подробно остановимся на этих функциях. На нижнем уровне распо­лагаются базовые функции шифрования. Следует избегать работы с ними для предотвращения конфликта программы с не установленными поставщиками ус­луг шифрования (CSP - Cryptographic Service Providers), необходимости ис­пользования определенного CSP и т. д.
Интерфейс CryptoAPI поддерживает несколько поставщиков шифрования. На­пример, можно воспользоваться ЫЗАдля шифрования некоторой информации, а также создать цифровую подпись для другой информации. Как ,и в PGP, в CryptoAPI используются базы данных с ключами. Прежде чем создать приложение для шифрования, необходимо разработать подобную базу данных. Для этого лучше всего загрузить все примеры из Microsoft's Developer Network,   расположенной   в http://www.microsoft.com/msdn/library/devprogs/vc++/ vcsamples. Среди размещенных там примеров есть программа InitUser.exe, с по­мощью которой можно создать основную базу данных с ключами, необходимую для работы с CryptoAPI.
Если вы знакомы с программистами на C/C++, имеющими опыт работы с Win32 API, то у вас есть прекрасная возможность воспользоваться программами-заготовками.
ИСПОЛЬЗОВАНИЕ Ск vptoA PI
Для работы с CryptoAPI необходимо вызывать функции интерфейса из программ, написанных на С или С++. Базовые функции CryptoAPI подраз­деляются на четыре основные категории: CSP, ключи, объекты смешивания и подписи. В приложении для шифрования прежде всего происходит вызов функции CryptAcquireContext. Реализовать ее можно так:
Дело в том, что Crypto _Notepadco3aaci новы й класс документов (CCrvploDoc), содержащий базовые функциональные возможности программы. Этот класс переопределяет функцию OnOpenDocumen.
Так как программа преобразует при помощи функции ОпОрепDocument со­храненный зашифрованный файл опять в текст, то она должна проделывать и обратную операцию, т. е. преобразовывать обычный текст в зашифрован­ный. показано переопределение функции OnSaveDocument,
Кроме того, вы можете найти несколько приложений, использующих функ­ции CryptoAPI, на Web-узле Microsoft SiteBuilder Network, расположенном по    адресуhttp://www.microsoft.com/sitebuilder/.
НОВЫЕ МЕТОДЫ ВЗЛОМА СИСТЕМ ШИФРОВАНИЯ
Совершенно недавно специалисты по шифрованию и защите данных изобрели интересный способ взлома систем кодирования. Оказывается, что, обладая информацией о времени, затраченном на расшифровку/шифрование при помо­щи личного ключа, можно вычислить показатели степени алгоритма Диффи-Хеллмана и множители-ключи алгоритма RSA. Более того, этот способ взлома распространяется и на другие системы шифрования. В этом случае взломщику не потребуется огромная вычислительная мощность — достаточно одного компь­ютера и зашифрованного послания. Этот метод ставит под угрозу сетевые систе­мы шифрования и другие приложения, которые предоставляют хакеру возмож­ность достаточно точно вычислить время, затраченное на операции шифрования и расшифровки.
Итак, каковы же причины столь легкого падения таких неприступных на первый взгляд систем шифрования? Как выяснилось, различные кодирующие системы затрачивают различное количество времени на работу с ключами разной длины. Таким образом, зная время, затраченное на расшифровку сообщения, хакер может определить длину ключа и тем самым значительно уменьшить время поис­ка нужной комбинации. Обладая достаточно точными данными о затрачиваемом на расшифровку време­ни, в большинстве случаев хакер с большой вероятностью сможет определить и сам ключ. Однако для обеспечения подобной точности измерения взломщику
нужен физический доступ к системе, что, согласитесь, не всегда возможно. Не стоит забывать, что большинство передаваемых сообщений зашифрованы при помощи метода единого ключа (см. предыдущие пункты этой главы). Как будет рассказано в главах 7 и 8, большинство серверов обеспечивают безопасность
транзакций сообщения при помощи метода с единым ключом. Таким образом, если хакер смог достаточно точно вычислить время расшифровки на обеих сто­ронах соединения, ему не составит труда определить длину одноразового ключа.
Опасность вычисления времени кодирования приблизительно равна опасности кражи личного ключа из вашей системы. Однако если вы решили всерьез заняться
обеспечением безопасности данных в Internet, то вам нужно серьезно отнестись к возможности взлома с вычислением времени кодирования.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика