為了實現驗證在傳輸數據時是否被修改和其安全性我們通常對其加密
常見Linux加密方式
對稱加密
公鑰加密(非對稱加密)
單向加密
1.對稱加密
對稱加密算法: DES(56bits) AES(128bits) 3DES Blowfish Twofish IDEA RC6 CAST5Serpent
對稱加密特性: 加密/解密使用同一口令
將原文分隔成固定大小的數據塊,對這些塊進行加密
對稱加密工具:gpg,openssl
指令:
加密 #openssl enc -des3 -a -salt -in /etc/passwd -out /tmp/passwd.cipher
解密 #openssl enc -d -des3 -a -salt -in /tmp/passwd.cipher/ -out /tmp/passwd.cleartext
查看 #cat /tmp/passwd.cleartext
2.單向加密
特性:One-Way-顧名思義單向;
雪崩效應-輸入有點區別就會產生巨大的差距
算法:MD5(128bits)SHA1(160bits) SHA512(512bits)
工具:sha1sum,md5sum,cksum,openssl dgst
格式:openssl dgst [-md5|=md4|-md2|-sha1|-sha|-mdc2|ripemd160|- dssl] [-out filename] /path/to/somefile
范例:#openssl dgst -sha1sum passwd.cleartext
以sha1sum算法加密passwd.cleartext明文文件
MAC消息認證碼
特性:單向加密的延伸
應用:消息認證碼是基于密鑰和消息摘要所獲得的一個值,
可用于數據源發認證和完整性校驗
工作機制:發送方首先使用通信雙方協商好的散列函數計
算其摘要值。在 雙方共享的會話密鑰作用下,
由摘要值獲得消息驗證碼。之后,它和數據一起
被發送。接收方收到報文后,首先利用會話密鑰
還原摘要值,同時利用散列函數在本地計算所收
到數據的摘要值,同時利用散列函數在本地計算
所收到數據的摘要值,并將這兩個數據進行比對。
若兩者相等,則報文通過認證。
算法:HMAC,使用md5和sha1算法
用戶認證
工具:passwd,openssl passwd
舉例:openssl passwd-1 -salt AAABBB 出入密碼后
1$AAABBB$r42gNYYXUTdXy00ZV0Pr4
3.公鑰加密
特性:公鑰加密,私鑰解密 –非對稱加密
算法:RSA,EIGaml
工具:gpg,openssl reautl
密鑰對:公鑰pkey 私鑰skey
數字簽名
特性:私鑰加密,公鑰解密
算法:RSA,EIGamal,DSA
其中DSA只提供數字認證,不提供加密
密鑰交換
特性:IKE(互聯網密鑰交換)屬于公鑰加密
算法:DH(Diffie-Hellman)
數字證書
證書格式:x509、pkcs
x509格式:公鑰和有效期限
持有者的個人合法身份信息(服務器主機名)
證書的使用方式
CA的信息
CA的數字簽名
4.openssl 實現私有CA
1)配置文件 vim /etc/pki/tls/openssl.conf
wKioL1M1PKyAR-MeAAMXfizDx0Y000.jpg
2) 創建密鑰對兒pkey skey
#(umask 077;openssl genrsa -out private/cakey.pem 2048)
生成自簽證書
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655
CA簽署證書
將證書傳回給請求者
#openssl ca -in httpd.csr httpd.crt -days 3650
吊銷證書
openssl ca -revoke httpd.crt
下一篇:oracle常用語法