Почему для инициатора и ответчика для шифрования генерируются разные ключи?
Что ж, некоторые алгоритмы шифрования (например, GCM и ChaCha/Poly1305) небезопасны, если несколько шифровальщиков могут использовать одни и те же ключи. Этим можно управлять (в приведенных выше примерах, убедившись, что две стороны используют разные одноразовые номера, например, инициатор всегда использует четные одноразовые номера, а отвечающая сторона всегда использует нечетные одноразовые номера), однако для каждого такого алгоритма шифрования потребуется свой метод. Значительно проще и надежнее иметь отдельные клавиши для разных направлений.
Каково явное использование различных ключей, полученных из SKEYSEED, в IKE?
SKd — этот ключ используется при получении «дочерних SA», то есть ассоциаций безопасности, которые создаются в результате этого. Это могут быть как IKE SA, так и IPsec SA.
SKe — это ключи, используемые для шифрования сообщений IKE.
SKa — это ключи, используемые для добавления защиты целостности к сообщениям IKE (при условии, что согласовано некоторое явное преобразование целостности, такое как HMAC или CMAC; если используется комбинированный режим, такой как GCM, он не используется и имеет нулевую длину) .
SKp — они используются как часть формулы, используемой для вычисления/проверки полезной нагрузки AUTH, которая направлена на проверку личности другой стороны (в отличие от ключей SKa, которые нацелены на проверку того, что сообщение отправлено с другой стороны). стороной является полученное сообщение).