Работа в современном офисе

Криптозащита и безопасные коммуникации

Разбить на страницы
Показывать лекцию целиком

Что такое криптография?

До сих пор мы рассматривали проблему ограничения доступа к информации лиц, которые заранее имеют пароль, обеспечивающий им вход в систему.

Однако если говорить о безопасных коммуникациях, то здесь возникают более сложные задачи. Допустим, нам необходимо переслать документ по Сети. Если мы защитим документ паролем, то для того, чтобы тот, кто получит защищенный документ, смог его открыть, необходимо сообщить пароль и ему, но как сделать так, чтобы пароль оказался недоступен другим лицам?

Рассмотрим конкретный пример. Пусть сотрудник А отправляет своему коллеге В важный документ по электронной почте (рис. 10.1.).

(рис 10.1) Электронное письмо можно без труда прочитать в промежуточных пунктах его путешествия по Сети, например на сервере провайдера

Известно, что письмо и прикрепленные файлы можно без труда прочитать в промежуточных пунктах его путешествия по Сети, например на сервере провайдера.

Поэтому, получая письмо, В задает себе следующие вопросы. Действительно ли данный документ был отправлен А, а не другим лицом, которое выдает себя за " А "? Не был ли документ перехвачен и изменен в процессе доставки? Не был ли документ прочитан кем-либо, кроме него? Иными словами, его волнуют вопросы проверки аутентификации отправителя и послания и обеспечения конфиденциальности сообщения. Как будет показано ниже, все перечисленные проблемы решает современная криптография.

Криптография (от греч. cryptos - "тайный") - это наука и технология шифрования важной информации для защиты ее от изменений и неавторизованногоАвторизация - предоставление определенных полномочий лицу на выполнение некоторых действий в информационной системе. доступа. Криптография служит не только для перевода текстов в нечитаемую зашифрованную форму, но и позволяет решать задачи аутентификации и идентификации пользователей при работе в Сети.

Следует отметить, что в Сети мы общаемся не только с людьми, но и с различными службами. Например, когда мы собираемся скачать с какого-либо сервера программу, нам тоже важно знать, что данный сервер принадлежит именно фирме-разработчику, а не фирме-пирату, распространяющему нелицензионное ПО, которое может содержать вирусы.

Шифрование с помощью ключа

Процесс шифрования с помощью ключа рассмотрим на конкретном примере.

Предположим, нам нужно зашифровать открытый текст "Привет Вася" с помощью простейшего алгоритма - замены букв их номерами в алфавите. В результате мы получим зашифрованный текст вида: 17 18 10 3 6 20 3 1 19 33. Очевидно, что если посторонний узнает алгоритм шифрования, то использовать его в дальнейшем будет невозможно.

Этого несложно избежать, если использовать шифрование с ключом. Для того чтобы пояснить суть процесса шифрования с ключом, приведем простой пример (рис. 10.2).

(рис 10.2) Принцип шифрования с секретным ключем

Выпишем буквы текста и под ними запишем их номера в алфавите. Третьей строчкой запишем буквы ключа, повторяя это слово на всю строку. Под буквами ключа запишем их номера в алфавите, а в четвертой строчке запишем сумму, которая и будет зашифрованным сообщением: 20 19 29 36 и т.д.

Зная ключ и алгоритм, легко расшифровать сообщение: 20 - 3 = 17, а 17-я буква алфавита - это "П" и т.д. Даже если злоумышленнику известен алгоритм, но неизвестен ключ, прочитать сообщение без длительной процедуры подбора ключа невозможно. Таким образом, один алгоритм можно использовать со многими ключами для разных каналов связи, закрепив за каждым корреспондентом отдельный ключ.

Чем длиннее ключ шифра, тем больше потребуется переборов различных комбинаций при расшифровке и тем, соответственно, сложнее раскодировать сообщение.

Шифрование с симметричным ключом

Рассмотрим конкретный пример: пусть корреспонденты А и В пишут друг другу письмо (рис. 10.3). Каждый имеет свой секретный ключ (определенный секретный код), который можно использовать для шифрования данных перед отправкой в Сеть. Для того чтобы нагляднее изобразить схему шифрования, будем пользоваться пиктограммами (рис. 10.2), т.е. изображать ключ в виде обычного ключа, а зашифрованное сообщение - в виде документа, заклеенного в конверт. Тогда процесс шифрования и расшифровки можно представить в виде, показанном на рис. 10.3.

(рис 10.3) Схема шифрования с секретным (симметричным) ключом

Пользователь А зашифровывает сообщение своим секретным ключом, отсылает сообщение по Сети, а получатель В (пользуясь таким же секретным ключом) расшифровывает сообщение. Если посмотреть на рисунок, нетрудно убедиться, что схема симметрична. Левый и правый пользователи применяют одинаковые (симметричные) ключи, поэтому данный вид шифрования получил название шифрования с симметричным ключом.

Метод шифрования с секретным ключом имеет определенные недостатки. Прежде всего, симметричное шифрование не позволяет решить проблему аутентификации. Например, А может написать письмо некоему третьему лицу С и заявить, что это сделал В.

Кроме того, симметричный ключ должен быть установлен на компьютер отправителя и получателя до обмена секретными сообщениями. Очевидно, что шифрование для безопасного общения в Интернете имеет смысл в том случае, когда корреспондентам не нужно встречаться лично. Проблема возникает при передаче секретного ключа. Действительно, если А передаст В секретный ключ в незашифрованном виде, его могут перехватить. Если ключ послать в зашифрованном виде, то В не сможет его получить. Для переписки с несколькими корреспондентами необходимо иметь по одному ключу на каждого корреспондента, что неудобно. Для того чтобы решить эти проблемы, была предложена схема асимметричного шифрования (шифрования с публичным ключом).

Асимметричное шифрование

Асимметричное шифрование, или шифрование с помощью публичного ключа, основано на использовании пары ключей: закрытого (частного) и открытого (публичного).

Послание можно зашифровать и частным, и публичным ключом, а расшифровать только вторым ключом из пары. То есть послание, зашифрованное частным ключом, можно расшифровать только публичным, и наоборот. Частный ключ известен только владельцу и его нельзя никому передавать, в то время как публичный ключ распространяется открыто и известен всем корреспондентам.

Пару ключей - частный и публичный - можно использовать как для решения задач аутентификации, так и для обеспечения секретности (конфиденциальности).

Согласно первой схеме (рис. 10.4), пользователь А заранее отсылает публичный ключ своим корреспондентам В и С, а затем отправляет им сообщение, зашифрованное его частным ключом.

(рис 10.4) Сообщение мог послать только А (лишь он обладает частным ключом), т.е. проблема аутентификации решена. Но, например, B не уверен, что письмо не прочитал также С. Таким образом, конфиденциальность не обеспечена

Схема, обеспечивающая секретность (конфиденциальность), представлена на рис. 10.5.

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

Таким образом, для того чтобы обеспечить конфиденциальный обмен сообщениями в переписке двух лиц, необходимо иметь две пары ключей.

При шифровании с помощью ключевой пары (рис. 10.5) у А нет необходимости рассылать свой публичный ключ всем корреспондентам. Гораздо удобнее выложить этот ключ в Сети на некоем сервере с открытым доступом. Тогда каждый может скачать данный ключ и послать А секретное сообщение, которое, кроме него, никто не прочтет.

Шифрование с симметричным и асимметричным ключом

Следует отметить, что алгоритм асимметричного шифрования сильно проигрывает симметричным с точки зрения времени шифрования и расшифровки данных, поэтому многие современные системы шифрования используют комбинацию асимметричной и традиционной симметричной систем шифрования. Шифрование с открытым ключом используется для передачи симметричного ключа, который служит непосредственно для шифрования передаваемой информации. Для того чтобы понять логику работы данной схемы, обратимся к рис. 10.6.

(рис 10.6) Шифрование с симметричным и асимметричным ключом

Вначале А шифрует исходный файл с помощью симметричного (секретного) ключа (пункт 1). Затем (пункт 2) А получает из открытых источников публичный ключ, принадлежащий В, и с помощью этого ключа зашифровывает свой симметричный ключ. Далее (пункт 3) оба объекта (зашифрованный файл и зашифрованный симметричный ключ) отсылаются на адрес В посредством Интернета.

В получает оба объекта (пункт 4). Симметричный ключ расшифровывается частным ключом, принадлежащим В (пункт 5) и, наконец, с помощью расшифрованного симметричного ключа расшифровывается исходный файл (пункт 6).

Когда кто-то получает от вас сообщение, зашифрованное вашим частным ключом, он уверен в аутентичности послания. То есть в данном случае шифрование эквивалентно поставленной подписи.

Таким образом, цифровая подпись или электронная подпись - это метод аутентификации отправителя или автора подписи, подтверждающий, что содержание документа не было изменено. Цифровая подпись может быть поставлена как в зашифрованном, так и в открытом послании.

Цифровые сертификаты

При использовании схемы шифрования с открытым ключом нужно распространить открытый ключ своим корреспондентам или выложить его в Сети на открытом сервере. Однако злоумышленник может назваться вашим именем и распространять открытый ключ от вашего лица. Для того чтобы определить, кто является истинным владельцем публичного ключа, нужна третья сторона, которой доверяют все корреспонденты. С этой задачей справляются центры сертификации CA (Certification Authority). Они выдают сертификаты - цифровые данные, подписанные цифровой подписью поручителя, подтверждающие соответствие открытого ключа и информации, идентифицирующей его владельца. Сертификат содержит публичный ключ, информацию о владельце ключа, название сертификационного центра, время, в течение которого сертификат действителен, и т.д. Каждая копия сертификата имеет цифровую подпись организации, выдавшей сертификат, так что каждый, кто получит сертификат, может удостовериться в его подлинности.

Сертификат является аналогом удостоверения личности. Проблема идентификации существует и при личной встрече (паспорта, водительские удостоверения и т.д.). В Сети, где мы общаемся с партнером, которого не видим, удостоверение личности еще более необходимо.

Классы сертификатов

Личные сертификаты могут быть разных классов. Для получения сертификата низшего уровня требуется минимальный уровень проверки владельца публичного ключа. При выдаче сертификата высшего уровня проверяются не только личные данные владельца, но и уровень его кредитоспособности. В этом случае сертификат может выступать аналогом "кредитной карты", подтверждающей кредитоспособность при сделках в Web.

Для получения личного сертификата пользователь обязан внести плату, которая тем больше, чем выше класс сертификата.

Подлинность сертификата подтверждается подписью сертификационного центра, выдавшего сертификат. Система сертификации может иметь многоуровневый характер (рис. 10.7.).

(рис 10.7) Система сертификации имеет многоуровневый характер

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

Пусть имеется сотрудник центра сертификации Иванов, уполномоченный выдавать сертификаты, заверяющие принадлежность подписи владельцу. Рассмотрим, как может быть организована работа такой службы по почте (рис. 10.8.).

(рис 10.8) Выдача и использование сертификатов может быть проиллюстрирована условной схемой заверки обычной подписи

Изначально у всех должен храниться корневой сертификат, в котором имеется образец подписи Иванова. Если некто Петров (рис. 10.8, пункт 1) хочет получить личный сертификат, он направляет в центр сертификации свой паспорт и в ответ получает личный сертификат, заверенный подписью Иванова (пункт 2-3). У Петрова имеется образец подписи Иванова, поэтому он верит, что сертификат пришел именно от Иванова. Петров сохраняет этот сертификат и рассылает его копии своим корреспондентам (пункт 4), одним из которых является некто Сидоров. Сидоров получает сертификат, заверенный подписью Иванова, и поэтому не сомневается, что сертификат действительный (пункт 5). После того как Сидоров получил сертификат Петрова, тот может написать Сидорову, в полной уверенности, что его не примут за кого-то еще (пункт 6). Сидоров получает письмо с подписью Петрова (пункт 7), сравнивает ее с подписью в личном сертификате Петрова и убеждается, что письмо от Петрова.

В случае с электронными подписями механизм проверки и сравнения подписей происходит автоматически, и весь сложный процесс аутентификации осуществляется прозрачно для пользователя. При этом просматривается полная аналогия с обычными подписями. В браузере (например, в Internet Explorer) уже предустановлены корневые сертификаты известных центров сертификации. Например, такого как Verisign.

Корневой сертификат содержит публичный ключ и информацию о его владельце. Когда вы получаете личный сертификат вашего корреспондента, заверенный подписью Verisign, вы можете убедиться в его подлинности и сохранить его на своем компьютере. При этом под термином "корреспондент" мы можем подразумевать не обязательно человека, а, например, сервер с которого вы хотите скачать ПО.

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

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

Система подписанных приложений

Как уже упоминалось, распространение ПО по Сети требует аутентификации, которая достигается благодаря использованию сертификатов. Рассмотрим этот процесс подробнее.

При покупке коробочного ПО обычно не возникает сомнения в том, что программный продукт, находящийся внутри, принадлежит производителю. Однако, когда вы скачиваете продукт из Сети, нет гарантии, что поставщик данного ПО является именно тем, за кого себя выдает, а скачиваемое ПО не содержит вирусов. Данная проблема решается путем внедрения в распространяемый продукт кода аутентификации (Authenticode), позволяющего включать информацию о разработчике посредством использования цифровой подписи. Скачивая ПО, подписанное кодом аутентификации и заверенное центром сертификации, пользователи могут быть уверены, что ПО не было изменено после подписания. Согласно компонентной модели, элементы кода могут загружаться на компьютер пользователя во время обращения на Web-ресурс, например, для воспроизведения анимации. Для того чтобы исключить загрузку небезопасного кода, применяется система подписанных приложений. На основе данной технологии пользователи могут безбоязненно получать подписанные приложения. Если пользователь Internet Explorer встретит компонент, распространяемый без подписи, программа (в зависимости от внутренних настроек безопасности браузера) либо откажется загрузить такой код, либо выдаст предупреждение о небезопасном компоненте. Если же пользователь столкнется с подписанным приложением, клиентская программа подтвердит его безопасность (рис. 10.9).

(рис 10.9) Предупреждение о возможности:небезопасной инсталляции - сверху; безопасной инсталляции - снизу

В Internet Explorer для импорта и экспорта сертификатов предусмотрен менеджер импорта и экспорта сертификатов - Internet Explorer Certificate Manager, который позволяет инсталлировать и удалять сертификаты клиентские и сертификаты центров сертификации.

В пакете Office2003 технология цифровых подписей применяется для подписывания файлов, документов и макросов. Если подписан весь файл, цифровая подпись гарантирует, что этот файл не изменялся с момента подписывания. Подписывание кода аналогично цифровой подписи, но обычно понятие "цифровая подпись" соотносится с процессом подписывания документа, а "подписывание кода" - с подписыванием исполняемого кода. Подписывание кода гарантирует, что он не изменялся с того момента, когда был подписан первоначально. Важное значение в Office 2003 имеет возможность запретить выполнение неподписанных макросовМакросы представляют собой последовательность команд и инструкций приложения, сгруппированных в виде отдельной команды с целью автоматизации выполнения некоторой задачи.. Макросы позволяют повысить эффективность работы, но в то же время представляют угрозу как средство распространения вирусов.

Безопасность при переписке

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

Рассмотрим систему безопасности почты на примере программы Outlook 2003.

Получить доступ к системе безопасности можно по команде Сервис -> Параметры -> Безопасность (рис. 10.10).

(рис 10.10) Вкладка "Безопасность" панели "Параметры" Outlook 2003

Для того чтобы воспользоваться системой безопасности, точно так же, как и для работы с защищенными Web-ресурсами, необходимо получить личное цифровое удостоверение - цифровой сертификат, который выдается независимым центром сертификации на конкретный адрес электронной почты. Если у пользователя имеется несколько адресов электронной почты, ему необходимо иметь несколько сертификатов. На основе цифрового сертификата пользователь получает индивидуальную электронную подпись и пару ключей (открытый и закрытый).

Кнопка "Получить удостоверение" (рис. 10.10) должна отсылать пользователя на сайты организаций, предоставляющих сертификаты. В качестве источника получения сертификата можно назвать www.verisign.com или www.thawte.com.

Получив цифровое удостоверение, пользователь может подписывать свои письма. Для этого необходимо поставить флажок в строке "Добавлять цифровую подпись к исходящим сообщениям". В этом случае все сообщения, которые пользователь отправит, будут содержать его подпись и открытый ключ, и каждый, кто получит такое письмо, сможет отправить в ответ зашифрованное сообщение. Установить флажок "Шифровать содержимое и вложения исходящих сообщений" имеет смысл в том случае, если у пользователя имеются подписи (открытые ключи) всех, с кем он переписывается.

Outlook 2003 позволяет сохранять цифровые сертификаты от любых корреспондентов, которые посылают вам подписанную почту, просматривать их, проверять или удалять.

Страницы:

Что такое криптография?

До сих пор мы рассматривали проблему ограничения доступа к информации лиц, которые заранее имеют пароль, обеспечивающий им вход в систему.

Однако если говорить о безопасных коммуникациях, то здесь возникают более сложные задачи. Допустим, нам необходимо переслать документ по Сети. Если мы защитим документ паролем, то для того, чтобы тот, кто получит защищенный документ, смог его открыть, необходимо сообщить пароль и ему, но как сделать так, чтобы пароль оказался недоступен другим лицам?

Рассмотрим конкретный пример. Пусть сотрудник А отправляет своему коллеге В важный документ по электронной почте (рис. 10.1.).

(рис 10.1) Электронное письмо можно без труда прочитать в промежуточных пунктах его путешествия по Сети, например на сервере провайдера

Известно, что письмо и прикрепленные файлы можно без труда прочитать в промежуточных пунктах его путешествия по Сети, например на сервере провайдера.

Поэтому, получая письмо, В задает себе следующие вопросы. Действительно ли данный документ был отправлен А, а не другим лицом, которое выдает себя за " А "? Не был ли документ перехвачен и изменен в процессе доставки? Не был ли документ прочитан кем-либо, кроме него? Иными словами, его волнуют вопросы проверки аутентификации отправителя и послания и обеспечения конфиденциальности сообщения. Как будет показано ниже, все перечисленные проблемы решает современная криптография.

Криптография (от греч. cryptos - "тайный") - это наука и технология шифрования важной информации для защиты ее от изменений и неавторизованногоАвторизация - предоставление определенных полномочий лицу на выполнение некоторых действий в информационной системе. доступа. Криптография служит не только для перевода текстов в нечитаемую зашифрованную форму, но и позволяет решать задачи аутентификации и идентификации пользователей при работе в Сети.

Следует отметить, что в Сети мы общаемся не только с людьми, но и с различными службами. Например, когда мы собираемся скачать с какого-либо сервера программу, нам тоже важно знать, что данный сервер принадлежит именно фирме-разработчику, а не фирме-пирату, распространяющему нелицензионное ПО, которое может содержать вирусы.

Шифрование с помощью ключа

Процесс шифрования с помощью ключа рассмотрим на конкретном примере.

Предположим, нам нужно зашифровать открытый текст "Привет Вася" с помощью простейшего алгоритма - замены букв их номерами в алфавите. В результате мы получим зашифрованный текст вида: 17 18 10 3 6 20 3 1 19 33. Очевидно, что если посторонний узнает алгоритм шифрования, то использовать его в дальнейшем будет невозможно.

Этого несложно избежать, если использовать шифрование с ключом. Для того чтобы пояснить суть процесса шифрования с ключом, приведем простой пример (рис. 10.2).

(рис 10.2) Принцип шифрования с секретным ключем

Выпишем буквы текста и под ними запишем их номера в алфавите. Третьей строчкой запишем буквы ключа, повторяя это слово на всю строку. Под буквами ключа запишем их номера в алфавите, а в четвертой строчке запишем сумму, которая и будет зашифрованным сообщением: 20 19 29 36 и т.д.

Зная ключ и алгоритм, легко расшифровать сообщение: 20 - 3 = 17, а 17-я буква алфавита - это "П" и т.д. Даже если злоумышленнику известен алгоритм, но неизвестен ключ, прочитать сообщение без длительной процедуры подбора ключа невозможно. Таким образом, один алгоритм можно использовать со многими ключами для разных каналов связи, закрепив за каждым корреспондентом отдельный ключ.

Чем длиннее ключ шифра, тем больше потребуется переборов различных комбинаций при расшифровке и тем, соответственно, сложнее раскодировать сообщение.

Шифрование с симметричным ключом

Рассмотрим конкретный пример: пусть корреспонденты А и В пишут друг другу письмо (рис. 10.3). Каждый имеет свой секретный ключ (определенный секретный код), который можно использовать для шифрования данных перед отправкой в Сеть. Для того чтобы нагляднее изобразить схему шифрования, будем пользоваться пиктограммами (рис. 10.2), т.е. изображать ключ в виде обычного ключа, а зашифрованное сообщение - в виде документа, заклеенного в конверт. Тогда процесс шифрования и расшифровки можно представить в виде, показанном на рис. 10.3.

(рис 10.3) Схема шифрования с секретным (симметричным) ключом

Пользователь А зашифровывает сообщение своим секретным ключом, отсылает сообщение по Сети, а получатель В (пользуясь таким же секретным ключом) расшифровывает сообщение. Если посмотреть на рисунок, нетрудно убедиться, что схема симметрична. Левый и правый пользователи применяют одинаковые (симметричные) ключи, поэтому данный вид шифрования получил название шифрования с симметричным ключом.

Метод шифрования с секретным ключом имеет определенные недостатки. Прежде всего, симметричное шифрование не позволяет решить проблему аутентификации. Например, А может написать письмо некоему третьему лицу С и заявить, что это сделал В.

Кроме того, симметричный ключ должен быть установлен на компьютер отправителя и получателя до обмена секретными сообщениями. Очевидно, что шифрование для безопасного общения в Интернете имеет смысл в том случае, когда корреспондентам не нужно встречаться лично. Проблема возникает при передаче секретного ключа. Действительно, если А передаст В секретный ключ в незашифрованном виде, его могут перехватить. Если ключ послать в зашифрованном виде, то В не сможет его получить. Для переписки с несколькими корреспондентами необходимо иметь по одному ключу на каждого корреспондента, что неудобно. Для того чтобы решить эти проблемы, была предложена схема асимметричного шифрования (шифрования с публичным ключом).

Асимметричное шифрование

Асимметричное шифрование, или шифрование с помощью публичного ключа, основано на использовании пары ключей: закрытого (частного) и открытого (публичного).

Послание можно зашифровать и частным, и публичным ключом, а расшифровать только вторым ключом из пары. То есть послание, зашифрованное частным ключом, можно расшифровать только публичным, и наоборот. Частный ключ известен только владельцу и его нельзя никому передавать, в то время как публичный ключ распространяется открыто и известен всем корреспондентам.

Пару ключей - частный и публичный - можно использовать как для решения задач аутентификации, так и для обеспечения секретности (конфиденциальности).

Согласно первой схеме (рис. 10.4), пользователь А заранее отсылает публичный ключ своим корреспондентам В и С, а затем отправляет им сообщение, зашифрованное его частным ключом.

(рис 10.4) Сообщение мог послать только А (лишь он обладает частным ключом), т.е. проблема аутентификации решена. Но, например, B не уверен, что письмо не прочитал также С. Таким образом, конфиденциальность не обеспечена

Схема, обеспечивающая секретность (конфиденциальность), представлена на рис. 10.5.

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

Таким образом, для того чтобы обеспечить конфиденциальный обмен сообщениями в переписке двух лиц, необходимо иметь две пары ключей.

При шифровании с помощью ключевой пары (рис. 10.5) у А нет необходимости рассылать свой публичный ключ всем корреспондентам. Гораздо удобнее выложить этот ключ в Сети на некоем сервере с открытым доступом. Тогда каждый может скачать данный ключ и послать А секретное сообщение, которое, кроме него, никто не прочтет.

Шифрование с симметричным и асимметричным ключом

Следует отметить, что алгоритм асимметричного шифрования сильно проигрывает симметричным с точки зрения времени шифрования и расшифровки данных, поэтому многие современные системы шифрования используют комбинацию асимметричной и традиционной симметричной систем шифрования. Шифрование с открытым ключом используется для передачи симметричного ключа, который служит непосредственно для шифрования передаваемой информации. Для того чтобы понять логику работы данной схемы, обратимся к рис. 10.6.

(рис 10.6) Шифрование с симметричным и асимметричным ключом

Вначале А шифрует исходный файл с помощью симметричного (секретного) ключа (пункт 1). Затем (пункт 2) А получает из открытых источников публичный ключ, принадлежащий В, и с помощью этого ключа зашифровывает свой симметричный ключ. Далее (пункт 3) оба объекта (зашифрованный файл и зашифрованный симметричный ключ) отсылаются на адрес В посредством Интернета.

В получает оба объекта (пункт 4). Симметричный ключ расшифровывается частным ключом, принадлежащим В (пункт 5) и, наконец, с помощью расшифрованного симметричного ключа расшифровывается исходный файл (пункт 6).

Когда кто-то получает от вас сообщение, зашифрованное вашим частным ключом, он уверен в аутентичности послания. То есть в данном случае шифрование эквивалентно поставленной подписи.

Таким образом, цифровая подпись или электронная подпись - это метод аутентификации отправителя или автора подписи, подтверждающий, что содержание документа не было изменено. Цифровая подпись может быть поставлена как в зашифрованном, так и в открытом послании.

Цифровые сертификаты

При использовании схемы шифрования с открытым ключом нужно распространить открытый ключ своим корреспондентам или выложить его в Сети на открытом сервере. Однако злоумышленник может назваться вашим именем и распространять открытый ключ от вашего лица. Для того чтобы определить, кто является истинным владельцем публичного ключа, нужна третья сторона, которой доверяют все корреспонденты. С этой задачей справляются центры сертификации CA (Certification Authority). Они выдают сертификаты - цифровые данные, подписанные цифровой подписью поручителя, подтверждающие соответствие открытого ключа и информации, идентифицирующей его владельца. Сертификат содержит публичный ключ, информацию о владельце ключа, название сертификационного центра, время, в течение которого сертификат действителен, и т.д. Каждая копия сертификата имеет цифровую подпись организации, выдавшей сертификат, так что каждый, кто получит сертификат, может удостовериться в его подлинности.

Сертификат является аналогом удостоверения личности. Проблема идентификации существует и при личной встрече (паспорта, водительские удостоверения и т.д.). В Сети, где мы общаемся с партнером, которого не видим, удостоверение личности еще более необходимо.

Классы сертификатов

Личные сертификаты могут быть разных классов. Для получения сертификата низшего уровня требуется минимальный уровень проверки владельца публичного ключа. При выдаче сертификата высшего уровня проверяются не только личные данные владельца, но и уровень его кредитоспособности. В этом случае сертификат может выступать аналогом "кредитной карты", подтверждающей кредитоспособность при сделках в Web.

Для получения личного сертификата пользователь обязан внести плату, которая тем больше, чем выше класс сертификата.

Подлинность сертификата подтверждается подписью сертификационного центра, выдавшего сертификат. Система сертификации может иметь многоуровневый характер (рис. 10.7.).

(рис 10.7) Система сертификации имеет многоуровневый характер

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

Пусть имеется сотрудник центра сертификации Иванов, уполномоченный выдавать сертификаты, заверяющие принадлежность подписи владельцу. Рассмотрим, как может быть организована работа такой службы по почте (рис. 10.8.).

(рис 10.8) Выдача и использование сертификатов может быть проиллюстрирована условной схемой заверки обычной подписи

Изначально у всех должен храниться корневой сертификат, в котором имеется образец подписи Иванова. Если некто Петров (рис. 10.8, пункт 1) хочет получить личный сертификат, он направляет в центр сертификации свой паспорт и в ответ получает личный сертификат, заверенный подписью Иванова (пункт 2-3). У Петрова имеется образец подписи Иванова, поэтому он верит, что сертификат пришел именно от Иванова. Петров сохраняет этот сертификат и рассылает его копии своим корреспондентам (пункт 4), одним из которых является некто Сидоров. Сидоров получает сертификат, заверенный подписью Иванова, и поэтому не сомневается, что сертификат действительный (пункт 5). После того как Сидоров получил сертификат Петрова, тот может написать Сидорову, в полной уверенности, что его не примут за кого-то еще (пункт 6). Сидоров получает письмо с подписью Петрова (пункт 7), сравнивает ее с подписью в личном сертификате Петрова и убеждается, что письмо от Петрова.

В случае с электронными подписями механизм проверки и сравнения подписей происходит автоматически, и весь сложный процесс аутентификации осуществляется прозрачно для пользователя. При этом просматривается полная аналогия с обычными подписями. В браузере (например, в Internet Explorer) уже предустановлены корневые сертификаты известных центров сертификации. Например, такого как Verisign.

Корневой сертификат содержит публичный ключ и информацию о его владельце. Когда вы получаете личный сертификат вашего корреспондента, заверенный подписью Verisign, вы можете убедиться в его подлинности и сохранить его на своем компьютере. При этом под термином "корреспондент" мы можем подразумевать не обязательно человека, а, например, сервер с которого вы хотите скачать ПО.

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

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

Система подписанных приложений

Как уже упоминалось, распространение ПО по Сети требует аутентификации, которая достигается благодаря использованию сертификатов. Рассмотрим этот процесс подробнее.

При покупке коробочного ПО обычно не возникает сомнения в том, что программный продукт, находящийся внутри, принадлежит производителю. Однако, когда вы скачиваете продукт из Сети, нет гарантии, что поставщик данного ПО является именно тем, за кого себя выдает, а скачиваемое ПО не содержит вирусов. Данная проблема решается путем внедрения в распространяемый продукт кода аутентификации (Authenticode), позволяющего включать информацию о разработчике посредством использования цифровой подписи. Скачивая ПО, подписанное кодом аутентификации и заверенное центром сертификации, пользователи могут быть уверены, что ПО не было изменено после подписания. Согласно компонентной модели, элементы кода могут загружаться на компьютер пользователя во время обращения на Web-ресурс, например, для воспроизведения анимации. Для того чтобы исключить загрузку небезопасного кода, применяется система подписанных приложений. На основе данной технологии пользователи могут безбоязненно получать подписанные приложения. Если пользователь Internet Explorer встретит компонент, распространяемый без подписи, программа (в зависимости от внутренних настроек безопасности браузера) либо откажется загрузить такой код, либо выдаст предупреждение о небезопасном компоненте. Если же пользователь столкнется с подписанным приложением, клиентская программа подтвердит его безопасность (рис. 10.9).

(рис 10.9) Предупреждение о возможности:небезопасной инсталляции - сверху; безопасной инсталляции - снизу

В Internet Explorer для импорта и экспорта сертификатов предусмотрен менеджер импорта и экспорта сертификатов - Internet Explorer Certificate Manager, который позволяет инсталлировать и удалять сертификаты клиентские и сертификаты центров сертификации.

В пакете Office2003 технология цифровых подписей применяется для подписывания файлов, документов и макросов. Если подписан весь файл, цифровая подпись гарантирует, что этот файл не изменялся с момента подписывания. Подписывание кода аналогично цифровой подписи, но обычно понятие "цифровая подпись" соотносится с процессом подписывания документа, а "подписывание кода" - с подписыванием исполняемого кода. Подписывание кода гарантирует, что он не изменялся с того момента, когда был подписан первоначально. Важное значение в Office 2003 имеет возможность запретить выполнение неподписанных макросовМакросы представляют собой последовательность команд и инструкций приложения, сгруппированных в виде отдельной команды с целью автоматизации выполнения некоторой задачи.. Макросы позволяют повысить эффективность работы, но в то же время представляют угрозу как средство распространения вирусов.

Безопасность при переписке

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

Рассмотрим систему безопасности почты на примере программы Outlook 2003.

Получить доступ к системе безопасности можно по команде Сервис -> Параметры -> Безопасность (рис. 10.10).

(рис 10.10) Вкладка "Безопасность" панели "Параметры" Outlook 2003

Для того чтобы воспользоваться системой безопасности, точно так же, как и для работы с защищенными Web-ресурсами, необходимо получить личное цифровое удостоверение - цифровой сертификат, который выдается независимым центром сертификации на конкретный адрес электронной почты. Если у пользователя имеется несколько адресов электронной почты, ему необходимо иметь несколько сертификатов. На основе цифрового сертификата пользователь получает индивидуальную электронную подпись и пару ключей (открытый и закрытый).

Кнопка "Получить удостоверение" (рис. 10.10) должна отсылать пользователя на сайты организаций, предоставляющих сертификаты. В качестве источника получения сертификата можно назвать www.verisign.com или www.thawte.com.

Получив цифровое удостоверение, пользователь может подписывать свои письма. Для этого необходимо поставить флажок в строке "Добавлять цифровую подпись к исходящим сообщениям". В этом случае все сообщения, которые пользователь отправит, будут содержать его подпись и открытый ключ, и каждый, кто получит такое письмо, сможет отправить в ответ зашифрованное сообщение. Установить флажок "Шифровать содержимое и вложения исходящих сообщений" имеет смысл в том случае, если у пользователя имеются подписи (открытые ключи) всех, с кем он переписывается.

Outlook 2003 позволяет сохранять цифровые сертификаты от любых корреспондентов, которые посылают вам подписанную почту, просматривать их, проверять или удалять.

Вернуться к учебному плану