数据加密类型及创建和申请CA证书
數據加密類型及創建和申請CA證書
1.數據在互聯網上傳輸必須保證以下3點特性:
?私密性: ?數據加密
?完整性: ? 數據傳輸過程沒有被人修改?
?身份驗證: 確認對方的身份,防止中間人偽裝***
2.私密性:數據加密應使用對稱加密,特點速度快
? ? ? 代表算法有:DES,3DES,AES,AES192,AES256,AES512,Blowfish
3.完整性:通過單向加密算法,提取數據特征碼,特點是雪崩效應,定長輸出,不可逆等
? ? ? 代表算法有:MD5,SHA1,SHA192,SHA256,SHA384,CRC-32(檢驗)
4.身份驗證:公/私鑰加密:即為非對稱加密碼算法,產生密鑰對,特點是速度慢
? ? ? ? 發送方用對方的公鑰加密,接收方用自己的私鑰解密,即保證數據的私密性
? ? ? ? 發送方用自己的私鑰加密,接收方用對方的公鑰解密,即保證數據的身份驗證和私密性
? ? ? 代表算法有:RSA(加密/簽名),DSA(簽名)
5.數據傳輸過程有2種方法:
? 第一種:首先發送方與接收方通IKE協商生成對稱的密鑰,發送方或接收方按需各自生成一對非對稱的公私鑰,然后發送方對將要發送的數據,提取特征碼,并用自己的私鑰對特征碼加密,即可保證數據的身份驗證和私密性,再通過對稱密鑰對整個數據和特征碼進行加密,即發送即可,接收方用協商成的對稱密鑰進行數據解密,用發送方的公鑰對特征碼進行解密校驗完整性和身份驗證
?第二種:首先發送方隨機生成一個隨機數,發送方或接收方按需各自生成一對非對稱的公私鑰,然后發送方對將要發送的數據,提取特征碼,并用自己的私鑰對特征碼加密,即可保證數據的身份驗證和私密性,再通過剛生成的隨機數對整個數據和特征碼進行加密,并且通過對方的公鑰將隨機數加密,放在整個數據后面一起發送即可,接收方用自己私鑰的進行解密,得到發送方的隨機數,再進行解密數據,最后用發送方的公鑰對特征碼進行解密校驗完整性和身份驗證
6.CA:Certificate Authority,簡稱CA證書,即證書頒發機構
?CA:證書格式有x509和pkcs12格式
?x509主要包括:公鑰及有效期限,證書合法擁有者,證書使用說明,CA自身的信息,CA的簽名
?PKI的實現方式有:TLS/SSL:也使用x509格式
? ? ? ? ? ? ?OpenGPG:格式與x509相似
?SSL:Secure Socket Layer,在應用層與傳輸層之間的半個層,叫做安全套接字層,也就是一種庫
?例如:http明文協議通過調用SSL庫,變成https加密協議
?由于SSL是一個公司開發,較不開放,而國際化標準組織就不舒服,應運產生更開放的加密機制TLS
?TLS:Transport Layer Security,叫傳輸層安全
? 版本:TLSv1相當SSLv3版本
7.openssl工具:
? 7.1.openssl ? 查看opessl簡單幫助 ;man enc 查看enc幫助
? ?-e 加密,默認
? ?-d 解密
? ?enc 指定加密算法
? ?-salt 加鹽,產生隨機數
? ?-a: base64編碼
?對fstab文件加密:
? ?openssl enc -des3 -salt -a -in fstab -out fstab.des3
?對fstab文件解密:
? ?openssl enc -des3 -d -salt -a -in fstab.des3 -out fstab
?7.2.提取指紋信息及特征碼:
? ?md5sum fstab
? ?sha1sum fstab
? ?openssl dgst -md5 fstab
? ?openssl dgst -sha1 fstab
? ? ?7.3.對密碼進行加密或hash,由于salt不一樣,同樣的密碼造成加密后的結果不一樣
? ?-1代表md5加密,man sslpasswd查找幫助得知:
? ?openssl passwd -1
? ?openssl passwd -1
? ?openssl passwd -1 -salt
? ? ? 7.4.生成指定位數的隨機數,可當作密碼使用
? ?openssl rand -base64 10
? ?openssl rand -base64 50
? ?openssl rand -base64 100
? ? ?8.openssl創建私有CA: 要想給其他機構頒發證書,首先自己必須有證書
?8.1.生成一對密鑰: 密鑰文件權限最好是600,man genrsa查看幫助,
? ? 以下三種方法選其一生成私鑰
? ?openssl genrsa 1024 > server.key ; ? chmod 600 server.key?
? ?openssl genrsa -out server.key 1024;?chmod 600 server.key?
? ?(umask 077; openssl genrsa -out server.key 1024) ?#子shell運行,不影響父shell
? ?提取公鑰:從私鑰中提取公鑰
? ?openssl rsa -in server.key ?-pubout
?8.2.生成自簽名證書
? openssl req -new -x509 -key server.key -out server.crt -days 365
? 查看證書內容:openssl x509 -text -in server.crt
?8.3:創建一個完整的私有證書過程及步驟:
? ?cd /etc/pki/CA/
? ?(umask 077; openssl genrsa -out private/cakey.pem 1024) ? ? ?#生成私鑰
? ?openssl req -new -x509 -key private/cakey.pem -out cacert.pem ?#用私鑰創建CA證書
? ?mkdir certs newcerts crl
? ?touch index.txt
? ?touch serial
? ?echo 01 > serial
?注意:通過cat /etc/pki/tls/openssl.cnf查看創建私有CA證書所需環境
9.openssl申請證書:
? 例如為https服務申請一個證書,簡單步驟如下:
? cd /etc/httpd/ssl
? (umask 077; openssl genrsa -out httpd.key 2048 ) ? #生成私鑰
? openssl req -new -key httpd.key -out httpd.csr ? ?#用私鑰申請證書,注意沒有-x509
? openssl ca -in httpd.csr -out httpd.crt -days 365 ?#CA頒發機構對證書簽名
??
轉載于:https://blog.51cto.com/willow/1772810
總結
以上是生活随笔為你收集整理的数据加密类型及创建和申请CA证书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】ofbiz数据库表结构设计
- 下一篇: Mybatis学习--Mapper.xm