A. 什麼是非對稱加密,數字簽名,數字證書
今天,我讀到一篇好文章。
它用圖片通俗易懂地解釋了,"數字簽名"(digital signature)和"數字證書"(digital certificate)到底是什麼。
我對這些問題的理解,一直是模模糊糊的,很多細節搞不清楚。讀完這篇文章後,發現思路一下子就理清了。為了加深記憶,我把文字和圖片都翻譯出來了。
====================================================
數字簽名是什麼?
作者:David Youd
翻譯:阮一峰
1.
如果數字證書是可靠的,客戶端就可以使用證書中的伺服器公鑰,對信息進行加密,然後與伺服器交換加密信息。
(完)
B. PKI的身份認證過程是CA發布的證書來實現的還是通過非對稱簽名以及驗證演算法來實現的
對,簽名是用的是私鑰,驗簽是用的是公鑰,所以叫非對稱演算法。只有驗證通過才能確認該證書的身份,公私鑰才配對。
C. 私鑰、公鑰、證書的區別和關系
私鑰是要求你輸入個人密碼才可訪問的,一般網上銀行之類可用到。
公鑰不要求設專置密碼,是已屬經默認了的,一般上一些安全性要求不高的網站或共享資源,如區域網。
證書是一種網站加密瀏覽方式,只有允許了才可訪問,一般為安全性較高的網站,如網上銀行;可以訪止黑客盜取客戶資料。
D. 賽門鐵克的SSL證書採用的是什麼非對稱加密演算法
主流的RSA加密演算法
使用主流的RSA非對稱加密演算法,只需要公鑰即可實現數據加密,服務端使用私鑰解密,擁有較好的安全性,相對以往的演算法具有更好的保護功能,使您的網站傳輸的數據更安全更可靠。
E. SSL中,公鑰,私鑰,證書的後綴名都是些啥
SSL證書後綴
CSR – Certificate Signing Request,即證書簽名請求,這個並不是證書,而是向權威證書頒發機構獲得簽名證書的申請,其核心內容是一個公鑰(當然還附帶了一些別的信息),在生成這個申請的時候,同時也會生成一個私鑰,私鑰要自己保管好.做過iOS APP的朋友都應該知道是怎麼向蘋果申請開發者證書的吧.
KEY– 通常用來存放一個RSA 公鑰或者私鑰,並非X.509證書,編碼同樣的,可能是PEM,也可能是DER.
CRT– CRT應該是certificate的三個字母,其實還是證書的意思,常見於*NIX系統,有可能是PEM編碼,也有可能是DER編碼,大多數應該是PEM編碼。本站提供的CRT格式等同於CER,等同於PEM。
PEM – Privacy Enhanced Mail的縮寫,以文本的方式進行存儲。打開看文本格式,以」—–BEGIN…」開頭, 「—–END…」結尾,內容是編碼. 查看PEM格式證書的信息:openssl x509 -in certificate.pem -text -noout Apache和*NIX伺服器偏向於使用這種編碼格式.
CER– 還是certificate,還是證書,常見於Windows系統,同樣的,可能是PEM編碼,也可能是DER編碼,大多數應該是DER編碼.
DER – Distinguished Encoding Rules的縮寫,以二進制方式進行存儲,文件結構無法直接預覽,查看DER格式證書的信息:openssl x509 -in certificate.der -inform der -text -noout Java和Windows伺服器偏向於使用這種編碼格式.
PFX/P12 – predecessor of PKCS#12,對*nix伺服器來說,一般CRT和KEY是分開存放在不同文件中的,但Windows的IIS則將它們存在一個PFX文件中,(因此這個文件包含了證書及私鑰)這樣會不會不安全?應該不會,PFX通常會有一個」提取密碼」,你想把裡面的東西讀取出來的話,它就要求你提供提取密碼,PFX使用的時DER編碼,如何把PFX轉換為PEM編碼?
JKS – 即Java Key Storage,這是Java的專利,跟OpenSSL關系不大,利用Java的一個叫」keytool」的工具,可以將PFX轉為JKS,當然了,keytool也能直接生成JKS。
F. 什麼是非對稱加密
非對稱密鑰,是指一對加密密鑰與解密密鑰,這兩個密鑰是數學相關,用某用戶加密密鑰加密後所得的信息,只能用該用戶的解密密鑰才能解密。如果知道了其中一個,並不能計算出另外一個。因此如果公開了一對密鑰中的一個,並不會危害到另外一個的秘密性質。稱公開的密鑰為公鑰;不公開的密鑰為私鑰。
如果加密密鑰是公開的,這用於客戶給私鑰所有者上傳加密的數據,這被稱作為公開密鑰加密(狹義)。例如,網路銀行的客戶發給銀行網站的賬戶操作的加密數據。
如果解密密鑰是公開的,用私鑰加密的信息,可以用公鑰對其解密,用於客戶驗證持有私鑰一方發布的數據或文件是完整准確的,接收者由此可知這條信息確實來自於擁有私鑰的某人,這被稱作數字簽名,公鑰的形式就是數字證書。例如,從網上下載的安裝程序,一般都帶有程序製作者的數字簽名,可以證明該程序的確是該作者(公司)發布的而不是第三方偽造的且未被篡改過(身份認證/驗證)。
優點
與對稱密鑰加密相比,優點在於無需共享的通用密鑰,解密的私鑰不發往任何用戶。即使公鑰在網上被截獲,如果沒有與其匹配的私鑰,也無法解密,所截獲的公鑰是沒有任何用處的。
過程
假設兩個用戶A,B進行通信,公鑰為c,私鑰為d,明文為x.
A用公鑰對明文進行加密形成密文c(x),然後傳輸密文;
B收到密文,用私鑰對密文進行解密d(c(x)),得到要通信的明文x。
希望能幫到你!
G. 什麼是非對稱加密密鑰為什麼可以證明我的身份
公鑰私鑰是非對稱加密的典型例子。公鑰負責加密,私鑰負責解密。使用非對稱加密,連接方式只有一條路。瀏覽器使用非對稱加密來驗證公私鑰對,以及擴展證書本身。為此,瀏覽器將使用隨時可用的公鑰來加密一小撮一次性數據。 如果伺服器能夠解密這個數據並以明文形式發回,那麼它證明了它的私鑰對應於公鑰。至此,瀏覽器和伺服器可以開始他們的加密鏈接了。
H. 非對稱加密,公鑰,密鑰,證書,簽名的區別和聯系
答:非對稱加密的主要用途就是:密鑰交換和數字簽名。 數字簽名的作用主要是:確保發送的報文沒有被篡改。 數字簽名: 1、發送方A對發送的報文M生成一個摘要X1。(大多使用hash) 2、發送方A用自己的私鑰加密這個摘要X1。 3、接收方B對使用A的公鑰解...
I. 老師你好,在ssl證書中,cer是公鑰證書,key是私鑰證書,crt是證書鏈對嗎
一、SSL證書文件
如圖所示,就是一些SSL證書文件。上圖帶有root CA 字樣的證書文件就是根證書, 然後帶intermediate ca 字樣的就是中間證書文件, 最後一個 ssl servercertificate 字樣的證書即為證書文件。
了解認識SSL證書文件,才能更好的去安裝SSL證書。雖然大部分時候直接安裝證書文件,瀏覽器也會顯示安全,但是由於一些瀏覽器會自動補齊證書鏈,但是證書鏈缺失的話,一些手機端或者部分瀏覽器可能會報不安全的提醒,所以在安裝的時候建議安裝完整的證書文件,補齊證書鏈。
二、SSL證書格式
在SSL證書源文件中你會發現有很多格式。不同的web伺服器對於證書的格式是有要求的,接下來也帶大家了解下不同格式的證書文件。
PEM:- Privacy Enhanced Mail,打開看文本格式,以」—–BEGIN…」開頭, 「—–END…」結尾,內容是BASE64編碼.上述一般證書文件 ,中間證書和根證書,證書文件很多都是pem格式的。Apache和NIgnix伺服器偏向於使用這種編碼格式.
DER:這種格式也是常見的證書格式,跟pem類似,中間證書和根證書,證書文件很多都是DER的,Java和Windows伺服器偏向於使用這種編碼格式。
JKS :jks是Java密鑰庫(KeyStore)比較常見的一種格式。一般可用通過cer 或者pem 格式的證書以及私鑰的進行轉化為jks格式,有密碼保護。所以它是帶有私鑰的證書文件,一般用戶tomcat環境的安裝
PFX:pfx格式的證書 也是由cer 或者pem格式的證書文件以及私鑰轉化而來,所以該證書文件也是帶有私鑰的證書文件,一般用於iis 環境的證書安裝。
J. 什麼是公鑰證書
所謂的公鑰認證,實際上是使用一對加密字元串,一個稱為公鑰(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),兩者相同則認證成功