Смекни!
smekni.com

Исторические основы криптологии (стр. 14 из 15)

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

Для того, чтобы эта сухая теория стала более понятной, рассмотрим конкретный пример. Перед началом интерактивного сеанса работы большинство операционных систем запрашивают у пользователя его имя и пароль. Введенное имя является идентификатором пользователя, а его пароль – аутентификатором. Операционная система обычно хранит не сам пароль, а его хэш сумму, обеспечивая тем самым практическую невозможность восстановления пароля. Использование пары «имя пользователя пароль» для аутентификации субъектов является наиболее распространенным, но не единственным. Принципиально разных методов аутентификации на самом деле немного. Один класс методов аутентификации основывается на том, что аутентифицируемый субъект должен иметь некоторый секретный элемент(пароль, секретный ключ или специальный аутентификационный токен). Другой класс методов аутентификации применим, в основном, для аутентификации людей. Он основывается на наличии уникальных физических свойств самого человека (отпечатки пальцев, форма кисти руки, голос, радужная оболочка глаза). У каждого класса методов есть как достоинства,так и недостатки. Сравнением обоих классов методов мы займемся чуть позже, а пока рассмотрим подробнее разные методы аутентификации.

Другим интересным методом аутентификации является использование аутентификационного токена. Аутентификационный токен представляет собой физическое устройство, обычно небольших размеров для удобства его ношения с собой. Это может быть смарт карта или недавно появившиеся устройства, подключаемые к порту USB и выполненные в виде брелока. Обычно аутентификационный токен содержит «на борту» энергонезависимую память и специализированный процессор. Некоторые устройства дополнительно имеют встроенный аппаратный генератор случайных чисел или таймер(часы реального времени). Процессор токена в зависимости от мощности способен выполнять самые различные операции. Есть процессоры, способные выполнять шифрование данных алгоритмом DES или вычислять хэш суммы c использованием ключа (HMACMD5). Специализированный токен позволяет производить криптографические преобразования без извлечения ключа из памяти токена и передавать между токеном, компьютером и информационной системой только несекретные или зашифрованные данные, что дополнительно защищает протокол аутентификации от перехвата ключей. Обычно программный доступ к токену возможен только после ввода PIN кода, известного только владельцу аутентификационного токена. Дополнительные возможности токенов позволяют реализовать более надежные протоколы аутентификации. Интересную технологию аутентификации, основанную на «одноразовых паролях», предложила компания Security Dynamics. Технология носит название SecureID. Одноразовыми паролями являются псевдослучайные числа. Генератором последовательности псевдослучайных чисел является аутентификационный токен. RSA Security предлагает несколько вариантов токена – смарт-карту, калькулятор с возможностью ввода PIN кода, брелоки. Каждый токен имеет уникальный серийный номер. Токен генерирует новое псевдослучайное число по одному в минуту. Период генератора псевдослучайных чисел таков, что время использования одного токена составляет два года. Для аутентификации по технологии SecureID информационная система должна содержать в себе аутентификационный сервер SecureID и базу данных, сопоставляющую имена аутентифицируемых пользователей и серийные номера токенов. Запрос на аутентификацию от пользователя состоит из его имени и случайного числа, считываемого пользователем с токена. Сервер, на основании полученного от пользователя числа и серийного номера токена, решает принадлежит ли данное число последовательности, генерируемой именно этим токеном, или нет.

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

На сегодняшний день уже имеется проработанная технология, доведенная до программно-аппаратного решения, обеспечивающая уникальность бумажных документов, использующая вышеизложенную идею. Выбранный документ сканируется с высоким разрешением, и в отсканированном образе выделяются несколько особенностей (микро вкрапления, характерные изгибы образующих волокон, и т.д.). В общем, тут напрашивается некоторая аналогия с технологией анализа отпечатков пальцев... И, кстати, не случайно. Полученные данные преобразуются в двоичный массив, для которого вычисляется хэш функция. Полученное значение хэш функции и является аналогом «водяного знака» и обеспечивает уникальность документа. Легко заметить, что предложенную технологию легко расширить и значение хэш функции печатать прямо на бланке документа вместе с печатью нотариуса при нотариальном заверении документа. Но такой подход требует соответствующего законодательства. Попытки использовать «электронные водяные знаки» для небумажных носителей пока, к сожалению, не имели успеха. Самым известным примером может служить попытка защиты DVD дисков от нелегального распространения. Идея разработчиков состояла в том, чтобы помимо шифрования информации на диске помещать на него некоторую информацию, которая терялась или переставала быть актуальной на копии. Практика показала, что попытки внедрить подобную технологию оказались неудачными.

Приведенный пример, кстати, отражает глубокое и, к сожалению, часто не замечаемое различие традиционных документов и электронных. Суть этой разницы хорошо видна на примере применения электронной подписи. Программа проверки подписи, вообще говоря, может установить лишь то, что проверяемый документ был подписан с использованием ключа, имеющего указанный идентификатор и подпись верна (либо – не верна). Но по подписи нельзя определить кто же именно воспользовался данным ключом. Пусть, например, для вычисления «контрольной суммы» легального DVD диска использовались такие его характеристики, как материал покрытия, данные, нанесенные штрих кодом, код завода изготовителя и серийный номер диска. Обладание алгоритмом вычисления такой «контрольной суммы» позволит потенциальным «пиратам» изготовить неограниченное число копий просто перевычисляя «контрольную сумму» в процессе изготовления для тех «болванок», которые имеются в их распоряжении. Любой DVD проигрыватель воспримет так изготовленный диск как легальный!

3. Криптографическими методами можно обеспечить не только конфиденциальность, но и проконтролировать целостность передаваемых или хранимых данных. Контроль целостности в основном производится путем расчета некоторой «контрольной суммы» данных. Математиками и инженерами, работающими в области передачи данных и теории кодирования, разработано множество алгоритмов, рассчитывающих контрольные суммы передаваемых данных. Для многих приложений простой контрольной суммы (например, известного алгоритма crc32 или последовательного побайтного или пословного сложения исходного текста с известной константой) оказывается достаточно, особенно тогда, когда важна скорость обработки данных и не известен заранее объем данных (типичный случай – передача данных по каналам связи).
Проблема простых алгоритмов вычисления контрольной суммы в том, что достаточно легко подобрать несколько массивов данных, имеющих одинаковую контрольную сумму. Криптографически стойкие контрольные суммы вычисляются как результат применения к исходному тексту так называемой хэш функции.
Одним из результатов теории сложности и теории функций является гипотеза о существовании односторонних функций. Под односторонней функцией понимается функция, определенная (например) на множестве натуральных чисел и не требующая для вычисления своего значения больших вычислительных ресурсов. Но вычисление обратной функции(то есть, по известному значению функции восстановить значение аргумента) оказывается невозможно теоретически или (в крайнем случае) невозможно вычислительно. Строгое существование односторонних функций пока не доказано. Поэтому все используемые в настоящее время хэш функции являются лишь «кандидатами» в односторонние функции, хотя и имеют достаточно хорошие свойства. Основными свойствами криптографически «хорошей» хэш функции является свойство рассеивания, свойство стойкости к коллизиям и свойство необратимости. О необратимости мы уже говорили. Коллизией хэш функции H называется ситуация, при которой существуют два различных текста T1 и T2, но H(T1) = H(T2). Значение хэш функции всегда имеет фиксированную длину, а на длину исходного текста не накладывается никаких ограничений. Из этого следует, что коллизии существуют. Требование стойкости к коллизиям обозначает, что для криптографически «хорошей» хэш функции для заданного текста T1 вычислительно невозможно найти текст T2, вызывающий коллизию. Свойство рассеивания требует, чтобы минимальные изменения текста, подлежащего хэшированию, вызывали максимальные изменения в значении хэш функции.
Основные применяемые на сегодняшний день алгоритмы, реализующие хэш функции, являются MD2, MD4, MD5, SHA и его вариант SHA1, российский алгоритм, описываемый стандартом ГОСТ Р 34.11 94. Наиболее часто используются MD5, SHA1 и в России 34.11. Длина значения хэш функции различна. Типичной длиной является 16–32 байта. В свете последних криптоаналитических результатов, вероятно, придется в недалеком будущем отказаться от MD5, так как было заявлено: «его стойкость к коллизиям опустилась и, вероятно, подошла близко к той отметке, после которой о стойкости вообще говорить не приходится». В заголовок раздела вынесены слова «электронная подпись». Но не сказать об электронной подписи совсем было бы неправильно. Дело в том, что без несимметричной криптографии электронной подписи не было бы вообще! Идея электронной подписи проста. Когда описывался процесс шифрования с использованием несимметричного алгоритма, то отмечалось, что для зашифрования сообщения использовался открытый ключ, а для расшифрования – секретный. Но в применении к шифрованию ключи взаимозаменяемы. Можно зашифровать сообщение на своем секретном ключе, и тогда любой желающий сможет его расшифровать, используя открытый ключ. Это свойство несимметричных алгоритмов и используетсяпри формировании и проверке электронно-цифровой подписи. Собственно ЭЦП документа – это его хэш сумма, зашифрованная секретным ключом. Проверка ЭЦП документа сводится к вычислению хэш суммы документа, расшифрованию хэш суммы, содержащейся в подписи, и сравнению двух величин. Если значения вычисленной и сохраненной в подписи хэш сумм совпали, то считается, что подпись под документом верна.