14.4.1. Концепції: довіра, ключі та формат файлів

Перш ніж переходити до команд, три вступні концепції, які застосовуються до всіх інших сторінок цього розділу.

14.4.1.1. Моделі довіри

TLS-з’єднання може забезпечити три зростаючі рівні надійності:

  • Лише шифрування – трафік зашифрований, але жодна зі сторін не доводить, хто вона є. Просто налаштувати (без перевірки сертифікатів), але вразливо до атаки «людина посередині». Використовуйте лише для локального тестування.

  • Автентифікація сервера – клієнт перевіряє сертифікат сервера відносно довіреного сертифіката (знайома модель HTTPS). OpenMV Cam може виступати як клієнтом (перевіряючи віддалений сервер), так і сервером (пред’являючи власний сертифікат).

  • Взаємна автентифікація (mTLS) – обидва кінці пред’являють і перевіряють сертифікати. Використовується там, де сервер також повинен бути впевнений у особі клієнта.

14.4.1.2. Вибір типу ключа

Збірка mbedTLS камери підтримує ECDSA на простих кривих NIST/SEC та RSA. Є три практичні способи створити ключ; рекомендується ECDSA P-256 (prime256v1):

  • ECDSA P-256 (prime256v1) – приблизно 128-бітна безпека з 256-бітним ключем. Крихітні ключі та підписи, і безумовно найшвидше рукостискання з підтримуваних варіантів на Cortex-M (операції на еліптичних кривих набагато дешевші, ніж операції з приватним ключем RSA). Повсюдно підтримується TLS-вузлами. Це найкращий баланс безпеки, швидкості, використання RAM/флеш-пам’яті та сумісності на вбудованому пристрої, саме тому він є стандартним вибором.

  • ECDSA P-384 (secp384r1) – приблизно 192-бітна безпека. Все ще на еліптичних кривих, тому досить ефективний, але більший і повільніший, ніж P-256, з запасом безпеки, який типові розгортання IoT не потребують. Використовуйте лише якщо довгостроковий сертифікат або вимоги відповідності цього вимагають.

  • RSA-2048 – приблизно 112-бітна безпека. Повністю сумісний, зокрема з дуже старими вузлами, але ключі та сертифікати RSA значно більші, а операції з приватним ключем RSA (що виконуються стороною, яка пред’являє сертифікат) є найповільнішим і найбільш пам’ятоємним варіантом на мікроконтролері. Використовуйте лише якщо вузол не підтримує ECDSA.

Примітка

Ключі Ed25519 / Curve25519 не підтримуються. Збірка mbedTLS OpenMV Cam не вмикає EdDSA або Curve25519, тому сертифікат або ключ Ed25519 не вдасться завантажити або виконати рукостискання. Використовуйте один із трьох варіантів вище.

14.4.1.3. Формат файлів: використовуйте DER

Збірка mbedTLS, що використовується OpenMV Cam, не включає розбір PEM, тому камера читає сертифікати та ключі лише у форматі DER (бінарне кодування). Більшість інструментів за замовчуванням видають формат PEM (текст base64), тому кожен файл, призначений для камери, спочатку конвертується в DER – кожен рецепт у цьому розділі завершується цим кроком конвертації. Вам знадобляться:

  • Приватний ключ – зберігається в таємниці, використовується тією стороною, яка пред’являє сертифікат.

  • Сертифікат – публічна частина, що пред’являється іншій стороні під час рукостискання.

  • Сертифікат CA / довіри – сертифікат, який завантажує перевіряюча сторона, щоб визначити, чи заслуговує вузол на довіру. Для самопідписаної конфігурації це просто власний сертифікат вузла.