Содержание
Безопасность
Данная программа разработана в клиентской браузерной среде испольнения без использования серверных технологий по причине удобства ее использования и скорости развертывания на разных системах, однако у нее есть ряд проблем (ограничение архитектуры клиентско-браузерных технологий):
исходный код невозможно скрыть (любой человек может окрыть файл в любом текстовом редакторе, отредактировать код с нужной ему целью и начать распространять измененный код)
проблема сертификации браузерного шифрования для обращения с медицинскими данными (шифрование стойкое, но ее использование не регламентировано)
Но есть и плюсы - если даже код основной программы модифицирован случайными людьми - то этот код ничего не сможет сделать за пределами браузера (политика самих веб-браузеров)!
Поэтому при разработке программы основная цель была в обеспечении безопасности данных (и это может быть соблюдено только совместно с пользователем данного приложения):
- Защита среды исполнения
- Защита на уровне пользователя
- Защита на уровне кода
Защита среды испольнения
- Рекомендуется пользоваться программой только в контуре безопасности своего врачебного рабочего места!
- Рекомендуется использовать только официальные, обновляемые версии браузеров
- Рекомендуется не использовать не проверенные плагины-дополнения самих браузеров (Add-ons)
Защита на уровне пользователя
- Не хранить сверхчувствительную информацию в файле сохранения программы
- Не давать никому пользоваться компьютером в свое отсутствие, если рабочая область программы не заблокирована
- Обеспечить сохранность файлов сохранений (файлы зашифрованы, но вероятность их взлома в долгосрочной перспективе не исключена)
Защита на уровне кода
- Использование шифрования файла сохранения
- Очистка всех переменных и текстовых полей во время блокировки рабочей области программы
- Использование отпечатков и sha-256 для контролья целостности программы
Криптографическая защита данных
Приложение использует передовые стандарты шифрования для защиты конфиденциальных данных (текстовых заключений, настроек, шаблонов). Все криптографические операции выполняются строго локально на устройстве пользователя с использованием встроенного Web Crypto API браузера. Данные никогда не передаются на внешние серверы.
- Алгоритм шифрования: Симметричное шифрование AES-256 в режиме GCM. Данный режим обеспечивает не только конфиденциальность (невозможность прочитать данные без ключа), но и аутентичность (защиту от несанкционированного изменения зашифрованного файла).
- Генерация ключа: Ключ шифрования выводится из графического паттерна и комбинации чекбоксов с помощью алгоритма PBKDF2 (на базе SHA-256) с увеличенным числом итераций (600 000). Это обеспечивает надежную защиту от атак полного перебора (brute-force) в случае утечки файла конфигурации.
- Уникальность сессий: При каждом сохранении генерируются криптографически случайные Соль (Salt, 128 бит) и Вектор инициализации (IV, 96 бит), что гарантирует уникальность шифротекста даже при многократном сохранении одних и тех же данных.
Контроль целостности и «Отпечаток» приложения
Для обеспечения прозрачности и защиты от несанкционированных модификаций (например, внедрения вредоносного кода через сторонние плагины или ручного редактирования) в программу встроен механизм контроля целостности.
- При загрузке приложения вычисляются хэши SHA-256 от всего объема встроенного JavaScript и CSS кода.
- На основе этих хэшей формируется уникальный «Отпечаток» (короткий идентификатор, например,
0702-978D), который отображается в нижней панели (футере), в настройках и в заголовке вкладки браузера. - Пользователь может в любой момент сверить этот отпечаток с эталонным значением на официальном сайте, чтобы убедиться, что исполняемый код программы является подлинным, не был поврежден и не содержит скрытых уязвимостей.
| Параметр | Реализация в коде | |
|---|---|---|
| Алгоритм шифрования | AES-256 | Мировой стандарт, стойкость не зависит от секретности алгоритма |
| Режим шифрования | GCM (AEAD) | Публичный стандарт, обеспечивает целостность |
| Алгоритм деривации ключа | PBKDF2 + SHA-256 | Публичный стандарт |
| Число итераций | 600 000 | Публичный параметр, замедляющий брутфорс |
| Размер соли (Salt) | 128 бит (16 байт) | Публичный стандарт |
| Размер IV | 96 бит (12 байт) | Публичный стандарт для AES-GCM |
| Хэш-функция для отпечатка | SHA-256 | Публичный стандарт |