Как да криптирате и декриптирате файлове с GPG на Linux

Защитете поверителността си с командата Linux gpg. Използвайте криптиране от световна класа, за да запазите тайните си в безопасност. Ще ви покажем как да използвате gpg за работа с ключове, криптиране на файлове и тяхното дешифриране.

GnuPrivacy Guard (GPG) ви позволява да шифровате сигурно файлове, така че само съответният получател да може да ги декриптира. По-конкретно, GPG отговаря на OpenPGP стандартен. Той е моделиран по програма, наречена Pretty Good Privacy (PGP). PGP е написана през 1991 г. от Фил Цимерман.

GPG разчита на идеята за два ключа за криптиране на човек. Всеки човек има частен ключ и публичен ключ. Публичният ключ може да декриптира нещо, което е било криптирано с помощта на частния ключ.

За да изпратите файл сигурно, го криптирате с личния си ключ и публичния ключ на получателя. За да декриптират файла, те се нуждаят от техния частен ключ и вашия публичен ключ.

От това ще видите, че публичните ключове трябва да бъдат споделени. Трябва да имате публичния ключ на получателя, за да шифровате файла, а получателят се нуждае от вашия публичен ключ, за да го декриптира. Няма опасност да направите вашите публични ключове точно това – публични. Всъщност има сървъри на публични ключове точно за тази цел, както ще видим. Частните ключове трябва да се пазят частни. Ако вашият публичен ключ е в публичното пространство, тогава вашият частен ключ трябва да се пази в тайна и сигурност.

Има повече стъпки, включени в настройката на GPG, отколкото при използването му. За щастие, обикновено трябва да го настроите само веднъж.

Генериране на вашите ключове

Командата gpg беше инсталирана на всички проверени дистрибуции на Linux, включително Ubuntu, Fedora и Manjaro.

Не е нужно да използвате GPG с имейл. Можете да шифровате файлове и да ги направите достъпни за изтегляне или да ги предадете физически на получателя. Трябва обаче да свържете имейл адрес с ключовете, които генерирате, така че изберете кой имейл адрес ще използвате.

Ето командата за генериране на вашите ключове. Опцията –full-generate-key генерира вашите ключове в интерактивна сесия в прозореца на вашия терминал. Ще бъдете подканени и за парола. Уверете се, че помните каква е паролата. Три или четири прости думи, съединени заедно с пунктуация, е добро и стабилен модел за пароли и пароли.

gpg --full-generate-key

Ще бъдете помолени да изберете тип криптиране от меню. Освен ако нямате основателна причина да не го правите, въведете 1 и натиснете Enter.

Трябва да изберете битова дължина за ключовете за криптиране. Натиснете Enter, за да приемете по подразбиране.

Трябва да посочите колко дълго трябва да издържи ключът. Ако тествате системата, въведете кратка продължителност като 5 за пет дни. Ако ще запазите този ключ, въведете по-дълга продължителност като 1y за една година. Ключът ще издържи 12 месеца и така ще се нуждае от подновяване след една година. Потвърдете избора си с Y.

  Как да хоствате игра на Minecraft на виртуална машина с Linux

Трябва да въведете вашето име и имейл адреса си. Можете да добавите коментар, ако желаете.

Ще бъдете подканени за вашата парола. Ще ви трябва паролата винаги, когато работите с ключовете си, така че се уверете, че знаете каква е тя.

Щракнете върху бутона OK, когато сте въвели вашата парола. Ще виждате този прозорец, докато работите с gpg, така че не забравяйте да запомните своя пропуск.

Генерирането на ключ ще се извърши и вие ще бъдете върнати в командния ред.

Генериране на сертификат за анулиране

Ако вашият частен ключ стане известен на другите, ще трябва да отделите старите ключове от вашата самоличност, за да можете да генерирате нови. За да направите това, ще ви е необходим сертификат за анулиране. Ще направим това сега и ще го съхраняваме на безопасно място.

Опцията –output трябва да бъде последвана от името на файла на сертификата, който искате да създадете. Опцията –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

Ключът се импортира и ви се показват името и имейл адреса, свързани с този ключ. Очевидно това трябва да съответства на човека, от когото сте го получили.

Има също така възможността човекът, от който се нуждаете от ключ, да е качил своя ключ на сървър за публичен ключ. Тези сървъри съхраняват публичните ключове на хора от цял ​​свят. Ключовите сървъри се синхронизират един с друг периодично, така че ключовете да са универсално достъпни.

  Как да защитите USB флаш устройство на Linux

Сървърът с публични ключове на MIT е популярен сървър за ключове и този, който се синхронизира редовно, така че търсенето там трябва да бъде успешно. Ако някой само наскоро е качил ключ, може да отнеме няколко дни, за да се появи.

Опцията –keyserver трябва да бъде последвана от името на ключовия сървър, който искате да търсите. Опцията –search-keys трябва да бъде последвана или от името на лицето, което търсите, или от неговия имейл адрес. Ще използваме имейл адреса:

gpg --keyserver pgp.mit.edu --search-keys [email protected]

Съвпаденията са изброени за вас и номерирани. За да импортирате такъв, въведете номера и натиснете Enter. В този случай има едно съвпадение, така че въвеждаме 1 и натискаме Enter.

Ключът се импортира и ни се показват името и имейл адреса, свързани с този ключ.

Проверка и подписване на ключ

Ако ви е даден файл с публичен ключ от някой, който ви е познат, можете спокойно да кажете, че принадлежи на това лице. Ако сте го изтеглили от сървър за публичен ключ, може да почувствате нужда да проверите дали ключът принадлежи на лицето, за което е предназначен.

Опцията –fingerprint кара gpg да създаде кратка последователност от десет набора от четири шестнадесетични знака. Можете да помолите лицето да ви изпрати отпечатъка на своя ключ.

След това можете да използвате опцията –fingerprint, за да генерирате същата последователност на пръстови отпечатъци от шестнадесетични знаци и да ги сравните. Ако съвпадат, вие знаете, че ключът принадлежи на този човек.

gpg --fingerprint [email protected]

Пръстовият отпечатък се генерира.

Когато сте доволни, че ключът е оригинален и е собственост на лицето, с което се предполага, че е свързан, можете да подпишете неговия ключ.

Ако не направите това, все още можете да го използвате за криптиране и дешифриране на съобщения от и до този човек. Но gpg ще ви пита всеки път дали искате да продължите, защото ключът е неподписан. Ще използваме опцията с подходящо име –sign-key и ще предоставим имейл адреса на лицето, така че gpg да знае кой ключ да подпише.

gpg --sign-key [email protected]

Ще видите информация за ключа и лицето и ще бъдете помолени да потвърдите, че наистина искате да подпишете ключа. Натиснете Y и натиснете Enter, за да подпишете ключа.

Как да споделите своя публичен ключ

За да споделим вашия ключ като файл, трябва да го експортираме от локалното хранилище за ключове на gpg. За да направим това, ще използваме опцията –export, която трябва да бъде последвана от имейл адреса, който сте използвали за генериране на ключа. Опцията –output трябва да бъде последвана от името на файла, в който искате да се експортира ключът. Опцията –armor казва на gpg да генерира ASCII изход за броня вместо двоичен файл.

gpg --output ~/dave-geek.key --armor --export [email protected]

Можем да надникнем във файла с ключове с по-малко.

less dave-geek.key

Ключът е показан в цялата си слава:

  Как да редактирате файла Hosts в Linux

Можете също да споделите своя публичен ключ на сървър за публичен ключ. Опцията –send-keys изпраща ключа към сървъра на ключове. Опцията –keyserver трябва да бъде последвана от уеб адреса на сървъра на публичен ключ. За да определите кой ключ да изпратите, отпечатъкът за ключа трябва да бъде предоставен в командния ред. Имайте предвид, че няма интервали между наборите от четири знака.

(Можете да видите пръстовия отпечатък за вашия ключ, като използвате опцията –fingerprint.)

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

Ще получите потвърждение, че ключът е изпратен.

Шифроване на ФАЙЛОВЕ

Най-накрая сме готови да шифроваме файл и да го изпратим на Мери. Файлът се нарича Raven.txt.

Опцията –encrypt казва на gpg да шифрова файла, а опцията –sign му казва да подпише файла с вашите данни. Опцията –armor казва на gpg да създаде ASCII файл. Опцията -r (получател) трябва да бъде последвана от имейл адреса на лицето, на което изпращате файла.

gpg --encrypt --sign --armor -r [email protected]

Файлът се създава със същото име като оригинала, но с „.asc“, добавен към името на файла. Нека да погледнем вътре в него.

less Raven.txt.asc

Файлът е напълно нечетлив и може да бъде декриптиран само от някой, който има вашия публичен ключ и частния ключ на Мери. Единственият човек, който има и двете, трябва да бъде Мери.

Вече можем да изпратим файла на Мери, уверени, че никой друг не може да го дешифрира.

Декриптиране на файлове

Мери изпрати отговор. Той е в криптиран файл, наречен coded.asc. Можем да го дешифрираме много лесно с опцията –decrypt. Ще пренасочим изхода към друг файл, наречен plain.txt.

Имайте предвид, че не е нужно да казваме на gpg от кого е файлът. Може да разбере това от криптираното съдържание на файла.

gpg --decrypt coded.asc > plain.txt

gpg --decrypt coded.asc > plain.txt в терминален прозорец” width=”646″ height=”212″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>Нека разгледаме файла plain.txt:</p>
<pre>по-малко plain.txt</pre > <p><img loading=

Файлът е успешно декриптиран за нас.

Освежаване на вашите ключове

Периодично можете да помолите gpg да проверява ключовете, които има, спрямо сървър на публичен ключ и да обновява всички, които са променени. Може да правите това на всеки няколко месеца или когато получите ключ от нов контакт.

Опцията –refresh-keys кара gpg да извърши проверката. Опцията –keyserver трябва да бъде последвана от ключовия сървър по ваш избор. След като ключовете са синхронизирани между сървърите на публични ключове, няма значение кой от тях ще изберете.

gpg --keyserver pgp.mit.edu --refresh-keys

gpg отговаря, като изброява ключовете, които проверява, и ви уведомява дали някой е променен и актуализиран.

Поверителността е гореща тема

Поверителността никога не е далеч от новините в наши дни. Каквито и да са причините да искате да запазите информацията си защитена и поверителна, gpg предоставя прости средства за прилагане на невероятно силно криптиране към вашите файлове и комуникации.

Има и други начини за използване на gpg. Можете да получите плъгин за Thunderbird Наречен Enigmail. Той се свързва направо във вашата gpg конфигурация, за да ви позволи да шифровате имейл съобщения от вътрешността на Thunderbird.