Skip to content

Архитектура безопасности и контроль доступа ​

Безопасность является фундаментальным элементом RUSEON Core. Сервер спроектирован для надёжной защиты видеопотоков IP-камер, предотвращения несанкционированного доступа к архиву, гибкого управления правами пользователей и защиты от сетевых атак.


1. Аутентификация и токены JWT ​

В RUSEON Core используется аутентификация на основе токенов JSON Web Tokens (JWT) без хранения состояния на сервере:

  • Алгоритм: HMAC-SHA256 (HS256) с криптографически стойким ключом длиной от 32 символов.
  • Срок действия: Настраиваемое время жизни токена (по умолчанию: 24 часа).
  • Формат заголовка: Authorization: Bearer <ТОКЕН>.

Настройка в config.yaml: ​

yaml
auth:
  enabled: true
  jwt_secret: "a_very_long_cryptographically_secure_random_string_here_32chars"
  token_expiry: "24h"
  bcrypt_cost: 12

2. Ролевая модель доступа (RBAC) ​

В системе реализовано разделение привилегий по ролям:

РольПрава и область доступа
adminПолный административный доступ: Добавление/удаление камер, управление пользователями, настройка ретенции и бэкапов
operatorОператорский доступ: Просмотр live-видео, навигация по архиву, управление PTZ, экспорт отрезков MP4
viewerТолько чтение: Просмотр разрешённых live-камер и воспроизведение HLS/WHEP потоков

3. Настройка CORS (Cross-Origin Resource Sharing) ​

При встраивании видеопотоков RUSEON во внешние корпоративные порталы ограничьте список доверенных доменов:

yaml
security:
  cors_allowed_origins:
    - "https://portal.company.com"
    - "https://monitoring.internal"
  cors_allowed_methods:
    - "GET"
    - "POST"
    - "OPTIONS"
  cors_allowed_headers:
    - "Authorization"
    - "Content-Type"
    - "Range"

4. Защита от перебора паролей (Rate Limiting) ​

Эндпоинты входа (/api/v1/auth/login) защищены встроенным ограничителем запросов (Token Bucket):

  • Ограничивает число неудачных попыток входа с одного IP-адреса.
  • Автоматически блокирует запросы при превышении 5 попыток в минуту.

5. Шифрование TLS и защита транспорта ​

  • Протоколы: Поддерживаются только современные версии TLS 1.3 и TLS 1.2 (устаревшие TLS 1.0 и 1.1 полностью отключены).
  • Требование HTTPS для WebRTC: Современные браузеры блокируют установку WebRTC WHEP соединений на незащищённых HTTP-страницах.

Связанная документация ​

Released under the MIT License.