SOC 2 (System and Organization Controls 2) -- это фреймворк, разработанный Американским институтом сертифицированных бухгалтеров (AICPA) для оценки контролей организации, связанных с безопасностью, доступностью, целостностью обработки, конфиденциальностью и приватностью.

Ссылка: [AICPA SOC 2](https://www.aicpa-cima.com/topic/audit-assurance/audit-and-assurance-greater-than-soc-2)

## Сопоставление критериев доверительных сервисов

| Принцип доверия | Критерий | Возможность Rediacc |
|----------------|---------|-------------------|
| **Безопасность** (CC6) | Логический контроль доступа, шифрование | Шифрование LUKS2 AES-256 в состоянии покоя. Учётные данные хранятся только в локальной конфигурации оператора (`~/.config/rediacc/`), никогда на сервере. Доступ по SSH-ключу. Изолированные Docker daemons для каждого репозитория. |
| **Доступность** (A1) | Восстановление и устойчивость системы | `rdc repo backup push/pull` с зашифрованными копиями на удалённые хранилища SSH, S3, B2, Azure или GDrive. CoW-снимки для мгновенного отката. Обновления на основе форков для изменений без простоя. |
| **Целостность обработки** (PI1) | Точная и полная обработка | Детерминированные хуки жизненного цикла Rediaccfile (`up`/`down`) обеспечивают согласованные развёртывания. `rdc repo validate` проверяет целостность репозитория и состояние резервных копий после непредвиденных остановок или операций резервного копирования. |
| **Конфиденциальность** (C1) | Защита данных от несанкционированного доступа | Шифрование на уровне репозитория с уникальными учётными данными LUKS. Сетевая изоляция через iptables, отдельные Docker daemons и подсети loopback IP. Контейнеры разных репозиториев не видят друг друга. Хранилище конфигурации с нулевым разглашением шифрует конфигурации на стороне клиента перед загрузкой. Сервер хранит только непрозрачные блобы, которые не может расшифровать. |
| **Приватность** (P1-P8) | Обработка персональных данных | Самостоятельное размещение: без выхода данных во время операций. Аудиторский след для всех обращений к данным. Управление ключами шифрования под контролем клиента. Хранилище конфигурации использует разделённый вывод ключей (passkey PRF + серверный секрет), чтобы ни одна сторона не могла получить доступ к данным в одиночку. |

## Аудиторский след

Rediacc регистрирует более 40 типов событий на уровне аккаунта, охватывающих:

- **Аутентификация**: вход, выход, смена паролей, включение/отключение 2FA, отзыв сессий
- **Авторизация**: создание/отзыв API-токенов, изменения ролей, членство в командах
- **Конфигурация**: push/pull хранилища конфигурации, управление участниками, ошибки доступа (несовпадение IP, отказ SDK)
- **Лицензирование**: активация машин, выдача лицензий, изменения подписок

Эти журналы доступны через панель администратора (с фильтрацией по пользователю, команде и дате) и `rdc audit` CLI для программного экспорта. Операции на уровне машины (форк, резервное копирование, развёртывание) выполняются по SSH на вашей инфраструктуре, поэтому эти аудиторские следы находятся в ваших системных журналах.

## Управление изменениями

Рабочий процесс на основе форков поддерживает контролируемое управление изменениями:

1. Создать форк продакшен-репозитория (`rdc repo fork`)
2. Применить и протестировать изменения на форке
3. Провести независимую валидацию форка
4. Перевести форк в продакшен (`rdc repo takeover`)

Каждый шаг регистрируется с временными метками и идентификацией участника.

## Контроль доступа

- **Доступ к машине**: Только аутентификация по SSH-ключу. Без SSH по паролю.
- **API-токены**: Ограниченные разрешения, опциональная привязка к IP, автоматический отзыв при удалении из команды.
- **Изоляция репозиториев**: Каждый репозиторий имеет собственный сокет Docker daemon. Доступ к одному репозиторию не даёт доступа к другому на той же машине.
- **Токены хранилища конфигурации**: Одноразовые ротируемые токены с привязкой к IP при первом использовании, автоматическим истечением через 24 часа и окном допуска в 3 запроса для параллельности. Управление доступом участников через обмен ключами X25519 с мгновенным отзывом.