『壹』 如何:導出和導入公鑰證書
此過程說明如何輕松設置加密示例。方法是從「我的證書」存儲中導出公鑰證書,而不導出私鑰,然後將該公鑰證書導入「通訊簿」證書存儲。要設置以下示例,請先按照該示例主題中的設置說明操作。這些說明建議使用此主題中的步驟將一個或多個生成的公鑰證書放入「通訊簿」證書存儲。 如何:為一個收件人封裝郵件 如何:為多個收件人封裝郵件 如何:簽名和封裝郵件要在一台計算機上運行上面的示例,需要滿足下列條件:「通訊簿」證書存儲和「我的證書」存儲中均包含郵件收件人的密鑰證書該計算機上有郵件收件人的私鑰且與「我的證書」存儲中的公鑰證書關聯示例先充當加密郵件的發件人,然後充當同一個加密郵件的收件人。通常,這兩個角色是由不同計算機上具有唯一公鑰憑據的不同實體充當。在充當加密郵件的發件人時,示例要求「通訊簿」證書存儲中包含收件人的證書。在充當加密郵件的收件人時,示例要求「我的證書」存儲中包含收件人的證書,並且該計算機上包含相應的私鑰。使用Makecert.exe 實用程序設置此示例,可以通過多種方法實現此目的。 Certificate Creation Tool (Makecert.exe) 是用於生成測試證書的一種很方便的實用程序。在生產環境中,證書由證書頒發機構生成。以下Makecert 命令生成所需的公鑰證書以及證書使用者名稱為「Recipient1」的實體的私鑰。證書將放入「我的證書」存儲。Makecert -n "CN=Recipient1" -ss My 以下過程說明如何設置證書存儲來滿足這些要求。首先,生成收件人的證書和私鑰,並將證書存儲在「我的證書」存儲中。然後將證書從「我的證書」存儲中導出,再導入「通訊簿」存儲。從「我的證書」存儲中導出公鑰證書打開Internet Explorer。在「工具」菜單上,單擊「Internet 選項」,然後單擊「內容」選項卡。單擊「證書」按鈕。在「個人」選項卡中,選擇「頒發給」下列出「Recipient1」的證書。(「個人」選項卡列出「我的證書」存儲中的證書。)單擊「導出」。(此時會打開導出向導。)單擊「下一步」。 單擊「否,不要導出私鑰」,然後單擊「下一步」。單擊「下一步」接受默認導出格式。鍵入要導出的證書的文件名或瀏覽至該文件名,單擊「下一步」,然後單擊「完成」。將證書導入「通訊簿」證書存儲在「證書」對話框中,單擊「其他人」選項卡。(「其他人」選項卡列出「通訊簿」證書存儲中的證書。)單擊「導入」,然後單擊「下一步」。鍵入要存儲導出證書的文件名的位置或瀏覽至該位置,然後單擊「下一步」。單擊「下一步」接受將導入的證書放入「其他人」證書存儲。單擊「完成」,然後單擊「確定」。
『貳』 為什麼生成的RSA1024公鑰是162個位元組
因為你使用了getEncoded();方法進行了編碼,getEncoded()是X509的編碼格式。
『叄』 什麼是公鑰證書
所謂的公鑰認證,實際上是使用一對加密字元串,一個稱為公鑰(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),兩者相同則認證成功
『肆』 怎樣根據已有的公鑰和私鑰生成數字證書
openssl genrsa -des3 -out server.key 1024 運行時會提示輸入密碼,此密碼用於加密key文件(參數des3便是指加密演算法,當然也回可以選用其他你認為安答全的演算法.),以後每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令.如果覺得不方便,也可以去除這個口令,但一定要採取其他的保護措施! 去除key文件口令的命令: openssl rsa -in server.key -out server.key!
『伍』 有了網銀證書,公鑰要自己生成嗎如何生成。(java開發中)
一般公鑰是網銀網站的控制項在用戶機器上生成的,同時在用戶機器上生成的還有私鑰。
然後公鑰發到網銀,被作成證書,還到用戶本地由網銀控制項或微軟控制項安裝。
『陸』 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解決的幾個問題?
保密性 - 只有收件人才能閱讀信息。
認證性 - 確認信息發送者的身份。
完整性 - 信息在傳遞過程中不會被篡改。
不可抵賴性 - 發送者不能否認已發送的信息。
『柒』 win7系統中如何導出公鑰
不是公鑰是私鑰,我們引述一段來自微軟技術白皮書的文字:加密是基於公鑰策略的。在使用EFS加密一個文件或文件夾時,系統首先會生成一個由偽隨機數組成的FEK(FileEncryptionKey,文件加密鑰匙),然後將利用FEK和數據擴展標准X演算法創建加密後的文件,並把它存儲到硬碟上,同時刪除未加密的原始文件。
隨後系統利用你的公鑰加密FEK,並把加密後的FEK存儲在同一個加密文件中。而在訪問被加密的文件時,系統首先利用當前用戶的私鑰解密FEK,然後利用FEK解密出文件。在首次使用EFS時,如果用戶還沒有公鑰/私鑰對(統稱為密鑰),則會首先生成密鑰,然後加密數據。
如果你登錄到了域環境中,密鑰的生成依賴於
域控制器,否則它就依賴於本地機器。備份:①:單擊開始按鈕,在搜索框中輸入「certmgr。msc」,然後在「程序」列表中選擇「certmgr。msc」選項。②:打開當前用戶的證書窗口後,在左窗格展開「個人」/「證書」目錄。
③:在右窗格中需要導出的證書上單擊右鍵,選擇「所有任務」|「導出」選項,然後在「歡迎使用證書導出向導」對話框中單擊「下一步」按鈕。④:出現「導出私鑰」對話框後,選擇是否導出私鑰,如果要備份證書則導出私鑰,如果想將證書發給他人使用則不必導出私鑰,本例選擇前者。
⑤:出現「導出文件格式」對話框後,選擇要使用的證書文件格式,通常採用默認設置,直接單擊「下一步」按鈕。⑹:出現「密碼」對話框後,輸入並確認證書的密碼,該密碼在導入證書時需要使用。若步驟④中選擇了不導出私鑰,將不會出現該步驟。⑦:出現「要導出的文件」對話框後,單擊「瀏覽」按鈕,並在「另存為」對話框中設置證書的保存路徑及名稱。
⑧:在「正在完成證書導出向導」對話框中檢查導出證書的信息,確認無誤後,單擊「完成」按鈕,然後在彈出的對話框中單擊「確定」按鈕,完成證書的導出操作。
『捌』 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。
『玖』 java使用keytool生成證書的時候怎們樣設置公鑰和私鑰還有keystore密碼是什麼
1.私鑰公鑰不是用戶自己輸入的,是RSA演算法自動生成的,而你輸入的密碼只是打開那個文件或生成的證書的密碼.
2.密碼為「changeit」,而如果嘗試幾次都不成功的話,就到$JAVA_HOME\jre\lib\security\目錄下去配就可以了
『拾』 怎樣根據已有的公鑰和私鑰生成數字證書
openssl genrsa -des3 -out server.key 1024
運行時來會提示輸入密碼,此密碼用源於加密key文件(參數des3便是指加密演算法,當然也可以選用其他你認為安全的演算法.),以後每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令.如果覺得不方便,也可以去除這個口令,但一定要採取其他的保護措施!
去除key文件口令的命令:
openssl rsa -in server.key -out server.key!