Что BlokNet защищает сегодня — и чего мы не обещаем
Эта страница описывает текущую реализацию по коду проекта, а не желаемую архитектуру будущей версии.
Защищённые заметки
Для заметки можно включить шифрование и указать отдельный ключ. Приложение создаёт случайный IV и шифрует текст алгоритмом AES-256-CBC. В базе хранится зашифрованное содержимое и признак шифрования.
Ключ не хранится вместе с заметкой в таблице, однако он передаётся серверному приложению в момент шифрования и расшифрования. Это важное отличие от клиентского E2E-шифрования.
Пароли учётных записей
Пользовательские пароли проверяются через password_verify() и создаются с помощью bcrypt-хэширования. Исходный пароль не должен храниться в открытом виде.
Сессии
После входа создаётся отдельный токен сессии. Сервер проверяет его перед доступом к личному кабинету и привязывает действия к конкретному пользователю.
Что стоит улучшить дальше
- Перенести шифрование защищённых заметок полностью в браузер через Web Crypto API.
- Использовать AEAD-режим, например AES-GCM, вместо CBC.
- Ввести CSRF-защиту во всех изменяющих запросах и единый безопасный слой сессий.
- Провести отдельный аудит хранения секретов, SMTP и серверной конфигурации.
- После этого отдельно проверять, можно ли корректно заявлять end-to-end / zero-knowledge.
Сообщить о проблеме
Если вы нашли уязвимость или подозрительное поведение, напишите на support@bloknet.app с шагами воспроизведения. Не публикуйте пользовательские данные и рабочие ключи.