Порка идеи — удобный и безопасный веб-менеджер сокровенных текстовых заметок с javascript

в 15:26, , рубрики: javascript, информационная безопасность, менеджер паролей, парольная защита, метки: , ,

Уважаемые профессионалы и любители информационной безопасности!

Хочу обсудить с вами вот какой интересный вопрос. Мне пришла в голову нижеследующая идея для удобного и безопасного веб-менеджера сокровенных текстовых заметок. Так ли она хороша, как я думаю? Или где-то есть подвох, и я что-то упустил? Буду рад вашему мнению.

Итак.

Цель.

Веб-сервис для управления текстовыми заметками (документами). Настолько удобный и безопасный, насколько возможно.

Требования

  • Веб-доступ — возможность доступа из любого места
  • Возможность импорта / экспорта заметок
  • На сервере (в экспортируемом файле) хранятся только заметки, только в зашифрованном виде
  • Версия для локального использования (чтобы избежать риска взлома сервера и подмены жаваскрипта)
  • Пароль не хранится нигде ни в каком виде

В чем, собственно, суть идеи

Как таковых, «аккаунтов» у сервиса нет. На сервере хранится набор заметок, со следующими свойствами:
— email автора
— зашифрованное содержание
— метаданные (дата изменения и пр).

Человек открывает веб-страницу с сервисом. Если у человека нет куки, страница спрашивает email.

image

Далее, если этот емайл не использовался ранее на этом устройстве, сервис шлет на этот адрес ссылку для валидации устройства. Ссылка, конечно, устаревает через короткий промежуток времени.

image

После успешной валидации, страница запоминает связку емайла на устройстве (ставит куку).
Загружается набор зашифрованных заметок.

Все дальнейшее — работа локального жаваскрипта, без обращения к серверу.

Страница спрашивает пароль.

image

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

При создании или изменении, заметка шифруется (при помощи сохраненной в жаваскрипт-переменную пароля, или в режиме параноика, снова можно спросить пароль) и зашифрованная отправляется на сервер.

Разумеется, ssl, никакого кеша, и все прочее.

Чем мне нравится все это

Я получаю доступ к заметкам с компьютера, с телефона, из гостей.

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

Если кто-то взломает мой емайл, и получит доступ к моим заметкам (сможет валидировать свое устройство), то для того, чтобы прочитать заметки, все равно нужен мастер-пароль.

Пароль используется только для дешифровки заметок (другими словами, неверно введенный пароль приведет просто к каше на экране).

Сервис имеет смысл делать open-source, чтобы можно было ставить себе на сервер. Это решает проблему с доверием чужому серверу.

Ложки дегтя

Пока писал текст, пришла вот какая мысль. Поскольку сервис нигде не хранит пароль (ни хеш, ничего), то — так задумано — он не знает, был ли введен правильный пароль. Как избежать ситуации, когда я ввел неверный пароль, получил нечитаемую кашу в заметке, и сохранил ее обратно на сервер? Надо подумать.

Спасибо, что дочитали! Буду рад вашим мыслям и вообще любому отзыву.

Автор: vladstudio

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js