6.7. Электронная цифровая подпись Электронная цифровая подпись обеспечивает: ♦ аутентификацию источника данных: только владелец секретного несимметричного ключа мог сформировать цифровую подпись; получатель имеет только открытый ключ, на котором подпись может быть проверена, в том числе и независимой третьей стороной; ♦ целостность сообщения: злоумышленник не может целенаправленно изменить текст сообщения, поскольку это обнаружится при проверке цифровой подписи, включающей зашифрованную контрольную сумму сообщения; однако он имеет возможность случайно модифицировать шифротекст или навязать ранее переданный шифротекст. ♦ юридическую значимость сообщения: цифровая подпись по свойствам эквивалентна рукописной подписи по невозможности ее подделки, возможности проверки получателем документа и независимой третьей стороной (арбитром) и обеспечением аутентификации создателя подписи. Практические методы цифровой подписи основаны на использовании свойств несимметричных криптографических систем, или систем с открытым ключом. В открытой печати несимметричные криптосистемы впервые рассмотрены У.Диффи и М.Хеллманом в 1975 г. В отличие от симметричных криптосистем, в которых для шифрования и дешифрования используется один и тот же секретный ключ, в несимметричных системах для этих целей используются разные ключи, составляющие пару — открытый и секретный ключ. Цифровая подпись сообщения — это процесс, обеспечивающий определение подлинности (аутентификацию) сообщения и юридическую ответственность лица, подписавшего сообщение (аутентификацию источника данных). Физически цифровая подпись представляет собой блок данных, добавляемый к сообщению и формируемый при помощи несимметричного криптографического алгоритма (алгоритма с открытым ключом). Принцип использования несимметричного криптоалгоритма для цифровой подписи сообщений заключается в следующем: отправитель преобразует сообщение на своем секретном ключе и отправляет его получателю; предполагается, что получатель знает открытый ключ отправителя, на котором он выполняет обратное преобразование полученного сообщения. При этом получатель уверен, что сообщение не изменялось в процессе передачи и было сформировано именно заявленным отправителем, поскольку сообщение преобразовано на секретном ключе отправителя, известном только ему. Поскольку цифровая подпись не предназначена для обеспечения конфиденциальности сообщения и ввиду невысокой скорости существующих несимметричных криптоалгоритмов, преобразованию подвергается не само сообщение, а его контрольная сумма фиксированной длины. Контрольная сумма, или хеш-значение, получается в результате хеширования сообщения с использованием хеш-функции. Хеш-значение преобразуется на секретном ключе отправителя Dk и добавляется к исходному сообщению. Цифровую подпись можно расколоть либо путем нападения на лежащую в основе метода сложную математическую задачу, либо на хеш-функцию, используемую для получения хеш-значения. При выборе системы аутентификации неплохо выбрать метод подписи и хеш-функцию, требующие сравнимых усилий для раскола; при наличии дополнительной защиты в одном из компонентов нападение будет направлено на более слабый. На практике нападение на хеш-функцию сложнее, так как требует большого объема памяти и возможности обмана объекта нападения с целью подписания специального сообщения. Практика использования электронной цифровой подписи. Разработка СЗИ предусматривает максимальное использование механизмов защиты коммерческого ПО, в частности, сетевой операционной системы Novell Netware 4.1 и СУБД Oracle 7.1. В сетевой ОС Novell Netware 4.1 механизмы защиты используют несимметричный алгоритм RSA для аутентификации пользователей сети. При этом механизм аутентификации скрыт от пользователя. При входе в систему пользователь вводит свой идентификатор (username), который расценивается сервером NetWare как запрос на аутентификацию. Сервер возвращает пользователю зашифрованный на пользовательском пароле секретный несимметричный ключ. Пользователь вводит пароль, на котором секретный ключ расшифровывается и используется для формирования идентифицирующей информации пользователя. Последняя возвращается на сервер, где выполняется ее обратное преобразование на открытом несимметричном ключе. Результат этого преобразования определяет исход процедуры аутентификации. При последующих сетевых операциях пользователь аутентифицируется на основе этой идентифицирующей информации. Ключевая пара действует в течение сеанса работы (до выхода из системы). Данный механизм НЕ ЯВЛЯЕТСЯ эквивалентом цифровой подписи; его объединяет с цифровой подписью использование криптографии с открытым ключом для односторонней аутентификации источника данных. В отличие от цифровой подписи данный механизм аутентификации не имеет целью обеспечение юридической значимости передаваемых сообщений, это всего лишь средство для ОС убедиться в законности действий пользователя. Важно то, что в процессе обмена клиент-сервер используется ключевая пара, выработанная сервером, следовательно, весь метод построен на доверии к серверу. Другой функцией защиты, используемой в ОС Novell Netware 4.1, является электронная подпись пакетов данных NCP Packet Signature. Эта функция защищает серверы и рабочие станции, использующие протокол NCP (NetWare Core Protocol -процедуры, в соответствии с которыми ОС NetWare обрабатывает запросы на обслуживание от рабочих станций сети), предотвращая подделку пакетов данных. Без установки этой функции рабочая станция может выдать себя за более привилегированную станцию и послать поддельный NCP-запрос на сервер NetWare. Подделав пакет с NCP-запросом, нарушитель может получить права SUPERVISOR и получить доступ ко всем сетевым ресурсам. NCP Packet Signature предотвращает подделку пакетов, требуя, чтобы сервер и рабочая станция "подписывали" каждый NCP-пакет. Подпись пакета создается для каждой транзакции, а не для всего сеанса. В многосерверной сети разные серверы могут иметь различные уровни подписи пакетов. Установка этой функции на сервере и на всех рабочих станциях делает фактически невозможным подделку NCP-пакета. NCP-пакеты с неправильной подписью игнорируются без отключения рабочей станции от сервера, однако при этом выдаются сообщения в журнал ошибок, на рабочую станцию и консоль сервера. Следует отметить, что подпись пакетов применяется только в протоколе NCP, и не действует в других протоколах (например, XNS, AppleTalk, TCP/IP и др.). Данные в передаваемых пакетах не зашифрованы, что позволяет с помощью анализатора протоколов перехватить и использовать эти данные. В документации не уточняется, используется ли для подписи пакетов несимметричный алгоритм. Данная функция работает на уровне рабочая станция-сервер, ее механизм скрыт от пользователя; выработка параметров преобразования (ключей?) возложена на ПО и не зависит от пользователя. Таким образом, можно сделать следующие выводы по использованию несимметричных алгоритмов в сетевой ОС NetWare 4.1: ♦ несимметричный алгоритм RSA применяется для аутентификации пользователей при входе в систему и дальнейшей работе и, предположительно, для обеспечения целостности пакетов данных при использовании протокола NCP; ♦ рассмотренные функции защиты используют свойства несимметричных криптосистем, но не реализуют цифровую подпись в ее классическом определении; ♦ степень безопасности рассмотренных функций сложно проанализировать, так как в документации дано самое общее описание; в частности, неизвестны параметры RSA, порядок формирования и хранения ключей и паролей и другая информация; ♦ пользователь опосредованно участвует в реализации функций защиты, доверяя при этом серверу NetWare. |