Свойства криптографических хеш-функций
Рассмотрим требования, которым должна соответствовать хэш-функция для того, чтобы она могла использоваться в качестве аутентификатора сообщения. Рассмотрим очень простой пример хэш-функции. Затем проанализируем несколько подходов к построению хэш-функции.
Хэш-функция Н, которая используется для аутентификации сообщений, должна обладать следующими свойствами:
1. Хэш-функция Н должна применяться к блоку данных любой длины.
2. Хэш-функция Н создает выход фиксированной длины.
3. Н (М) относительно легко (за полиномиальное время) вычисляется для любого значения М.
4. Для любого данного значения хэш-кода h вычислительно невозможно найти M такое, что Н (M) = h.
5. Для любого данного х вычислительно невозможно найти y x, что H (y) = H (x).
6. Вычислительно невозможно найти произвольную пару (х, y) такую, что H (y) = H (x).
Первые три свойства требуют, чтобы хэш-функция создавала хэш-код для любого сообщения.
Четвертое свойство определяет требование односторонности хэш-функции: легко создать хэш-код по данному сообщению, но невозможно восстановить сообщение по данному хэш-коду. Это свойство важно, если аутентификация с использованием хэш-функции включает секретное значение. Само секретное значение может не посылаться, тем не менее, если хэш-функция не является односторонней, противник может легко раскрыть секретное значение следующим образом. При перехвате передачи атакующий получает сообщение М и хэш-код С = Н (SAB || M). Если атакующий может инвертировать хэш-функцию, то, следовательно, он может получить SAB || M = H-1 (C). Так как атакующий теперь знает и М и SAB || M, получить SAB совсем просто.
Пятое свойство гарантирует, что невозможно найти другое сообщение, чье значение хэш-функции совпадало бы со значением хэш-функции данного сообщения. Это предотвращает подделку аутентификатора при использовании зашифрованного хэш-кода. В данном случае противник может читать сообщение и, следовательно, создать его хэш-код. Но так как противник не владеет секретным ключом, он не имеет возможности изменить сообщение так, чтобы получатель этого не обнаружил . Если данное свойство не выполняется, атакующий имеет возможность выполнить следующую последовательность действий: перехватить сообщение и его зашифрованный хэш-код, вычислить хэш-код сообщения, создать альтернативное сообщение с тем же самым хэш-кодом, заменить исходное сообщение на поддельное. Поскольку хэш-коды этих сообщений совпадают, получатель не обнаружит подмены.
Хэш-функция, которая удовлетворяет первым пяти свойствам, называется простой или слабой хэш-функцией. Если кроме того выполняется шестое свойство, то такая функция называется сильной хэш-функцией. Шестое свойство защищает против класса атак, известных как атака "день рождения".
Криптографические хеш-функции обычно производят значения длиной в 128 и более бит. Это значительно больше, чем количество сообщений, которые когда-либо будет существовать в мире.
Наиболее часто используются следующие два алгоритма получения дайджеста (MDA): MD5, разработанный RSA Laboratories, генерирует 128-битный дайджест; SHA-1 (Secure Hash Algorithm), разработанный NIST (National Institute of Standards and Technonlogy) и NSA (National Security Agency), генерирует 160-битный дайджест.
К дадйжесту добавляется информация о том, кто подписывал документ, штамп времени и т п. Получившаяся строка далее зашифровывается секретным ключом подписывающего с использованием того или иного алгоритма. Получившийся набор битов и представляет собой подпись. К подписи обычно прикладывается открытый ключ подписывающего. Получатель сначала решает, доверяет ли он тому, что открытый ключ принадлежит именно тому, кому должен принадлежать, и затем дешифрует подпись с помощью открытого ключа. Если подпись нормально дешифровалась и ее содержание соответствует документу (дайджест и пр), то сообщение считается подтвержденным.
Наиболее известные методы создания цифровых подписей – RSA, ГОСТ 30.10-94
34. Какие задачи решают с использованием смарт-карт и какие проблемы при этом могут возникать?
Все смарт-карты можно разделить по способу обмена со считывающим устройством на:
· Контактные смарт-карты с интерфейсом ISO 7816.
· Контактные смарт-карты с USB интерфейсом.
· Бесконтактные (RFID) смарт-карты.
Существуют карты, которые включают в себя как контактные, так и бесконтактные интерфейсы.
По функциональности карты можно разделить на
· карты памяти (содержат некоторое количество данных и механизм разграничения доступа к ним)
· интеллектуальные карты (содержат микропроцессор и возможность управлять данными на карте)
Назначение смарт-карт:
-одно- и двухфакторная аутентификация пользователей
-хранение ключевой информации и проведение криптографических операций в доверенной среде.
Смарт-карты находят всё более широкое применение в различных областях, от систем накопительных скидок до кредитных и дебетовых карт, студенческих билетов, телефонов стандарта GSM и проездных билетов.
Смарт-карты, USB-ключи и другие интеллектуальные устройства могут повысить надёжность служб инфраструктуры открытых ключей (технологии аутентификации с помощью открытых ключей): смарт-карта может использоваться для безопасного хранения закрытых ключей пользователя, а также для безопасного выполнения криптографических преобразований. Безусловно, интеллектуальные устройства аутентификации не обеспечивают абсолютную защиту, но их защита намного превосходит возможности обычного настольного компьютера.
Хранить и использовать закрытый ключ можно по-разному, и разные разработчики используют различные подходы. Наиболее простой из них – использование интеллектуального устройства в качестве дискеты: при необходимости карта экспортирует закрытый ключ, и криптографические операции осуществляются на рабочей станции. Этот подход является не самым совершенным с точки зрения безопасности, зато относительно легко реализуемым и предъявляющим невысокие требования к интеллектуальному устройству. Два других подхода более безопасны, поскольку предполагают выполнение интеллектуальным устройством криптографические операций. При первом пользователь генерирует ключи на рабочей станции и сохраняет их в памяти устройства. При втором пользователь генерирует ключи при помощи устройства. В обоих случаях, после того как закрытый ключ сохранён, его нельзя извлечь из устройства и получить любым другим способом.
Генерирование ключа вне устройства: пользователь может сделать резервную копию закрытого ключа. Если устройство выйдет из строя, будет потеряно, повреждено или уничтожено, пользователь сможет сохранить тот же закрытый ключ на новой карте. Это необходимо, если пользователю требуется расшифровать какие-либо данные, сообщения, и т. д., зашифрованные с помощью соответствующего открытого ключа, но это кратковременные проблемы в обеспечении аутентификации. Кроме того, при этом закрытый ключ пользователя подвергается риску быть похищенным.
Генерирование ключа с помощью устройства: закрытый ключ не появляется в открытом виде, и нет риска, что злоумышленник украдёт его резервную копию. Единственный способ использования закрытого ключа — это обладание интеллектуальным устройством. Являясь наиболее безопасным, это решение выдвигает высокие требования к возможностям интеллектуального устройства: оно должно генерировать ключи и осуществлять криптографические преобразования. Это решение также предполагает, что закрытый ключ не может быть восстановлен в случае выхода устройства из строя, и т. п. Об этом необходимо беспокоиться при использовании закрытого ключа для шифрования, но не там, где он используется для аутентификации или в других службах, где используется цифровая подпись.
Некоторые системы дискового шифрования, такие как FreeOTFE, TrueCrypt и Microsoft Windows 7BitLocker, могут использовать смарт-карты для безопасного хранения ключей и также для добавления дополнительного уровня шифрования для критичных частей на защищаемом диске. Смарт-карты также используются для единого входа в систему.
Приложения смарт-карт включают их использование в банковских, дисконтных, телефонных карточках и карточках оплаты проезда, различных бытовых услуг и т. д. Смарт-карты также могут использоваться как электронные кошельки. На чип смарт-карты может быть загружена информация о средствах, которыми владелец может расплачиваться в различных торговых точках. Криптографические протоколы защищают обмен денег между смарт-картой и банкоматом. При этом нет непосредственной связи с банком, то есть работа с картой проходит в режиме off-line в отличие от магнитных карт, которые делают запрос в банк, и уже он дает разрешение на операции с картой.
Быстро развивается применение смарт-карт в цифровой идентификации. В этой сфере карты используются для удостоверения личности. Смарт-карта сохраняет зашифрованный цифровой сертификат, полученный от PKI вместе с некоторой другой информацией о владельце. При совмещении подобных смарт-карт с биометрическими данными получается двух- или трехфакторная аутентификация. Первая система водительских прав, основанная на смарт-картах, была введена в провинции Мендоса в Аргентине. Там был высокий уровень аварий на дорогах и низкий уровень по оплате штрафов. Смарт-права отвечали современным требованиям записей нарушений правил и неоплаченных штрафов. Они также содержали личную информацию водителя, его фотографию, и по желанию владельца медицинскую информацию. Правительство ожидало, что новая система поможет собрать более $10 млн за штрафы. К началу 2009 года все население Испании и Бельгии имело eID-карты, которые были выданы правительством и использовались для удостоверения личности. Эти карточки содержат 2 сертификата: один для аутентификации, другой для подписи. Все больше и больше услуг в этих странах используют eID-карты для авторизации.
Смарт-карты широко используются для защиты потоков цифрового телевидения. Там применяется система кодирования Videoguard, до сих пор не расшифрованная, а потому очень популярная во всем мире.
Проблемы:
1) возможный отказ. Пластиковая карта, в которую встроен чип, довольно гнущаяся и чем больше чип, тем больше вероятность его повредить. Смарт-карты в основном носят в кошельке или кармане – довольно жесткие условия эксплуатации для чипа. Однако, у крупных банковских систем затраты, связанные с отказами смарт-карт, компенсируют возможные затраты, связанные с мошенничеством.
2)Использование смарт-карт в общественном транспорте представляет собой угрозу для конфиденциальности, потому что такая система дает возможность третьим лицам следить за передвижением владельцев карт.
3)Использование смарт-карт для идентификации и аутентификации владельца это наиболее безопасный способ для банковских интернет-приложений, но безопасность все равно не стопроцентная. Если на ПК установлено какое-то вредоносное ПО, то безопасное выполнение интернет-приложений не гарантировано. Например, это ПО может незаметно для владельца изменить операции. Пример подобного ПО - Троян Silent banker. Но некоторые банки (Fortis и Dexia в Бельгии) дополняют свои смарт-карты бесконтактным считывателем. Владелец делает запрос на сайте банка, вводя свой ПИН-код, желаемую операцию и цифровую подпись, полученную от считывателя, и эта подпись сравнивается банком. В дополнение к техническим сложностям есть проблема нехватки стандартов для смарт-карт. Для решения этой проблемы был запущен проект ERIDANE, который занимается разработкой новой структуры смарт-карт, которые будут работать на оборудовании Point Of Interaction (POI).