Захистіть свою конфіденційність за допомогою Linux
gpg
команди. Використовуйте шифрування світового класу, щоб зберегти свої секрети. Ми покажемо вам, як використовувати gpg для роботи з ключами, зашифрувати файли та розшифрувати їх.
Gnu Privacy Guard ( GPG ) дозволяє надійно зашифрувати файли, щоб лише призначений одержувач міг їх розшифрувати. Зокрема, GPG відповідає вимогам OpenPGP стандартний. Він створений за зразком програми під назвою "Досить хороша конфіденційність" ( PGP ). PGP був написаний в 1991 році Філ Циммерман .
GPG спирається на ідею двох ключів шифрування на людину. Кожна людина має приватний ключ і a громадськості ключ. Відкритий ключ може розшифрувати те, що було зашифровано за допомогою закритого ключа.
Щоб надійно надіслати файл, ви зашифруєте його своїм приватним ключем і відкритий ключ одержувача. Щоб розшифрувати файл, їм потрібен приватний ключ і ваш відкритий ключ.
З цього ви побачите, що відкриті ключі мають бути спільними. Вам потрібно мати відкритий ключ одержувача, щоб зашифрувати файл, а одержувачу потрібен ваш відкритий ключ, щоб його розшифрувати. Не існує небезпеки зробити ваші відкриті ключі саме такими - загальнодоступними. Насправді, для цієї мети існують сервери відкритих ключів, як ми побачимо. Приватні ключі повинні бути приватними. Якщо ваш відкритий ключ знаходиться у відкритому надбанні, тоді ваш приватний ключ повинен зберігатись у таємниці та у безпеці.
Налаштування GPG включає більше кроків, ніж використання. На щастя, вам зазвичай потрібно встановити його лише один раз.
Створення ваших ключів
gpg
команда була встановлена на всіх перевірених дистрибутивах Linux, включаючи Ubuntu, Fedora та Manjaro.
Вам не потрібно використовувати GPG з електронною поштою. Ви можете зашифрувати файли та зробити їх доступними для завантаження, або передати їх фізично одержувачу. Однак вам потрібно пов’язати адресу електронної пошти з генерованими вами ключами, тому виберіть, яку адресу електронної пошти ви збираєтесь використовувати.
Ось команда для створення ваших ключів.
--повний ключ-генерування
Параметр генерує ваші ключі в інтерактивному сеансі у вікні терміналу. Вам також буде запропоновано ввести парольну фразу. Обов’язково пам’ятайте, що таке парольна фраза. Три чи чотири простих слова, об’єднані знаками пунктуації, - це добре і
надійна модель для паролів та парольних фраз
.
gpg --full-generate-key
Вам буде запропоновано вибрати тип шифрування з меню. Якщо у вас немає вагомих причин цього не робити, наберіть
1
і натисніть Enter.
Ви повинні вибрати бітову довжину для ключів шифрування. Натисніть Enter, щоб прийняти значення за замовчуванням.
Вам потрібно вказати, скільки часу повинен тривати ключ. Якщо ви тестуєте систему, введіть короткий термін, наприклад
5
протягом п’яти днів. Якщо ви збираєтеся зберегти цей ключ, введіть довшу тривалість, наприклад 1y, протягом одного року. Ключ прослужить 12 місяців, тому його потрібно буде оновити через рік. Підтвердьте свій вибір за допомогою
Y
.
Ви повинні ввести своє ім’я та свою електронну адресу. Ви можете додати коментар, якщо хочете.
Вам буде запропоновано ввести парольну фразу. Парольна фраза вам знадобиться кожного разу, коли ви працюєте з ключами, тому переконайтеся, що знаєте, що це таке.
Клацніть на
в порядку
після введення парольної фрази. Ви побачите це вікно під час роботи
gpg
, тому обов’язково запам’ятайте свою парольну фразу.
Відбудеться генерація ключа, і ви повернетесь до командного рядка.
Створення свідоцтва про відкликання
Якщо ваш приватний ключ стане відомим іншим, вам потрібно буде від’єднати старі ключі від своєї особи, щоб ви могли генерувати нові. Для цього вам знадобиться сертифікат про відкликання. Ми зробимо це зараз і збережемо десь у безпечному місці.
- вихід
за параметром має йти ім'я файлу сертифіката, який ви хочете створити.
--gen-revoke
варіант причини
gpg
для створення сертифіката відкликання. Ви повинні вказати електронну адресу, яку ви використовували під час створення ключів.
gpg --output ~ / revocation.crt --gen-revoke [email protected]
Вам буде запропоновано підтвердити, що ви хочете створити сертифікат. Натисніть
Y
і натисніть Enter. Вас запитають про причину, по якій ви генеруєте сертифікат. Оскільки ми робимо це заздалегідь, ми точно не знаємо. Натисніть
1
як правдоподібну здогадку і натисніть Enter.
Ви можете ввести опис, якщо хочете. Натисніть Enter двічі, щоб закінчити опис.
Вас попросять підтвердити ваші налаштування, натисніть
Y
і натисніть Enter.
Сертифікат буде сформовано. Ви побачите повідомлення, яке підтверджує необхідність збереження цього сертифіката.
У ньому згадується хтось на ім’я Меллорі. Криптографічні дискусії давно використовуються Боб та Аліса як спілкування двох людей. Є й інші допоміжні персонажі. Єва - підслуховувач, Меллорі - злісний нападник. Все, що нам потрібно знати, це те, що ми повинні зберігати сертифікат у безпеці.
Як мінімум, видалимо всі дозволи, крім наших, із сертифіката.
chmod 600 ~ / revocation.crt
Давайте перевіримо за допомогою
ls
щоб подивитися, який дозвіл зараз:
ls -l
Це ідеально. Ніхто, крім власника файлу - ми - не може зробити що-небудь із сертифікатом.
Імпорт чужого відкритого ключа
Щоб зашифрувати повідомлення, яке може розшифрувати інша особа, ми повинні мати його відкритий ключ.
Якщо вам надано їх ключ у файлі, ви можете імпортувати його за допомогою наступної команди. У цьому прикладі файл ключа називається “mary-geek.key”.
gpg --import mary-geek.key
Ключ імпортовано, і вам буде показано ім’я та електронну адресу, пов’язану з цим ключем. Очевидно, що це має відповідати людині, від якої ви його отримали.
Також існує ймовірність того, що особа, від якої вам потрібен ключ, завантажила свій ключ на сервер відкритих ключів. На цих серверах зберігаються відкриті ключі людей з усього світу. Сервери ключів періодично синхронізуються між собою, щоб ключі були загальнодоступними.
Сервер відкритих ключів MIT - це популярний сервер ключів, який регулярно синхронізується, тому пошук там повинен бути успішним. Якщо хтось нещодавно завантажив ключ, з’явлення може зайняти кілька днів.
--keyserver
за параметром має йти ім'я сервера ключів, який ви хочете здійснити.
--search-ключі
за опцією має йти або ім'я людини, яку ви шукаєте, або її електронна адреса. Ми використовуватимемо електронну адресу:
gpg --keyserver pgp.mit.edu --search-keys [email protected]
Матчі перераховані для вас і пронумеровані. Щоб імпортувати номер, введіть номер і натисніть Enter. У цьому випадку є одна відповідність, тому ми вводимо
1
і натисніть Enter.
Ключ імпортовано, і нам відображаються ім’я та електронна адреса, пов’язані з цим ключем.
Перевірка та підпис ключа
Якщо вам передав файл із відкритим ключем хтось із відомих вам людей, ви можете сміливо сказати, що він належить цій особі. Якщо ви завантажили його із сервера відкритих ключів, можливо, вам доведеться підтвердити, що ключ належить людині, якій він призначений.
- відбиток пальця
варіант причини
gpg
створити коротку послідовність із десяти наборів із чотирьох шістнадцяткових символів. Ви можете попросити особу надіслати вам відбиток свого ключа.
Потім ви можете використовувати
- відбиток пальця
можливість генерувати однакову послідовність відбитків пальців шістнадцяткових символів та порівнювати їх. Якщо вони збігаються, ви знаєте, що ключ належить цій людині.
gpg - відбиток пальця [email protected]
Створюється відбиток пальця.
Коли ви переконаєтесь, що ключ справжній і належить особі, з якою він повинен бути пов’язаний, ви можете підписати його ключ.
Якщо ви цього не зробите, ви все ще можете використовувати його для шифрування та розшифрування повідомлень від і до цієї особи. Але
gpg
щоразу запитуватиме вас, чи хочете ви продовжувати, оскільки ключ не підписаний. Ми будемо використовувати влучно названу
--sign-key
опцію та вкажіть адресу електронної пошти особи, щоб
gpg
знає, який ключ підписати.
gpg --sign-key [email protected]
Ви побачите інформацію про ключ та особу та попросите вас підтвердити, що ви дійсно хочете підписати ключ. Натисніть
Y
і натисніть Enter, щоб підписати ключ.
Як поділитися своїм відкритим ключем
Щоб надати ваш ключ у вигляді файлу, нам потрібно експортувати його з
gpg
локальний магазин ключів. Для цього ми використаємо
--export
параметр, за яким має слідувати електронна адреса, яку ви використали для генерації ключа.
- вихід
за параметром має йти ім'я файлу, до якого ви хочете експортувати ключ.
- броня
варіант розповідає
gpg
для генерації виводу броні ASCII замість двійкового файлу.
gpg --output ~ / dave-geek.key --armor --export [email protected]
Ми можемо заглянути всередину файлу ключа за допомогою
менше
.
менше dave-geek.key
Ключ показаний у всій красі:
Ви також можете поділитися своїм відкритим ключем на сервері відкритих ключів.
--send-клавіші
Параметр надсилає ключ на сервер ключів.
--keyserver
за параметром повинна йти веб-адреса сервера відкритих ключів. Щоб визначити, який ключ надіслати, у командному рядку потрібно вказати відбиток ключа. Зверніть увагу, що між наборами з чотирьох символів немає пробілів.
(Ви можете побачити відбиток свого ключа за допомогою
- відбиток пальця
варіант.)
gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4
Ви отримаєте підтвердження, що ключ надіслано.
Шифрування файлів
Нарешті ми готові зашифрувати файл і надіслати його Мері. Файл називається Raven.txt.
--зашифрувати
варіант розповідає
gpg
для шифрування файлу та
- підписати
Параметр підписує файл із вашими даними.
- броня
Параметр говорить gpg створити файл ASCII.
-r
За опцією (одержувач) повинна бути вказана електронна адреса особи, якій ви надсилаєте файл.
gpg --encrypt --sign --armor -r [email protected]
Файл створюється з тим самим іменем, що й оригінал, але до імені файлу додається “.asc”. Давайте заглянемо всередину.
менше Raven.txt.asc
Файл повністю нерозбірливий, і його може розшифрувати лише той, хто має ваш відкритий ключ та приватний ключ Мері. Єдиною людиною, яка повинна мати обидва, повинна бути Мері.
Тепер ми можемо надіслати файл Мері, впевнені, що ніхто інший не зможе його розшифрувати.
Дешифрування файлів
Мері надіслала відповідь. Він знаходиться у зашифрованому файлі під назвою coded.asc. Ми можемо розшифрувати його дуже легко, використовуючи
--розшифрувати
варіант. Ми збираємось перенаправити вихідні дані в інший файл, який називається plain.txt.
Зверніть увагу, що нам не потрібно говорити
gpg
від кого файл. Це може вийти із зашифрованого вмісту файлу.
gpg --decrypt coded.asc> plain.txt
Давайте розглянемо файл plain.txt:
менш простий.txt
Файл для нас успішно розшифровано.
Оновлення ключів
Періодично можна запитувати
gpg
перевірити ключі, які він має на сервері відкритих ключів, та оновити всі, що змінилися. Ви можете робити це кожні кілька місяців або коли ви отримуєте ключ від нового контакту.
--refresh-клавіші
варіант причини
gpg
виконати перевірку.
--keyserver
за параметром повинен слідувати вибраний вами сервер ключів. Після синхронізації ключів між серверами відкритих ключів не має значення, який із них ви вибрали.
gpg --keyserver pgp.mit.edu --refresh-keys
gpg
відповідає, перелічуючи перевірені ключі та повідомляючи вас, чи змінилися та оновились.
Конфіденційність - це гаряча тема
Конфіденційність сьогодні ніколи не далека від новин. Якими б не були ваші причини бажання зберегти свою інформацію в безпеці та конфіденційності,
gpg
надає прості засоби для застосування неймовірно сильного шифрування до ваших файлів та комунікацій.
Є й інші способи використання
gpg
. Ви можете отримати плагін для
Громовий птах
зателефонував
Enigmail
. Це зачіпається прямо у вас
gpg
конфігурація, яка дозволяє шифрувати повідомлення електронної пошти зсередини Thunderbird.