Шифрування повідомлень вконтакте методом AES для браузерів Chrome і Firefox





(немає оцінок, будь першим хто поставить оцінку)
305 переглядів

Після скандалу з 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 ».

Натисніть це посилання , і у вікні введіть ваш секретний ключ. Ваш співрозмовник повинен виконати таку — ж операцію .

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

сторінка проекту | вихідні коди