在OSI模型和tcp/ip模型中,應(yīng)用發(fā)送某個數(shù)據(jù)到服務(wù)器,通過很多條路徑才能到達服務(wù)器,在發(fā)送的路上,因為數(shù)據(jù)是明文,且任意人都可以查看,這就給數(shù)據(jù)帶來了風險。因此,加密就很有必要了。
站在用戶的角度思考問題,與客戶深入溝通,找到江達網(wǎng)站設(shè)計與江達網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、虛擬主機、企業(yè)郵箱。業(yè)務(wù)覆蓋江達地區(qū)。常見的密鑰算法和協(xié)議
對稱加密(加密解密使用同一個密鑰)
公鑰加密(非對稱加密,公鑰和私鑰)
單向加密(只能加密,不能解密)
認證協(xié)議
對稱加密
對稱加密采用了對稱密碼編碼技術(shù),它的特點是文件加密和解密使用相同的密鑰,即加密密鑰也可以用作解密密鑰,這種方法在密碼學中叫做對稱加密算法,對稱加 密算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數(shù)據(jù)加密標準(DES),另一個對稱密鑰加密系統(tǒng)是國際數(shù)據(jù)加密算法(IDEA),它比DES的加密 性好,而且對計算機功能要求也沒有那么高。IDEA加密標準由 PGP(Pretty Good Privacy)系統(tǒng)使用。
下面舉個例子來簡要說明一下對稱加密的工作過程。甲和乙是一對生意搭檔, 他們住在不同的城市。由于生意上的需要,他們經(jīng)常會相互之間郵寄重要的貨物。為了保證貨物的安全,他們商定制作一個保險盒,將物品放入其中。他們打造了兩 把相同的鑰匙分別保管,以便在收到包裹時用這個鑰匙打開保險盒,以及在郵寄貨物前用這把鑰匙鎖上保險盒。
上面是一個將重要資源安全傳遞到目的地的傳統(tǒng)方式,只要甲乙小心保管好鑰匙,那么就算有人得到保險盒,也無法打開。這個思想被用到了現(xiàn)代計算機通信的信息加密中。在對稱加密中,數(shù)據(jù)發(fā)送方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復雜的加密密文發(fā)送出去。接收方收到密文后,若想解讀原文,則需要使用加密密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發(fā)收信雙方都使用這個密鑰對數(shù)據(jù)進行加密和解密。
對稱加密常用的算法:
DES:Data Encryption Standard;
3DES:Triple DES;
AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits)
Blowfish
Twofish
IDEA
RC6
CAST5
特性:
1、加密、解密使用同一個密鑰;
2、將原始數(shù)據(jù)分割成為固定大小的塊,逐個進行加密;
缺陷:
1、密鑰過多;
2、密鑰分發(fā)困難;
公鑰加密
與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果 用公開密鑰對數(shù)據(jù)進行加密,只有用對應(yīng)的私有密鑰才能解密;如果用私有密鑰對數(shù)據(jù)進行加密,那么只有用對應(yīng)的公開密鑰才能解密。因為加密和解密使用的是兩 個不同的密鑰,所以這種算法叫作非對稱加密算法。
工作過程
1.A要向B發(fā)送信息,A和B都要產(chǎn)生一對用于加密非對稱加密算法和解密的公鑰和私鑰。
2.A的私鑰保密(自己保存),A的公鑰告訴B;B的私鑰保密(自己保存),B的公鑰告訴A。
3.A要給B發(fā)送信息時,A用B的公鑰加密信息,因為A知道B的公鑰。
4.A將這個消息發(fā)給B(已經(jīng)用B的公鑰加密消息)。
5.B收到這個消息后,B用自己的私鑰解密A的消息。其他所有收到這個報文的人都無法解密,因為只有B才有B的私鑰。
特性:
公鑰:從私鑰中提取產(chǎn)生;可公開給所有人;pubkey
私鑰:通過工具創(chuàng)建,使用者自己留存,必須保證其私密性;private key;
特點:
用公鑰加密的數(shù)據(jù),只能使用與之配對兒的私鑰解密;反之亦然;
用途:
數(shù)字簽名:主要在于讓接收方確認發(fā)送方的身份;
密鑰交換:發(fā)送方用對方公鑰加密一個對稱密鑰,并發(fā)送給對方;
數(shù)據(jù)加密
算法:RSA, DSA, ELGamal
DSS: Digital Signature Standard
DSA:Digital Signature Algorithm
單向加密
又叫單向散列算法,又稱hash函數(shù),Hash函數(shù)(也稱雜湊函數(shù)或雜湊算法)就是把任意長的輸入消息串變化成固定長的輸出串的一種函數(shù)。這個輸出串稱為該消息的雜湊值。一般用于產(chǎn)生消息摘要,密鑰加密等。即提取出數(shù)據(jù)指紋;只能加密,不能解密;
特性:定長輸出、雪崩效應(yīng);
功能:完整性驗證;
常見算法:
md5:Message Digest 5, 128bits
sha1:安全的哈希算法 Secure Hash Algorithm 1, 160bits
sha224, sha256, sha384, sha512
密鑰交換:
IKE(Internet Key Exchange)一種用以獲得認證密鑰的協(xié)議。
密鑰交換的兩種機制:
1、公鑰加密實現(xiàn):
發(fā)送方用接收方的公鑰加密自己的密鑰,接收方用自己的私鑰解密得到發(fā)送方的密鑰,逆過來亦然,從而實現(xiàn)密鑰交換。
2、使用DH算法:前提發(fā)送方和接受方協(xié)商使用同一個大素數(shù)P和生成數(shù)g,各自產(chǎn)生的隨機數(shù)X和Y。發(fā)送方將g的X次方modP產(chǎn)生的數(shù)值發(fā)送給接收方,接受方將g的Y次方modP產(chǎn)生的數(shù)值發(fā)送給發(fā)送方,發(fā)送方再對接收的結(jié)果做X次方運算,接受方對接收的結(jié)果做Y次方運算,最終密碼形成,密鑰交換完成。
通信階段加密解密
BOB和ALICE通信階段
黑框A:表示要傳輸?shù)臄?shù)據(jù)
黑框B:就是單項加密對這段數(shù)據(jù)提取的特征碼,這段特征碼同時運用了非對稱加密,具體過程是用BOB的私鑰加密,傳輸給ALICE,只要到達后ALICE能解密,表明對方確實是BOB。這一過程同時起到了用戶認證和數(shù)據(jù)完整性的校驗。黑框B又稱為數(shù)字簽名
紅框A:這一階段會生成一段很長的隨機數(shù)(密鑰)然后配合對稱加密算法對黑框A和黑框B加密,但是我們?nèi)绾伟鸭用艿拿荑€傳輸給ALICE呢?這就要用到紅框B了
紅框B:這一階段是用ALICE的公鑰加密這串隨機數(shù)(對稱加密階段的密鑰),ALICE接收到數(shù)據(jù)后如果能用自己私鑰解密,那就證明接受者確實ALICE
加密過程:
第一步:用單向加密算法提取數(shù)據(jù)(黑框A)的特征值
第二步:用自己的私鑰加密這段特征值形成黑框B
第三步:用對稱加密算法,對黑框A和黑框B來加密,得到紅框A
第四步:用ALICE的公鑰來加密第三步所用的密鑰,得到紅框B
解密過程:
第一步:ALICE用自己的私鑰解密紅框B得到對稱加密的密鑰
第二步:用這個密鑰解密紅框A內(nèi)容
第三步:用BOB的公鑰解密黑框B,如果能成功,說明發(fā)送方確實是BOB,這就完成了身份驗證(解密后會得到一串數(shù)據(jù)的特征值)
第四步:用同樣的單項加密算法來對這段數(shù)據(jù)提取特征值,如果和第三步的特征值一樣,說明這段數(shù)據(jù)是完整的,這就完成了數(shù)據(jù)完整性的校驗
還有一個問題就是BOB和ALICE如何獲得對方的公鑰,或者說如何證明獲得的公鑰就是對方。這就需要引入另一方證書頒發(fā)機構(gòu)CA,下面是對證書頒發(fā)機構(gòu)跟BOB/ALICE之間的解釋
黑框C:代表要頒發(fā)給BOB/ALICE的公鑰,組織,地址等信息
黑框D:是對黑框C進行單向加密后得到的數(shù)字簽名,然后用自己的私鑰對其加密,傳輸給BOB和ALICE,拿著這個證書頒發(fā)機構(gòu)的公鑰(這些證書頒發(fā)機構(gòu)
的公鑰一般已經(jīng)被microsoft事先放在windows里面,當然其他操作系統(tǒng)也是一樣的)的BOB和ALICE如果能對這個證書進行解密,說明這個
證書頒發(fā)機構(gòu)不是冒充的
紅框E:表示頒發(fā)給BOB和ALICE的證書
CA的工作方式:
PKI
PKI(Public Key Infrastructure)公鑰基礎(chǔ)設(shè)施是提供公鑰加密和數(shù)字簽名服務(wù)的系統(tǒng)或平臺,目的是為了管理密鑰和證書。一個機構(gòu)通過采用PKI 框架管理密鑰和證書可以建立一個安全的網(wǎng)絡(luò)環(huán)境。PKI 主要包括四個部分:X.509 格式的證書(X.509 V3)和證書廢止列表CRL(X.509 V2);CA 操作協(xié)議;CA 管理協(xié)議;CA 政策制定。一個典型、完整、有效的PKI 應(yīng)用系統(tǒng)至少應(yīng)具有以下五個部分;
公鑰基礎(chǔ)設(shè)施
簽證機構(gòu):CA
注冊機構(gòu):RA
證書吊銷列表:CRL
證書存取庫
CA:
公共信任的CA,私有CA;
建立私有CA:
openssl
OpenCA
openssl命令:
配置文件:/etc/pki/tls/openssl.cnf
構(gòu)建私有CA:
在確定配置為CA的服務(wù)上生成一個自簽證書,并為CA提供所需要的目錄及文件即可;
步驟:
1、生成私鑰
2、生成自簽證書
3、為CA提供所需的目錄和文件
操作步驟
(1) 生成私鑰;
[root@bogon ~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096) Generating RSA private key, 4096 bit long modulus .......................................................................................... .......................................................................................... .....................................................++................................... .......................................................................................... ...............................................................++ e is 65537 (0x10001)
(2) 生成自簽證書;
[root@bogon ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:Beijing Locality Name (eg, city) [Default City]:Beijing Organization Name (eg, company) [Default Company Ltd]:test Organizational Unit Name (eg, section) []:test Common Name (eg, your name or your server's hostname) []:test Email Address []:abc@qq.com
選項解釋:
-new:生成新證書簽署請求;
-x509:生成自簽格式證書,專用于創(chuàng)建私有CA時;
-key:生成請求時用到的私有文件路徑;
-out:生成的請求文件路徑;如果自簽操作將直接生成簽署過的證書;
-days:證書的有效時長,單位是day;
(3) 為CA提供所需的目錄及文件;
[root@bogon ~]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts} [root@bogon ~]# touch /etc/pki/CA/{serial,index.txt} [root@bogon ~]# echo 01 > /etc/pki/CA/serial
要用到證書進行安全通信的服務(wù)器,需要向CA請求簽署證書:
步驟:(以httpd為例)
(1) 用到證書的主機生成私鑰;
[root@bogon ~]# mkdir /etc/httpd/ssl [root@bogon ~]# cd /etc/httpd/ssl [root@bogon ~]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
(2) 生成證書簽署請求
[root@bogon ~]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
(3) 將請求通過可靠方式發(fā)送給CA主機;
U盤復制或其它可靠方式
(4) 在CA主機上簽署證書;
[root@bogon ~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
查看證書中的信息:
[root@bogon ~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
吊銷證書:
步驟:
(1) 客戶端獲取要吊銷的證書的serial(在使用證書的主機執(zhí)行):
[root@bogon ~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
(2) CA主機吊銷證書
先根據(jù)客戶提交的serial和subject信息,對比其與本機數(shù)據(jù)庫index.txt中存儲的是否一致;
吊銷:
[root@bogon ~]# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
注:其中的SERIAL要換成證書真正的序列號;
(3) 生成吊銷證書的吊銷編號(第一次吊銷證書時執(zhí)行)
[root@bogon ~]# echo 01 > /etc/pki/CA/crlnumber
(4) 更新證書吊銷列表
[root@bogon ~]# openssl ca -gencrl -out thisca.crl
查看crl文件:
[root@bogon ~]# openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。