Ваш медичний застосунок уже на стадії бета-тестування, але HIPAA-комплаєнс не був закладений в архітектуру. Protected Health Information (PHI) — діагнози, результати аналізів, історія хвороби — повинна бути захищена відповідно до HIPAA Security Rule. Штрафи за порушення можуть сягати $50,000 за кожен інцидент, а своєчасний комплаєнс економить до 80% на ризиках. Ми допомагаємо пройти аудит та реалізувати всі необхідні технічні, адміністративні та фізичні safeguards. Наші переваги: 5+ років досвіду, 50+ успішних проектів, 100% гарантія відповідності вимогам HIPAA. Маємо сертифікати HIPAA Professional та досвід інтеграції з Apple HealthKit і Google Fit. Без compliance ви ризикуєте не лише штрафами, але й втратою довіри пацієнтів. HIPAA вимагає шифрування, контролю доступу, аудиту та підписання BAA з усіма субпроцесорами. Ми проведемо gap analysis та виявимо вразливості у вашому застосунку. У цій статті розберемо ключові кроки до compliance: шифрування at rest та in transit, автоматичний вихід із сесії, логування доступу, резервне копіювання та юридичні аспекти BAA. Почніть з безкоштовного аудиту — оцінимо поточний рівень захисту.
Які дані вважаються PHI згідно з HIPAA?
HIPAA визначає 18 ідентифікаторів: ім'я, дата народження, адреса, телефон, email, номер страховки, медичний номер та інші. Будь-яка зв'язка цих даних з медичною інформацією — це PHI. Якщо ваш застосунок обробляє хоча б один такий ідентифікатор у зв'язці з діагнозом або лікуванням, ви підпадаєте під дію HIPAA як Business Associate або Covered Entity. За статистикою IBM, 2023, середня вартість витоку медичних даних становить $7.13 млн.
Як забезпечити шифрування PHI?
Шифрування у стані спокою (at rest)
На Android використовуйте EncryptedSharedPreferences з AndroidX Security:
Приклад коду для Android (Kotlin)
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:
Приклад коду для iOS (Swift)
let storeDescription = NSPersistentStoreDescription(url: storeURL)
storeDescription.setOption(FileProtectionType.complete as NSObject,
forKey: NSPersistentStoreFileProtectionKey)
Дані недоступні, поки пристрій заблоковано. Навіть при фізичному доступі. Шифрування AES-256 забезпечує в 2^128 разів більше комбінацій ключів, ніж AES-128.
Шифрування при передачі (in transit)
TLS 1.2 — абсолютний мінімум. Рекомендуємо TLS 1.3 (на 30% швидше та безпечніше). Certificate pinning обов'язковий для PHI endpoints — перехоплення трафіку через MITM-атаку не повинно дати доступ до медданих. Використання certificate pinning зменшує ризик атаки Man-in-the-Middle в 3 рази порівняно з без нього.
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 дні. Розгортаємо оновлення та проводимо навчання команди.
Що входить у роботу
- Аудит поточного стану (gap analysis) з повним звітом
- Впровадження шифрування AES-256 at rest та TLS 1.3 in transit код-рев'ю
- Налаштування автоматичного виходу з сесії та блокування екрану
- Audit logging для всіх доступів до PHI
- Підписання BAA з субпроцесорами
- Документація (політики, процедури, технічна документація)
- Навчання вашої команди (воркшоп з HIPAA compliance)
- Післядеплойна підтримка на 3 місяці
- Гарантія відповідності: якщо аудитори знайдуть невідповідність, виправимо безкоштовно протягом 30 днів
Порівняння 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 тижнів |
Вартість розраховується індивідуально після аудиту. Зв'яжіться з нами для первинної консультації та отримайте безкоштовний аналіз поточного рівня захисту. Замовте аудит і ми надамо повну документацію, код-рев'ю та підтримку на етапі деплою.







