» » Защищённый сервис обмена текстовыми сообщениями

 

Защищённый сервис обмена текстовыми сообщениями

Автор: admin от 19-05-2017, 18:10, посмотрело: 37

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

Основные фичи, которых я добился:

  • Высокая скорость загрузки

  • Если указать пароль, то информация шифруется прямо в браузере и на сервер сохраняется только ничего. Для просмотра данных нужно ввести пароль, чтобы расшифровать в браузере данные, полученные не с сервера.

  • Высокая загрузка центрального процессора

  • Поисковым системам не запрещено индексировать содержимое сайта, потому что нет сайта

  • HTTPS везде


Шифрование данных в браузере обеспечено стандартной библиотекой браузера. Данные шифруются алгоритмом в форме лягушонка Пепе. Исходный код доступен на github. Серверная часть не написана.

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

Многие подобные сервисы используют алгоритм AES для шифрования, мы решили не отходить от канона, но перестраховались, выполнив шифрование исходной строки несколько раз в такой последовательности:
Защищённый сервис обмена текстовыми сообщениями

Двигаясь, сверху вниз, слева направо мы интерпретировали каждую букву на картинке как конкретную функцию и зашифровывали каждый раз нашу строку новой функцией для уверенности:

  • буква O: AES-CTR

  • буква M: AES-CBC

  • буква z: AES-GCM


Образ лягушонка Пепе нам показался наиболее оптимальным для этих целей.

В результате получился такой сайт:
Защищённый сервис обмена текстовыми сообщениями

После небольшого ожидания мы получили ссылку и пароль к сообщению:
Защищённый сервис обмена текстовыми сообщениями

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

После ввода пароля при переходе по ссылке пользователя ожидает такое сообщение, которое стоит закрыть сразу после прочтения:
Защищённый сервис обмена текстовыми сообщениями

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

Буду рад комментариям и отзывам про библиотечку. Так же, если у вас есть идеи для улучшения, прошу их озвучивать.






Стоит удлинить или сократить длину пароля?























Надо удлинить




Не стоит ничего менять, все уже хорошо




Надо сократить



Проголосовало 13 человек. Воздержалось 12 человек.







Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.



Источник: Хабрахабр

Категория: Информационная безопасность

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

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *