淺析Web Service的簽名加密技術

為什么要使用加密技術?

1、防止假冒,使用數(shù)字簽名
2、防止偽劣,使用文件加密

什么是文件加密技術

文件加密技術是用來阻止以任何非法獲取方式奪得文件后進行閱讀、修改等操作,主要是確保文件在傳輸過程中的安全。

淺析Web Service的簽名加密技術

典型數(shù)據(jù)加密算法

基于“消息摘要”的算法

“消息摘要”(Message?Digest)是一種能產生特殊輸出格式的算法。這種加密算法的特點是無論用戶輸入什么長度的原始數(shù)據(jù),經過計算后輸出的密文都是同定長度的。這種算法的原理是根據(jù)一定的運算規(guī)則對原數(shù)據(jù)進行某種形式的提取,這種提取就是“摘要”,被“摘要”的數(shù)據(jù)內容與原數(shù)據(jù)有密切聯(lián)系,只要原數(shù)據(jù)稍有改變,輸出的“摘要”便完全不同,因此基于這種原理的算法能對數(shù)據(jù)完整性提供較為健全的保障。

淺析Web Service的簽名加密技術

但是,由于輸出的密文是提取原數(shù)據(jù)經過處理的定長值,所以它已經不能還原為原數(shù)據(jù),即消息摘要算法是“不可逆”的,理論上無法通過反向運算取得原數(shù)據(jù)內容,因此它通常只能被用來做數(shù)據(jù)完整性驗證,而不能作為原數(shù)據(jù)內容的加密方案使用,否則誰也無法還原。

由于“摘要”算法加密的數(shù)據(jù)僅能作為一種完整性和正確性驗證的憑據(jù)使用,如果要對整個文檔數(shù)據(jù)進行加密,就不能采用這種“不可逆”的算法

常用摘要算法有MD5,?SHA.1

對稱密鑰

此類算法通過一個被稱為“密鑰”的憑據(jù)進行數(shù)據(jù)加密處理,接收方通過加密時使用的“密鑰”字符串進行解密,即雙辦持有的“密鑰”相同(對稱)。如果接收方不能提供正確的“密鑰”,解密出來的就不是原來的數(shù)據(jù)了。

通過定期在通信網絡的源端和目的端同時改用新的密鑰,便能更進一步提高數(shù)據(jù)的保密性

常用算法:DES,RC2,RC4,RC5

淺析Web Service的簽名加密技術

非對稱密鑰

非對稱密鑰密碼算法使用兩個密鑰:公開密鑰和私有密鑰,分別用于對數(shù)據(jù)的加密和解密,即如果用公開密鑰對數(shù)據(jù)進行加密,只有用對應的私有密鑰才能進行解密;如果用私有密鑰對數(shù)據(jù)進行加密,則只有用對應的公開密鑰才能解密。

常用算法:RSA

淺析Web Service的簽名加密技術

淺析Web Service的簽名加密技術

如何實現(xiàn)簽名和加密

(1)信息發(fā)送方將要發(fā)送的信息通過信息摘要方法產生一個信息摘要,并對信息摘要用自己的私鑰進行加密,形成數(shù)字簽名,然后將其附在要發(fā)送信息的后面。

(2)信息發(fā)送方將文件(信息和數(shù)字簽名)用隨機生成的對稱密鑰加密

(3)信息發(fā)送方再用信息接收方的公鑰對對稱密鑰進行加密后通過網絡發(fā)送給信息接收方。

(4)信息接收方對收到的對稱密鑰用自己的私鑰進行解密。

(5)信息接收方用得到對稱密鑰對文件(信息和數(shù)字簽名)進行解密

(6)信息接收方用發(fā)送方的公鑰對數(shù)字簽名進行解密得到信息摘要,同時對收到的信息再用相同的信息摘要方法產生一個信息摘要。

(7)信息接收方將解密后的信息摘要與重新產生的信息摘要進行比較。如果二者一致,說明信息在傳輸過程中沒有改變;如果不一致,說明該信息在傳輸過程中已被人篡改過。

淺析Web Service的簽名加密技術

淺析Web Service的簽名加密技術

PKI公鑰組織

如何確認公鑰的身份即對應的對象

PKI?是一種新的安全技術,它由公開密鑰密碼技術、數(shù)字證書、證書發(fā)放機構(CA)和關于公開密鑰的安全策略等基本成分共同組成的。

PKI?的核心組成部分CA(?Certification?Authority),即認證中心,它是數(shù)字證書的簽發(fā)機構。數(shù)字證書,有時被稱為數(shù)字身份證,是一個符合一定格式的電子文件,用來識別電子證書持有者的真實身份。

就象公安局發(fā)放的身份證一樣,認證中心發(fā)放一個叫"數(shù)字證書"的身份證明。

這個數(shù)字證書包含了用戶身份的部分信息及用戶所持有的公鑰。象公安局對身份證蓋章一樣,認證中心利用本身的私鑰為數(shù)字證書加上數(shù)字簽名。任何想發(fā)放自己公鑰的用戶,可以去認證中心申請自己的證書。認證中心在鑒定該人的真實身份后,頒發(fā)包含用戶公鑰的數(shù)字證書。其他用戶只要能驗證證書是真實的,并且信任頒發(fā)證書的認證中心,就可以確認用戶的公鑰。

根證書

根證書是CA認證中心給自己頒發(fā)的證書,是信任鏈的起始點。安裝根證書意味著對這個CA認證中心的信任。

從技術上講,證書其實包含三部分,用戶的信息,用戶的公鑰,還有CA中心對該證書里面的信息的簽名,要驗證一份證書的真?zhèn)危打炞CCA中心對該證書信息的簽名是否有效),需要用CA?中心的公鑰驗證,而CA中心的公鑰存在于對這份證書進行簽名的證書內,故需要下載該證書,但使用該證書驗證又需先驗證該證書本身的真?zhèn)?,故又要用簽發(fā)該證書的證書來驗證,這樣一來就構成一條證書鏈的關系,這條證書鏈在哪里終結呢?答案就是根證書,根證書是一份特殊的證書,它的簽發(fā)者是它本身,下載根證書就表明您對該根證書以下所簽發(fā)的證書都表示信任,而技術上則是建立起一個驗證證書信息的鏈條,證書的驗證追溯至根證書即為結束。所以說用戶在使用自己的數(shù)字證書之前必須先下載根證書。

淺析Web Service的簽名加密技術

說明:

1、如果需要發(fā)送加密的文件,需要使用密鑰(對稱)公鑰(非對稱)加密,這樣的結果是只有擁有密鑰(對稱)或者私鑰(非對稱)的人才能閱讀。

2、如果需要在加密的文件上簽名,需要和加密文件同時發(fā)送簽名文件,并用私鑰加密簽名,這樣的結果是只要擁有公鑰的人都能閱讀,但只有擁有私鑰的人才能修改。

3、如果需要保證文件的完整性和正確性,需要使用信息摘要技術,并把該摘要和文件同時加密發(fā)送,這樣的結果是可以保證文件在傳輸過程中可能發(fā)生的信息丟失被發(fā)現(xiàn)。

4、接收者的文件加密公鑰和發(fā)送者的簽名公鑰需要有CA頒發(fā)的數(shù)字證書來證明真?zhèn)?,這樣的結果是避免發(fā)送方收到偽造的公鑰并錯誤的使用其去加密文件或者接收方收到偽造的公鑰并用其錯誤的驗證簽名的真?zhèn)巍?/p>