По мере развития интеллектуальных и сетевых функций автомобиля безопасность бортовых сетей перестаёт быть опцией. Чтобы не бороться со сложной настройкой AUTOSAR SecOC и MACsec для Automotive Ethernet в разрозненных инструментах, в TSMaster есть модуль Security Management — единая точка конфигурации и активации протоколов безопасности.
Ключевые слова: управление безопасностью, протокол SecOC, PDU, протокол MACsec.
1. Обзор функции
Модуль Security Management служит для настройки и активации протоколов безопасности. Помимо стандартных протоколов поддерживаются пользовательские плагины безопасности. Сейчас поддерживаются AUTOSAR SecOC (Secure Onboard Communication) и MACsec (Media Access Control Security) для Ethernet.

2. Окно модуля в Windows
Главное окно модуля состоит из панели инструментов и рабочей области (рис. 2).

2.1. Архитектура: два уровня конфигурации
- Security Configuration (безопасность) — глобальные параметры: ключи, сертификаты и т.п.
- Project Configuration (проект) — привязка к конкретному проекту: какие сообщения или PDU защищаются.
Порядок работы: сначала выберите тип протокола и завершите его security-конфигурацию, затем импортируйте базу данных и выполните проектную настройку.
2.2. Security Configuration (глобальная вкладка)
Глобальная конфигурация общая для всех проектов на данном компьютере и не копируется вместе с проектом на другой ПК: ключи и сертификаты на другой машине нужно настроить заново. Поддерживаемые элементы:
- SecOC — алгоритм, формирующий для PDU код аутентичности. Принимающий узел проверяет его тем же алгоритмом и ключом; при несовпадении PDU отбрасывается. SecOC передаёт PDU открытым текстом, по уровню защиты выше E2E и на практике часто соседствует с E2E.
- MACsec — стандарт безопасности Ethernet по IEEE 802.1AE: шифрование на канальном уровне (включая IP-адреса), с обменом ключами, как в TLS. Конфигурации добавляются и удаляются через контекстное меню.
| Тип | Описание |
|---|---|
| SecOC, проверка по данным | Свежесть (freshness) берётся из самих данных PDU; ARXML должен содержать соответствующее определение для каждого PDU. |
| SecOC, проверка по метке времени | Свежесть на базе временной метки. Формат сообщений синхронизации не стандартизирован — обычно требуется плагин. |
| SecOC, проверка по синхронизации | Свежесть на базе счётчиков синхронизации и PDU. |
| Сертификаты | Пока поддерживается разбор части полей сертификатов X.509. |
| MACsec | Конфигурация MACsec для Ethernet; текущая реализация — программная. |
2.3. Project Configuration (вкладка проекта)
Проектная конфигурация задаёт конкретную политику безопасности: на каких каналах включён протокол и какие сообщения/PDU проходят проверку (рис. 3).

Назначение иконок панели инструментов показано на рис. 4.

3. MACsec
| Параметр | Описание |
|---|---|
| Имя | Имя конфигурации, должно быть уникальным; при совпадении применяется первая. |
| Режим MACsec | Integrity_Only — только целостность; Confidentiality_Offset_0/30/50 — целостность + конфиденциальность со смещением 0/30/50 байт. |
| Наборы шифров | Алгоритмы, допустимые при согласовании (мультивыбор). |
| Пропускать незащищённые кадры | Разрешить ли прохождение кадров без защиты MACsec. |
| Защита от задержки | Включение delay protection. |
| PSK: CKN / CAK | Идентификатор ключа соединения / ключ ассоциации соединения. |
| Защита от повтора | Включение replay protection и размер окна повтора. |
| Key Server | Политика сервера ключей: согласование по приоритету или принудительное назначение; приоритет MKA (меньше — выше приоритет стать сервером); MKA hello time и bounded hello time (мс). |
| Порт | Номер порта SCI; отправлять ли данные сразу после обнаружения партнёра. |
| Метка безопасности | Включать ли SCI в SecTAG; использовать ли флаг конечной станции. |
| Обновление ключей | Ограничения номера пакета (обычный и XPN), таймаут сессии (мс), ограничение полезной нагрузки. |
Стек MACsec от TOSUN использует протокол MKA для обмена ключами — прямое задание симметричного ключа пока не поддерживается. Сначала определите роль канала в MKA. Настройка канала проста: укажите Ethernet-канал, конфигурацию MACsec и MAC-адрес для MKA (MAC подтягивается из смежных настроек автоматически).
4. SecOC
4.1. Конфигурация SecOC
Поддерживаются три способа обработки свежести (freshness): часть данных, метка времени, синхронизирующее сообщение со счётчиком. Для свежести настраивается длина в битах; после вычисления кода аутентичности и свежесть, и код усекаются под пропускную способность (например, длину PDU в CAN). Усечение слегка снижает защищённость, но остаётся в допустимых пределах. Сумма длины усечённой свежести и длины усечённого кода определяет фактическую длину защищённого сообщения: SecOC берёт хвост свежести и начало кода аутентичности.

Ключи и алгоритм относятся к проверке. Если нужно несколько ключей, добавьте пары ключей через контекстное меню — система распределит их по Data ID из PDU; для неподошедших PDU используется общий ключ по умолчанию. Для режимов свежести нужны дополнительные настройки: формат отправки метки времени и синхросообщений протоколом не определён, поэтому может понадобиться плагин. ARXML может содержать конфигурацию свежести по метке времени, но не по синхросообщениям — её вводят вручную.
| Параметр | Описание |
|---|---|
| Длина усечённого кода аутентичности | В битах. |
| Длина усечённой свежести | В битах. Сумма с длиной усечённого кода — полная длина поля безопасности; должна укладываться в ограничения протокола. |
| Длина свежести | В битах. |
| Алгоритм | Алгоритм формирования кода аутентичности. |
| Ключи | Ключи проверки; при нескольких парах выбор идёт по Data ID защищённого PDU. |
4.2. Конфигурация канала SecOC
Перед настройкой защищённых PDU сохраните проект. Затем через контекстное меню импортируйте информацию из ARXML пакетно или введите вручную (рис. 6).

| Параметр | Описание |
|---|---|
| Имя PDU | Должно совпадать с именем PDU в базе данных. |
| Data ID | Используется в вычислении проверки и для поиска подходящего ключа. |
| Длина заголовка защищённого PDU | 0, 1, 2 или 4 байта. |
| Направление | PDU на отправку или на приём. |
| Максимальная длина PDU | Для динамических PDU — предварительное выделение памяти. |
5. Пример использования SecOC
В TSMaster есть готовый демонстрационный проект. Помните: security-конфигурация не переносится вместе с файлом проекта — на другом ПК создайте конфигурацию заново (можно без изменений, для справки).
В примере полная длина поля безопасности — 24 + 8 = 32 бита, то есть 4 байта с округлением вверх. ARXML-база резервирует это место под защищённый PDU. Если настроенная длина превышает зарезервированную, PDU ещё может отправиться, но при превышении предела канального уровня отправка не удастся (рис. 7).

Настройте канал в разделе «Аппаратное обеспечение → выбор канала» и загрузите базу данных в формате ARXML («Анализ → Базы данных → CAN»). SecOC работает на уровне PDU, поэтому база должна содержать определения PDU. После загрузки базы импортируйте определённые в ARXML защищённые PDU; в этом окне можно добавлять и править PDU, включая незащищённые (рис. 8).

Включите отправку нужных PDU в RBS-симуляции и наблюдайте обмен (рис. 9).

Совет: свежую версию TSMaster скачивайте с официального сайта (рекомендуется beta); при подключении к интернету обновление доступно прямо из программы. Техподдержка TOSUN: support@tosunai.cn (указывайте компанию и контакты).