Заголовок содержит информацию о признаке, который указывает на то, является ли кадр сообщения защищенным или нет. Кроме того, он может нести другую возможную информацию, например способ передачи данных. Типовой моделью передачи данных для сетей является модель точка-точка, но также могут использоваться другие модели, например широкополосная или многоадресная модели.
Адрес источника представляет собой сетевой адрес источника, который сгенерировал данный кадр сообщения. Адрес назначения представляет собой сетевой адрес целевой хост-системы. Это может быть IP-адрес, MAC-адрес или любая форма адресации, предусмотренная для специфической передачи данных.
Счетчик байтов показывает размер данных поля ADATA в байтах.
Данные приложения - это поле переменной длины, которое несет информацию о запрашиваемом сервисе.
Данные приложения далее делятся на несколько полей: защищенный заголовок (SHD), поле порядкового номера (SNF), счетчик байтов незашифрованной текстовой части данных (PBC), незашифрованные текстовые данные приложения (PADATA), код проверки блоков (BCC), холостое заполнение (PDG) и подпись проверки подлинности данных сообщения (MDAS). Следующие подклассы определяют каждое поле защищенного кадра. Некоторые поля могут быть необязательными (отмечены * на рисунке 6), что означает, что поле может отсутствовать, если данная опция не выбрана. Выбрана опция или нет, определяется в защищенном заголовке (SHD). Структура защищенного кадра показана на рисунке 6.
![]() Защищенный заголовок представляет собой 2-байтовое поле. На рисунке 7 показан формат данных в защищенном заголовке.
Биты 0 - 3 используются для указания индекса ключа для различных применений (администратор, пользователь, провайдер услуг и изготовитель). Поскольку для бытовой техники возможны несколько услуг, индекс ключа провайдера услуг может быть в диапазоне от (b3:b2:b1:b0) = 0:0:1:1 до 1:1:1:1.
Чтобы обеспечить обновление мастер-ключа с использованием алгоритма Диффи-Хеллмана, для указания данного типа услуги используется бит 4. Если значение бита 4 задано равным 1, это означает, что данный кадр защищенного сообщения защищен многопользовательским секретным значением, вычисленным алгоритмом Диффи-Хеллмана.
Биты 6 - 7 показывают, включена ли служба безопасности. Если значение бита 6 задано равным 0, это означает, что в такой передаче данных включена служба аутентификации. Если значение бита 7 задано равным 0, это означает, что включена служба конфиденциальности. Биты 6 и 7 не должны одновременно равняться 1, так как если заголовок кадра сообщения указывает на то, что передача данных защищена, но не указана служба аутентификации или конфиденциальности, это приведет к конфликту со значением, указанным в поле заголовка.
Поскольку протокол SCPM представляет собой протокол типа "запрос-ответ", бит 8 указывает на свойство сообщения. Значение 0 указывает на сообщение типа "запрос" от запрашивающей стороны, а значение 1 указывает на сообщение типа "ответ" от запрашиваемой стороны.
Биты 12 - 15 используются для указания результата обработки сообщения-запроса и действительны в сообщении-ответе. Бит 12 указывает на коррекцию проверки поля SNF, бит 13 указывает на коррекцию проверки аутентификации, а бит 14 указывает на коррекцию прав доступа.
Это 4-байтовое поле, которое содержит монотонно возрастающее значение счетчика (порядковый номер).
Данное поле является обязательным и всегда присутствует, даже если безопасная передача данных не включает службу антиповтора для данного кадра сообщения. Обработка поля порядкового номера - в ответственности запрашиваемой службы. Исходное значение поля SNF может быть определено двумя способами - методом случайного выбора (для холодного или горячего пуска узла) или методом чтения и использования порядкового номера, хранящегося в постоянной памяти (только для горячего пуска). Запрашиваемая служба увеличивает порядковый номер на 1 и передает его в инициатор службы после успешной проверки подлинности.
Инициатор службы использует значение поля SNF в следующем сообщении-запросе к той же запрашиваемой службе.
Счетчик PBC представляет собой 1-байтовое поле, указывающее количество байтов в незашифрованной текстовой части данных (PADATA).
Незашифрованные текстовые данные приложения PADATA представляют собой поле переменной длины. Данное поле является обязательным и представляет целое число байт по длине. Максимальная длина поля PADATA составляет 255 байт.
Использование механизма кода проверки блоков (BCC) предназначено для обнаружения ошибок. Код BCC представляет собой 1-байтовое поле, в котором хранится итоговое значение, генерируемое путем выполнения операций с исключающим ИЛИ по поперечному контролю четности каждого поля. Данные, проверяемые BCC, включают поля: SA, DA, BC, SHD, SNF, PBC и PADATA. Данный код проверки не является криптографической контрольной величиной.
При использовании алгоритма шифрования, требующего, чтобы незашифрованный текст имел длину, точно кратную определенному количеству байт, например размеру блока блочного шифра, поле PDG используется для заполнения незашифрованного текста (состоящего из полей: PBC, PADATA и BCC) до размера, требуемого алгоритмом. Инициатор службы может добавлять два байта холостого заполнения. Для расширенного стандарта шифрования AES инициатор службы может добавлять от 0 до 15 байт холостого заполнения. Включение поля PDG не является обязательным, но все реализации должны поддерживать генерирование и использование холостого заполнения. Если требуются байты поля PDG, но алгоритм шифрования не указывает содержание холостого заполнения, тогда по умолчанию применяется следующая обработка данных. Поле PDG заполняется значением 0x00.
Подпись MDAS представляет собой поле переменной длины, длина которого указывается выбранной функцией аутентификации. Например, если применяется стандарт AES CBC-MAC со 128-битным ключом (см. ИСО/МЭК 10116), подпись MDAS представляет собой 16-байтовые данные. Поле MDAS - это значение, вычисляемое по кадру сообщения протокола SCPM, исключая заголовок (HD) и данные проверки подлинности данных (MDAS). Поле MDAS не является обязательным и включается только в случае, если служба аутентификации была выбрана и указана в поле SHD.
Несмотря на то, что и конфиденциальность, и аутентификация являются необязательными, должна быть выбрана как минимум одна из данных служб, а значит оба алгоритма шифрования и проверки подлинности не должны быть одновременно отключены.
Используемый алгоритм шифрования указывается с распределением ключа. Протокол SCPM предназначен для использования с алгоритмами симметричного шифрования. Обязательным алгоритмом шифрования SCPM является AES. Зашифрованные поля включают поля: PBC, PADATA, BCC и PDG. На рисунке 8 показан пример с использованием алгоритма шифрования AES-CBC с длиной ключа 128-бит.
![]() со 128-битным ключом
Так же, как и для вышеупомянутых алгоритмов шифрования, алгоритмы проверки подлинности данных, используемые для вычисления данных аутентификации, должны быть специфицированы как алгоритмы с распределением ключей, которые принимают сообщение любого размера и генерируют выходное сообщение фиксированной длины. Обязательным алгоритмом проверки подлинности данных протокола SCPM является алгоритм AES. Он работает аналогично алгоритму шифрования и использует поле CBC-MAC для создания подписи, необходимой для проверки подлинности сообщения по блочному шифру. Данные аутентификации поступают из полей в кадре сообщения, а для получения необходимого значения существуют два варианта: 1) только аутентификация и 2) аутентификация после шифрования. На рисунке 9 показано, как вычисляются данные аутентификации. В случае выполнения только аутентификации данные аутентификации вычисляются от поля SA до поля BCC и вносятся в поле MDAS. В случае включения служб аутентификации и шифрования сначала выполняется обработка шифрования (из поля PBC в поле PDG), а аутентификация вычисляется от поля SA до зашифрованных данных и вносится в поле MDAS. Поле MDAS - это последние N байт защищенного кадра в целом, где N зависит от алгоритма аутентификации.
![]() Для некоторых алгоритмов аутентификации строка байтов, по которой вычисляется значение данных аутентификации, должна быть кратна размеру блока, определяемому алгоритмами. Если длина строки байтов не соответствует требованиям алгоритма по размеру блока, в конце кадра аутентифицированного сообщения добавляется скрытое холостое заполнение (после поля BCC, если выполняется только служба аутентификации, и после шифрования данных, если используются службы аутентификации и конфиденциальности) перед внесением в поле MDAS. Данные байты холостого заполнения должны иметь нулевое значение, а размер блока определяется требованиями алгоритма. Холостое заполнение не передается с кадром сообщения.
Все алгоритмы шифрования, используемые в SCPM, должны работать в режиме сцепления блоков шифртекста (CBC) (см. ИСО/МЭК 10116). CBC требует, чтобы количество данных, подлежащих шифрованию, было кратным размеру блока шифртекста. Требование выполняется путем добавления холостого заполнения в конце данных при необходимости, перед шифрованием. Холостое заполнение становится частью шифрованного текста кадра сообщения и удаляется инициируемой службой в ходе обработки входящего сообщения. Если данные уже кратны размеру блока шифра, холостое заполнение добавлять не требуется.
Шифры в режиме CBC также требуют наличия вектора инициализации (IV) во избежание генерирования нового ключа для каждого сеанса шифрования. Данный вектор инициализации генерируется из значения SNF и описан в 8.1.6.
Инициатор службы сохраняет значение поля SNF, связанное с инициируемой службой в предыдущем успешном ответе. Инициируемая служба контролирует/управляет полем SNF для каждого инициатора служб. Но для первого запроса или в случае потери значения поля SNF по каким-либо причинам, например из-за отключения питания, инициатор службы не сохраняет последовательный номер, и инициализация поля SNF должна выполняться вместе со службой аутентификации.
Сообщение-запрос включает произвольное значение поля SNF и отправляется на противоположную сторону, как показано на рисунке 10. Если не удается проверить поле SNF, запрашиваемая служба отвечает с использованием сгенерированного/сохраненного значения поля SNF, чтобы указать на ошибку проверки поля SNF. Инициатор службы получает значение поля SNF и отправляет сообщение об аутентификации с полученным значением поля SNF. Запрашиваемая служба проверяет сообщение и затем отправляет ответ об успешной аутентификации инициатору службы с новым значением поля SNF (увеличенным на 1).
![]() Применение режима CBC требует наличия четко заданного вектора инициализации (IV) N байт, при этом N зависит от алгоритма. Например, 16-байтовый вектор инициализации используется в шифровании алгоритмом AES-CBC с длиной ключа 128 бит. Данный вектор инициализации превосходит по значению защищенное (зашифрованное) информационное наполнение. Включение вектора инициализации в каждом кадре сообщения гарантирует, что возможно расшифрование каждого полученного кадра сообщения, даже если некоторые кадры сообщения выпали при передаче. Значение вектора инициализации является производным от поля SNF. Например, 16-байтовый вектор инициализации используется для шифрования алгоритмом AES-CBC. На рисунке 11 показана настройка значения вектора инициализации в случае 16-байтового IV.
![]() Обработка кадра защищенного сообщения зависит от того, какие службы были включены.
Следующие подклассы иллюстрируют, как кадры сообщения обрабатываются в трех комбинациях:
a) включена только проверка подлинности данных (аутентификация);
b) включена только конфиденциальность;
c) включены и проверка подлинности данных, и аутентификация.
Обмен защищенными сообщениями между инициатором службы и запрашиваемой службой соответствует обмену в одноранговой сети. Если указанный сетевой адрес назначения является широковещательным адресом, запрашиваемая служба должна отказаться от сообщения.
На рисунке 12 показана последовательность проверки подлинности данных между инициатором службы и запрашиваемой службой.
![]() использующие службу удостоверяющей подписи
Шаги (номера указывают последовательность) генерирования сообщения проверки подлинности данных от инициатора службы описываются следующим образом:
a) установка флага в поле SHD:
1) биты b0:b1:b2:b3 используются для указания индекса ключа, применяемого при передаче данных;
2) биты b6:b7 = 0:1 используются для указания на службу безопасности следующим образом: аутентификация включена, а шифрование выключено;
3) бит b8 = 0 используется для указания на то, что сообщение является запросом;
b) установка порядкового номера:
1) если порядковый номер из предыдущей передачи данных сохранился, используется именно он;
2) в противном случае (для первой передачи данных или если порядковый номер не сохранился), используется случайным образом выбранный произвольный порядковый номер, как описано в 7.2.3;
c) вычисление поля BCC;
d) вычисление поля MDAS по всему кадру сообщения, за исключением полей: HD и MDAS.
Проверка сообщения аутентификации запрашиваемой службой включает следующее шаги.
Шаг 1 Проверка порядкового номера.
Шаг 2 Проверка поля BCC.
Шаг 3 Проверка данных аутентификации.
Ответное сообщение готовится следующим образом, чтобы передать его инициатору услуг. Шаги (номера указывают последовательность) генерации ответных сообщений от запрашиваемой стороны описываются следующим образом:
e) установка флага в поле SHD:
1) биты b0:b1:b2:b3 используется для указания индекса ключа, применяемого при передаче данных, как и в соответствующем сообщении-запросе;
2) биты b6:b7 = 0:1 используется для указания на службу безопасности следующим образом: аутентификация включена, а шифрование выключено, как и в соответствующем сообщении-запросе;
3) бит b8 = 1 используется для указания на то, что сообщение является ответом;
4) запись результата ответа в биты: b12:b13:b14:b15 для указания на то, является проверка успешной или нет. Если проверка успешная, задаются следующие значения битов: b12:b13:b14:b15 = 0:0:0:0;
f) установка порядкового номера:
1) в случае успешного ответа ставится следующий порядковый номер (увеличенный на 1);
2) в случае ошибки ответа:
I) если порядковый номер, соответствующий данному инициатору службы, не существует, запрашиваемая служба должна поставить исходный порядковый номер в поле SNF в ответе инициатору службы;
II) в противном случае используется предыдущий отправленный порядковый номер;
g) установка данных информационного наполнения:
1) при ошибке проверки подлинности данных данные из запроса копируются и вставляются в поля PBC, PADATA и BCC из соответствующих полей сообщения-запроса;
2) при успешной проверке подлинности данных данные ответа и соответствующий размер данных вставляются в поля PADATA и PBC и вычисляется поле BCC;
h) вычисление поля MDAS по всему кадру сообщения, за исключением полей HD и MDAS.
На рисунке 12 показан пример кадров сообщений, использующих службу удостоверяющей подписи.
На рисунке 13 показана последовательность шифрования между инициатором службы и запрашиваемой службой.
![]() использующие службу шифрования
Шаги по генерированию шифрованного сообщения от инициатора службы включают следующее (номера указывают последовательность):
a) установка флага в поле SHD:
1) биты b0:b1:b2:b3 используются для указания индекса ключа, применяемого при передаче данных;
2) биты b6:b7 = 1:0 используются для указания на службу безопасности следующим образом: аутентификация отключена, а шифрование включено;
3) бит b8 = 0 используется для указания на то, что сообщение является запросом;
b) установка произвольного номера в поле SNF;
c) вычисление поля BCC;
d) шифрование:
1) добавление необходимых данных холостого заполнения;
2) если используется алгоритм режима CBC, данные вектора инициации, действующие как вводные данные для алгоритма шифрования, вычисляются по значению поля SNF;
3) шифрование результата (поля: PBC, PADATA, BCC и PDG).
Шаги проверки шифрованного сообщения запрашиваемой службой включают следующее (номер указывает последовательность).
Шаг 1. Расшифрование данных.
Шаг 2. Проверка поля BCC.
Сообщение-ответ подготавливается для передачи инициатору службы следующим образом:
a) установка флага в поле SHD:
1) биты b0:b1:b2:b3 используются для указания индекса ключа, применяемого при передаче данных, как и в соответствующем сообщении-запросе;
2) биты b6:b7 = 1:0 используются для указания на службу безопасности следующим образом: аутентификация выключена, а шифрование включено, как и в соответствующем сообщении-запросе;
3) бит b8 = 1 используется для указания на то, что сообщение является ответом;
4) запись результата ответа в биты b12:b13:b14:b15 для указания на то, является проверка успешной или нет. Если проверка успешная, задаются следующие значения битов - b12:b13:b14:b15 = 0:0:0:0;
b) установка произвольного значения в поле SNF;
c) установка данных информационного наполнения:
1) при ошибке проверки шифрованные данные копируются из сообщения-запроса;
2) при успешной проверке данные ответа вносятся в поле PADATA, а соответствующий размер данных вносится в поле PBC и вычисляется поле BCC, затем выполняется шифрование полей: PBC, PADATA, BCC и данных холостого заполнения.
Когда одновременно включены служба аутентификации и служба конфиденциальности, для шифрованного текста проверяется подлинность данных, а нешифрованный текст с подтвержденными данными не шифруется. Это означает, что для кадров исходящих сообщений первым выполняется шифрование, а для кадров входящих сообщений первой выполняется аутентификация.
На рисунке 14 показаны процессы в инициаторе службы и запрашиваемой службе.
![]() службу шифрования и службу проверки подлинности данных
Шаги по генерированию шифрованного сообщения с подтвержденными данными от инициатора службы включают следующее. Описанный ниже порядок обработки упрощает быстрое обнаружение и отклонение повторных пакетов получателем перед расшифровкой пакета, таким образом потенциально снижая воздействия DoS атак:
a) установка флага в поле SHD:
1) биты b0:b1:b2:b3 используются для указания индекса ключа, применяемого при передаче данных;
2) биты b6:b7 = 0:0 используются для указания на службу безопасности следующим образом: аутентификация и шифрование включены;
3) бит b8 = 0 используется для указания на то, что сообщение является запросом;
b) установка порядкового номера;
c) вычисление поля BCC;
d) шифрование:
1) добавление необходимых данных холостого заполнения;
2) если используется алгоритм режима CBC, данные вектора инициации, действующие как вводные данные для алгоритма шифрования, вычисляются по значению поля SNF;
3) шифрование результата (поля: PBC, PADATA, BCC и PDG);
e) вычисление данных аутентификации:
1) вычисление значения аутентификации от поля SA до шифрованных данных (включает поля: PBC, PADATA, BCC и PDG);
2) сохранение результата вычислений в поле MDAS.
Шаги по проверке зашифрованного и аутентифицированного сообщения включают следующее.
Шаг 1. Проверка значения поля SNF.
Шаг 2. Проверка значения поля MDAS.
Шаг 3. Расшифрование данных.
Шаг 4. Проверка значения поля BCC.
Сообщение-ответ подготавливается для передачи инициатору службы следующим образом. Шаги (номера указывают последовательность) генерирования сообщения-ответа от инициатора службы описываются следующим образом:
f) установка флага в поле SHD:
1) биты b0:b1:b2:b3 используются для указания индекса ключа, применяемого при передаче данных, как и в соответствующем сообщении-запросе;
2) биты b6:b7 = 0:0 используются для указания на службу безопасности следующим образом: аутентификация и шифрование включены, как и в соответствующем сообщении-запросе;
3) бит b8 = 1 используется для указания на то, что сообщение является ответом;
4) запись результата ответа в биты b12:b13:b14:b15 для указания на то, является проверка успешной или нет. Если проверка успешная, задается следующее значение битов - b12:b13:b14:b15 = 0:0:0:0;
g) установка порядкового номера запроса в поле SNF:
1) в случае успешного ответа, ставится следующий порядковый номер (увеличенный на 1);
2) в случае ошибки ответа;
I) если порядковый номер, соответствующий данному инициатору службы, не существует, запрашиваемая служба должна поставить исходный порядковый номер в поле SNF в ответе инициатору службы;
II) в противном случае, используется предыдущий отправленный порядковый номер;
h) установка данных информационного наполнения:
1) при ошибке проверки шифрованные данные полей: PBC, PADATA, BCC и PDG копируются из сообщения-запроса;
2) при успешной проверке данные ответа вносятся в поле PADATA, а соответствующий размер данных вносится в поле PBC и вычисляется поле BCC, затем выполняется шифрование полей: PBC, PADATA, BCC и данных холостого заполнения;
I) вычисление поля MDAS по всему кадру сообщения, за исключением полей: HD и MDAS.
Одним из преимуществ протокола SCPM является то, что механизм управления ключами также обеспечивается данным протоколом, то есть ключи, используемые в протоколе SCPM, им же и распределяются.
Для безопасной передачи данных изначально устанавливаются различные ключи, которые по-разному используются в зависимости от типа ключа. Генерирование/распределение ключей контролируется и управляется "узлом установки ключа" (KSN). За хранение данных распределенных ключей отвечают домашние устройства. Ключи служат как общие секретные данные инициаторов служб и запрашиваемых служб. Протокол SCPM предполагает, что в одном домене присутствует только один узел установки ключей (KSN), и только один узел KSN распределяет ключи по домашним устройствам. Помимо этого узел KSN управляет ключом между узлом KSN и домашними устройствами. Когда узел KSN направляет различные ключи на домашние устройства, данные ключи должны быть зашифрованы.
Узел KSN играет важную роль в доставке, обновлении и хранении всех ключей. Узел KSN должен быть очень надежным устройством. Типовые операции по авторизации узла KSN описаны в приложении А.
Ключ пользователя - это общие секретные данные всех устройств в домене. Безопасная передача данных обеспечивается благодаря практике использования ключа пользователя, когда все лица, живущие в доме, используют автоматизацию управления домашней сетью. Если устройство хочет присоединиться к сети (новое зарегистрированное устройство), требуется инициализация ключа пользователя на данном устройстве, что выполняется путем доставки защищенного ключа пользователя на новое зарегистрированное устройство узлом KSN.
Перед такой инициализацией узлы обмениваются между собой предварительной версией общих "секретных" данных посредством определенных внеполосных механизмов. Процессы показаны на рисунке 15, а шаги описаны ниже:
a) узел KSN аутентифицирует администратора посредством специализированных механизмов, например, с помощью механизма PIN;
b) в качестве предварительной версии общих "секретных" данных необходимо использовать серийный ключ (который назначается изготовителем прибора) для нового зарегистрированного устройства и передать его в узел KSN с помощью определенных независимых средств, например серийный ключ нового зарегистрированного устройства вводится в узел KSN;
c) подготовка инициализации ключа пользователя на новом зарегистрированном устройстве:
1) поскольку это первая передача данных между узлом KSN и новым зарегистрированным устройством, общий согласованный (надежный) порядковый номер между ними двумя отсутствует, поэтому устройство должно случайным образом сгенерировать исходное значение порядкового номера и поставить его в поле RNS, как описано в 7.2.3;
2) если устройство имеет режим исходной установки, его необходимо переключить в данный режим;
d) узел KSN выдает запрос в виде нешифрованного текста на новое зарегистрированное устройство, чтобы определить алгоритм шифрования/аутентификации, поддерживаемый серийным ключом;
e) новое зарегистрированное устройство отвечает узлу KSN с помощью поддерживаемого алгоритма шифрования/аутентификации в виде нешифрованного текста;
f) узел KSN генерирует/возвращает ключ пользователя, сохраняет его со связанными атрибутами (длина ключа и алгоритм) в поле PADATA, далее шифрует/проверяет подлинность кадра сообщения-запроса инициализации ключа пользователя с помощью предварительного общего серийного ключа и предварительно согласованного алгоритма (указанного выше в разделах 4 и 5), а затем передает защищенный кадр сообщения на новое зарегистрированное устройство;
g) новое зарегистрированное устройство получает и проверяет команду на инициализацию ключа пользователя по серийному ключу и предварительно согласованному алгоритму (указанному выше в разделах 4 и 5);
h) если проверка прошла успешно, новое зарегистрированное устройство подготавливает ответ на инициализацию ключа пользователя путем увеличения порядкового номера на 1, копирования зашифрованных данных и проверки подлинности сообщения по его серийному ключу, и затем передает его в узел KSN. В результате узел KSN владеет информацией о том, получило ли новое зарегистрированное устройство ключ пользователя должным образом;
i) узел KSN получает и проверяет ответ по инициализации ключа пользователя, возвращает новый порядковый номер и подтверждает, что обмен прошел успешно.
![]() ключа пользователя
Если узел KSN не получает ответ от нового зарегистрированного устройства, то он повторно передает защищенное сообщение с предыдущим переданным порядковым номером.
Обмен кадрами защищенного сообщения между узлом KSN и новым зарегистрированным устройством показан на рисунке 16. Сообщение - запрос инициализации ключа включает информацию защищенного заголовка (b0:b1:b2:b3 = 0:0:0:0 как индекс серийного ключа, b6:b7 = 0:0 как включенные аутентификация и шифрование, b8 = 0 как сообщение-запрос), порядковый номер и материалы ключа, содержащие ключ пользователя, длину ключа и связанный алгоритм, сохраненный в поле PADATA. Успешный ответ и ошибка ответа также показаны на рисунке 15. Различия между успешным ответом и ошибкой ответа следующие:
a) результат ответа будет указан в битах b12:b13:b14:b15 поля SHD;
b) если ответ успешный, значение поля SNF увеличивается на 1. В случае ошибки значение поля SNF остается таким же, что и в предыдущем ответе;
c) в случае ошибки ответа зашифрованные данные в сообщении-ответе копируются из сообщения-запроса, но данные аутентификации вычисляются от поля SA до шифрованных данных (включая поля: PBC, PADATA, BCC и PDG). В случае успешного ответа информация ответа вносится в поле PADATA.
![]() об инициализации ключа пользователя
Ключи провайдера услуг представляют собой общие "секретные" данные управляющих узлов и узлов устройств. Доставка ключей провайдера услуг на новое зарегистрированное устройство с протоколом SCPM также выполняется узлом KSN. Предварительная версия общих секретных данных, ключ пользователя, используется для защиты доставки. Процессы показаны на рисунке 17, а шаги описаны ниже:
a) Узел KSN проверяет подлинность настройки ключа провайдера услуг посредством специализированных механизмов, например с помощью PIN;
b) Узел KSN генерирует/возвращает ключ провайдера услуг, сохраняет его со связанными атрибутами (длина ключа и алгоритм) в поле PADATA, включает службы аутентификации и конфиденциальности для шифрования/проверки подлинности данных запроса инициализации ключа провайдера услуг с помощью ключа пользователя и связанного с ним алгоритма, а затем передает его на новое зарегистрированное устройство;
c) Новое зарегистрированное устройство получает и проверяет команду на инициализацию ключа провайдера услуг с помощью ключа пользователя и связанного с ним алгоритма;
d) Если проверка прошла успешно, новое зарегистрированное устройство подготавливает ответ по инициализации ключа провайдера услуг путем увеличения порядкового номера на 1, шифрования данных ответа (поля: PBC, PADATA, BCC и PDG) и добавления данных аутентификации (поле MDAS) с помощью ключа пользователя и передает их на узел KSN;
e) Узел KSN получает и проверяет ответ по инициализации ключа провайдера услуг, возвращает новый порядковый номер и подтверждает, что обмен прошел успешно.
![]() провайдера услуг
Если узел KSN не получает ответ от нового зарегистрированного устройства, узел KSN повторно передает защищенное сообщение с предыдущим переданным порядковым номером.
Обмен кадрами защищенного сообщения между узлом KSN и новым зарегистрированным устройством показан на рисунке 18 при указании индекса ключа в поле SHD, установленной в битах - b0:b1:b2:b3 = 0:0:0:1. Ключ провайдера услуг, длина ключа и связанный с ним алгоритм шифруются и сохраняются в поле PADATA. Состав сообщения-запроса и сообщения-ответа практически такой же, как и для инициализации ключа пользователя, за исключением различий в уровне применения и ключевых данных.
![]() ключа провайдера услуг
Рекомендуется, чтобы ключ изготовителя был производным от результата функции хеширования личной информации и данных о свойствах устройства.
Особая система для установки ключа изготовителя для защищенной передачи данных на узел не предусмотрена.
В протоколе SCPM конфиденциальность и проверка подлинности данных обеспечиваются посредством использования согласованного криптографического алгоритма, такого как AES. В настоящее время алгоритм AES считается стойким криптографическим алгоритмом, поскольку расчетное время взлома AES значительно больше, чем время взлома прочих алгоритмов, таких как DES. Длина ключей алгоритма DES составляет 56 бит. Ключи AES могут быть длиной 128, 192 и 256 бит. При стойкости AES в 128 бит число доступных ключей составляет в 10(**21) раз больше, чем предлагает алгоритм DES, а это означает, что, если существует метод, способный расшифровать ключ за одну секунду (хотя, на самом деле, "взломщики DES" обычно тратят несколько часов на расшифровку ключа DES), потребуется 149 триллионов лет на взлом 128-битного ключа AES, что непреодолимо с точки зрения современных технологий. Тем не менее, надежность защиты не может полностью зависеть от стойкости используемого алгоритма, на нее может влиять и человеческий фактор. В этом случае рекомендуется, чтобы периодически выполнялись операции по обновлению мастер-ключа во избежание возможных рисков нарушения безопасности. Однако разработчики могут найти баланс между эффективными практиками обеспечения безопасности и физическими ограничениями.
Приводятся два необязательных механизма обновления мастер-ключа. Один требует ручного вмешательства путем применения механизма инициализации ключа для распределения нового ключа, как описано в 8.1, другой предлагает автоматическое обновление мастер-ключа путем использования чувствительного к вычислениям алгоритма Диффи-Хеллмана (DH) для согласования нового ключа. Для бюджетных устройств, которые не обеспечивают использование алгоритма DH, потребуют определенного уровня защиты от возможных атак, периодическое обновление мастер-ключа может выполняться вручную аналогично инициализации ключа. Для прочих устройств, обладающих большей вычислительной мощностью, может использоваться механизм согласования ключа алгоритмом DH, обеспечивающий автоматическое обновление мастер-ключа в течение указанного периода времени. В целях безопасности общие "секретные" данные должны обновляться через заданные интервалы, включая как ключ пользователя, так и ключи провайдера услуг. Что касается мастер-ключа, то его обновление зависит от поставщиков.
Прежде чем описывать механизм обновления мастер-ключа на основе алгоритма DH, необходимо кратко описать протокол согласования ключа алгоритмом DH. Для протокола необходимы два системных параметра p и g. Оба они являются открытыми и могут использоваться всеми пользователями системы. Параметр p представляет собой простое число, а параметр g (обычно называемый генератором) является целым числом, меньше p, способным генерировать каждый элемент от 1 до p - 1 при умножении на самого себя несколько раз, по модулю равный простому числу p. Таким образом, узел KSN и заданное устройство могут использовать протокол согласования ключа алгоритмом DH, чтобы согласовать общий секретный ключ. Далее по тексту новый мастер-ключ будет использоваться для обозначения нового ключа пользователя или ключа провайдера услуг, а предварительный мастер-ключ будет использоваться для обозначения подлежащего обновлению ключа пользователя или ключа провайдера услуг. Для обеспечения безопасности генерирования ключа и протокола Диффи-Хеллмана важным условием являются достаточная длина ключа и непрогнозируемое случайное собственное значение. Шаги процедуры активации распределения нового мастер-ключа на устройство узлом KSN с использованием протокола SCPM, а также процедуры использования предварительной версии общих секретных данных, предварительного мастер-ключа, для аутентификации двух одноранговых узлов показаны на рисунке 19 и включают следующее:
a) узел KSN генерирует случайное значение закрытого ключа и для него вычисляет значение открытого ключа с использованием параметров p и g и закрытого ключа, после чего сохраняет вычисленное алгоритмом DH открытое значение ключа в поле PADATA, запускает службы аутентификации для проверки подлинности данных команды обмена с помощью предварительного мастер-ключа и затем передает открытое значение ключа на устройство;
b) устройство получает и проверяет команду обмена открытым значением ключа DH и значением предварительного мастер-ключа. Если проверка прошла успешно, устройство получает открытый ключ DH узла KSN;
c) устройство увеличивает порядковый номер на 1, подготавливает сообщение-ответ по обмену открытым значением ключа DH, аутентифицированное предварительным мастер-ключом, и передает его в узел KSN;
d) узел KSN проверяет ответ по обмену открытым значением и получает новый порядковый номер, обмен открытым значением ключа подтверждается;
e) устройство генерирует случайное собственное значение закрытого ключа и для него вычисляет значение открытого ключа с использованием параметров p и g и собственного значения, затем сохраняет вычисленное алгоритмом DH открытое значение в поле PADATA, включает службу проверки подлинности данных для аутентификации данных команды обмена открытым значением DH от предварительного мастер-ключа и затем передает ее на узел KSN;
f) узел KSN получает и проверяет команду обмена открытым значением ключа DH от предварительного мастер-ключа. Если проверка прошла успешно, узел KSN получает открытое значение ключа DH устройства;
g) узел KSN увеличивает порядковый номер на 1, подготавливает сообщение-ответ по обмену открытым значением ключа DH, аутентифицированное предварительным мастер-ключом, и передает его на устройство;
h) устройство проверяет ответ по обмену открытым значением ключа и получает новый порядковый номер, обмен открытым значением ключа подтверждается;
i) узел KSN вычисляет общий секретный ключ с помощью своего закрытого значения ключа и значения открытого ключа устройства. Устройство вычисляет общий секретный ключ с помощью своего закрытого значения ключа и открытого значения ключа узла KSN. Оба они извлекают одинаковое значение ключа по алгоритму DH, которое называют общим секретным ключом;
j) узел KSN генерирует/возвращает новый мастер-ключ, сохраняет его со связанными индексом ключа, размером ключа и алгоритмом в поле PADATA, запускает службы аутентификации и конфиденциальности для шифрования и проверки подлинности данных команды на обновление нового мастер-ключа с помощью общего секретного ключа, вычисленного по алгоритму DH, а затем передает его на устройство;
k) устройство получает и проверяет команду на обновление нового мастер-ключа от общего секретного ключа, вычисленного согласно алгоритму DH;
l) если проверки прошли успешно, устройство подготавливает ответ по обновлению нового мастер-ключа путем увеличения порядкового номера на 1, шифрования данных ответа (поля: PBC, PADATA, BCC и PDG) и добавления данных аутентификации (MDAS) от общего секретного ключа, после чего передает их на узел KSN;
m) узел KSN получает и проверяет ответ по обновлению нового мастер-ключа, возвращает новый порядковый номер и подтверждает, что обмен прошел успешно.
![]() под контролем узла KSN с использованием алгоритма DH
В перечислениях a) - h) два объекта (узел KSN и устройство) обмениваются открытым значением ключа DH с использованием предварительного мастер-ключа для взаимной проверки подлинности.
В пункте и) два объекта по отдельности вычисляют общий секретный ключ согласно алгоритму DH.
В пунктах к) - н) узел KSN распределяет новый мастер-ключ, защищенный вычисленным общим секретным ключом, а устройство проверяет его.
На рисунке 19 показано, что механизм обновления мастер-ключа состоит из трех круговых циклов передачи данных. Первый круговой цикл инициируется узлом KSN и аутентифицируется устройством для получения открытого значения ключа DH узла KSN. Второй круговой цикл инициируется устройством и аутентифицируется узлом KSN для получения открытого значения ключа DH устройства. После получения двумя объектами (узлом KSN и устройством) открытого значения ключа DH противоположного однорангового узла и использования алгоритма DH для вычисления общего секретного ключа третий круговой цикл выполняет передачу нового мастер-ключа.
На рисунке 20 показаны кадры сообщений первого кругового цикла, которыми обмениваются узел KSN и устройство. Команды по обмену открытым значением ключа включают информацию защищенного заголовка (b0:b1:b2:b3 = 0:0:0:1 как индекс ключа пользователя или 0:0:1:1 ~ 1:1:1:1 как индекс ключа провайдера услуг, b6:b7 = 0:1 для включенной аутентификации и выключенного шифрования, b8 = 0 для сообщения-запроса), индикатор, указывающий на то, что сообщение представляет собой обмен открытым значением ключа, а также включает открытое значение ключа DH, которое хранится в поле PADATA. Успешный ответ и ошибка ответа также показаны на рисунке 20. Различия между успешным ответом и ошибкой ответа следующие:
a) результат ответа будет указан в битах b12:b13:b14:b15 поля SHD;
b) если ответ успешный, значение поля SNF увеличивается на 1. В случае ошибки значение поля SNF остается таким же, что и в предыдущем ответе;
c) в случае ошибки ответа данные поля PADATA в сообщении-ответе копируются из сообщения-запроса, но данные аутентификации вычисляются от поля SA до шифрованных данных (включая поля: PBC, PADATA и BBC). В случае успешного ответа информация ответа вносится в поле PADATA.
![]() мастер-ключа. Обмен открытым значением ключа
Для второго кругового цикла кадр сообщения практически такой же, как на рисунке 20.
На рисунке 21 показаны кадры сообщений третьего кругового цикла, которыми обмениваются узел KSN и устройство. Команда на обновление мастер-ключа включает информацию защищенного заголовка (b0:b1:b2:b3 = 0:0:0:0 и b4 = 1 указывает на то, что сообщение защищено общим секретным ключом DH, вычисленным на предыдущем шаге, b6:b7 = 0:0 означает включенную проверку подлинности данных и включенное шифрование, b8 = 0 для сообщения-запроса), новый мастер-ключ, а также размер ключа и соответствующий алгоритм, хранящиеся в полях PADATA, PBC, PADATA, BCC и PDG, шифруются с помощью общего секретного ключа DH. Весь кадр сообщения, за исключением полей HD и MDAS, также аутентифицируется с помощью общего секретного ключа DH.
Успешный ответ и ошибка ответа также показаны на рисунке 21. Различия между успешным ответом и ошибкой ответа следующие:
a) результат ответа будет указан в битах b12:b13:b14:b15 поля SHD;
b) если ответ успешный, значение поля SNF увеличивается на 1. В случае ошибки значение поля SNF остается таким же, что и в предыдущем ответе;
c) в случае ошибки ответа зашифрованные данные в сообщении-ответе копируются из сообщения-запроса, но данные аутентификации вычисляются от поля SA до шифрованных данных (включая поля: PBC, PADATA, BCC и PDG). В случае успешного ответа информация ответа вносится в поле PADATA.
![]() мастер-ключа. Обмен ключом с использованием общего
секретного ключа DH
Обновление мастер-ключа в некоторых случаях может вызвать проблемы с синхронизацией. Например, задержка по времени между устройствами при получении нового мастер-ключа при обновлении мастер-ключа может потенциально привести к несовместимости общих секретных ключей.
На рисунке 22 показан способ обеспечения синхронизации общих "секретных данных" двух узлов, где узел KSN играет центральную роль в контролировании переходных состояний ключа по каждому устройству.
![]() для синхронизации общих "секретных данных" двух узлов
Узел KSN сохраняет список (в соответствии с порядком ввода серийных ключей), в котором регистрируются все управляемые им устройства, затем обновляет ключи и выдает запросы на переход состояния на управляемые им устройства в соответствии с порядком в списке.
Устройство должно хранить два ключа (предварительный мастер-ключ и новый мастер-ключ) одновременно, пока не будет обеспечено полное обновление нового мастер-ключа на всех устройствах.
Узел KSN передает команду нового мастер-ключа, защищенную службами аутентификации данных и шифрования с помощью предварительного мастер-ключа, на управляемое устройство. Когда устройство получает запрос на обновления нового мастер-ключа, оно может получить новый мастер-ключ из кадра защищенного сообщения с помощью предварительного мастер-ключа и поменять его текущее состояние с нормального режима на режим "ключ получен".
После того, как узел KSN подтвердит передачу запроса на обновление нового мастер-ключа всем управляемым устройствам, он будет передавать "запрос на переход состояния ключа: обновление", защищенный службами аутентификации данных и шифрования, используя предварительный мастер-ключ для всех устройств, которые могут принять запрос на обновление нового мастер-ключа. Когда устройство получит "запрос на переход состояния ключа: обновление", оно изменит свой текущий статус с "ключ получен" на "обновление".
Когда узел KSN подтвердит, что новый мастер-ключ установлен на управляемые им устройства, он направит "запрос на переход состояния ключа: нормальный режим", защищенный службами аутентификации данных и шифрования, используя предварительный мастер-ключ для всех управляемых им устройств для защиты устройств от хакеров. После получения и проверки запроса устройством оно изменит текущий статус с "обновление" на "нормальный режим".
На рисунке 23 показана схема изменения состояния ключа устройства. Три состояния: "нормальный режим", "ключ получен" и "обновление" описываются следующим образом:
a) нормальный режим: означает, что узел KSN уверен, что все управляемые им устройства получили самый новый ключ, этот ключ сохранен и используется в устройстве при связи с другими узлами;
b) ключ получен: указывает на то, что устройство получило запрос на обновление мастер-ключа от узла KSN и успешно приобрело новый мастер-ключ. Но из-за возможного асинхронного обновления мастер-ключа на всех устройствах в одном домене самый новый ключ может не сразу вступить в действие. Когда устройство выдает запрос о защищенной передаче данных, по-прежнему используется предварительный мастер-ключ. Но при интерпретации команды-запроса от других устройств может использоваться предварительный мастер-ключ либо новый мастер-ключ;
c) обновление ключа: узел KSN выдает запрос на переход состояния ключа: обновление на все устройства. Устройство переходит в данное состояние после получения запроса от узла KSN. В данном состоянии новый мастер-ключ используется, когда устройство выдает защищенную передачу данных. Но при интерпретации сообщения-запроса от других устройств может использоваться либо предварительный мастер-ключ, либо новый мастер-ключ;
d) нормальный режим: узел KSN выдает "запрос на переход состояния ключа: нормальный режим на все устройства. Устройство переходит в данное состояние после получения запроса от узла KSN. Действующим ключом является самый новый ключ.
![]() в другое состояние в ходе обновления мастер-ключа
под контролем узла KSN
В случае длительного отключения устройства от сети питания общие "секретные" данные (ключ пользователя или ключи провайдера услуг) данного устройства и других устройств могут быть несовместимы, то есть общие "секретные" данные, сохраненные в устройстве, могут быть устаревшими. Они перестанут являться текущими ключами или предыдущими ключами, которыми владеет домен.
Как описано в 8.2.2, узел KSN сохраняет список, в который заносятся управляемые им устройства. Узел KSN также сохраняет в списке информацию соответствующего этапа (стадии разработки) о ключах для каждого устройства. В случае подключения устройства к сети после включения электропитания оно выдает запрос на обновление мастер-ключа на узел KSN, поскольку неизвестно, устарели ли ключи, которыми оно владеет. Далее старый ключ будет использован для определения различий с предварительным мастер-ключом. Последовательность описана ниже и показана на рисунке 24:
a) устройство выдает запрос на обновление мастер-ключа (ключа пользователя или ключей провайдера услуг) на узел KSN, защищенный службами проверки подлинности данных и конфиденциальности с использованием старого ключа, сохраненного в устройстве. Индекс ключей указан в битах - b0:b1:b2:b3 поля SHD;
b) узел KSN получает и проверяет запрос, подготавливает сообщение, содержащее новый мастер-ключ и связанный с ним размер ключа и алгоритм, а затем передает сообщение (защищенное службами проверки подлинности данных и конфиденциальности с использованием старого ключа, используемого устройством) на устройство;
c) устройство получает и проверяет сообщение, на которое отвечает узел KSN, получает новый мастер-ключ и затем отвечает защищенным ответом узлу KSN.
![]() запрашиваемого устройством
Для обеспечения безопасности узел KSN может установить безопасный срок для каждого поддерживаемого поколения ключей. Узел KSN может сбрасывать ключи с истекшим безопасным сроком. Если старые ключи не сохранились в узле KSN, узел не сможет проверить запрос на обновление мастер-ключа, который защищен старым ключом и направлен с устройства. В этом случае должна быть повторно выполнена инициализация ключа (см. 8.1).
Поскольку запрос обновления мастер-ключа выдается с устройства после включения питания устройства и подключения к сети, проблемы синхронизации обновления мастер-ключа (описанные в 8.2.3) не возникнут, так как узел KSN уже выполнил обновление мастер-ключа для других устройств, подключенных к сети. Переход состояния ключа устройства становится проще, как показано на рисунке 25.
![]() в другое состояние в ходе обновления мастер-ключа
по запросу от устройства
Горячий пуск означает, что устройство снова включено в электросеть и подключается к домашней сети. Затем устройство выдает запрос на обновление мастер-ключа в узел KSN, защищенный старым ключом.
Состояние "ключ получен" указывает на то, что устройство получило команду на обновление мастер-ключа от узла KSN и успешно приобрело новый мастер-ключ. Самый новый ключ может не сразу вступить в действие. Старый ключ все еще может использоваться, когда устройство выдает защищенные сообщения. В этом случае при интерпретации команды-запроса от других устройств может использоваться старый ключ либо новый мастер-ключ.
Нормальный режим означает, что устройство отвечает посредством команды на обновление ключа в узел KSN. Действующим ключом является самый новый ключ.
(справочное)
Как объяснялось в разделе 9, узел KSN играет важную роль в доставке, обновлении и хранении всех ключей. Узел KSN должен быть очень надежным устройством. Однако как владелец дома может обеспечить надежность данного узла? На рисунке А.1 показан пример проверки подлинности узла KSN поставщиком KSN, когда новый узел устанавливается и подключается к сети Интернет. Доверительные отношения передаются за счет доверия владельца дома поставщику KSN, а поскольку подлинность KSN надежно проверена поставщиком, владелец дома не будет сомневаться в надежности узла KSN. Аутентификация между узлом KSN и поставщиком должна осуществляться с помощью интернет-технологий обеспечения безопасности, таких как протокол SSL.
![]() (справочное)
НАЦИОНАЛЬНОМУ СТАНДАРТУ РОССИЙСКОЙ ФЕДЕРАЦИИ
Таблица ДА
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/29/gost_38268.html
На правах рекламы:
|
|||||||||||||||||||||||||||||||||||||||||||||||||