加密及安全機制
Red Hat Enterprise Linux (RHEL) 內含了兩種加密的服務:
1. Gnu Privacy Guard (GPG),主要是用在檔案的加密上,如驗證檔案的完整性、加密電子郵件等。
2. openssl,主要是用在網路通訊的加密。
亂數產生器
系統提供了一個裝置 /dev/random ,它會擷取鍵盤、滑鼠、或磁碟的動作來產生亂數。
試著
#cat /dev/random
然後移動滑鼠、敲鍵盤等,會一直產生亂數,結束按 Ctrl + C。
openssl 函數庫也提供了亂數產生器:
#openssl rand 1024 -out rand.bin (會產生 1024 bit 的二進位亂數)
#openssl rand 1024 -base64 -out rand.txt (會產生 1024 bit 經 base64 編碼的 ASCII 亂數)
單向雜湊演算法 (One-Way Hashes)
任意的資料內容經過演算之後,會得到該檔案的指紋檔 (fingerprint),通常用在資料或檔案的完整性驗證:
1.任何長度的資料皆可演算。
2.得到的 fingerprint 長度等長。
3.檔案內容不變,演算結果不變;檔案結果有任何一個 bit 的變動,演算結果就會不同 (collision free)。
4.無法由 fingerprint 反推出資料內容 (one way)。
常見演算法有:md2, md5, mdc2, rmd160, sha, sha1
常用檢查工具:
1. sha1sum [–check] file
2. md5sum [–check] file
3. openssl, gpg
4. rpm -V
# openssl md5 rand.bin (使用 md5 為 rand.bin 算出 fingerprint)
MD5(rand.bin)= 3063f77fd1135765ec7b3abe1322100d
# md5sum rand.bin
3063f77fd1135765ec7b3abe1322100d rand.bin
# md5sum rand.bin > md5sum.txt (為 rand.bin 產生 md5sum.txt 的 fingerprint)
# cat md5sum.txt ( md5sum.txt 的內容)
3063f77fd1135765ec7b3abe1322100d rand.bin
# md5sum –check md5sum.txt (檢查 md5sum.txt 的 fingerprint 和 rand.bin 的 fingerprint 是否相同)
rand.bin: 正確
# echo “1” >> rand.bin (改變一下 rand.bin 的內容)
# md5sum –check md5sum.txt (再檢查是否相同)
rand.bin: 錯誤
md5sum: WARNING: 1 of 1 computed checksum did NOT match
==============================