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