Как да проверя подпис PGP?

How Do I Verify Pgp Signature



PGP (Pretty Good Privacy) е програма за криптография, базирана на публичен ключ. PGP допълва симетричния ключ с алгоритми с асиметричен ключ, превръщайки този софтуер в хибридна криптографска система, често наричана хибридна криптосистема .

PGP се използва не само за защита на информацията от киберзаплахи, но и за проверка на целостта на файловете.







Този урок обяснява лесно как работи PGP и как да проверите подписите на PGP .



Как работи PGP

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







Информацията се шифрова с помощта на публичния ключ и се декриптира с частния ключ. Това се казва асиметрично криптиране .

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



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

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

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

Подписи на PGP

PGP се използва и за проверка на целостта на пакетите. Това се постига чрез цифров подпис, който може да се направи с PGP.

Първо, PGP генерира хеш, който е криптиран с частния ключ. И частният ключ, и хешът могат да бъдат декриптирани с помощта на публичния ключ.

PGP създава цифров подпис, например, за ISO изображение, използвайки алгоритми DSA или RSA. В този случай частният ключ е прикрепен към софтуера или ISO образа, противно на описаната по -горе операция. Публичният ключ също се споделя.

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

Следният график показва как частният ключ и хеш са свързани към софтуера и как потребителят приема софтуера с прикачения хеш и частен ключ заедно с публичния ключ, за да провери подписа:

Как да проверя подпис PGP?

Първият пример показва как да проверите подписа на ядрото на Linux. За да опитате, отворете https://kernel.org и изтеглете версия на ядрото и неговия PGP файл. За този пример ще изтегля файлове linux-5.12.7.tar.xz и linux-5.12.7.tar.sign .

Първият пример показва как да проверите подписа с една команда. Според man страницата тази комбинация от опции ще бъде отхвърлена в бъдещите версии. Въпреки това, тя все още се използва широко и въпреки че конкретната комбинация ще бъде отхвърлена, опциите ще останат.

Първият вариант –Ключ-сървър-опции позволява дефиниране на опции за ключовия сървър, където се съхраняват публичните ключове. По принцип това позволява прилагането на опции за извличане на публични ключове.

The –Ключ-сървър-опции се комбинира с –Авто-ключ-извличане опция за автоматично извличане на публични ключове от сървър на ключове при проверка на подписите.

За да намери публичните ключове, тази команда ще прочете подписа, търсейки дефиниран предпочитан сървър на ключове или идентификатор на подписал чрез процес на търсене, използвайки Web Key Directory.

gpg--keyserver-optionsавтоматично извличане на ключ-проверетеlinux-5.12.7.tar.sign

Както можете да видите, подписът е добър, но има предупредително съобщение, че gpg не може да потвърди, че подписът принадлежи на собственика. Всеки може да издаде публичен подпис като Грег Крохан-Хартман. Знаете, че подписът е легитимен, защото се доверявате на сървъра, от който сте го изтеглили. В този случай той е посочен в .sign, изтеглен от kernel.org.
Това предупреждение винаги е налице и можете да го избегнете, като добавите подписи към списък с доверени подписи, като използвате опцията -доверие на ключовете за редактиране . Истината е, че никой потребител не го прави и общността на Gpg поиска предупреждението за премахване.

Проверка на SHA256SUMS.gpg

В следния пример ще проверя целостта на стар образ на Kali Linux, който намерих в кутията си. За тази цел изтеглих файловете SHA256SUMS.gpg и SHA256SUMS, принадлежащи към един и същ iso образ.

След като изтеглите iso изображение, SHA256SUMS.gpg и SHA256SUMS, трябва да получите публичните ключове. В следния пример извличам ключовете с помощта wget и gpg - импорт (Инструкциите за проверка на Kali се свързват с този ключов сървър).

След това проверявам целостта на файла, като извикам gpg с - проверете аргумент:

wget -q -ИЛИ- https://archive.kali.org/archive-key.asc|gpg-внос

gpg-проверетеSHA256SUMS.gpg SHA256SUMS

Както можете да видите, подписът е добър и проверката е успешна.

Следващият пример показва как да проверите изтеглянето на NodeJS. Първата команда връща грешка, защото няма публичен ключ. Грешката показва, че трябва да потърся ключа 74F12602B6F1C4E913FAA37AD3A89613643B6201. Обикновено можете също да намерите идентификатора на ключа в инструкциите.

Като използвате опцията - ключ за сървър , Мога да посоча сървъра за търсене на ключа. Като използвате опцията –Recv-ключове , Извличам ключове. Тогава проверката работи:

gpg-проверетеSHASUMS256.txt.asc

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

gpg-ключ-сървърpool.sks-keyservers.net--recv-ключове

74F12602B6F1C4E913FAA37AD3A89613643B6201


gpg-проверетеSHASUMS256.txt.asc

Търсене на gpg ключове:

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

gpg-ключ за търсене74F12602B6F1C4E913FAA37AD3A89613643B6201

Както можете да видите, ключът е намерен. Можете също да го извлечете, като натиснете номера на клавиша, който искате да извлечете.

Заключение

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

Разбирането на асиметрично криптиране или криптиране на базата на публични и частни ключове е основна необходимост за безопасно взаимодействие в интернет, например с помощта на цифрови подписи.

Надявам се този урок за подписите в PGP да е бил полезен. Следвайте Linux подсказки за още съвети и уроци за Linux.