Документация по шифрованию
Приложение «Хлам» (hlam.app) · обновлено 22 июля 2026 · support@hlam.app
Этот документ описывает криптографию, которую использует мобильное приложение «Хлам». Он опубликован ради прозрачности и для деклараций экспортного соответствия (Apple App Store, французское ANSSI и Правила экспортного администрирования США). «Хлам» применяет только стандартные опубликованные алгоритмы шифрования — никакой собственной или нестандартной криптографии.
1. Общая картина
«Хлам» шифрует инвентарь пользователя сквозным шифрованием. Содержимое шифруется на устройстве пользователя до того, как покинет его, а сервер хранит только шифротекст и не может прочитать данные. Шифрование служит исключительно для защиты собственных данных пользователя — их конфиденциальности и целостности. «Хлам» не является криптографическим продуктом и не предоставляет третьим лицам никаких функций шифрования.
2. Алгоритмы
| Назначение | Алгоритм | Параметры | Стандарт |
|---|---|---|---|
| Конфиденциальность и целостность данных | AES-GCM (аутентифицированное шифрование) | 256-битный ключ · случайный 96-битный nonce на каждое сообщение · 128-битный тег аутентификации | NIST FIPS 197 (AES) · NIST SP 800-38D (GCM) |
| Вывод ключа (восстановление) | Argon2id (память-затратная KDF) | Выводит 256-битный ключ шифрования ключа (KEK) из секретной фразы и индивидуальной соли | RFC 9106 |
| Секретная фраза | Мнемоника BIP-39 (английский словарь) | 12 слов · 128 бит энтропии + контрольная сумма SHA-256 | SHA-256: NIST FIPS 180-4 |
| Транспорт | TLS / HTTPS | Предоставляется операционной системой (iOS / Android) | IETF TLS 1.2+ |
3. Управление ключами
- Ключ шифрования данных (DEK): 256-битный ключ, созданный на устройстве криптографически стойким источником случайности. У каждой учётной записи свой DEK. Всё содержимое пользователя шифруется на DEK алгоритмом AES-256-GCM.
- Локальное хранение DEK: ключ лежит в защищённом хранилище платформы — iOS Keychain или Android Keystore.
- Ключ шифрования ключа (KEK): чтобы пользователь мог восстановить данные на новом устройстве, DEK заворачивается (шифруется) на 256-битном KEK. KEK выводится на устройстве алгоритмом Argon2id из 12-словной секретной фразы BIP-39 и индивидуальной соли. KEK никогда не покидает устройство.
- Депонирование на сервере: сервер хранит только завёрнутый DEK (в виде шифротекста) вместе с его nonce. Сервер никогда не получает ни секретную фразу, ни KEK, ни открытый DEK, а значит не может расшифровать данные пользователя.
4. Реализация
Шифрование на уровне приложения (AES-256-GCM, Argon2id, BIP-39) реализовано на открытой криптографической библиотеке PointyCastle для Dart. Это стандартные, публично документированные алгоритмы. Приложение не реализует никаких секретных или собственных криптографических алгоритмов. Транспортную безопасность (TLS) обеспечивает операционная система.
5. Экспортная классификация
Поскольку «Хлам» использует только стандартные опубликованные алгоритмы шифрования для защиты собственных данных пользователя и не предоставляет криптографических функций третьим лицам, он является приложением массового рынка в смысле Категории 5, Часть 2 Правил EAR США и эквивалентного французского режима для стандартных криптографических средств. Ответственность за подачу необходимых деклараций (например, отчёта о самоклассификации в BIS США и декларации во французское ANSSI, где это применимо) остаётся на издателе. Эта страница — техническая документация, а не юридическая консультация.
6. Контакты
Вопросы по этому документу: support@hlam.app.