A. 怎樣根據已有的公鑰和私鑰生成數字證書
openssl genrsa -des3 -out server.key 1024
運行時來會提示輸入密碼,此密碼用源於加密key文件(參數des3便是指加密演算法,當然也可以選用其他你認為安全的演算法.),以後每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令.如果覺得不方便,也可以去除這個口令,但一定要採取其他的保護措施!
去除key文件口令的命令:
openssl rsa -in server.key -out server.key!
B. 什麼是公鑰證書
所謂的公鑰認證,實際上是使用一對加密字元串,一個稱為公鑰(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),兩者相同則認證成功
C. 公鑰 私鑰各是什麼格式的文件
公鑰和私鑰
1,公鑰和私鑰成對出現
2,公開的密鑰叫公鑰,只有自己知道的叫私鑰
3,用公鑰加密的數據只有對應的私鑰可以解密
4,用私鑰加密的數據只有對應的公鑰可以解密
5,如果可以用公鑰解密,則必然是對應的私鑰加的密
6,如果可以用私鑰解密,則必然是對應的公鑰加的密
假設一下,我找了兩個數字,一個是1,一個是2。我喜歡2這個數字,就保留起來,不告訴你們,然後我告訴大家,1是我的公鑰。
我有一個文件,不能讓別人看,我就用1加密了。別人找到了這個文件,但是他不知道2就是解密的私鑰啊,所以他解不開,只有我可以用數字2,就是我的私鑰,來解密。這樣我就可以保護數據了。
我的好朋友x用我的公鑰1加密了字元a,加密後成了b,放在網上。別人偷到了這個文件,但是別人解不開,因為別人不知道2就是我的私鑰,只有我才能解密,解密後就得到a。這樣,我們就可以傳送加密的數據了。
現在我們知道用公鑰加密,然後用私鑰來解密,就可以解決安全傳輸的問題了。如果我用私鑰加密一段數據(當然只有我可以用私鑰加密,因為只有我知道2是我的私鑰),結果所有的人都看到我的內容了,因為他們都知道我的公鑰是1,那麼這種加密有什麼用處呢?
但是我的好朋友x說有人冒充我給他發信。怎麼辦呢?我把我要發的信,內容是c,用我的私鑰2,加密,加密後的內容是d,發給x,再告訴他解密看是不是c。他用我的公鑰1解密,發現果然是c。這個時候,他會想到,能夠用我的公鑰解密的數據,必然是用我的私鑰加的密。只有我知道我得私鑰,因此他就可以確認確實是我發的東西。這樣我們就能確認發送方身份了。這個過程叫做數字簽名。當然具體的過程要稍微復雜一些。用私鑰來加密數據,用途就是數字簽名。
好,我們復習一下:
1,公鑰私鑰成對出現
2,私鑰只有我知道
3,大家可以用我的公鑰給我發加密的信了
4,大家用我的公鑰解密信的內容,看看能不能解開,能解開,說明是經過我的私鑰加密了,就可以確認確實是我發的了。
總結一下結論:
1,用公鑰加密數據,用私鑰來解密數據
2,用私鑰加密數據(數字簽名),用公鑰來驗證數字簽名。
在實際的使用中,公鑰不會單獨出現,總是以數字證書的方式出現,這樣是為了公鑰的安全性和有效性。
數字證書的原理
數字證書採用公鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每個用戶自己設定一把特定的僅為本人所知的私有密鑰(私鑰),用它進行解密和簽名;同時設定一把公共密鑰(公鑰)並由本人公開,為一組用戶所共享,用於加密和驗證簽名。當發送一份保密文件時,發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,這樣信息就可以安全無誤地到達目的地了。通過數字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密. 在公開密鑰密碼體制中,常用的一種是RSA體制。
用戶也可以採用自己的私鑰對信息加以處理,由於密鑰僅為本人所有,這樣就產生了別人無法生成的文件,也就形成了數字簽名。採用數字簽名,能夠確認以下兩點:
(1)保證信息是由簽名者自己簽名發送的,簽名者不能否認或難以否認;
(2)保證信息自簽發後到收到為止未曾作過任何修改,簽發的文件是真實文件。
我的解釋:
每個用戶都有一對私鑰和公鑰。
私鑰用來進行解密和簽名,是給自己用的。
公鑰由本人公開,用於加密和驗證簽名,是給別人用的。
當該用戶發送文件時,用私鑰簽名,別人用他給的公鑰解密,可以保證該信息是由他發送的。即數字簽名。
當該用戶接受文件時,別人用他的公鑰加密,他用私鑰解密,可以保證該信息只能由他接收到。可以避免被其他人看到。
數字證書
是數字形式的標識,與護照或駕駛員執照十分相似。數字證書是數字憑據,它提供有關實體標識的信息以及其他支持信息。數字證書是由成為證書頒發機構(CA)的權威機構頒發的。由於數字證書有證書權威機構頒發,因此由該權威機構擔保證書信息的有效性。此外,數字證書只在特定的時間段內有效。
數字證書包含證書中所標識的實體的公鑰(就是說你的證書里有你的公鑰),由於證書將公鑰與特定的個人匹配,並且該證書的真實性由頒發機構保證(就是說可以讓大家相信你的證書是真的),因此,數字證書為如何找到用戶的公鑰並知道它是否有效這一問題提供了解決方案。
綜上所述,公鑰 私鑰都是保存在數字證書之中的,並不以單獨的文件格式存在.
D. ca如何產生公鑰證書
CA是證書的簽發機構,它是PKI的核心。CA是負責簽發證書、認證證書、管理已頒發證書的機關。它要制定政策和具體步驟來驗證、識別用戶身份,並對用戶證書進行簽名,以確保證書持有者的身份和公鑰的擁有權。。
CA 也擁有一個證書(內含公鑰)和私鑰。網上的公眾用戶通過驗證 CA 的簽字從而信任 CA ,任何人都可以得到 CA 的證書(含公鑰),用以驗證它所簽發的證書。
如果用戶想得到一份屬於自己的證書,他應先向 CA 提出申請。在 CA 判明申請者的身份後,便為他分配一個公鑰,並且 CA 將該公鑰與申請者的身份信息綁在一起,並為之簽字後,便形成證書發給申請者。
如果一個用戶想鑒別另一個證書的真偽,他就用 CA 的公鑰對那個證書上的簽字進行驗證,一旦驗證通過,該證書就被認為是有效的。
證書
證書實際是由證書簽證機關(CA)簽發的對用戶的公鑰的認證。
證書的內容包括:電子簽證機關的信息、公鑰用戶信息、公鑰、權威機構的簽字和有效期等等。目前,證書的格式和驗證方法普遍遵循X.509 國際標准。
加密:
我們將文字轉換成不能直接閱讀的形式(即密文)的過程稱為加密。
解密:
我們將密文轉換成能夠直接閱讀的文字(即明文)的過程稱為解密。
如何在電子文檔上實現簽名的目的呢?我們可以使用數字簽名。RSA公鑰體制可實現對數字信息的數字簽名,方法如下:
信息發送者用其私鑰對從所傳報文中提取出的特徵數據(或稱數字指紋)進行RSA演算法操作,以保證發信人無法抵賴曾發過該信息(即不可抵賴性),同時也確保信息報文在傳遞過程中未被篡改(即完整性)。當信息接收者收到報文後,就可以用發送者的公鑰對數字簽名進行驗證。
在數字簽名中有重要作用的數字指紋是通過一類特殊的散列函數(HASH函數) 生成的。對這些HASH函數的特殊要求是:
1.接受的輸入報文數據沒有長度限制;
2.對任何輸入報文數據生成固定長度的摘要(數字指紋)輸出;
3.從報文能方便地算出摘要;
4.難以對指定的摘要生成一個報文,而由該報文可以算出該指定的摘要;
5.難以生成兩個不同的報文具有相同的摘要。
驗證:
收方在收到信息後用如下的步驟驗證您的簽名:
1.使用自己的私鑰將信息轉為明文;
2.使用發信方的公鑰從數字簽名部分得到原摘要;
3.收方對您所發送的源信息進行hash運算,也產生一個摘要;
4.收方比較兩個摘要,如果兩者相同,則可以證明信息簽名者的身份。
如果兩摘要內容不符,會說明什麼原因呢?
可能對摘要進行簽名所用的私鑰不是簽名者的私鑰,這就表明信息的簽名者不可信;也可能收到的信息根本就不是簽名者發送的信息,信息在傳輸過程中已經遭到破壞或篡改。
數字證書:
答: 數字證書為實現雙方安全通信提供了電子認證。在網際網路、公司內部網或外部網中,使用數字證書實現身份識別和電子信息加密。數字證書中含有密鑰對(公鑰和私鑰)所有者的識別信息,通過驗證識別信息的真偽實現對證書持有者身份的認證。
使用數字證書能做什麼?
數字證書在用戶公鑰後附加了用戶信息及CA的簽名。公鑰是密鑰對的一部分,另一部分是私鑰。公鑰公之於眾,誰都可以使用。私鑰只有自己知道。由公鑰加密的信息只能由與之相對應的私鑰解密。為確保只有某個人才能閱讀自己的信件,發送者要用收件人的公鑰加密信件;收件人便可用自己的私鑰解密信件。同樣,為證實發件人的身份,發送者要用自己的私鑰對信件進行簽名;收件人可使用發送者的公鑰對簽名進行驗證,以確認發送者的身份。
在線交易中您可使用數字證書驗證對方身份。用數字證書加密信息,可以確保只有接收者才能解密、閱讀原文,信息在傳遞過程中的保密性和完整性。有了數字證書網上安全才得以實現,電子郵件、在線交易和信用卡購物的安全才能得到保證。
認證、數字證書和PKI解決的幾個問題?
保密性 - 只有收件人才能閱讀信息。
認證性 - 確認信息發送者的身份。
完整性 - 信息在傳遞過程中不會被篡改。
不可抵賴性 - 發送者不能否認已發送的信息。
E. 數字證書,公鑰和私鑰這三者之間的關系是什麼
公私鑰又稱非對稱密鑰,成對出現,只有相互可逆,一對公私鑰可集成為一張數字證書
F. 公鑰與私鑰
rsa可以用來加密
這時候用公鑰加密
私鑰解密
(公鑰公開
如果私鑰加密的話
豈不是誰都可以用公鑰都要解開
有何秘密可言
你的私鑰要通過diniffer-hellman演算法秘密的傳給對方)
rsa可以用來也用來簽名
這時候用私鑰簽名
公鑰認證
(如果不是你用你自己的私鑰簽的
怎麼用你的公鑰可以解開的)
所以我想說
這題答案問題
正確的答案
要麼是
簽名和認證
要麼
解密和加密
結果所有的答案
都是把數據加密和簽名扯到一起
這讓人情何以堪
就像刀可以殺豬
也可以用來做西紅柿炒雞蛋
結果題目是
用刀殺豬的時候
應該怎麼切西紅柿
這讓我情何以堪
有木有
G. ssl證書的公鑰私鑰需要設置嗎
需要設置的,具體設置方法可以咨詢SSL證書提供商。
SSL證書的公鑰內密碼體制分為三個容部分,即公鑰、私鑰和加密解密演算法,顧名思義,加密是通過加密演算法和公鑰對明文傳輸數據進行加密,得到密文,加密過程是需要用到公鑰的。
解密是反過來,通過解密演算法和私鑰對密文進行解密,得到明文。解密過程需要用到解密演算法和私鑰。所以上文提到由公鑰加密的內容,只能由對應的私鑰進行解密,如果是公鑰加密的內容,不知道私鑰那是無法解密的,公鑰和私鑰保證了數據傳輸的安全性。
公鑰和演算法都是公開的,私鑰是保密的,是需要自己手動設置的。大家都用公鑰進行加密,但是只有私鑰的持有者才能解密。在實際的使用中,有需要的人會生成一對公鑰和私鑰,把公鑰發布出去給別人使用,自己保留私鑰。
數字證書是一個經證書授權中心數字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。最簡單的證書包含一個公開密鑰、名稱以及證書授權中心的數字簽名。所以ssl證書中肯定包含唯一匹配的公鑰和私鑰。網站擁有者向CA機構申請ssl證書時,證書請求文件中只包含公鑰,不包含私鑰。證書私鑰由網站保存,證書請求文件提交給CA機構進行認證和簽名後對外公開。
H. 私鑰、公鑰、證書的區別和關系
私鑰是要求你輸入個人密碼才可訪問的,一般網上銀行之類可用到。
公鑰不要求設專置密碼,是已屬經默認了的,一般上一些安全性要求不高的網站或共享資源,如區域網。
證書是一種網站加密瀏覽方式,只有允許了才可訪問,一般為安全性較高的網站,如網上銀行;可以訪止黑客盜取客戶資料。
I. SSL中,公鑰,私鑰,證書的後綴名都是些啥
Linux 下的工具們通常使用 base64 編碼的文本格式,相關常用後綴如下:
* 證書:.crt, .pem
* 私鑰:.key
* 證書請求:.csr
.cer 好像是二進制的證書。當然你也可以把證書和 key 放到同一個文件里邊。這時候擴展名通常叫 .pem。Java 的 keystore 什麼的都是二進制的,好像是自有格式。
其實在類 UNIX 系統上,關注文件名後綴的程序並不多的。而證書、密鑰都是有明顯的標識的,所以相關軟體(如 openssl)可以處理,而不管你用的什麼擴展名。當然亂用擴展名自己識別不便,桌面環境也不能將擴展名與默認操作、圖標關聯起來。
如果不知道一個文件是個啥,可以使用 file 命令識別試試。有經驗的也可以直接拿文本編輯器打開看看。
J. 老師你好,在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 環境的證書安裝。