ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.09.2024
Просмотров: 3980
Скачиваний: 0
СОДЕРЖАНИЕ
Проверка подлинности, целостность и неотрицание авторства
Подстановочные и перестановочные шифры
Передача информации с использованием симметричной криптографии
Коды проверки подлинности сообщения
Передача информации с использованием криптографии с открытыми ключами
Подпись документа с помощью симметричных криптосистем и посредника
Подпись документа с помощью криптографии с открытыми ключами
Подпись документа и метки времени
Подпись документа с помощью криптографии с открытыми ключами и однонаправленных хэш-функций
Невозможность отказаться от цифровой подписи
Использование цифровых подписей
Возвращение сообщения при приеме
Обнаружение вскрытия, основанного на возвращении сообщения
Вскрытия криптографии с открытыми ключами
Генерация случайных и псевдослучайных последовательностей
Псевдослучайные последовательности
Криптографически безопасные псевдослучайные последовательности
Настоящие случайные последовательности
Типы алгоритмов и криптографические режимы
Режим электронной шифровальной книги
Устройство генератора потока ключей.
Использование других уникальных предметов
Методы биометрической аутентификации
Идентификация по отпечаткам пальцев
Идентификация по Сетчатке и радужной оболочке глаза
Распознавание по форме лица, руки или ладони
Распознавание по рукописному почерку.
Классификация угроз Digital Security (Digital Security Classification of Threats)
Технологические угрозы информационной безопасности
Организационные угрозы информационной безопасности
Использование цифровых подписей
Одним из самых ранних предложенных применений цифровых подписей было упрощение проверки соблюдения договоров о ядерных испытаниях. Соединенные Штаты и Советский Союз разрешили друг другу разместить на чужой территории сейсмографы для слежения за ядерными испытаниями. Проблема была в том, что каждая из сторон должна была уверена в том, что другая сторона не подделала данные этих сейсмографов. Одновременно, другая сторона должна была быть уверена, что эти датчики посылают только ту информацию, которая нужна для слежения за ядерными испытаниями .
Метод условного удостоверения подлинности может решить первую проблему, но только цифровые подписи могут решить обе проблемы. Сторона, на территории которой стоит сейсмограф, может прочесть, но не изменить данные сейсмографа, а следящая сторона знает, что данные не были подделаны .
Цифровые подписи и шифрование
Объединив цифровые подписи и криптографию с открытыми ключами, мы разрабатываем протокол, комбинирующий безопасность шифрования и достоверность цифровых подписей. Сравните с письмом от вашей мамы. Подпись удостоверяет авторство, а конверт обеспечивает тайну.
Василиса подписывает сообщение с помощью своего закрытого ключа.SВ(M)
Василиса шифрует подписанное сообщение открытым ключом Ивана и посылает его Ивану. ЕИ(SВ(M))
Иван расшифровывает сообщение с помощью своего закрытого ключа.DИ(ЕИ(SВ(M)))= SВ(M)
Иван проверяет подпись с помощью открытого ключа Василисы и восстанавливает сообщение.VВ(SВ(M)) = M
Подпись перед шифрованием выглядит естественно. Когда Василиса пишет письмо, она подписывает его и затем кладет в конверт. Если она положит письмо в конверт неподписанным, то Иван может забеспокоиться, вдруг письмо было тайно подменено. Если Иван покажет Лешему (и какого Лешего он это сделает) письмо Василисы и конверт, Леший может обвинить Ивана, что он врет о том, какое письмо в каком конверте пришло .
В электронной корреспонденции точно также является разумным использование подписи перед шифрованием. Это не только более безопасно – враг не сможет удалить подпись из шифрованного сообщения и добавить свою собственную – но существуют и юридические соображения: если подписываемый текст не виден подписывающему, когда он ставит подпись, то юридическая сила подписи невелика. Существуют также некоторые криптографические способы вскрытия такой последовательности действий, использующей подписи RSA.
Для Василисы не существует причин использовать одну пару ключей – открытый/закрытый – для шифрования и подписи. У нее может быть две пары ключей: одна для шифрования и одна для подписи . У такого разделения есть свои преимущества: Василиса может передать свой ключ шифрования полиции, не компрометируя свою подпись, один ключ может быть условно передан, не влияя на другой. У ключей могут быть различные длины и сроки действия.
Конечно же, для предотвращения повторного использования сообщений с этим протоколом должны быть использованы метки времени. Метки времени также могут защитить от других возможных ловушек, пример одной из которых приведен ниже.
Возвращение сообщения при приеме
Рассмотрим реализацию этого протокола с дополнительной возможностью подтверждения сообщений – получив сообщение, Иван обязательно возвращает подтверждение приема:
Василиса подписывает сообщение с помощью своего закрытого ключа, шифрует подписанное сообщение открытым ключом Ивана и посылает его Ивану ЕИ(SА(M));
Иван расшифровывает сообщение с помощью своего закрытого ключа, проверяет подпись с помощью открытого ключа Василисы и восстанавливает сообщение VВ(DИ(ЕИ(SА(M)))) =M;
Иван подписывает сообщение с помощью своего закрытого ключа, шифрует подписанное сообщение открытым ключом Василисы и посылает его Василисе обратно ЕВ(SИ(M));
Василиса расшифровывает сообщение с помощью своего закрытого ключа и проверяет подпись с помощью открытого ключа Ивана. Если полученное сообщение совпадает с отправленным, она знает, что Иван получил правильное сообщение.
Если для шифрования и проверки цифровой подписи используется один и тот же алгоритм, то существует возможность вскрытия. В таких случаях операция цифровой подписи – противоположность операции шифрования: VX— ЕXи SX—DX.
Пусть Соловей – зарегистрированный пользователь со своей парой ключей: открытым и закрытым. Теперь посмотрим, как он сможет читать почту Ивана. Сначала он запишет сообщение Василисы Ивану. Затем, немного погодя, он пошлет это сообщение Ивану, утверждая, что оно отправлено самим Соловьем. Иван, думая, что это обычное сообщение от Соловья, дешифрирует это сообщение своим закрытым ключом и пытается проверить подпись Соловья, дешифрируя ее с помощью открытого ключа Соловья-Разбойника. В результате получается полная чепуха:
ЕС(DИ(ЕИ(DВ(M)))) = ЕС(DВ(M))
Даже в этом случае, следуя протоколу, Иван посылает Разбойнику полученное сообщение: EС(DИ(EС(DВ(M))))
Теперь Соловью остается только расшифровать сообщение с помощью своего закрытого ключа, зашифровать его открытым ключом Ивана, расшифровать снова с помощью своего закрытого ключа и зашифровать открытым ключом Василисы. Соловей-Разбойник получает М.
Отнюдь не глупо предположить, что Иван может автоматически посылать Райбойнику квитанцию. Этот протокол, например, может быть встроен в его коммуникационное программное обеспечение и посылать квитанции автоматически. Именно готовность сообщить о приеме чепухи и нарушает безопасность. Если Иван проверит сообщение на осмысленность перед отправкой квитанции, он сможет избежать таких проблем с безопасностью.
Существуют модернизации этого способа вскрытия, предполагающие, что Соловушка пошлет Ивану сообщение, отличное от того, которое он желает перехватить. Никогда не подписывайте произвольных сообщений от других людей и не передавайте результаты дешифровки произвольных сообщений иным людям.
Обнаружение вскрытия, основанного на возвращении сообщения
Только что описанное вскрытие работает потому, что операция шифрования совпадает с операцией проверки подписи, а операция дешифрирования – с операцией подписи. Операции шифрования и цифровой подписи в безопасном протоколе должны хотя бы слегка отличаться. Проблему решает использование различных ключей для каждой операции, или использование для каждой операции различных алгоритмов, или применение меток времени, которые делают различными принятое и отправляемое сообщения, или цифровая подпись с помощью однонаправленной хэш-функции. Тогда, в общем случае, следующий протокол, использующий алгоритм с открытым ключом, является безопасным:
Василиса подписывает сообщение;
Василиса шифрует подписанное сообщение открытым ключом Ивана (используя алгоритм, отличающийся оталгоритма цифровой подписи) и посылает его Ивану;
Иван расшифровывает сообщение с помощью своего закрытого ключа;
Иван проверяет подпись Василисы;
Вскрытия криптографии с открытыми ключами
Во всех подобных протоколах криптографии с открытыми ключами не было рассказано, как Василиса получает открытый ключ Ивана. Проще всего узнать чей-то открытый ключ, считав его откуда-то из безопасной базы данных. Эта база данных должна быть общедоступна, чтобы каждый мог получить нужный ему ключ. База данных должна быть защищена от несанкционированной записи, в противном случае Соловушка сможет подменить открытый ключ Ивана. После этого Иван уже не сумеет читать адресованные ему сообщения, зато это сможет сделать Соловей.
Даже если открытые ключи хранятся в надежной базе данных, Разбойник может подменить их при передаче. Чтобы воспрепятствовать этому, Яга должна подписывать каждый открытый ключ, используя свой собственный закрытый ключ. Ягу, которая действует подобным образом, часто называют Органом сертификации ключей или Центром распределения ключей (Key Distribution Center, KDC). На практике KDC подписывает сложное сообщение, состоящее из имени пользователя, его открытого ключа и другой информации о пользователе. Это подписанное сложное сообщение и хранится в базе данных KDC. Когда Василиса получает ключ Ивана, она проверяет подпись KDC, удостоверяясь в правильности ключа.
При окончательном анализе видно, что и это только затрудняет, но не делает невозможным мошенничество Разбойника. Василиса же должна откуда-то получить открытый ключ KDC. Соловью нужно подменить этот ключ своим открытым ключом, испортить базу данных и заменить правильные ключи своими (подписанными его закрытым ключом, как если бы он и был KDC), и его дело сделано. Но, даже подписи на бумаге могут быть подделаны, если Соловей-Разбойник всерьез возьмется за дело. Подробно обмен ключами рассматривается ниже.
Генерация случайных и псевдослучайных последовательностей
Почему даже разделе по криптографии снова эти докучливые рассуждения о генерации случайных чисел? Генератор случайных чисел встроен в каждый компилятор, обычный вызов функции. Почему бы не использовать его? К сожалению, эти генераторы случайных чисел почти наверняка недостаточно безопасны для криптографии и, возможно, даже не совсем случайны. Большинство из них весьма плохи.
Генераторы случайных чисел на самом деле совсем не случайны, потому что им и не нужно быть такими. Для большинства приложений, например, компьютерных игр, требуется так мало случайных чисел, что их неслучайность вряд ли будет заметна. Однако, криптография очень чувствительна к свойствам генераторов случайных чисел. Примените плохой генератор, и у вас появятся таинственные корреляции и странные результаты. Если ваша безопасность зависит от генератора случайных чисел, таинственные корреляции и странные результаты являются абсолютно не тем, чего бы вы желали добиться.