RPM-GPG-KEY在包安裝時候的作用及實現原理,rpm-gpg-key原理
GPG在Linux上的應用主要是實現官方發布的包的簽名機制。
GPG分為公開金鑰及私密金鑰。
公開金鑰:顧名思意,即可共用的密鑰,主要用於驗證私密金鑰加密的資料及簽名要發送給私密金鑰方的資料。
私密金鑰:由本地保留的密鑰,用於簽名本機資料及驗證用公開金鑰簽名的資料。
實現原理(以Red Hat簽名為例):
1>RH在發布其官方的RPM包時(如本地RHEL光碟片及FTP空間包),會提供一個GPG密鑰檔案,即所謂的公開金鑰。
2>使用者下載安裝這個RPM包時,引入RH官方的這個RPM GPG公開金鑰,用來驗證RPM包是不是RH官方簽名的。
匯入GPG-KEY:
可以去https://www.redhat.com/security/team/key/或/etc/pki/rpm-gpg尋找相應的GPG密鑰,並匯入到RPM:
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY
簽名及加密概念:
簽名與加密不是一個概念。
簽名類似於校正碼,用於識別軟體包是不是被修改過,最常用的的就是我們的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