У Частині 1 ми розібралися з сучасними можливостями анонімної передачі зашифрованих повідомлень, доступними простому користувачу і розібрали практичне застосування популярних в цій області технологій на прикладі Mac OS X. У другій частині мова йтиме про те, як налаштувати роботу анонімної шифрованого листування на Windows, Linux і Android.
Анонімна передача зашифрованих повідомлень в Windows і Linux
Для даного прикладу я створив обліковий запис в Jabber на сервері wtfismyip.com і взяв логін pluto2.
Інструкції для Windows і Linux знаходяться в одному розділі, так як в них використовується одна програма - Pidgin. Майже всі етапи для обох операційних систем збігаються, але я розповім і про їх відмінностях.
Установка Pidgin і настройка анонімної облікового запису через Tor
Якщо ви користуєтеся Linux, встановіть пакети pidgin, pidgin-otr і tor. В операційних системах Ubuntu і Debian ви можете ввести рядок «sudo apt-get install pidgin pidgin-otr tor» в терміналі або звернутися в Центр додатків Ubuntu. Якщо ви встановлюєте Tor на Linux, вам не потрібно турбуватися про те, щоб браузер Tor був завжди відкритий в фоновому режимі, як у випадку з Windows або Mac OS X.
Відкрийте Pidgin. Після того, як ви його відкриєте, спливе вікно «Ласкаво просимо в Pidgin!». Натисніть кнопку «Додати» (Add), щоб додати свою приховану обліковий запис (якщо ви вже користуєтеся Pidgin, ви можете додати новий обліковий запис, натиснувши на меню «Облікові записи» (Accounts) у вікні «Список співрозмовників» (Buddy List) і вибравши пункт «Служба захисту» (Manage Accounts)).
Повинно з'явитися вікно «Додати обліковий запис» (Add Account). Перед тим, як перейти до наступного етапу, перейдіть на вкладку «Проксі-сервер» (Proxy). Встановіть тип проксі-сервера «Tor / Privacy (SOCKS5)». В поле «Хост» (Host) введіть «127.0.0.1», а в полі «Порт» (Port) введіть «9150», якщо ви користуєтеся Windows, і «9050», якщо користуєтеся Linux.
Перейдіть на вкладку «Основні» (Basic). В поле «Протокол» (Protocol) виберіть «XMPP». В поле «Ім'я користувача» (Username) введіть свої реєстраційні дані (в моєму випадку це «pluto2»). В поле «Домен» (Domain) введіть назву сервера Jabber (в моєму випадку це «wtfismyip.com»). В поле «Ресурс» (Resource) введіть «anonymous». В поле «Пароль» (Password) введіть свій пароль, після чого ви можете поставити поруч з ним галочку, щоб ваш пароль запам'ятали. Після всіх налаштувань натисніть кнопку «Додати» (Add).
Якщо все виконано вірно, ви повинні побачити вікно «Список співрозмовників» зі статусом «Доступний» (Available).
Ключі шифрування і відбитки
Отже, ви анонімно увійшли в свою приховану обліковий запис через Tor. Наступним кроком буде створення ключа шифрування по протоколу OTR. Кожен, хто бажає скористатися протоколом OTR, повинен згенерувати власний ключ. Цей ключ являє собою файл, що зберігається на пристрої, який ви використовуєте для обміну повідомленнями. Кожен ключ містить унікальну послідовність символів, яка називається відбитком цього ключа: ніякі два ключа не можуть мати однаковий відбиток.
Спробуємо створити свій ключ з шифруванням по OTR. У вікні «Список співрозмовників» (Buddy List) натисніть на меню «Інструменти» (Tools) і виберіть «Модулі» (Plugins). Ви повинні побачити напис «Off-the-Record Messaging», яка вказує на один з плагінів. Переконайтеся, що зліва від неї стоїть галочка.
Після того, як ви вибрали «Off-the-Record Messaging», натисніть на кнопку «Налаштувати плагін» (Configure Plugin). Виберіть свою приховану обліковий запис і клацніть на кнопці «Згенерувати» (Generate), щоб згенерувати новий ключ. Після завершення процедури у вас з'явиться новий відбиток з шифруванням по OTR. У тому ж вікні поставте галочку навпроти напису «Вимагати захист розмови» (Require private messaging).
У нашому прикладі я створив новий ключ, який використовує шифрування по OTR, для свого облікового запису [email protected] з відбитком A65B59E4 0D1FD90D D4B1BE9F F9163914 46A35AEE. Якщо ви хочете почати з ким-небудь особисту переписку, повідомте цій людині ваш логін і ім'я сервера, а також відбиток ключа з OTR. Після того, як він створить анонімну обліковий запис в Jabber і згенерує ключ з шифруванням по OTR, попросіть його також повідомити вам свої логін, ім'я сервера і відбиток ключа.
Після початку обміну зашифрованими повідомленнями, ви зможете бачити відбиток ключа свого співрозмовника, а він зможе побачити ваш. Якщо відбиток, який вам передали, збігається з відбитком, який відображається в Pidgin, то цей контакт можна відзначити як надійний. Якщо відбиток, який передали ви, збігається з відбитком, який відображається в Pidgin, то ваш контакт також можуть відзначити як надійний.
Цей етап кілька заплутаний, але дуже важливий. Якщо відбитки ключа не збігаються, це означає, що на вас спрямована атака посередника. В цьому випадку не відзначайте контакт як надійний, а спробуйте повторити процедуру трохи пізніше.
Додавання контактів і особисте листування
Після того, як я створив свій обліковий запис pluto2, я хочу додати користувача 0060e404a9 до себе в контакти. У вікні «Список співрозмовників» (Buddy List) я натискаю на меню «Співрозмовники» (Buddies) і вибираю «Додати співрозмовника» (Add Buddy). В поле імені співрозмовника я вводжу «[email protected]» і натискаю кнопку «Додати» (Add).
Отже, 0060e404a9 дозволив мені бачити, коли він знаходиться в мережі, і він відправляє запит на те, щоб я дозволив йому бачити, коли я перебуваю в мережі. Я натискаю на кнопку «Дозволити додати мене до списку ваших контактів» (Authorize).
Тепер я вперше додав користувача 0060e404a9 як свій контакт, і він буде відображатися в списку контактів, коли буде перебувати в мережі. Потім все, що мені потрібно зробити для початку спілкування з ним, це клацнути два рази на його імені. Я клікнув два рази на контакт 0060e404a9 і написав «привіт».
Перед тим, як відправити моє повідомлення, Pidgin почав сеанс роботи з OTR-шифруванням. Зверніть увагу на напис «[email protected] поки не аутентифікований. Вам повинен розпізнаватися цього співрозмовника ». Ви також можете побачити напис жовтого кольору «Не підтверджено» (Unverified) в правій нижній частині вікна. Це означає, що під час обміну зашифрованими повідомленнями я не можу бути повністю впевнений в тому, що не відбудеться атаки посередника.
Хоча способи «Питання і відповідь» і «Секретна слово» відмінно справляються зі своїм завданням, я не буду розповідати, як вони працюють.
OTR-відбиток цього контакту - 6F3D8148 DA029CDA 23C92CF7 45DA09C5 ED537DC4. Перед тим, як продовжити, я хочу переконатися в тому, що це саме його відбиток, тому питаю його про це по зовнішньому каналу (не в цьому чаті, так як я не знаю, наскільки він надійний).
Отже, співрозмовник повідомив мені дані свого відбитку, і, порівнявши кожен з його символів з символами відбитка, який відображається в Pidgin, можна переконатися в тому, що ці відбитки збігаються. Це означає, що на шифрування не здійснюється жодної атаки, і я можу спокійно змінити напис з «Я не перевірив» (I have not) на «Я перевірив» (I have) і натиснути кнопку «аутентифицироваться» (Authenticate). Тепер статус бесіди зміниться з «Не підтверджено» (Unverified) на «Захищено» (Private).
Вам необхідно пройти етап підтвердження тільки перед початком обміну зашифрованими повідомленнями з контактом. Якщо завтра я ввійду до свого облікового запису і почну нову бесіду з 0060e404a9, то я можу відразу почати роботу, вважаючи цю розмову захищеним.
Ось, власне, і все. Підсумок: ми створили анонімну обліковий запис в Jabber через мережу Tor. Ми налаштували програму для обміну повідомленнями Pidgin і можемо зайти в цей обліковий запис через Tor. Ми створили новий ключ OTR-шифрування для цього облікового запису. Ми додали до свого облікового запису один контакт і перевірили його відбиток OTR-шифрування. Тепер ми можемо обмінюватися з цим контактом повідомленнями на досить високому рівні захисту інформації.
Анонімна передача зашифрованих повідомлень в Android
Установка ChatSecure і настройка анонімної облікового запису через Tor
Відкрийте додаток Google Play і встановіть Orbot - той же Tor, тільки для Android. Відкрийте програму і утримуйте велику кнопку в центрі екрану, щоб підключитися до мережі Tor. Щоб налаштувати свій обліковий запис в Jabber, спочатку ви повинні підключитися до Tor.
Тепер відкрийте додаток Google Play і встановіть ChatSecure - додаток Jabber з підтримкою OTR-шифрування. Як тільки ви запустите ChatSecure, вам буде запропоновано встановити майстер-пароль. Він може виявитися досить корисним, якщо ви не знаєте, що робити далі. Цей майстер-пароль буде потрібен вам кожен раз, коли ви запускаєте додаток ChatSecure і підключаєтеся до своєї анонімної облікового запису. Якщо вам потрібна додаткова захист, спробуйте скористатися пральний фразою з високою ентропією для вашого майстер-пароля.
Тепер смахніте вправо кілька разів, поки не дійдете до сторінки «Secret Identity!», І потім натисніть на кнопку «Додати обліковий запис» (Add Account).
ChatSecure автоматично створить для вас нову прихований обліковий запис в Jabber через мережу Tor. У моєму випадку система підібрала ім'я 0060e404a9 на сервері jabber.calyxinstitute.org. Натисніть на своє ім'я, щоб дізнатися про нього більше подробиць.
Натисніть на кнопку «Розширені настройки облікового запису» (Advanced Account Options) і змініть шифрування розмови (Chat Encryption) на «Примусове / Требуется» (Force / Require).
Тепер ви анонімно увійшли в свою приховану обліковий запис через Tor.
Ключі шифрування і відбитки
Кожен, хто бажає скористатися протоколом OTR, повинен згенерувати власний ключ. Цей ключ являє собою файл, що зберігається на пристрої, який ви використовуєте для обміну повідомленнями. Кожен ключ містить унікальну послідовність символів, яка називається відбитком цього ключа: ніякі два ключа не можуть мати однаковий відбиток.
Якщо ви хочете почати з ким-небудь особисту переписку, повідомте цій людині ваш логін і ім'я сервера. ChatSecure не створить для вас ключ OTR-шифрування, поки ви не почнете обмінюватися зашифрованими повідомленнями, тому, якщо ви тільки що створили обліковий запис, ви не зможете повідомити співрозмовнику про своє відбитку заздалегідь.
Після того, як ваш співрозмовник створить анонімну обліковий запис Jabber, попросіть його, крім іншого, передати вам його логін і ім'я сервера. Як тільки ви почнете обмінюватися з ним повідомленнями, ви зможете бачити відбитки один одного.
Тепер по зовнішньому каналу - тобто, листуючись не в чаті, а по іншому каналу зв'язку - повідомте свого співрозмовника свій OTR-відбиток і попросіть його передати вам свій OTR-відбиток.
Якщо відбиток, який вам передали, збігається з відбитком, який відображається в ChatSecure, то цей контакт можна відзначити як надійний. Якщо відбиток, який передали ви, збігається з відбитком, який відображається в програмі, що використовується вашим співрозмовником, то ваш контакт також можуть відзначити як надійний.
Цей етап кілька заплутаний, але дуже важливий. Якщо відбитки ключа не збігаються, це означає, що на вас спрямована атака посередника. В цьому випадку не відзначайте контакт як надійний, а спробуйте повторити процедуру трохи пізніше.
Додавання контактів і особисте листування
Після того, як я створив тимчасову обліковий запис 0060e404a9, я хочу додати користувача pluto3 до себе в контакти. У ChatSecure я натискаю на значок «+» в правому верхньому куті екрана і вибираю «Додати контакт» (Add Contact). Потім в полі Jabber ID я вводжу «[email protected]» і натискаю на кнопку «Відправити заявку» (Send Invite).
Як тільки я додав новий контакт, ChatSecure дозволяє мені відправити повідомлення. Але перш ніж вступити в контакт зі своїм співрозмовником, краще почекати, поки ви не переконаєтеся, що він знаходиться в мережі. Щоб почати обмін повідомленнями, зашифрованими за протоколом OTR, і я, і pluto3 повинні одночасно перебувати в мережі.
Отже, pluto3 дозволив мені бачити, коли він знаходиться в мережі, і він відправляє запит на те, щоб я дозволив йому бачити, коли я перебуваю в мережі. Я натискаю на кнопку «Так» (Yes).
Після того, як я додав pluto3 в свій список контактів, я зможу бачити, коли він знаходиться в мережі, і відправляти йому повідомлення. Зверніть увагу, що у верхньому правому куті екрану є значок разомкнутого замку: це говорить про те, що OTR-шифрування не використовується. Я повинен натиснути на значок замка і вибрати опцію «Почати шифрування» (Start Encryption).
Зверніть увагу, що тепер замок замкнувся, і на ньому з'явився знак питання. Мені потрібно знову натиснути на значок замка і вибрати опцію «Провести верифікацію контакту» (Verify Contact).
На своєму екрані я порівнюю OTR-відбиток pluto3 з тим, що мій співрозмовник передав мені спочатку, і бачу, що вони збігаються. Це означає, що на вас не направлено атаки посередника.
Тут також вказано мій OTR-відбиток. Тепер мені потрібно повідомити співрозмовнику по зовнішньому каналу свій відбиток, щоб він міг його перевірити.
Я натискаю на кнопку «Вручну» (Manual), щоб вручну підтвердити збіг відбитків, після чого знак питання на іконці замку змінюється зеленої галочкою.
Вам необхідно пройти етап підтвердження тільки перед початком обміну зашифрованими повідомленнями з контактом. Якщо завтра я зайду до свого облікового запису і почну розмову з pluto3, то я можу відразу почати роботу, вважаючи цю розмову захищеним.
Ось, власне, і все. Підсумок: ми встановили програму Orbot і підключили її до мережі Tor на Android. Ми встановили додаток ChatSecure і створили анонімну прихований обліковий запис Jabber. В цей обліковий запис ми додали один контакт, почали сеанс обміну зашифрованими повідомленнями і перевірили правильність OTR-відбитків. Тепер ми можемо почати з ним листування на надзвичайно високому рівні захисту інформації.
Фото люб'язно надано Tor Project
Примітка: в первинному варіанті цієї статті було сказано, що Jabber і OTR для Tor на iOS використовувати не можна. Насправді ж в ChatSecure для iOS є експериментальна підтримка Tor.