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.