linux加密解密基础、PKI及SSL、创建私有CA
linux加密解密基礎(chǔ)、PKI及SSL、創(chuàng)建私有CA
1.加密解密基礎(chǔ):
?
?????????數(shù)據(jù)在網(wǎng)絡(luò)中傳輸過(guò)程中要保證三個(gè)要點(diǎn):
??????????(1)數(shù)據(jù)的完整性:防止數(shù)據(jù)在傳輸過(guò)程中遭到未授權(quán)用戶的破壞或篡改。
??????????(2)數(shù)據(jù)的機(jī)密性:防止文件數(shù)據(jù)泄漏給未授權(quán)用戶從而讓其利用
??????????(3)數(shù)據(jù)的可用性:保證授權(quán)用戶能按需訪問(wèn)存取文件數(shù)據(jù)
2.常見的加密技術(shù):
??對(duì)稱加密
??公鑰加密
??單向加密
?
?????????(1)對(duì)稱加密:加密解密使用同一個(gè)密鑰,將原始數(shù)據(jù)分割成固定大小的塊,逐個(gè)進(jìn)行加密
?????????????
?????????????加密算法:?
???????????????????DES:data encryption standard (數(shù)據(jù)加密標(biāo)準(zhǔn))
???????????????????3DES: DES增強(qiáng)版
???????????????????AES:advance encryption standard(高級(jí)加密標(biāo)準(zhǔn))
????????????????????(128bits,192,458,384,512bits)
?????????(2)公鑰加密:密鑰是成對(duì)兒使用,用公鑰加密,必須用與之配對(duì)的私鑰解密,反之亦然。
??????????????????公鑰: 公開給所有人, pubkey
??????????????????私鑰, 自己留存,必須保證其私密性。secret key
??????????????加密算法:
???????????????????RSA : 由麻省理工Ron Rivest、Adi Shamir、Leonard Adleman三人提出的加密算法,以三個(gè)名字首字母命名
???????????????????DSA?:Digital Signature Algorithm (數(shù)字簽名算法)
?????????(3)單向加密: 只能加密不能解密,提取數(shù)據(jù)特征碼
??????????????加密算法:
???????????????????md5:128bits
???????????????????sha1:160bits
???????????????????sha256
???????????????????sha386
???????????????????sha512
?????PKI :Public Key Infrastructrure (公鑰基礎(chǔ)設(shè)施)
?????????????? PKI是一種規(guī)范,它是使用公開密鑰技術(shù)和數(shù)字證書來(lái)確保系統(tǒng)信息安全,并負(fù)責(zé)驗(yàn)證數(shù)字證書持有者身份的一種體系。
?? ????????組成:
?? ?????????簽證機(jī)構(gòu): CA
????????????注冊(cè)機(jī)構(gòu): RA
???????????證書吊銷列表:CRL
???????????證書存取庫(kù)
??????CA是PKI的一個(gè)機(jī)構(gòu),專門負(fù)責(zé)證書的簽署和頒發(fā)。
?
????x.509:定義證書的結(jié)構(gòu)及認(rèn)證協(xié)議標(biāo)準(zhǔn):
??????????????組成:
???????????????????版本號(hào):v1,v2,v3
???????????????????序列號(hào): 唯一標(biāo)識(shí)號(hào)
???????????????????簽名算法ID:標(biāo)識(shí)符
???????????????????發(fā)行者名稱:
???????????????????有效期限
???????????????????主體名稱
???????????????????主體公鑰
???????????????????發(fā)行者唯一標(biāo)識(shí)
???????????????????主體的唯一標(biāo)識(shí)
???????????????????擴(kuò)展信息
???????????????????發(fā)行者簽名
?
????SSL:Secure Socket layer(安全套接字層)
??????????????1995年由網(wǎng)景公司設(shè)計(jì),發(fā)布SSL2.0版本,后推出3.0版本,1999年推出TLS1.0,相當(dāng)于SSL3.0升級(jí)版,現(xiàn)在常用TLS1.2版本
??????????分層設(shè)計(jì):
???????????????1、最低層:基礎(chǔ)算法原語(yǔ)的實(shí)現(xiàn),aes, rsa, md5
???????????????2、向上一層:各種算法的實(shí)現(xiàn)
???????????????3、再向上一層:組合算法實(shí)現(xiàn)的半成品
???????????????4、用各種組件拼裝而成的種種成品密碼學(xué)協(xié)議/軟件:tls, ssh
3.SSL/TLS的開源項(xiàng)目:Openssl
?
?????????(1)openssl的三個(gè)組件:
???????????????????openssl: 多用途的命令行工具;在公司內(nèi)部實(shí)現(xiàn)私有證書的頒發(fā)從而驗(yàn)證其身份信息
???????????????????libcrypto: 公共加密庫(kù);提供了各種加密函數(shù)
???????????????????libssl: 庫(kù),實(shí)現(xiàn)了ssl及tls;
??
??????openssl命令:
???????????????????????enc, ca, dgst
???
???????對(duì)稱加密:
????????????工具:openssl enc, gpg
????????????算法:3des, aes, blowfish, twofish
????????enc命令:
?????????????????加密:~]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext
?????????????????解密:~]# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab
???????單向加密:
????????????工具:md5sum, sha1sum, sha224sum, sha256sum,..., openssl dgst
????????dgst命令:
?????????????????openssl dgst -md5 /PATH/TO/SOMEFILE
??
????[root@localhost ~]# openssl dgst -md5 /tmp/fstab
????MD5(/tmp/fstab)= 32402066bd3db486a37ac6bd26b201fb#md5加密
4.建立私有CA:
??????????????OpenCA
??????????????openssl
?????證書申請(qǐng)及簽署步驟:
??????????1、生成申請(qǐng)請(qǐng)求;
??????????2、RA核驗(yàn);
??????????3、CA簽署;
??????????4、獲取證書;
?????創(chuàng)建私有CA:
??????????????openssl的配置文件:/etc/pki/tls/openssl.cnf
??(1) 創(chuàng)建所需要的文件
???# touch index.txt
???# echo 01 > serial
???#
??(2) CA自簽證書
???# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
???# openssl req -new -x509 -key /etc/pki/CA/private/cakey.epm -days 7300 -out /etc/pki/CA/cacert.pem
????-new: 生成新證書簽署請(qǐng)求;
????-x509: 專用于CA生成自簽證書;
????-key: 生成請(qǐng)求時(shí)用到的私鑰文件;
????-days n:證書的有效期限;
????-out /PATH/TO/SOMECERTFILE: 證書的保存路徑;
??(3) 發(fā)證
???(a) 用到證書的主機(jī)生成證書請(qǐng)求;
????# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
????# openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr
???(b) 把請(qǐng)求文件傳輸給CA;
???(c) CA簽署證書,并將證書發(fā)還給請(qǐng)求者;
????# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
????查看證書中的信息:
?????openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|-subject|-serial
??(4) 吊銷證書
???(a) 客戶端獲取要吊銷的證書的serial
????# openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
???(b) CA
????先根據(jù)客戶提交的serial與subject信息,對(duì)比檢驗(yàn)是否與index.txt文件中的信息一致;
????吊銷證書:
?????# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
???(c) 生成吊銷證書的編號(hào)(第一次吊銷一個(gè)證書)
????# echo 01 > /etc/pki/CA/crlnumber
???(d) 更新證書吊銷列表
????# openssl ca -gencrl -out thisca.crl
????查看crl文件:
?????# openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text
轉(zhuǎn)載于:https://blog.51cto.com/zhaohongfei/1695259
總結(jié)
以上是生活随笔為你收集整理的linux加密解密基础、PKI及SSL、创建私有CA的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用Goldengate 实现Oracl
- 下一篇: 研磨数据结构与算法-06递归的应用