Протоколы распределения ключевой информации
Под распределением ключевой информации будем понимать процесс или протокол, с помощью которого знание секретного ключа разделяется между двумя или более сторонами для последующего использования его в криптографических механизмах.
В свою очередь распределение ключей можно разграничить на ключевой транспорт и соглашения о ключах.
Ключевой транспорт (может быть реализован в виде протокола или механизма) - способ распределения ключей, позволяющий стороне, создавшей или получившей ключ, передать его другой стороне безопасным способом.
Соглашение о ключах (может быть реализовано в виде протокола или механизма) - способ распределения ключей, позволяющий разделить знание секрета между двумя (или более) сторонами в виде значения функции от требуемой к распределению информации, и при этом ни одна из сторон не сможет предварительно вычислить результирующее значение.
Кроме непосредственно механизмов распределения ключей существуют ключевые транспорты и соглашения о ключах, реализующие различные формы их обновления.
Протоколы распределения ключей в ходе распределения ключевого материала также требуют аутентификации, которая должна гарантировать, что только проверенная сторона получит доступ к распределяемой ключевой информации. Существуют и другие схемы распределения ключей, требующие предварительного распределения некоторого ключевого материала. Такие системы называются схемами с предварительным распределением ключей.
Названная группа протоколов противоположна схемам динамического распределения ключей, которые в ходе выполнения протокола вырабатывают общие ключи для пары или группы пользователей. Другими словами, динамические схемы не требуют предварительной передачи какого-либо ключевого материала. Их также часто называют системами распределения сеансовых ключей.
По уровню обеспечиваемой в ходе работы безопасности различие между предварительным и динамическим распределением ключей заключается в том, что динамическое распределение является стойким к атакам с выборкой известных ключей.
Многие протоколы распределения ключей в ходе своей работы требуют наличия третьей (доверенной) стороны, которая обычно называется доверенная третья сторона, доверенный сервер, центр распределения ключей, аутентификационный сервер, центр трансляции ключей и т.д. Особенности различных схем организаций доверенной стороны будут рассмотрены ниже.
Среди характеристик, по которым можно классифицировать схемы распределения ключей, можно выделить следующие:
• основа аутентификации, которой может быть аутентификация пользователей, аутентификация ключей и подтверждение приема ключа;
• взаимность аутентификации. Каждый из приведенных выше типов аутентификации, используемых в схемах распределения ключей, в свою очередь может относиться к односторонней и взаимной;
• наличие механизмов, гарантирующих уникальность и своевременность ключа (то есть ключ ранее не использовался, и доставка его была произведена в соответствии с принятыми в данной схеме распределения ключей договоренностями);
• контроль ключей. В некоторых схемах (ключевой транспорт) одна из сторон сама выбирает ключ. В других же (соглашения о ключах) ключ получается из распределенной информации, и одна из сторон обмена ключами может желать, чтобы выработанный ключ не мог быть предсказан другой стороной;
• эффективность. Различается по:
- количеству передаваемых по каналам связи сообщений;
- количеству битов в передаваемых сообщениях;
- сложности производимых каждой стороной вычислений;
- возможности производить предварительные вычисления;
• наличие третьей стороны. Этот параметр можно разделить на:
- требуется в режиме online;
- требуется в режиме offline;
- не требуется;
• наличие сертификатов открытых ключей;
• невоспроизводимость. То есть протокол, например, должен обеспечивать подтверждение приема ключа и фиксацию использованных ключей.
Ознакомившись с вышеперечисленными характеристиками, можно сделать вывод о том, насколько оправдано использование той или иной схемы распределения ключей. Однако оценка этих схем не заканчивается учетом представленных пунктов, необходимо также принять во внимание, насколько данная система распределения ключей справляется с функциями, возлагаемыми на нее со стороны механизмов управления ключами (но об этом позже).
При выборе некоторых предпочтительных характеристик схемы распределения ключей не следует также забывать о вопросах безопасности конкретной схемы. Как уже говорилось, все уязвимости криптопротоколов разделяются на три вида, поэтому особое внимание следует уделять используемым криптографическим алгоритмам. Даже в случае выбора надежных алгоритмов и правильного их применения существует возможность незаконного воздействия на схему распределения ключей, поскольку обычно сообщения передаются по незащищенным каналам передачи данных, где злоумышленник может действовать как пассивно, так и активно.
По отношению к схемам распределения ключей атаки, проводимые нарушителем, могут быть следующего рода:
• определение сеансового ключа; для чего используется информация, полученная с помощью перехвата информации в сети;
• тайное или скрытое участие в процессе инициирования обмена ключами от имени одной из сторон и совершение действий, направленных на изменение передаваемой информации;
• инициирование обмена ключевой информации с одной или более сторонами, в результате чего появляется возможность модифицировать передаваемый через нарушителя трафик;
• попытка выдать себя за доверенную сторону. Не имея возможности вычислить ключ, злоумышленник может попытаться получить таким образом доступ к информации, разделяемой в ходе обмена информацией.
В зависимости от характера доступной ему информации злоумышленник может быть классифицирован следующим образом:
• внешний нарушитель - имеющий доступ только к информации, передаваемой по каналам передачи данных (в рамках этой классификации не рассматривается нарушитель, пытающийся получить доступ к информации, используя свойства физической среды передачи и обработки ключевой информации);
• внутренний нарушитель - имеющий доступ к дополнительной информации (например, сеансовый ключ или часть некоторой секретной информации) на основе владения некоторыми привилегиями в системе обработки и хранения ключевой информации (например, физический доступ к закрытым ресурсам компьютера и т.д.);
• одноразовый внутренний нарушитель - получивший информацию случайным способом;
• постоянный внутренний нарушитель, то есть злоумышленник, имеющий постоянный доступ к критической информации.
По отношению к схемам распределения ключей нарушитель может ставить перед собой следующие цели:
• получить долговременный секретный ключ или текущий сеансовый ключ;
• получить ранее использовавшийся сеансовый ключ.
Анализируя цели нарушителя, можно заметить, что, хотя второй пункт и кажется бессмысленным, особенно по отношению к сеансовым ключам, и практически безопасным (опасность заключается только в получении доступа к ранее передаваемой информации, при этом сами сведения могут не представлять практического интереса), в зависимости от конкретных схем распределения ключей достижение противником поставленной цели может привести к негативным последствиям и для будущего ключевого обмена. Так, в протоколе Диффи-Хэлмана, одно время признававшимся безопасным, была обнаружена уязвимость, возникающая в случае компрометации ранее использовавшегося сеансового ключа. Подобные атаки на схемы распределения ключей называются атаками с известным ключом (known-key attack). Возможность проведения атаки с известным ключом может быть существенно снижена по следующим причинам:
• вероятность компрометации ранее использовавшегося сеансового ключа в системах с криптографией средней стойкости гораздо выше, нежели компрометация долговременного ключа;
• в некоторых системах в силу различных причин не обеспечивается хранение использованных сеансовых ключей или их надежное удаление.