...

суббота, 14 сентября 2013 г.

[Из песочницы] Шифрования сообщений вконтакте методом AES для браузеров Chrome и Firefox

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».


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


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


страница проекта | исходники


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:



Комментариев нет:

Отправить комментарий