Обеспечение соответствия мобильного приложения требованиям HIPAA (медицинские данные)

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Обеспечение соответствия мобильного приложения требованиям HIPAA (медицинские данные)
Сложный
от 1 недели до 3 месяцев
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Обеспечение соответствия мобильного приложения требованиям HIPAA

HIPAA в мобильном приложении — это работа с Protected Health Information (PHI). Диагнозы, назначения, результаты анализов, история болезни — всё это PHI. Если приложение хранит, передаёт или отображает хотя бы один из 18 идентификаторов HIPAA (имя, дата рождения, адрес, номер телефона, email, номер страховки и др. в связке с медицинскими данными), оно попадает под действие закона как Business Associate или Covered Entity.

Технические safeguards — не опция

HIPAA Security Rule делит защитные меры на Administrative, Physical и Technical safeguards. Мобильная разработка отвечает за Technical. Ключевые требования:

Шифрование PHI в состоянии покоя (at rest)

На Android PHI нельзя хранить в обычном SharedPreferences или незашифрованной SQLite. Минимум — EncryptedSharedPreferences через AndroidX Security:

val masterKey = MasterKey.Builder(context)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .setUserAuthenticationRequired(true)  // требует биометрию/PIN для доступа
    .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 с шифрованием через SupportSQLiteOpenHelper. На iOS — Core Data с NSPersistentStoreDescription и NSFileProtectionComplete:

let storeDescription = NSPersistentStoreDescription(url: storeURL)
storeDescription.setOption(FileProtectionType.complete as NSObject,
                           forKey: NSPersistentStoreFileProtectionKey)

FileProtectionType.complete означает: данные недоступны, пока устройство заблокировано. Даже при физическом доступе к устройству.

Шифрование при передаче (in transit)

TLS 1.2 — абсолютный минимум. Рекомендуется TLS 1.3. Certificate pinning обязателен для PHI endpoints — перехват трафика через корпоративный proxy или MITM-атака не должны давать доступ к медданным.

// OkHttp certificate pinning
val client = OkHttpClient.Builder()
    .certificatePinner(
        CertificatePinner.Builder()
            .add("api.healthapp.example.com",
                 "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=")
            .build()
    )
    .build()

Пин обновляется за 30+ дней до ротации сертификата — иначе все пользователи получат SSLPeerUnverifiedException и приложение встанет.

Автоматический выход из сессии (Automatic Logoff)

HIPAA требует автоматического завершения сессии после периода неактивности. Для медицинских приложений типичный таймаут — 5–15 минут. Реализация через AppStateMonitor:

class SessionTimeoutManager {
    private var lastActivityTime = Date()
    private let timeoutInterval: TimeInterval = 10 * 60  // 10 минут

    func recordActivity() {
        lastActivityTime = Date()
    }

    func checkTimeout() {
        if Date().timeIntervalSince(lastActivityTime) > timeoutInterval {
            // Блокируем приложение, требуем повторную аутентификацию
            authManager.lockSession()
            // PHI с экрана не должна быть видна в App Switcher
            obscureScreenForAppSwitcher()
        }
    }
}

Важный момент с iOS: при переходе в фон скриншот экрана сохраняется для App Switcher. Если на экране PHI — нужно заменить его на заглушку в applicationWillResignActive.

Аудит доступа к PHI

Каждый доступ к PHI должен логироваться. Это не опция — это HIPAA Audit Control requirement. Минимальный набор для каждого события:

  • User ID и роль
  • Timestamp с точностью до секунды
  • Тип операции (view, create, update, delete, export)
  • Идентификатор пациента (не имя — ID)
  • Идентификатор ресурса (запись, документ)
  • IP адрес или Device ID

Логи хранятся 6 лет (HIPAA retention). Их нельзя удалять или изменять — append-only storage.

Backup и Recovery

Данные PHI должны быть доступны даже после сбоя. Требования: резервное копирование, тестирование восстановления, Recovery Time Objective (RTO) и Recovery Point Objective (RPO) — документально. Для мобильных приложений это касается серверной части, но мобильный клиент не должен быть единственным хранилищем PHI.

Business Associate Agreement

Если приложение использует облачные сервисы для обработки PHI — AWS, Google Cloud, Azure, Firebase — с каждым должен быть подписан BAA (Business Associate Agreement). AWS и Google Cloud предоставляют BAA, но только для определённых сервисов. Firebase Crashlytics, например, не покрывается BAA Google Cloud — нельзя включать в Crashlytics данные, которые могут быть PHI (user ID, который можно связать с медданными — уже потенциально PHI).

Типичные ошибки при разработке

  • Логирование PHI в Crashlytics без анонимизации
  • Push-уведомления с текстом диагноза — нарушение, даже если устройство только пользователя
  • Синхронизация через iCloud Drive без шифрования
  • Debug build с отключённым certificate pinning, случайно попавший в production
  • Отсутствие FLAG_SECURE на экранах с PHI — данные видны в App Switcher

Сроки

Задача Срок
Аудит текущего приложения + gap analysis 3–5 дней
Шифрование at rest + в transit 3–5 дней
Session timeout + экраны блокировки 2–3 дня
Audit logging с retention 3–4 дня
BAA со всеми субпроцессорами + документация 3–7 дней
Полный HIPAA compliance 4–8 недель

Стоимость рассчитывается индивидуально после аудита архитектуры и состава PHI.