UDS SecurityAccess: як seed-key challenge захищає ECU і чому "хакнути" не так просто
Що таке UDS SecurityAccess ($27), як працює seed-key challenge, чому одні операції (read PID) відкриті, а інші (write, flash) вимагають авторизації, і що дозволено законно.
Прочитати Coolant Temp через OBD-II — може будь-який ELM327 без пароля. А ось написати новий VIN, скинути adaptation, зробити калібровку ADAS — не вийде. Різницю забезпечує UDS SecurityAccess ($27) — механізм seed-key challenge. У пості — коротко як він працює і чому легально «зламати» його не завжди правильно.
Що таке SecurityAccess
UDS (ISO 14229) визначає service $27 SecurityAccess — механізм авторизації клієнта перед виконанням потенційно небезпечних операцій. Логіка:
- Клієнт (сканер): «Дай мені seed для level X»
- ECU: генерує 16-32-byte random
seed, відправляє - Клієнт: обчислює
key = f(seed, secret)деfіsecret— секретний алгоритм виробника - Клієнт: «Ось мій key»
- ECU: перевіряє (сам обчислює той самий
keyз того самогоseed), якщо співпадає — надає доступ
Секрет — у виробнику, зашитий у диагностичне ПЗ (VW ODIS, BMW ISTA, Mercedes Xentry).
Що вимагає SecurityAccess
Не вимагає (default access):
- Read Data (
$22) — стандартні PID - Read DTC (
$19) - Clear DTC (
$14) — у більшості випадків open - Live monitoring
Вимагає SecurityAccess:
- Write Data (
$2E) — прописування VIN, coding, IMA-код форсунок - Routine Control (
$31) — калібровка ADAS, DPF forced regen, ABS bleed - ECU Reset (
$11) - Upload/Download (
$34-$37) — перепрошивка ECU - Communication Control (
$28) — вимкнення CAN-повідомлень
Рівні SecurityAccess
Виробники визначають кілька рівнів:
- Level 0 — default (Read-only)
- Level 1 — Basic Service (Reset, clear adaptations)
- Level 3 — Programming (flash ECU)
- Level 5 — Development (calibration parameters)
Кожен рівень — свій seed-key алгоритм. Vice-versa: Level 3 не дає Level 5 (навіть якщо ECU відповідає на seed level 3, це не значить що ти можеш flash-переpisати calibration tables).
Реверс-інжиніринг seed-key
Легально можна:
- Дослідити свою власну машину для DIY-модифікацій
- Публікувати research (Bosch, Chris Valasek — well-known researchers)
НЕ можна:
- Продавати «скидання пробігу» через SecurityAccess bypass — odometer fraud незаконно
- Обхід SecurityAccess для disabling anti-theft (стаття у законодавстві багатьох країн)
- Публікувати конкретні seed-key алгоритми виробників (може бути DMCA takedown, hardware maker sues)
Приклади seed-key алгоритмів
Публічно відомі (leaked / reverse-engineered):
- VW / Audi Level 3 — старі MED17: XOR-shift на 5 байт (взломано в 2009)
- BMW E9x DDE (дизель ECU): CRC-16 based (взломано ~2015)
- Mercedes W204 EIS — HMAC-SHA1 з фіксованим секретом (частково взломано)
- Modern (2020+): AES-128 з rotating key — практично не зламуємо
Що OBD-II дає без SecurityAccess
Все, що вам зазвичай потрібно як власнику авто:
- Читання DTC + Freeze Frame (див. Freeze Frame пост)
- Live parameters — LTFT, MAP, MAF, O2 (див. Best PIDs пост)
- Mode 06 — self-monitoring test results (див. Mode 06 пост)
- Read Coding info (без запису)
- Clear codes (в межах Mode $14)
Це ~95% диагностичного обсягу.
Що потребує SecurityAccess (тільки офіційні сервіси)
- Прошивка ECU
- Прописування VIN (наприклад, після заміни ECU)
- IMA-код форсунок (див. injector coding)
- Калібровка ADAS (див. ADAS пост)
- Активна регенерація DPF (принаймні на VAG)
Що робить Car Diagnostics
Ми не робимо SecurityAccess bypass — це:
- Може бути незаконним
- Не підтримується стандартним ELM327
- Ризик закирпичити ECU
Наш підхід — максимум того, що доступно без SecurityAccess: 95% диагностики користувача покрито. Coding, flash, ADAS calibration — тільки в спеціалізованих сервісах з ODIS / ISTA / Xentry.
Спробуйте на безкоштовному тарифі — підключіть ELM327-адаптер. Все без SecurityAccess — доступно одразу. Deep дигностика через Mode 22 (теж без Security) — на платному тарифі.