OxL Справочник OxL
РусскийEnglish

13.1 TLS и криптография

  • Единственный криптобэкенд — AWS-LC (примитивы, TLS 1.3, QUIC), линкуется статически.

Определяется реализацией. Криптобэкенд (D-8055; DIV-024; D-4739). Выбор библиотеки — за реализацией; требования к протоколам (mTLS между узлами, TLS 1.3, AES-256-GCM, Ed25519 и т. д.) обязательны. Эта реализация использует библиотеку с API libssl, совместимую с OpenSSL ≥ 3.0 (параметр сборки OXL_TLS_BACKEND=openssl|awslc, по умолчанию openssl); сборка с AWS-LC не проверена.

  • Межузловой трафик — всегда mTLS. Отключение возможно только в профиле dev флагом --insecure-dev.
  • Встроенный CA в координаторе выдаёт узлам сертификаты с идентификатором oxl://<кластер>/role/<роль>/node/<id> в SAN и ротирует их (по умолчанию раз в 24 ч). Новый узел доказывает право на вход токеном OXL_JOIN_TOKEN или токеном сервисного аккаунта Kubernetes.
  • Внешние слушатели: expose 443 tls(acme: domain) — сертификат через ACME; tls(cert: path, key: path) — свой.

Определяется реализацией. ACME (D-8055; DIV-024; D-4739). Необязательная возможность. Эта реализация ACME не содержит: сертификат внешнего слушателя задаётся файлами (tls(cert: …, key: …), флаги --tls-cert, --tls-key). Запись tls(acme: …) в примерах Стандарта (V.5) — как в Стандарте; в приёмочных запусках её заменяют флагами.

  • Реализации СЛЕДУЕТ передавать шифрование ядру (kTLS) после хендшейка.

Определяется реализацией. kTLS (D-8055; DIV-024). Требование — СЛЕДУЕТ; эта реализация шифрует в пользовательском пространстве, kTLS не использует.

Определяется реализацией. QUIC и HTTP/3 (D-8055; DIV-024; D-4739). Необязательная возможность (std.net.Quic, HTTP/3 в std.http, II.1). Эта реализация транспорт QUIC не содержит.

  • Клиент к внешнему адресу: Users.connect(addr, tls: { ca: path?, pin: sha256"…"? }).

См. также

Исходник: docs/spec/oxl-standard.md