# Безопасность, конфиденциальность и местоположение данных

> Как защищены данные пациентов: размещение данных в ЕС, изоляция проектов, парные идентификаторы, учетные данные, согласие, происхождение данных, аудит, видимый пациенту, и ограничения частной бета-версии.

Source: https://developers.anpheros.com/ru/guides/security

Медицинские данные являются наиболее конфиденциальными данными, которые может хранить приложение. На этой странице перечислены способы защиты этих данных платформой Anpheros сегодня — только то, что реализовано — и то, что остается ограниченным во время частной бета-версии.

## Размещение данных

- Все данные платформы хранятся и обрабатываются в Европейском Союзе: сервис и его базы данных в Google Cloud `europe-west4` (Нидерланды), очередь доставки вебхуков в `europe-west3` (Франкфурт) и неизменяемый экспорт журнала доступа в расположении BigQuery в ЕС.
- **Регион данных США:** доступен по запросу для производственных клиентов в рамках соглашения о деловом партнерстве HIPAA (см. ниже); данные пациентов из США в таком случае никогда не покидают регион США.
- Документы хранятся в EU storage bucket, зашифрованном с помощью ключа шифрования, управляемого клиентом (CMEK). Оригиналы неизменяемы после финализации; их контрольная сумма SHA-256 и размер записываются.

## Изоляция между приложениями

- Каждый API-ключ принадлежит одному **проекту**. Проект видит только тех пациентов, которых он создал — в песочнице, включая собственную копию синтетических пациентов, которую не может видеть ни один другой проект.
- **Парные идентификаторы:** каждый проект получает свой собственный идентификатор для одного и того же человека; внутренние идентификаторы никогда не покидают платформу, поэтому идентификаторы не могут быть сопоставлены между приложениями.
- Запись, которую вы не можете достичь, отвечает `404`, никогда `403`, поэтому существование пациента не может быть проверено.
- **Песочница и продакшн — это отдельные базы данных.** Ключ песочницы (`sk_test_`) физически не может получить доступ к реальным пациентам.
- С согласия пациента организация читает всю запись, включая то, что написали другие организации, но может изменять или удалять только то, что написала сама.

## Учетные данные

- API-ключи отображаются один раз и хранятся только в виде хеша SHA-256. Ключи имеют области действия `read` / `write` и никогда не пересекают свою среду.
- OAuth 2.1 с обязательным PKCE (S256); `redirect_uri` должен быть зарегистрирован точно. Токены доступа действительны 30 минут, токены обновления — 30 дней и ротируются при каждом использовании.
- **Обнаружение повторного использования токена обновления:** предъявление уже использованного токена обновления отзывает всю цепочку токенов.
- Ответы токенов содержат `Cache-Control: no-store`. Токены OpenID Connect `id_token` подписываются с помощью RS256; публичные ключи публикуются по адресу `/oauth/jwks`.

## Согласие, происхождение и аудит

- Пациент предоставляет приложению доступ на размещенной странице согласия, выбирая запись и срок действия (30, 90, 180 или 365 дней). Области действия определяются для каждого типа ресурса и действия, с возможностью фильтрации по категориям. Каждое предоставленное согласие отражается как ресурс FHIR `Consent`.
- Отзыв согласия вступает в силу при следующем запросе; приложение не может повторно получить доступ.
- **Каждая запись** создает ресурс `Provenance`: кто записал (пациент, практикующий врач, устройство, импорт или ИИ), для какой организации, из какой исходной системы.
- **Каждое чтение регистрируется и доступно для просмотра пациенту**, включая чтения, выполненные с помощью собственного API-ключа проекта, и включая контекст, построенный для моделей ИИ.

## Транспорт и веб-безопасность

- Только HTTPS с HTTP Strict Transport Security. Ответы API содержат ограничительную политику Content-Security-Policy, `X-Content-Type-Options: nosniff`, `X-Frame-Options: DENY` и строгую политику referrer.
- Доставки веб-хуков подписываются с помощью HMAC-SHA256 по временной метке и телу сообщения; получатели должны отклонять подписи старше 5 минут. События содержат идентификаторы и версии, но никогда клиническое содержимое.
- Ограничения скорости: 600 запросов в минуту на учетные данные и на IP-адрес; тела JSON размером до 2 МиБ; документы размером до 25 МиБ.

## Поисковые системы и ИИ-краулеры

Публичные страницы (anpheros.com, презентация платформы и данная документация) открыты для поисковых систем и ИИ-краулеров. API, панель управления, страницы OAuth и согласия, а также приложение для пациентов (`app.anpheros.com`) исключены с помощью правил `noindex` и `robots.txt`; ни одна из них не возвращает данные пациента без аутентификации.

## HIPAA (клиники США)

Для клиники в Соединенных Штатах Anpheros является **деловым партнером (Business Associate)**. Ниже приведено соответствие мер безопасности требованиям HIPAA Security Rule:

| Мера безопасности | Как это реализовано в Anpheros |
|---|---|
| Назначение ответственности, анализ рисков, письменные политики (§164.308) | Назначенный сотрудник по безопасности; ежегодный анализ рисков; десять письменных политик (доступ, шифрование, логирование, реагирование на инциденты, уведомление об утечках, хранение и резервное копирование, обучение, устройства, экстренный доступ, поставщики), хранятся шесть лет |
| Уникальная идентификация пользователей, контроль доступа (§164.312(a)) | Каждый ключ, токен и человек имеет свою собственную идентификацию; проекты видят только своих пациентов; области согласия применяются при каждом чтении; требуется MFA или SSO для организаций с производственным проектом; автоматический выход из системы на панели управления |
| Аудит действий (§164.312(b)) | Каждое чтение и запись логируется, хешируется, экспортируется в режиме "только добавление"; доступно для пациента |
| Целостность (§164.312(c)) | Ресурсы с версионированием, информация о происхождении при каждой записи, неизменяемые документы с SHA-256 |
| Безопасность передачи данных (§164.312(e)) | TLS 1.2+, HSTS, подписанные вебхуки, доставка только по HTTPS |
| Шифрование данных при хранении | База данных и резервные копии зашифрованы; документы под ключом, управляемым клиентом |
| План действий в чрезвычайных ситуациях (§164.308(a)(7)) | Ежедневное резервное копирование, восстановление на определенный момент времени, проверка восстановления каждые 90 дней с записью времени |
| Уведомление об утечках (§164.410) | Покрываемая организация (Covered Entity) уведомляется в течение 5 рабочих дней согласно нашему BAA (60 дней по закону) |
| Цепочка деловых партнеров (§164.308(b)) | Google Cloud действует по своему BAA; список субпроцессоров находится в приложении к BAA |

**Соглашение о деловом партнерстве (Business Associate Agreement)** и **регион данных США** доступны по запросу для производственных клиентов (пишите на platform@anpheros.com); работа с производственными данными пациентов из США открывается после подписания BAA. Песочница содержит только синтетических пациентов, поэтому разработчики в США могут начать работу уже сегодня без BAA. Anpheros не имеет сертификации SOC 2 или HITRUST; аудит SOC 2 Type II запланирован, когда этого потребует клиент из числа больниц.

## Текущие ограничения (закрытая бета-версия)

- Хостинг в одной зоне без автоматического переключения при сбое; договор SLA пока отсутствует.
- Production-ключи выдаются проверенным организациям с подписанным соглашением об обработке данных; бета-партнеры начинают с синтетическими данными.
- Запуск SMART EHR и параметр OpenID `nonce` пока не поддерживаются.

## Связанные материалы

- [GDPR и медицинские данные для разработчиков](https://developers.anpheros.com/ru/guides/gdpr-health-data-developers)
- [Происхождение медицинских данных: объяснение](https://developers.anpheros.com/ru/guides/medical-data-provenance): кто что записал и как это фиксировать
- [Модель согласия и доступа](https://developers.anpheros.com/ru/guides/consent)
- [Аутентификация и OAuth](https://developers.anpheros.com/ru/guides/authentication)
- [Ограничения и лимиты запросов](https://developers.anpheros.com/ru/guides/limits)
- [Надежность, статус и инциденты](https://developers.anpheros.com/ru/guides/reliability): мониторинг, резервное копирование, коммуникация при инцидентах
- [Архитектура](https://developers.anpheros.com/ru/guides/architecture)
- [Европейское пространство данных здравоохранения (EHDS) для разработчиков](https://developers.anpheros.com/ru/guides/ehds-for-developers)
