Як надійно зашифрувати файл паролем в Windows та Ubuntu

Доволі часто виникає питання, як надійно зашифрувати файл паролем? Існує безліч ситуацій, коли нам треба передати чи зберігати конфіденційні дані (банківські ключі, особисте, крипто-гаманці, бухгалтерія, бекапи тощо). І навіть зберігання у хмарі «Google Диск» з двоетапною аутентифікацію не гарантує стовідсотковий захист. Перше, що спадає на думку пересічному користувачеві — використати звичайний архіватор (наприклад, той же Zip) та запаролити архів. Поспішаю розчарувати, такий метод з точки зору надійності доволі примітивний та не завадить зловмисникам зламати пароль і дістатись до даних. З іншого боку, це краще ніж нічого, і для некритичних задач паролі на архівах можна застосовувати. Але що ж тоді застосувати, щоб гарантовано убезпечити дані від злому, як встановити надійний захист? Відповідаю — GPG.

GPG (GNU Privacy Guardі) — абсолютно вільна (читай безкоштовна) стандартизована бібліотека/утиліта/програма для шифрування інформації та створення цифрових підписів під ліцензією GNU General Public License. По суті це альтернатива не вільній PGP. Щоб не вантажити читача документацію та не дублювати офіційні гайди, коротко скажу про основне. GPG шифрування даних дуже поширене у різних сферах: канали обміну інформації, різноманітні месенджери, шифрування масивів даних, генерація SSL сертифікатів і багато іншого. GPG підтримує два методи шифрування — асиметричний та симетричний. У першому випадку доведеться трішки глибше вникнути у специфіку роботи. Асиметричне шифрування базується на двох ключах — публічному (вільний, загальнодоступний) та приватному (секретний). Для шифрування та дешифрування завжди буде задіяна пара. І звісно ж без приватного ключа розшифрувати дані неможливо. Та сьогодні я хочу зупинитися на другому способі, більш простому та більш підходящому для нашої задачі — симетричний метод. Він не вимагає попередньої генерації публічного ключа і шифрує дані за вказаною користувачем ключовою фразою (ключ/гасло). Тобто від нас вимагається лише задати міцний пароль. І як саме це зробити, ми зараз і розглянемо.

Linux: Ubuntu, Mint, Debian ... Майже усі дистрибутиви Linux включають попередньо встановлені GPG пакунки. Немає змісту використовувати додаткові графічні застосунки, все доволі просто виконується командами у терміналі. Для наочності та тестування створимо файл «test.txt» з довільним змістом в домашній директорії. Щоб зашифрувати файл «test.txt» симетричним методом, виконуємо команду у терміналі:
$ gpg -c test.txt
Параметр власне і означає симетричне шифрування (symmetric). Можна використовувати також синонім параметру:
$ gpg --symmetric test.txt

Ubuntu GPG

З’явиться діалогове вікно та запит пароля шифрування. Вводимо та підтверджуємо ще раз гасло. Ось і все, в директорії створено новий зашифрований файл з назвою «test.txt.gpg». Якщо цікаво, можна відкрити новостворений файл «test.txt.gpg» в текстовому редакторі і подивитися, на що він перетворився (саме так виглядають шифровані дані GPG):

Ubuntu GPG кодування

Розшифрують (декодують) gpg файли наступні команди:
$ gpg -d test.txt.gpg > test.txt
Або аналогічно з параметром -о (output)
$ gpg -d -o test.txt test.txt.gpg

Як бачимо, нічого складного для шифрування/дешифрування в Ubuntu/Debian подібних системах нема.

Windows. На відміну від Linux систем, в Windows версіях нема заздалегідь встановленої бібліотеки GPG, та й терміналом юзери «кватирок» не звикли користуватися. Не біда, розробники подбали про усі платформи і виклали у себе на сайті програму Gpg4win. Звідси її і завантажуємо — https://gnupg.org/download/.

Після відкриття програма запропонує створити пару ключів. Але ми використовуємо шифрування тільки за паролем (симетричний метод), тож одразу можемо обирати в меню Підписати/Зашифрувати. Далі буде помітка (попередження): шифрування відбувається лише паролем, і кожен, хто матиме пароль, зможе дешифрувати дані («Encrypt with password. Anyone you share the password with can read the data»). Вводимо пароль двічі і завершуємо шифрування. Для дешифрування даних обираємо в меню Дешифрувати.

Windows GPG

Інші ОС. Для OS X завантажуємо за вказаним вище посилання програму Mac GPG. Для Android систем шукаємо OpenKeychain в Google Play (рекомендовано розробниками).

Симетричне шифрування базується на використанні єдиного ключа для шифрування і дешифрування. Це простий та водночас надійний метод для обраних задач (паролі на файли). Алгоритми AES, Blowfish, Twofish відносяться до ефективних та невразливих. А решта в ваших руках. Не використовуйте прості паролі на кшталт «qwerty», і все буде гаразд :)
2022-07-31   587