Что такое шифрование на стороне клиента

Коротко:

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

✉️ Конверт

Представьте, что вы отправляете конфиденциальный договор на склад.

  • Шифрование на сервере, привычный вариант: вы отдаёте договор управляющему. Он читает его, кладёт в конверт, запечатывает и ставит на полку. Он обещает больше не открывать, но печать ставил он, значит и снять её может он.
  • Шифрование на клиенте, как в TaskNote: вы кладёте договор в стальной ящик у себя дома, вешаете свой замок и отдаёте уже запертый ящик. Он отправляется на полку. Прочитать договор управляющий не может: он не видел его открытым, и ключа у него нет.

⚠️ Что нередко скрывается за словом «шифрование»

Когда приложение обещает «шифрование банковского уровня» или «шифрование при хранении», речь обычно идёт о шифровании на сервере.

Это защищает данные от воров, забравшихся в дата-центр. От самой компании, которая их хранит, это не защищает.

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

Шифрование на клиенте убирает доверие из уравнения. Сервер считается хранилищем, которому доверять и не требуется.

⚙️ Как это работает в браузере

Браузер нужен не только чтобы показывать страницы. В каждом современном есть криптографический движок, Web Crypto API.

  1. Вы печатаете. Заметку в TaskNote.
  2. Работает ваш процессор. Ещё до сохранения он берёт ваш ключ шифрования и текст.
  3. Запирает. Алгоритм AES-256 отрабатывает прямо на вашей машине.
  4. Отправляет. На наши серверы уходит получившаяся бессмыслица.
Сравнение шифрования на клиенте и на сервере

Это стоит доли процента заряда. Взамен приватность держится на математике, а не на обещаниях.

🛡️ Почему мы делаем именно так

Приватность не должна быть настройкой, которую ещё надо найти.

Шифрование на устройстве даёт три вещи:

  1. Скорость. Работа идёт там, где вы. Ждать, пока сервер обработает текст, не нужно.
  2. Безопасность. Тот, кто подключится к каналу между вами и нами, соберёт зашифрованный шум.
  3. Уверенность. Никакая модель не учится на ваших личных мыслях просто потому, что на нашей стороне их прочитать нечем.

❓ Частые вопросы

Батарея от этого не сядет?

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

А искать по заметкам можно?

Можно, просто поиск идёт в другом месте. Зашифрованный указатель скачивается к вам, расшифровывается в памяти и просматривается на устройстве. Поэтому поиск и работает мгновенно: он местный.

Почему так делают не все?

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

Ваши мысли принадлежат вам, а не серверу

Хватит отдавать личное компаниям, которые могут это прочитать.

Попробовать TaskNote бесплатно