Все протоколы, методы и алгоритмы современной криптографии имеют смысл только в том случае, если ключ хранится в секрете. Однако ключ Алисы может быть украден, потерян или скомпрометирован иным способом. Если скомпрометированный ключ использовался в симметричной криптосистеме, Алисе придется заменить ключ и надеяться, что ущерб минимален.
Если это секретный ключ асимметричной криптосистемы, то все осложняется, так как парный открытый ключ может храниться на многих серверах в сети. Если злоумышленник получил доступ к секретному ключу Алисы, он может выдать себя за нее и, как следствие, читать адресованные ей сообщения и подписываться за нее.
Если ключ распределяет ЦРК, то Алиса обязана сообщить ему о факте компрометации. Если ЦРК не используется, то ей следует известить всех абонентов которые могут получать от неё сообщения. Соответствующая служба криптосети делжна обнародовать тот факт, что любое сообщение, полученное после компрометации ключа, является подозрительным и что никто не должен посылать сообщения Алисе, используя соответствующий открытый ключ.
|
|
При использованиии централизованной схемы распределения открытых ключей скомпрометированные ключи помещаются в специальный список аннулированных сертификатов (САС). Туда же помещаются и открытые ключи с истекшим сроком действия. САС служит механизмом, позволяющим исключить возможность использования скомпрометированных ключей. САС формируется специальной службой ЦС и содержит информацию о сертификатах, выданных данным ЦС. Отметим, что список содержит не сами отмененные сертификаты, а только информацию, позволяющую установить, что сертификат был отменен. Способы распространения САС могут быть различными: от непосредственной рассылки пользователям криптосети до организации в сети специальных узлов.
Таким образом, перед проверкой подписи принятого сообщения и после верификации сертификата (проверки подписи сертификата на открытом ключе ЦС) необходимо установить, входит ли данный сертификат в САС. Если факт вхождения установлен, принятое сообщение отвергается.
Хорошо, если Алиса знает, когда был скомпрометирован ее ключ. Механизм временных меток позволяет абонентам определить, какие сообщения законны, а какие подозрительны. Дополнительные осложнения возникают, если Алиса не знает точно, когда ее ключ был скомпрометирован. Например, Алиса может пожелать отказаться от контракта, так как он был подписан вместо нее человеком, укравшим у нее ключ. Если такой отказ возможен, то кто угодно сможет отказаться от контракта, утверждая, что его ключ был скомпрометирован до подписания контракта. Для решения подобных вопросов необходимо привлечение независимого арбитра.
|
|
Этот пример показывает, как опасно иметь один единственный ключ (точнее, одну единственную пару ключей). Лучше, чтобы у Алисы были различные ключи (пары ключей) для различных приложений точно так же, как для различных замков нужны различные физические ключи. Другие решения проблемы включают биометрическую аутентификацию, ограничение на использование ключа, временную задержку и дополнительную подпись.
Время жизни ключей
Ни один ключ шифрования нельзя использовать бесконечно. Время его действия должно истекать автоматически, подобно паспортам и лицензиям. Причины этого в следующем.
Чем дольше используется ключ, тем больше:
— вероятность его компрометации. Если ключ используется в течение года, то вероятность его компрометации гораздо выше, чем если бы его использовали только один день;
— потери при компрометации ключа. Если ключ используется для шифрования одного документа, то потеря ключа означает компрометацию только этого документа. Если тот же самый ключ используется для шифрования больших объемов информации, то его компрометация приводит к значительным потерям;
— соблазн приложить необходимые усилия для его раскрытия. Раскрытие ключа, используемого в течение суток, позволит прочитать все сообщения, переданные в течение суток. Раскрытие ключа, используемого в течение года, позволит злоумышленнику получить доступ к секретной информации, переданной в течение года:
В ряде случаев трудоемкость криптоанализа определяется количеством шифртекстов, полученных в результате шифрования на одном ключе.
Для любого криптографического приложения необходима стратегия, определяющая допустимое время жизни ключа. У различных ключей могут быть различные времена жизни. Время жизни ключей должно определяться в зависимости от значимости и количества данных, зашифрованных в течение заданного периода:
· для криптографического телефона имеет смысл использовать ключ только в течение телефонного разговора, а для нового разговора использовать новый ключ.
· чем больше скорость передачи данных по каналу связи, тем, возможно, чаще придется менять ключ.
Необходимо сбалансировать риски, связанные с заменой ключа. Ключи шифрования ключей так часто менять не нужно. При этом шифртекста для криптоаналитика образуется немного, а соответствующий открытый текст (случайные ключи) невозможно угадать. В некоторых приложениях ключи шифрования ключей заменяются только раз в месяц или даже раз в год. Однако, если ключ шифрования ключей скомпрометирован, потенциальные потери катастрофичны. Конечно же, потеря этого ключа означает потерю всех ключей, которые были на нем зашифрованы. Ключ шифрования ключей должен храниться в безопасном месте.
При шифровании данных длительного хранения ключи менять часто нельзя. Ежедневное дешифрование и повторное шифрование на новом ключе может привести к отрицательным последствиям — накоплению криптоаналитиком рабочего материала для последующей атаки. Решением может послужить шифрование данных на некотором уникальном ключе с последующим его шифрованием на ключе шифрования ключей.
Время жизни секретных ключей асимметричной криптографии зависит от приложений. Секретные ключи для цифровых подписей могут использоваться годами (даже в течение человеческой жизни). Во многих криптосетях срок действия секретных ключей ограничен двумя годами.
Старый ключ тем не менее должен храниться в секрете на случай подтверждения подписи, сделанной во время действия старого ключа. Но для подписания новых документов должен использоваться новый ключ. Такой подход позволяет уменьшить количество материала, которое криптоаналитик сможет использовать для раскрытия ключа.
|
|
Уничтожение ключей
Принимая во внимание, что ключи должны регулярно меняться, старые ключи необходимо уничтожать. С их помощью можно прочитать старые сообщения, даже если сами они никогда больше не используются.
Ключи должны уничтожаться надежно. Если ключ записан в EEPROM-память, то для его уничтожения нужно многократно перезаписать память. Если ключ записан в память EPROM или PROM, то он должен быть уничтожен вместе с микросхемой памяти.
Если ключ хранится на жестком диске компьютера, данные соответствующего участка накопителя должны быть многократно перезаписаны. Серьезная проблема заключается в том, что в компьютере ключи могут быть размножены и сохранены в различных областях жесткого диска. Любая ОС, реализующая какую-либо схему управления памятью, постоянно выгружает программы из оперативной памяти на жесткий диск и загружает их обратно.
Для уничтожения ключей необходимо использовать специальную программу, которая сначала выполняет поиск копий ключа на физическом уровне, даже в неиспользуемых блоках, а затем стирает их.
Использование ключей
Исполнение криптографических программ под управлением многозадачных ОС связано с некоторым риском. Невозможно сказать, когда операционная система остановит работающую программу, запишет все промежуточные данные на жесткий диск и передаст ресурсы другой задаче. Возвращая управление прерванной программе и считывая при этом всю необходимую информацию с жесткого диска, операционная система не очищает память накопителя.
Очевидно, что, если исполнялась программа шифрования, то помимо самой программы на жесткий диск будут записаны некоторые данные, в том числе и секретный ключ. Секретный ключ будет храниться на диске до тех пор, пока не будет выполнена запись в эту же область памяти.
В приоритетной, многозадачной среде для снижения риска можно установить высокий приоритет выполнения задачи. Но даже в этом случае надежность системы в целом будет невысокой.
|
|
Аппаратные реализации надежнее. Многие из устройств шифрования разработаны так, что любое вмешательство приводит к уничтожению ключа. Некоторые устройства, например телефонные шифраторы, используют сеансовые ключи. Сеансовым называется ключ, который используется только для одного сеанса связи — единственного телефонного разговора — и затем уничтожается. Нет смысла хранить ключ после того, как он был использован.
В некоторых приложениях необходим контроль процесса использования сеансового ключа. Сеансовые ключи могут быть разрешены к использованию только на определенной машине или только в определенное время.
Одна из схем управления подобными ограничениями предполагает добавление к ключу специального вектора контроля [7]. Значение хэш-функции вектора контроля суммируется по модулю два с главным ключом. Результат используется как ключ для шифрования сеансового ключа. Полученный шифртекст затем хранится вместе с вектором контроля. Для восстановления сеансового ключа нужно вычислить значение хэш-функции вектора контроля и просуммировать результат с главным ключом. Полученный ключ используется для дешифрования и восстановления сеансового ключа.
Преимущество этой схемы состоит в том, что длина вектора контроля может быть произвольной и что он всегда хранится в открытом виде вместе с зашифрованным ключом. Такой способ не выдвигает требований относительно защищенности аппаратуры и предполагает отсутствие непосредственного доступа пользователей к ключам.
Депонирование ключей
В апреле 1993 г. правительство США анонсировало новый метод криптографической защиты информации, обеспечивающий высокий уровень безопасности при передаче по открытым каналам связи, с одной стороны, и отвечающий требованиям национальной безопасности, с другой.
Метод основан на применении шифрующей/дешифрующей микросхемы Clipper, разработанной по специальной технологии TEMPEST, препятствующей считыванию информации с помощью внешнего воздействия и процедуры депонирования ключа, определющей дисциплину раскрытия уникального ключа микросхемы.
Генерация и запись ключа выполняются до встраивания микросхемы в конечное устройство. Не существует способа, позволяющего непосредственно прочитать ключ как во время, так и по завершении технологического процесса производства и программирования микросхемы.
Ключ разбивается на два компонента, каждый из которых шифруется и затем передается на хранение доверенным агентам депозитной службы,которые представляют собой правительственные организации, обеспечивающие надежное хранение ключевых компонентов в течение срока их действия. Агенты выдают ключевые компоненты только тогда, когда соответствующий запрос подтвержден решенном федерального суда. Полученные компоненты позволяют восстановить уникальный ключ и выполнить дешифрование.
Технология разделения ключа основана на математике разделения секрета. Пусть имеются первичный секретный ключ и два участника, образующих легальную коалицию для получения доступа к секретной информации. Последнее означает, что ни один из участников не знает первичного секретного ключа и только объединение вторичных ключей, которыми располагают участники, позволяет восстановить первичный ключ и выполнить дешифрование.
Практическая реализация идеи. Пусть первичный ключ k — это последовательность битов длины n. Тогда вторичный ключ первого участника
k1 = k Å x,
где x - шумовая последовательность двоичных символов длины n. Та же шумовая последовательность используется в качестве вторичного ключа другого участника k2 = x,. Следовательно. первичный ключ может быть вычислен суммированием по модулю 2 вторичных ключей участников:
k = k1 Å k2.
Схема обладает абсолютной секретностью ‑ оценка трудоемкости раскрытия первичного ключа каждым из участников составляет 2 n попыток дешифрования в худшем случае и 2 n- 1 — в среднем. Данная схема является частным случаем классического метода разделения секрета.
Другой долговременный проект правительства США, действующего на основании закона о компьютерной безопасности от 1987 г. связан с разработкой микросхемы Capstone. Поддержка проекта осуществляется национальным институтом стандартов и технологии (NIST) и агентством национальной безопасности (NSA).
В микросхеме Capstone помимо стандартных компонентов микросхемы Clipper реализованы алгоритм обмена открытыми ключами KEA (Key Exchange Algorithm), цифровая подпись DSA, хэш-функция SHA, алгоритм быстрого возведения в степень по модулю и генератор псевдослучайных чисел на основе источника чистого шума. Все криптоалгоритмы микросхемы Capstone имеют 80-битный секретный ключ. Основная область применения микросхемы Capstone — безопасность электронных сделок и платежей, а также ряд других сфер в рамках национальной информационной инфраструктуры.
Способ применения. Для защиты телефонных переговоров каждый из абонентов должен иметь специальное криптографическое устройство, содержащее Clipper, Capstone или любую другую аналогичную микросхему. В устройстве должен быть реализован протокол, позволяющий абонентам обмениваться секретным сеансовым ключом, например, с помощью известного метода цифрового конверта. Данный метод применяется в устройстве защиты телефонных переговоров TSD (Telephone Security Device), разработанном компанией AT&T. Устройство подключается встык между телефонной трубкой и основным блоком и активизируется нажатием кнопки.