linux加密解密基础、PKI及SSL、创建私有CA
linux加密解密基礎、PKI及SSL、創建私有CA
1.加密解密基礎:
?
?????????數據在網絡中傳輸過程中要保證三個要點:
??????????(1)數據的完整性:防止數據在傳輸過程中遭到未授權用戶的破壞或篡改。
??????????(2)數據的機密性:防止文件數據泄漏給未授權用戶從而讓其利用
??????????(3)數據的可用性:保證授權用戶能按需訪問存取文件數據
2.常見的加密技術:
??對稱加密
??公鑰加密
??單向加密
?
?????????(1)對稱加密:加密解密使用同一個密鑰,將原始數據分割成固定大小的塊,逐個進行加密
?????????????
?????????????加密算法:?
???????????????????DES:data encryption standard (數據加密標準)
???????????????????3DES: DES增強版
???????????????????AES:advance encryption standard(高級加密標準)
????????????????????(128bits,192,458,384,512bits)
?????????(2)公鑰加密:密鑰是成對兒使用,用公鑰加密,必須用與之配對的私鑰解密,反之亦然。
??????????????????公鑰: 公開給所有人, pubkey
??????????????????私鑰, 自己留存,必須保證其私密性。secret key
??????????????加密算法:
???????????????????RSA : 由麻省理工Ron Rivest、Adi Shamir、Leonard Adleman三人提出的加密算法,以三個名字首字母命名
???????????????????DSA?:Digital Signature Algorithm (數字簽名算法)
?????????(3)單向加密: 只能加密不能解密,提取數據特征碼
??????????????加密算法:
???????????????????md5:128bits
???????????????????sha1:160bits
???????????????????sha256
???????????????????sha386
???????????????????sha512
?????PKI :Public Key Infrastructrure (公鑰基礎設施)
?????????????? PKI是一種規范,它是使用公開密鑰技術和數字證書來確保系統信息安全,并負責驗證數字證書持有者身份的一種體系。
?? ????????組成:
?? ?????????簽證機構: CA
????????????注冊機構: RA
???????????證書吊銷列表:CRL
???????????證書存取庫
??????CA是PKI的一個機構,專門負責證書的簽署和頒發。
?
????x.509:定義證書的結構及認證協議標準:
??????????????組成:
???????????????????版本號:v1,v2,v3
???????????????????序列號: 唯一標識號
???????????????????簽名算法ID:標識符
???????????????????發行者名稱:
???????????????????有效期限
???????????????????主體名稱
???????????????????主體公鑰
???????????????????發行者唯一標識
???????????????????主體的唯一標識
???????????????????擴展信息
???????????????????發行者簽名
?
????SSL:Secure Socket layer(安全套接字層)
??????????????1995年由網景公司設計,發布SSL2.0版本,后推出3.0版本,1999年推出TLS1.0,相當于SSL3.0升級版,現在常用TLS1.2版本
??????????分層設計:
???????????????1、最低層:基礎算法原語的實現,aes, rsa, md5
???????????????2、向上一層:各種算法的實現
???????????????3、再向上一層:組合算法實現的半成品
???????????????4、用各種組件拼裝而成的種種成品密碼學協議/軟件:tls, ssh
3.SSL/TLS的開源項目:Openssl
?
?????????(1)openssl的三個組件:
???????????????????openssl: 多用途的命令行工具;在公司內部實現私有證書的頒發從而驗證其身份信息
???????????????????libcrypto: 公共加密庫;提供了各種加密函數
???????????????????libssl: 庫,實現了ssl及tls;
??
??????openssl命令:
???????????????????????enc, ca, dgst
???
???????對稱加密:
????????????工具: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
?????證書申請及簽署步驟:
??????????1、生成申請請求;
??????????2、RA核驗;
??????????3、CA簽署;
??????????4、獲取證書;
?????創建私有CA:
??????????????openssl的配置文件:/etc/pki/tls/openssl.cnf
??(1) 創建所需要的文件
???# 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: 生成新證書簽署請求;
????-x509: 專用于CA生成自簽證書;
????-key: 生成請求時用到的私鑰文件;
????-days n:證書的有效期限;
????-out /PATH/TO/SOMECERTFILE: 證書的保存路徑;
??(3) 發證
???(a) 用到證書的主機生成證書請求;
????# (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) 把請求文件傳輸給CA;
???(c) CA簽署證書,并將證書發還給請求者;
????# 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
????先根據客戶提交的serial與subject信息,對比檢驗是否與index.txt文件中的信息一致;
????吊銷證書:
?????# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
???(c) 生成吊銷證書的編號(第一次吊銷一個證書)
????# echo 01 > /etc/pki/CA/crlnumber
???(d) 更新證書吊銷列表
????# openssl ca -gencrl -out thisca.crl
????查看crl文件:
?????# openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text
轉載于:https://blog.51cto.com/zhaohongfei/1695259
總結
以上是生活随笔為你收集整理的linux加密解密基础、PKI及SSL、创建私有CA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Goldengate 实现Oracl
- 下一篇: linux Makefile编写的整理