Pull to refresh

Шифрования сообщений вконтакте методом AES для браузеров Chrome и Firefox

Reading time2 min
Views73K
image

После скандала с PRISM вопрос безопасности данных стал еще актуальней чем был, и даже если вы не секретный агент, то ваша личная переписка, должна соответствовать своему названию, и по умолчанию должна быть закрыта от доступа третьих лиц. Взяв это за аксиому это принцип, я занялся разработкой дополнений для браузеров для работы с популярной в странах СНГ социальной сетью вконтакте методом AES.

Небольшая предистория, алгоритм AES (Advanced Encryption Standard) — это симметричный алгоритм шифрования, который на конкурентной основе был принят в качестве стандарта шифрования правительством США по результатам одноимённого конкурса.

Алгоритм подробно описан, и есть его различные реализации под разные платформы и веб интерфейс (например тут). Чобы зашифровать/расшифровать текст нужно сообщение и ключ (и размер блока, по умолчанию 256, но бывает 128, 196). Зашифрованное сообщение можно передавать через любой канал связи, например SMS, IM, почта, социальные сети.

Итак, какоето время я жил с периодически всплывающей мыслью, а почему бы нам не автоматизировать процесс расшифровки-шифровки сообщений для сети vk.com?

Архитектуру процесса я видел следующим образом:

1) гденибудь рядом с формой отправки появляется форма ввода секретного ключа
2) вместо оригинальной формы вконтакта (данные из которой кстати сохраняются и без отправки) рисуется альтернативная текстовая форма, а после нажатия кнопки отправки, данные из этой формы шифруются в соответствии с ключём, и вставляются в обычную форму вконтакта в зашифрованном виде + в начале сообщения задаётся маркер AESSTART.
3) зашифрованное сообщение отправляется как обычное
4) расширение отслеживает открытое окно диалога, сканирует сообщения на наличие маркера AESSTART, и если маркер есть, расшифровывает в соответствии с введённым ключём. + выводит иконку ключик справа от сообщения и меняет фон на зелёный

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

В итоге получилось вот что:

Chrome: https://chrome.google.com/webstore/detail/vkcrypt/lemdbelcbpfbohjiimbcdhbonmlamdbm/
Mozilla: https://addons.mozilla.org/en–US/firefox/addon/vkcrypt/


Как оказалось версия под Chrome безопаснее, так как в нём скрипты расширения и скрипты сайта выполняются изолированно от друг друга, в разных средах. В Mozilla Firefox теоретически вконтакт может считать массив с ключами получив доступ к window.secureKeys. В хроме введённые ключи существуют только на стороне пользователя, со стороны вконтакта к ним нет никакого доступа.

Краткая инструкция:

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

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

Установите плагин, войдите в режим диалога с вашим собеседником (в мини чате и в режиме сообщений плагин не работает), если плагин установился, справа от текстовой формы и аватара будет ссылка «ENTER SECRET KEY».

Нажмите эту ссылку, и в появившемся окне введите ваш секретный ключ. Ваш собеседник должен проделать такую–же операцию.

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

страница проекта | исходники
Tags:
Hubs:
Total votes 80: ↑69 and ↓11+58
Comments132

Articles