GPG在Linux上的應用主要是實現官方發佈的包的簽名機制加密
GPG分爲公鑰及私鑰spa
公鑰:顧名思意,便可共享的密鑰,主要用於驗證私鑰加密的數據及簽名要發送給私鑰方的數據.net
私鑰:由本地保留的密鑰,用於簽名本地數據及驗證用公鑰簽名的數據blog
實現原理(以Red Hat簽名爲例):crontab
1>RH在發佈其官方的RPM包時(如本地RHEL光盤及FTP空間包),會提供一個GPG密鑰文件,即所謂的公鑰ip
2>用戶下載安裝這個RPM包時,引入RH官方的這個RPM GPG公鑰,用來驗證RPM包是否是RH官方簽名的md5
導入GPG-KEY:get
能夠去https://www.redhat.com/security/team/key/或/etc/pki/rpm-gpg查找相應的GPG密鑰,並導入到RPM:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEYit
簽名及加密概念:io
簽名與加密不是一個概念
簽名相似於校驗碼,用於識別軟件包是否是被修改過,最經常使用的的就是咱們的GPG及MD5簽名,原方使用必定的字符(MD5)或密碼(GPG私鑰)與軟件進行相應的運算並獲得一個定長的密鑰
加密是用必定的密鑰對原數據進行修改,即便程序在傳輸中被截獲,只要它不能解開密碼,就不能對程序進行修改,除非破壞掉文件,那樣咱們就知道軟件被修改過了
RPM驗證方法:
1>驗證安裝的整個軟件包的文件rpm -V crontabs-1.10-8
2>驗證軟件包中的單個文件
rpm -Vf /etc/crontab
若是文件沒有被修改過,則不輸出任何信息
3>驗證整個軟件包是否被修改過
rpm -Vp AdobeReader_chs-7.0.9-1.i386.rpm
.......T /usr/local/Adobe/Acrobat7.0/Reader/GlobalPrefs/reader_prefs
S.5....T /usr/local/Adobe/Acrobat7.0/bin/acroread
4>驗證簽名
rpm -K AdobeReader_chs-7.0.9-1.i386.rpm
AdobeReader_chs-7.0.9-1.i386.rpm: sha1 md5 OK
驗證結果含意:
S :file Size differs
M :Mode differs (includes permissions and file type)
5 :MD5 sum differs
D :Device major/minor number mis-match
L :readLink(2) path mis-match
U :User ownership differs
G :Group ownership differs
T :mTime differs