Безопасность

SafePass использует гибридную систему шифрования данных, совмещающую преимущества криптосистемы RSA с открытым ключом с производительностью симметричной криптосистемы AES. Схема и описание работы этой гибридной системы представлена ниже.

Процесс шифрования

Шифрование начинается с расшифровки RSA ключа (2048 бит), зашифрованного алгоритмом AES, ключом для которого выступает хэшированный мастер-пароль пользователя (256 бит). Далее генерируются случайные AES ключ (256 бит) и вектор инициализации (128 бит), которыми шифруется заметка алгоритмом AES-256. Для каждой заметки создаются свои уникальные случайные криптографически стойкие ключ и вектор. После этого ключ и вектор инициализации шифруются публичным ключом RSA и сохраняются. Зашифрованная заметка хэшируется (256 бит) и хэш сохраняется. RSA ключи, AES ключ и вектор инициализации — все находятся в разных местах гибридной системы, а хэшированный и зашифрованный мастер-пароль пользователя находится на его собственной машине, поэтому злоумышленнику, чтобы прочитать любую заметку, надо получить доступ ко всем блокам системы. Если он получит доступ только к одному блоку или даже трем из четырех, то не сможет прочитать ровным счетом ничего. Нигде в системе ключи не хранятся в открытом виде, только в зашифрованном.

Алгоритм шифрования AES-256 настолько сильный, что его используют даже военные, им можно хранить данные вплоть до уровня "государственной тайны". До сих пор не было ни одной попытки взлома этого алгоритма. Миллиард суперкомпьютеров, вычисляющих безостановочно перебор паролей для этого алгоритма, будут считать 234 года, чтобы обработать всего лишь 0,1% от всех возможных вариантов.

Процесс расшифровки

Расшифровка начинается с проверки хэша зашифрованной заметки, чтобы исключить малейшее ее изменение (атака с подменой нового шифротекста). Далее расшифровывается алгоритмом AES хэшированный мастер-пароль пользователя, им расшифровывается приватный RSA ключ, зашифрованный также алгоритмом AES. После этого расшифровываются приватным ключом RSA сохраненные ключ и вектор инициализации AES и при помощи их расшифровывается заметка алгоритмом AES. Процесс расшифровки происходит каждый раз при чтении, редактировании, обновлении и удалении заметки.

Категории

Названия категорий шифруются статическим ключом и уникальным для каждой категории вектором инициализации при ее создании, чтении и редактировании.

Ключи RSA и мастер-пароль

По стандарту формирования ключа на основе пароля (PKCS5 v2 PBKDF2) к мастер-паролю пользователя добавляется секретная константа (128 бит), он хэшируется 600 000 раз алгоритмом SHA-256 (рекомендация OWASP). После этого он шифруется алгоритмом AES-256 статическим ключом и уникальным для каждого пользователя вектором инициализации и отправляется на клиентскую машину пользователя. После генерации пары ключей RSA приватный ключ зашифровывается алгоритмом AES, ключом которого выступает хэшированный мастер-пароль. Зашифрованный приватный ключ RSA сохраняется в закрытое облачное хранилище Yandex Cloud. Каждому пользователю принадлежит своя уникальная пара ключей RSA и уникальный мастер-пароль для их расшифровки.

Yandex Cloud

Пользовательские ключи RSA, находящиеся в облачном хранилище Yandex Cloud, хранятся физически в зашифрованном виде (помимо шифрования SafePass), и никто из тех, кто имеет доступ к физическому носителю, не сможет прочитать данные. Хранилище с ключами закрыто от публичного доступа, соответствует стандартам PCI DSS, ГОСТ Р 57580.1-2017 и требованиям Федерального закона Российской Федерации № 152-ФЗ "О персональных данных".

Нулевое разглашение

Владельцы и администраторы сайта SafePass не могут прочитать ни одной заметки пользователя, так как основной ключ (мастер-пароль) от всей гибридной криптосистемы находится на клиентской машине пользователя. В открытом виде мастер-пароль не хранится нигде, поэтому если пользователь его забудет, то восстановить его будет невозможно. Соответственно, и расшифровать заметки пользователя тоже будет невозможно.

Протоколирование

Ведется запись всех действий пользователя, чтобы увидеть последствия, если злоумышленник получит доступ к аккаунту пользователя. Удалить или отключить протоколирование невозможно. Записываются все действия с заметками и категориями (создание, обновление, удаление), действия с ключами RSA, мастер-паролем, обычным паролем к аккаунту и проверочными письмами на email.

XSS-защита

В системе присутствует защита от кросс-сайтовых атак: XSS и SCRF. Подменить шифруемые и расшифровываемые данные невозможно.

SSL/TLS протокол

SafePass работает только по защищенному SSL/TLS протоколу, что исключает перехват открытого текста и его чтение (атака посредника). Работа по открытому протоколу HTTP на сайте невозможна.

Защита от атак

Помимо всех вышеописанных защит сверху накладывается дополнительный уровень защищенности в виде программного обеспечения с модулем машинного обучения, которое предотвращает почти 99.8% уязвимостей OWASP Top 10 и возможных будущих атак нулевого дня.

Обновление ПО

Все программное обеспечение, задействованное в работе SafePass обновляется в течение суток после выхода релиза, который фиксирует любые проблемы с безопасностью, и в течение недели, если это обычное обновление.

Резервные копии данных

Ежедневные резервные копии данных сервера сохраняются на отдельном носителе, к которому есть доступ только у компании, предоставляющей хостинг. Перед любым обновлением сервиса создаются дополнительные резервные копии данных сервера.