1 公鑰私鑰數字證書及工作原理
公/私鑰成對出現,私鑰加的密用公鑰解,公鑰加的密用私鑰解密。
公鑰一般用于加密,驗證簽名
私鑰一般用于簽名
簽名的具體作法:
首先将資訊“*”通過雜湊演算法計算後得到的封包摘要,然後通過私鑰對摘要進行加密,後面簽名有三種證書:建
行CA認證中心的根證書、建行網銀中心的伺服器證書,每 個網上銀行使用者在浏覽器端的客戶證書。有了這三個證書,就可
以在浏覽器與建行網銀伺服器之間建立起SSL連接配接。這樣,您的浏覽器與建行網銀伺服器之間就有 了一個安全的加密信道
。您的證書可以使與您通訊的對方驗證您的身份(您确實是您所聲稱的那個您),同樣,您也可以用與您通訊的對方的證
書驗證他的身份(他 确實是他所聲稱的那個他),而這一驗證過程是由系統自動完成的。
銀行系統一般是:
1. 用對方的公鑰加密資料,對方收到後用自己的私鑰解密;
2. 用你自己的私鑰簽名資料,對方收到後用你自己的公鑰驗證簽名。
網銀在傳遞資料過程中要把”傳遞的資料“用自己的私鑰進行簽名,而且要把”傳遞的資料“用公鑰進行加密
用戶端有自己的私鑰和一個數字證書,其中私鑰和伺服器中的公鑰成對,而且是數字證書中的公鑰和伺服器上的私鑰成對
比對.
過程如下:
(1)客戶A準備好要傳送的數字資訊(明文)。
(2)客戶A對數字資訊進行哈希(hash)運算,得到一個資訊摘要。
3)客戶A用自己的私鑰(SK)對資訊摘要進行加密得到客戶A的數字簽名,并将其附在數字資訊上。
4)客戶A随機産生一個加密密鑰(DES密鑰),并用此密鑰對要發送的資訊進行加密,形成密文。
5)客戶A用雙方共有的公鑰(PK)對剛才随機産生的加密密鑰進行加密,将加密後的DES密鑰連同密文一起傳送給乙。
6)銀行B收到客戶A傳送過來的密文和加過密的DES密鑰,先用自己的私鑰(SK)對加密的DES密鑰進行解密,得到DES
密鑰。
7)銀行B然後用DES密鑰對收到的密文進行解密,得到明文的數字資訊,然後将DES密鑰抛棄(即DES密鑰廢棄)。
8)銀行B用雙方共有的公鑰(PK)對客戶A的數字簽名進行解密,得到資訊摘要。銀行B用相同的hash算法對收到的明
文再進行一次hash運算,得到一個新的資訊摘要。
9)銀行B将收到的資訊摘要和新産生的資訊摘要進行比較,如果一緻,說明收到的資訊沒有被修改過。
2 ssh公鑰私鑰認證原理
通常,通過ssh登入遠端伺服器時,使用密碼認證,分别輸入使用者名和密碼,兩者滿足一定規則就可以登入。但是密碼認證有以下的缺點:
使用者無法設定空密碼(即使系統允許空密碼,也會十分危險)
密碼容易被人偷窺或猜到
伺服器上的一個帳戶若要給多人使用,則必須讓所有使用者都知道密碼,導緻密碼容易洩露,而且修改密碼時必須通知所有人
而使用公鑰認證則可以解決上述問題。
公鑰認證允許使用空密碼,省去每次登入都需要輸入密碼的麻煩
多個使用者可以通過各自的密鑰登入到系統上的同一個使用者
公鑰認證的原理
所謂的公鑰認證,實際上是使用一對加密字元串,一個稱為公鑰(public key),任何人都可以看到其内容,用于加密;另一個稱為密鑰(private key),隻有擁有者才能看到,用于解密。通過公鑰加密過的密文使用密鑰可以輕松解密,但根據公鑰來猜測密鑰卻十分困難。
ssh 的公鑰認證就是使用了這一特性。伺服器和用戶端都各自擁有自己的公鑰和密鑰。為了說明友善,以下将使用這些符号。
Ac 用戶端公鑰
Bc 用戶端密鑰
As 伺服器公鑰
Bs 伺服器密鑰
在認證之前,用戶端需要通過某種方法将公鑰 Ac 登入到伺服器上。
認證過程分為兩個步驟。
會話密鑰(session key)生成
用戶端請求連接配接伺服器,伺服器将 As 發送給用戶端。
伺服器生成會話ID(session id),設為 p,發送給用戶端。
用戶端生成會話密鑰(session key),設為 q,并計算 r = p xor q。
用戶端将 r 用 As 進行加密,結果發送給伺服器。
伺服器用 Bs 進行解密,獲得 r。
伺服器進行 r xor p 的運算,獲得 q。
至此伺服器和用戶端都知道了會話密鑰q,以後的傳輸都将被 q 加密。
認證
伺服器生成随機數 x,并用 Ac 加密後生成結果 S(x),發送給用戶端
用戶端使用 Bc 解密 S(x) 得到 x
用戶端計算 q + x 的 md5 值 n(q+x),q為上一步得到的會話密鑰
伺服器計算 q + x 的 md5 值 m(q+x)
用戶端将 n(q+x) 發送給伺服器
伺服器比較 m(q+x) 和 n(q+x),兩者相同則認證成功
一直以來對公鑰和私鑰都了解得不是很透徹,感覺到模棱兩可,心裡直打鼓呢。公鑰怎麼會事?私鑰怎麼會事?工作原理是怎麼的?今天在網上找了半天,通過檢視大家對這個密鑰對的了解,總算弄清楚了,咱就把我的心得寫出來給大家對密鑰對有疑問的同志們看看。
公鑰和私鑰就是俗稱的不對稱加密方式,是從以前的對稱加密(使用使用者名與密碼)方式的提高。我用電子郵件的方式說明一下原理。
使用公鑰與私鑰的目的就是實作安全的電子郵件,必須實作如下目的:
1. 我發送給你的内容必須加密,在郵件的傳輸過程中不能被别人看到。
2. 必須保證是我發送的郵件,不是别人冒充我的。
要達到這樣的目标必須發送郵件的兩人都有公鑰和私鑰。
公鑰,就是給大家用的,你可以通過電子郵件釋出,可以通過網站讓别人下載下傳,公鑰其實是用來加密/驗章用的。私鑰,就是自己的,必須非常小心儲存,最好加上 密碼,私鑰是用來解密/簽章,首先就Key的所有權來說,私鑰隻有個人擁有。公鑰與私鑰的作用是:用公鑰加密的内容隻能用私鑰解密,用私鑰加密的内容隻能 用公鑰解密。
比如說,我要給你發送一個加密的郵件。首先,我必須擁有你的公鑰,你也必須擁有我的公鑰。
首先,我用你的公鑰給這個郵件加密,這樣就保證這個郵件不被别人看到,而且保證這個郵件在傳送過程中沒有被修改。你收到郵件後,用你的私鑰就可以解密,就能看到内容。
其次我用我的私鑰給這個郵件加密,發送到你手裡後,你可以用我的公鑰解密。因為私鑰隻有我手裡有,這樣就保證了這個郵件是我發送的。
當A->B資料時,A會使用B的公鑰加密,這樣才能確定隻有B能解開,否則普羅大衆都能解開加密的訊息,就是去了資料的保密性。驗證方面則是使用簽 驗章的機制,A傳資料給大家時,會以自己的私鑰做簽章,如此所有收到訊息的人都可以用A的公鑰進行驗章,便可确認訊息是由 A 發出來的了。
轉自:https://www.cnblogs.com/alexyuyu/articles/3797197.html。