Ваше медицинское приложение уже на стадии бета-тестирования, но HIPAA-комплаенс не был заложен в архитектуру. Protected Health Information (PHI) — диагнозы, результаты анализов, история болезни — должна быть защищена в соответствии с HIPAA Security Rule. Штрафы за нарушение могут достигать $50 000 за каждый инцидент, а своевременный комплаенс экономит до 80% на рисках. Мы помогаем пройти аудит и реализовать все необходимые технические, административные и физические safeguards. За 5+ лет мы внедрили HIPAA-комплаенс в более чем 50 мобильных приложениях для iOS и Android. Без compliance вы рискуете не только штрафами, но и потерей доверия пациентов. HIPAA требует шифрования, контроля доступа, аудита и подписания BAA со всеми субпроцессорами. Мы проведём gap analysis и выявим уязвимости в вашем приложении. В этой статье разберём ключевые шаги к compliance: шифрование at rest и in transit, автоматический выход из сессии, логирование доступа, резервное копирование и юридические аспекты BAA. Начните с бесплатного аудита — оценим текущий уровень защиты.
Какие данные считаются PHI по HIPAA?
HIPAA определяет 18 идентификаторов: имя, дата рождения, адрес, телефон, email, номер страховки, медицинский номер и другие. Любая связка этих данных с медицинской информацией — это PHI. Если ваше приложение обрабатывает хотя бы один такой идентификатор в связке с диагнозом или лечением, вы попадаете под действие HIPAA как Business Associate или Covered Entity. По статистике IBM, средняя стоимость утечки медицинских данных составляет $7.13 млн.
Как обеспечить шифрование PHI?
Шифрование в состоянии покоя (at rest)
На Android используйте EncryptedSharedPreferences из AndroidX Security:
val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.setUserAuthenticationRequired(true)
.setUserAuthenticationParameters(300, KeyProperties.AUTH_BIOMETRIC_STRONG)
.build()
val encryptedPrefs = EncryptedSharedPreferences.create(
context,
"phi_secure_prefs",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
Для баз данных — SQLCipher или Room с шифрованием. На iOS — Core Data с NSFileProtectionComplete:
let storeDescription = NSPersistentStoreDescription(url: storeURL)
storeDescription.setOption(FileProtectionType.complete as NSObject,
forKey: NSPersistentStoreFileProtectionKey)
Данные недоступны, пока устройство заблокировано. Даже при физическом доступе.
Шифрование при передаче (in transit)
TLS 1.2 — абсолютный минимум. Рекомендуем TLS 1.3 (на 30% быстрее). Certificate pinning обязателен для PHI endpoints — перехват трафика через MITM-атаку не должен дать доступ к медданным.
val client = OkHttpClient.Builder()
.certificatePinner(
CertificatePinner.Builder()
.add("api.healthapp.example.com",
"sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=")
.build()
)
.build()
Пин обновляется за 30+ дней до ротации сертификата.
Автоматический выход из сессии и блокировка экрана
HIPAA требует автоматического завершения сессии после периода неактивности. Типичный таймаут — 5–15 минут. Реализуем через монитор состояния приложения:
class SessionTimeoutManager {
private var lastActivityTime = Date()
private let timeoutInterval: TimeInterval = 10 * 60
func recordActivity() {
lastActivityTime = Date()
}
func checkTimeout() {
if Date().timeIntervalSince(lastActivityTime) > timeoutInterval {
authManager.lockSession()
obscureScreenForAppSwitcher()
}
}
}
На iOS при переходе в фон скриншот экрана сохраняется для App Switcher — заменяем его заглушкой в applicationWillResignActive. На Android используем FLAG_SECURE.
Аудит доступа и логирование
Каждый доступ к PHI логируется: User ID, роль, timestamp, тип операции, идентификатор пациента и ресурса, IP/Device ID. Логи хранятся 6 лет в append-only хранилище. HIPAA Security Rule §164.312 требует audit controls.
Business Associate Agreement (BAA)
BAA — договор с субпроцессором, обрабатывающим PHI. AWS, Google Cloud, Azure предоставляют BAA, но не все сервисы покрываются. Например, Firebase Crashlytics не входит в BAA Google Cloud — нельзя передавать туда данные, связанные с PHI. Обязательно проверяйте покрытие BAA при выборе облачных сервисов.
Резервное копирование и восстановление
PHI должны быть восстановимы. Серверная часть обязана поддерживать резервное копирование и документально подтверждённые RTO/RPO. Мобильный клиент не должен быть единственным хранилищем PHI.
Типичные ошибки и как их избежать
- Логирование PHI в Crashlytics без анонимизации
- Push-уведомления с текстом диагноза — нарушение, даже если устройство только пользователя
- Синхронизация через iCloud Drive без шифрования
- Debug build с отключённым certificate pinning в production
- Отсутствие FLAG_SECURE на экранах с PHI
Процесс внедрения HIPAA
- Аудит и gap analysis — 3–5 дней. Проверяем текущее приложение на соответствие HIPAA. Выявляем недостающие safeguards и риски.
- Шифрование at rest и in transit — 3–5 дней. Внедряем AES-256 для хранения и TLS 1.3 с certificate pinning для передачи.
- Session timeout и блокировка экрана — 2–3 дня. Настраиваем автоматический выход и защиту от перехвата содержимого экрана.
- Audit logging — 3–4 дня. Реализуем логирование всех доступов к PHI с retention 6 лет.
- BAA и документация — 3–7 дней. Подписываем договоры с субпроцессорами и готовим документацию для проверок.
- Деплой и обучение — 2–3 дня. Разворачиваем обновление и проводим обучение команды.
Сравнение iOS и Android
| Аспект | iOS | Android |
|---|---|---|
| Шифрование at rest | Core Data + NSFileProtectionComplete | EncryptedSharedPreferences / SQLCipher |
| Автоматический выход | AppStateMonitor | ActivityLifecycleCallbacks |
| Блокировка экрана | applicationWillResignActive | FLAG_SECURE |
| Pinning | Alamofire/URLSession | OkHttp |
Сроки и стоимость
| Задача | Срок |
|---|---|
| Аудит + gap analysis | 3–5 дней |
| Шифрование at rest + transit | 3–5 дней |
| Session timeout + блокировка | 2–3 дня |
| Audit logging | 3–4 дня |
| BAA + документация | 3–7 дней |
| Полный HIPAA compliance | 4–8 недель |
Стоимость рассчитывается индивидуально после аудита. Свяжитесь с нами для первичной консультации и получите бесплатный анализ текущего уровня защиты. Закажите аудит и мы предоставим полную документацию, код-ревью и поддержку на этапе деплоя.







