Понятие мастер-ключаПри симметричном шифровании два участника, которые хотят обмениваться конфиденциальной информацией, должны иметь один и тот же ключ. Частота изменения ключа должна быть достаточно большой, чтобы у противника не хватило времени для полного перебора ключа. Следовательно, сила любой криптосистемы во многом зависит от технологии распределения ключа. Этот термин означает передачу ключа двум участникам, которые хотят обмениваться данными, таким способом, чтобы никто другой не мог ни подсмотреть, ни изменить этот ключ. Для двух участников А и B распределение ключа может быть выполнено одним из следующих способов. 1. Ключ может быть создан А и физически передан B. 2. Третья сторона может создать ключ и физически передать его А и B. 3. А и В имеют предварительно созданный и недолго используемый ключ, один участник может передать новый ключ другому, применив для шифрования старый ключ. 4. Если А и В каждый имеют безопасное соединение с третьим участником C, C может передать ключ по этому безопасному каналу А и B. Первый и второй способы называются ручным распределением ключа. Это самые надежные способы распределения ключа, однако во многих случаях пользоваться ими неудобно и даже невозможно. В распределенной системе любой хост или сервер должен иметь возможность обмениваться конфиденциальной информацией со многими аутентифицированными хостами и серверами. Таким образом, каждый хост должен иметь набор ключей, поддерживаемый динамически. Проблема особенно актуальна в больших распределенных системах. Количество требуемых ключей зависит от числа участников, которые должны взаимодействовать. Если выполняется шифрование на сетевом или IP-уровне, то ключ необходим для каждой пары хостов в сети. Таким образом, если есть N хостов, то необходимое число ключей [N (N - 1)]/2. Если шифрование выполняется на прикладном уровне, то ключ нужен для каждой пары прикладных процессов, которых гораздо больше, чем хостов. Третий способ распределения ключей может применяться на любом уровне стека протоколов, но если атакующий получает возможность доступа к одному ключу, то вся последовательность ключей будет раскрыта. Более того, все равно должно быть проведено первоначальное распространение большого количества ключей. Поэтому в больших автоматизированных системах широко применяются различные варианты четвертого способа. В этой схеме предполагается существование так называемого центра распределения ключей (Key Destribution Centre - KDC), который отвечает за распределение ключей для хостов, процессов и приложений. Каждый участник должен разделять уникальный ключ с KDC. Использование центра распределения ключей основано на использовании иерархии ключей. Как минимум используется два типа ключей: мастер-ключи и ключи сессии. Для обеспечения конфиденциальной связи между конечными системами используется временный ключ, называемый ключом сессии. Обычно ключ сессии используется для шифрования транспортного соединения и затем уничтожается. Каждый ключ сессии должен быть получен по сети из центра распределения ключей. Ключи сессии передаются в зашифрованном виде, используя мастер-ключ, который разделяется между центром распределения ключей и конечной системой. Эти мастер-ключи также должны распределяться некоторым безопасным способом. Однако при этом существенно уменьшается количество ключей, требующих ручного распределения. Если существует N участников, которые хотят устанавливать соединения, то в каждый момент времени необходимо [N (N - 1)]/2 ключей сессии. Но требуется только N мастер-ключей, по одному для каждого участника. Время жизни ключа сессии как правило равно времени жизни самой сессии. Чем чаще меняются ключи сессии, тем более безопасными они являются, так как противник имеет меньше времени для взламывания данного ключа сессии. С другой стороны, распределение ключей сессии задерживает начало любого обмена и загружает сеть. Политика безопасности должна сбалансировать эти условия для определения оптимального времени жизни конкретного ключа сессии. Если соединение имеет долгое время жизни, то должна существовать возможность периодически менять ключ сессии. Для протоколов, не поддерживающих соединение, таких как протокол, ориентированный на транзакции, нет явной инициализации или прерывания соединения. Следовательно, неясно, как часто надо менять ключ сессии. Большинство подходов основывается на использовании нового ключа сессии для каждого нового обмена. Наиболее часто применяется стратегия использования ключа сессии только для фиксированного периода времени или только для определенного количества транзакций.