Шифрування повідомлень на смартфоні за допомогою pgp

Шифрування повідомлень на смартфоні за допомогою pgp

Інтерфейс утиліти теж вкрай простий і легкий в освоєнні. З одного боку, це дозволяє швидко в ній розібратися, а з іншого - викликає легку тугу за звичними менюшкам з довгими списками налаштувань. У поточній версії PGPTools можна тільки поставити пароль і вибрати довжину ключа. Зате програма дозволяє створити кілька пар ключів і управляти ними з окремої вкладки. Тут можна вибрати поточний ключ і бажані дії з ним. Підтримується експорт (через буфер обміну або функцію «передати»), а також можливий імпорт раніше створених PGP-ключів.

Шифрування повідомлень на смартфоні за допомогою pgp

приємно що програмі не потрібно будь-яких додаткових дозволів.

ВИКОРИСТАННЯ PGPTOOLS

У схемі PGP все ключі генеруються парами, оскільки їх математично пов'язує спільна парольний фраза. Її варто зробити довгою і складною, але без фанатизму - забутий пароль не відновлять. Ключі в парах генеруються різні за своєю структурою - асиметричні. Публічний ключ названий так тому, що його можна вільно передавати кому завгодно. він служить
для перевірки підпису його власника і забезпечує можливість відправити йому зашифроване повідомлення. Розшифрувати таке послання можна тільки парним йому секретним ключем. На те він і секретний, щоб знав його лише творець цієї пари ключів.

Шифрування повідомлень на смартфоні за допомогою pgp

Спрощено кажучи, публічним ключем лист шифрують перед відправкою, а секретним дешифрують після отримання. Це як би цифрова реалізація замку з клямкою: зачинити двері з ним може будь-хто, а ось відкрити - тільки власник ключа. Ми зробили на пробу дві пари ключів: мінімально (1024 біта) і максимально (4096 біт) можливої ​​довжини.

Основна панель в PGPTools носить таку ж назву. Вона переключається між двома режимами: шифруванням і дешифрованием. Її вигляд залежить від того, який ключ був раніше обраний на панелі key list - публічний або секретний. Зашифрувати будь-який текст за допомогою PGPTools можна в пару кліків. Для цього досить вставити його в поле з підказкою Enter source з будь-якого джерела і натиснути кнопку Encrypt. Шифрування буде виконано з використанням обраного раніше публічного ключа.

Розшифрувати його трохи складніше. Потрібно вибрати секретний ключ (парний використаному для шифрування публічного) і ввести пароль, заданий при їх спільної генерації. Блок зашифрованого тексту також вставляється в поле джерела, а результат дешифрування відображається нижче після натискання кнопки Decrypt. Основне призначення PGPTools як програми з асиметричною схемою шифрування полягає в захисті листування (зокрема, пошти) з можливістю передати ключ співрозмовнику по ненадійному каналу. Якби один
і той же ключ використовувався для шифрування / дешифрування повідомлень, то його перехоплення скомпрометував би всю переписку. Перехоплення відкритих ключів практично не потрібен. Обмінявшись ними, можна відразу почати обмін зашифрованими повідомленнями. Після створення їх не відкрити навіть відправнику. Це може зробити тільки одержувач - своїм секретним ключем і після введення парольної фрази.

Передаючи зашифровані листи, переконайся, що блок шифротекста вставляється як є - без розривів і перенесень. Інакше його не можна буде дешифрувати через появу спотворень.

ПАРА (ТИСЯЧ) СЛІВ ПРО АЛГОРИТМІ

У класичній реалізації Циммермана схема PGP використовує одну хеш-функцію і два криптографічних алгоритму: один з симетричним і один з асиметричним ключем. Також в ній застосовується сеансовий ключ, створюваний за допомогою генератора псевдовипадкових чисел. Такий складний процес забезпечує більш надійний захист даних, тобто математичну складність відновлення секретного ключа з парного йому публічного.

Вибір алгоритмів зараз доступний дуже широкий. Саме він у великій мірі впливає на якість конкретної реалізації PGP. Зазвичай використовують AES і RSA, а з хеш-функцій вибирають ту, що, за сучасними уявленнями, найменш схильна до колізій (RIPEMD-160, SHA-256). У PGPTools для шифрування даних використовується алгоритм IDEA, для управління ключами і цифрового підпису - RSA. Хешування відбувається за допомогою функції MD5.

Сам багатостадійний процес (де) шифрування даних у будь-який програми реалізований в одному
з наборів загальнодоступних криптографічних бібліотек. Всі створювані PGPTools ключі містять в назві версії BCPG, що побічно вказує на використання Bouncy Castle OpenPGP API. При перевірці цього припущення в файлі com.safetyjabber.pgptools.apk було виявлено пряма вказівка ​​на бібліотеки Bouncy Castle.

PGP Tools використовує Bouncy Castle OpenPGP API

Вони реалізують схему OpenPGP згідно RFC 4880, але мають свої особливості. Одна з них полягає в тому, що (в залежності від обраної версії) в них може не застосовуватися з'єднання шифрування. Також в цих бібліотеках помічені обмеження ефективної довжини ключа. Це означає, що вище якусь межу (зазвичай 1024 біта) спроба створити ключ більшої довжини не матиме практичного сенсу. Алгоритм не зможе забезпечити високу якість ключів, оскільки в парах з'явиться занадто багато співпадаючих блоків.

Для перевірки ми експортували публічний і секретний PGP-ключ кожної пари в текстовий файл і порівняли їх. У пари ключів з довжиною 1024 біта повторюваних фрагментів немає, як і повинно бути в якісній реалізації.

Шифрування повідомлень на смартфоні за допомогою pgp

Шифрування повідомлень на смартфоні за допомогою pgp

Повторювані блоки в ключах

З четирехкілобітнимі ключами ситуація виглядає інакше. Відрізняються фрагментів в парі занадто мало (вони виділені червоним), а співпадаючих -чересчур багато.

Строго кажучи, відмінностей у них ще менше, ніж видно на скріншотах. Просто використовувана програма порівняння не вміє ігнорувати зміщення блоків, а перевіряє через підрядник. Перші тринадцять рядків збіглися майже повністю, та й кінцівка ідентична відсотків на сімдесят. Якщо ти згенерував пару ключів з великим числом збігів, то просто видали її і створи іншу.

Шифрування повідомлень на смартфоні за допомогою pgp

втішного висновку

За даними NIST, ключі PGP з довжиною 1024 біта і менш вважалися ненадійними ще кілька років тому. Тоді вони розкривалися за прийнятний час на потужних серверах, а сьогодні клацає як насіння в мережах розподілених обчислень. Крім вибору довжини ключа, рівень захисту визначається також складністю парольної фрази і самим механізмом реалізації PGP.

[Всього голосів: 8 Середній: 4.3 / 5]

Схожі статті