В некоторых случаях способ централизованного управления ключами работать не будет. Возможно, не существует такого ЦС, которому доверяли бы оба абонента. Возможно, абоненты доверяют только своим друзьям или вообще никому не доверяют.
• « Демократическая » схема (или распределенное управление ключами), применяется в программе PGP. Все участники равноправны, и каждый может подписать ключ любого участника. Проблема подлинности открытого ключа решается с помощью поручителей. Поручители - это абоненты криптосети, которые подписывают открытые ключи своих друзей, партнеров и т.п.
Например, когда Боб создает свой открытый ключ, он передает копии ключа своим друзьям. Они знают Боба, поэтому каждый из них подписывает ключ Боба и выдает Бобу копию своей подписи. Теперь, когда Боб предъявляет свой ключ чужому человеку, например Алисе, он npедъявляет его вместе с подписями этих поручителей. Если Алиса также знает этих поручителей и доверяет им, у нее появляется основание для доверия Бобу. Для предотвращения подмены ключа, прежде чем подписывать, поручитель должен быть уверен, что ключ принадлежит именно Бобу.
|
|
Выгода этого механизма - отсутствие ЦС, которому каждый должен доверять. А отрицательной стороной является отсутствие гарантий того, что Алиса, получившая открытый ключ Боба, знает кого-то из поручителей, и, следовательно, нет гарантий, что она поверит в подлинность ключа.
Предлагается доверять ключу участника А, если существует цепочка сертификатов
C X0 X1,C X1 X2, …, CXkA.
При этом следует быть уверенным в ключе Х0 и доверять всем Х i подписывать ключи. Для перестраховки длина цепочки не должна превышать некоторое небольшое значение, например 3.
Остается единственная проблема — откуда берется первый открытый ключ в цепочке. Этот ключ должен быть передан по защищенному каналу — при личном контакте, специальной почтой, в виде подписанного документа с печатью и т. д. Можно также передать ключ по электронной почте, а по защищенному каналу — только отпечаток ключа, результат вычисления криптографически стойкой хэш-функции от открытого ключа.
Для получения сертификата в начальный момент времени требуется организация секретного канала для передачи в ЦС открытого ключа и идентифицирующей информации.
При замене открытого ключа необходимая для получения сертификата информация подписывается на старом секретном ключе (если он не скомпрометирован) и передается в ЦС по открытому каналу. Результат проверки подписи является критерием для принятия решения о смене открытого ключа и выдаче нового сертификата.
Интересное применение можно найти для сертификата вида
|
|
CАA=SА("A"||время||kA).
В централизованной схеме он используется для ключей, принадлежащих выделенным участникам, что довольно бессмысленно. В «демократической» схеме такой сертификат является сертификатом отзыва ключа и публикуется владельцем ключа, если закрытый ключ был разглашен или похищен. Идея состоит в том, что только владелец ключа или похититель могут создать такой сертификат.
Компрометация ЦС, так же как и в случае ЦРК, приводит к компрометации всей сети, однако предлагаемая асимметричная схема позволяет снять нагрузку с ЦС, так как количество запросов на получение сертификатов существенно меньше, чем количество запросов на установление защищенного режима обмена информацией на уровне абонентов.
Атаки на ЦС
Поскольку ЦС играет ведущую роль в инфраструктуре криптосети, рассмотрим некоторые простые атаки на ЦС на примере асимметричной схемы управления ключами.
1. Получение сертификата на чужое имя. Предположим, Боб желает выдать себя за Алису. Если Боб умеет подписывать сообщения от лица Алисы, он может, например, распорядиться о снятии определенной денежной суммы со счета Алисы в банке. Для этого Боб генерирует пару ключей (открытый и секретный) и посылает открытый ключ (по секретному каналу) в ЦС с утверждением, что он является Алисой. Боб достигнет цели, если ему удастся обмануть ЦС и получить сертификат на имя Алисы.
Для предотвращения подобной атаки необходимо точно идентифицировать личность запрашивающего. ЦС может, например, потребовать личного присутствия и/или предъявления удостоверения личности. Каждый ЦС может иметь свою процедуру аутентификации, а также методы хранения копий сертификатов пользователей. Очевидно, что надежная организация служб ЦС определяет надежность криптосети в целом.
2. Раскрытие секретного ключа ЦС. Злоумышленник, раскрывший секретный ключ ЦС, может подделывать сертификаты. Для предотвращения утечки секретной информации ЦС должен хранить свой секретный ключ, а также подписанные на нем сертификаты в специальном сверхнадежном, ударопрочном, защищенном от электромагнитных излучений, электронном приборе с энергонезависимой памятью, так называемом Устройстве Подписи Сертификатов (УПС).
Известно, что силовая атака на криптосистему RSA, введенную рядом стандартов и широко используемую для шифрования и аутентификации, сводится к задаче разложения большого двусоставного модуля на простые сомножители. Причем модуль известен и входит в открытый ключ ЦС. Данное обстоятельство вынуждает ЦС использовать сверхдлинные ключи (от 1000 бит и более) и регулярно их обновлять.
Периодичность процедуры обновления ключей в иерархической структуре ЦС [7] увеличивается в направлении от верхних уровней иерархии к нижним. Иными словами, частая смена ключей в ЦС верхнего уровня может быть непрактична, так как влечет за собой смену ключей у большого числа пользователей криптосети.
3. Подкуп сотрудников ЦС. Другая модель атаки рассматривает возможность подкупа Боба со стороны Алисы. В этой ситуации Боб является сотрудником ЦС, и цель подкупа заключается в получении Алисой сертификата на имя Фреда. Получив сертификат, Алиса сможет посылать сообщения от имени Фреда, и все эти сообщения, в силу легальности выданного сертификата, будут адекватно восприниматься другими пользователями криптосети.
Таким образом, для достижения цели необходимо объединение двух или более злоумышленников (коллаборативная атака). Учитывая возможность подобной атаки на ЦС, применяют специальный метод разграничения доступа к УПС, основанный на известной криптографической технике разделения секрета. Так, например, для доступа к УПС может потребоваться участие нескольких сотрудников ЦС.
|
|
Процедура предполагает предъявление специальных секретных ключей (теней основного ключа доступа), проверку их аутентичности и разрешение доступа в том случае, если число предъявленных теней не меньше заданного порогового значения. Необходимо, однако, помнить, что если поток запросов на выдачу сертификатов контролируется одним человеком, то описанная выше атака может быть успешной.
4. Подделка старых документов. Другая атака заключается в том, что Алиса осуществляет силовую атаку для подбора модуля, входящего в состав открытого ключа ЦС. В результате по истечении определенного времени (например 15 лет) ей удается разложить модуль и восстановить старый секретный ключ ЦС. Срок действия этого секретного ключа уже истек, однако Алиса может подделать сертификат 15-летней давности, заверяющий ложный открытый ключ Боба. В результате Алиса может подделать любой документ с подписью Боба 15-летней давности.
Обычно после истечения определенного срока, например двух лет с момента подписи, электронный документ становится недоступным. Однако существует ряд ситуаций, в которых электронные документы должны надежно храниться длительное время (долгосрочные контракты и т.д.), при этом должна быть обеспечена возможность проверки их аутентичности и целостности.
Один из способов заключается в использовании помимо обычных ключей специального сверхдолговременного ключа. Такие ключи имеют существенно больший модуль и хранятся надежнее, чем все остальные. Если действие скерхдолговременного ключа истекает через 50 лет, то все подписанные на нем документы должны иметь такой же срок действия.
При этом возникает проблема, связанная с неограниченным ростом списка аннулированных сертификатов, поскольку сверхдолговрсменные ключи, так же, как и все остальные, могут быть скомпрометированы и должны храниться в течение срока их действия.
Для устранения указанного недостатка предлагается регистрировать сверхдолговременные ключи с помощью стандартной процедуры для обычных ключей, например со сроком действия в течение двух лет. По истечении двухгодичного периода сверхдолговременные ключи, если они не были скомпрометированы, должны быть ресертифицированы на следующие два года. Теперь скомпрометированый сверхдолговременный ключ должен храниться в САС в течение двух лет, а не пятидесяти. При этом, однако, злоумышленник может добиться своего, вмешиваясь в работу службы единого времени с целью изменения периодичности процедуры ресертификации.
|
|
Проблема может быть решена введением специальной службы временных меток (СВМ). Для этого все долговременные электронные документы должны регистрироваться со специальными и цифровыми метками, выдаваемыми СВМ. Цифровые метки позволяют удостовериться в том, что срок действия ключа (ключей), на котором был подписан долговременный документ, не истек. Кроме того, цифровые метки позволяют устанавливать законность долговременных электронных документов даже в том случае, когда секретный ключ был скомпрометирован после того, как документ был подписан.
Для того, чтобы проставить цифровую метку на подписанном электронном документе, нужно хэшировать этот документ и послать полученное значение в СВМ. В ответ получаем заверенную подписью СВМ цифровую метку, состоящую из полученного от нее значения хэш-функции, времени и даты, проставленных СВМ.
Хэширование позволяет не раскрывать содержимое документа (хэш-функцию невозможно обратить) в процессе взаимодействия с СВМ. Очевидно, что передача информации между пользователем и СВМ осуществляется с учетом требований безопасности и может быть проконтролирована на целостность и аутентичность. В дальнейшем для доказательства даты и времени подписи документа Алиса предоставляет сам документ и цифровую метку.
Проверяющий вычисляет значение хэш-функции представленного документа, сравнивает полученное значение с тем, которое хранится в цифрой и метке, и затем проверяет заверяющую цифровую метку подпись СВМ. Доказательство будет принято при совпадении значений хэш-функции и валидности цифровой подписи СВМ.
В качестве обобщения сказанного о распределении ключей следует сказать следующее. Задача управления ключами сводится к поиску такого протокола распределения ключей, который обеспечивал бы:
² возможность отказа от центра распределения ключей;
² взаимное подтверждение подлинности участников сеанса;
² подтверждение достоверности сеанса механизмом запроса-ответа;
² использование при обмене ключами минимального числа сообщений.
Обновление ключей
Распределение ключей при частой их замене - сложная практическая задача. Особенно актуальна эта проблема при распределении секретных ключей без использования ЦРК. Оригинальное решение проблемы - использование "блуждающих ключей". Идея метода достаточно проста. После того, как ключ использован в одном сеансе по некоторому правилу, известному и отправителю, и получателю, он сменяется другим. Если правило смены ключей аккуратно соблюдается и отправителем, и получателем, то в каждый момент времени они имеют одинаковый ключ. Постоянная смена ключа затрудняет раскрытие информации злоумышленником.
Основная задача в реализации этого метода — выбор эффективного правила смены ключей. Наиболее простой путь — генерация случайного списка ключей. Смена ключей осуществляется в порядке списка. Однако очевидно, что список придется каким-то образом передавать. Необходимо, однако, помнить, что секретность нового ключа определяется секретностью старого. Если злоумышленнику удалось раскрыть старый ключ, он сможет выполнить обновление ключей самостоятельно.
Другой вариант — использование математических алгоритмов, основанных на так называемых перебирающих последовательностях. На множестве ключей путем одной и той же операции над элементом получается другой элемент. Иногда такую схему называют схемой обновления ключа. Для этого необходима хэш-функция, известная и Алисе, и Бобу. Если Алиса и Боб применят к общему ключу одну и ту же хэш-функцию, они получат одинаковый результат. Затем они могут выбрать из результата нужные им биты и создать новый ключ.
Наиболее доступным является использование полей Галуа. За счет возведения в степень порождающего элемента можно последовательно переходить от одного числа к другому. Эти числа принимаются в качестве ключей. Ключевой информацией в данном случае является исходный элемент, который перед началом связи должен быть известен и отправителю, и получателю.
Надежность таких методов должна быть обеспечена с учетом известности злоумышленнику используемого правила смены ключей.
Интересной и перспективной задачей является реализация метода "блуждающих ключей" не для двух абонентов, а для достаточно большой сети, когда сообщения пересылаются между всеми участниками.
Накопление ключей
Под накоплением ключей понимается организация их хранения, учета и удаления. Поскольку ключ является самым привлекательным для злоумышленника объектом, открывающим ему путь к конфиденциальной информации, то вопросам накопления ключей следует уделять особое внимание.
Секретные ключи никогда не должны записываться в явном виде на носителе, который может быть считан или скопирован. Каждая информация об используемых ключах должна храниться в зашифрованном виде. Ключи, зашифровывающие ключевую информацию, называются мастер-ключами. Желательно, чтобы мастер-ключи каждый пользователь знал наизусть и не хранил их вообще на каких-либо материальных носителях, но это не всегда возможно.
Стандарт ANSI X9.17 определяет два типа ключей: ключи шифрования ключей и ключи данных. На ключах шифрования ключей шифруются ключи данных при передаче по открытым каналам. На ключах данных шифруются сами сообщения.
Очень важным условием безопасности информации является периодическое обновление ключевой информации в ИС. При этом переназначаться должны как обычные ключи, так и мастер-ключи. Ключи шифрования ключей должны распределяться вручную и меняются достаточно редко, так как размер шифруемых сообщений незначителен. Однако необходимо помнить, что при компрометации ключа шифрования ключей будут скомпрометированы все зашифрованные на нем ключи данных. Смена ключей данных происходит гораздо чаще. В особо ответственных ИС обновление ключевой информации желательно делать ежедневно.
В достаточно сложной ИС один пользователь может работать с большим объемом ключевой информации, и иногда даже возникает необходимость организации баз данных ключевой информации. Такие базы данных отвечают за принятие, хранение, учет и удаление используемых ключей.
Другим решением проблемы распределения является разбиение ключа на несколько различных частей и передача их по различным каналам. Если противник соберет все части, кроме одной, он все равно не сможет раскрыть ключ (при условии, что трудоемкость силовой атаки при восстановлении недостающей части ключа достаточно велика). Вопрос обновления ключевой информации связан и с третьим элементом управления ключами - распределением ключей.
1.42. Хранение ключей
Можно хранить ключ в памяти пользователя. Однако это не слишком надежно. Другое решение — хранение ключа в виде карточки с магнитной полосой, пластикового ключа с встроенной микросхемой или интеллектуальной карточки. Пользователь может ввести свой ключ в систему, вставив физический носитель в считывающее устройство, встроенное в автономное шифрующее/дешифрующее устройство или подключенное к компьютеру. Практически любой способен осознать, что такое физический ключ, каково его значение и как его защитить. Придание криптографическому ключу некоторой физической формы делает хранение и защиту такого ключа интуитивно понятными. Xотя пользователь может использовать ключ, он не знает его и не может его скомпрометировать. Он может использовать его только тем способом и только для тех целей, которые определены вектором контроля.
Разумный способ заключается в разделении ключа на две половины, одна из которых хранится в терминале, а вторая записана в память портативного носителя. Потеря носителя не приводит к компрометации криптографического ключа. Компрометация также невозможна при несанкционированном доступе к терминалу. Следовательно, компрометация носителя или терминала ничего не дает — для компрометации ключа необходимо заполучить обе его части.
Ключи, которые трудно запомнить, можно хранить зашифрованными. Например, секретный ключ RSA может быть зашифрован ключом DES и записан на жесткий диск. Для восстановления RSA-ключа пользователь должен выполнить DES-дешифрование. В идеале ключ никогда не должен оказываться вне шифрующего/дешифрующего устройства в открытом виде. Эта цель не всегда достижима, но к этому нужно стремиться.