A. 數字證書中的數字簽名如何生成
由CA機構頒發,比如天威誠信,需要提交企業證書或者個人證書申請表及協議書,經過CA簽證後,再發放證書。安裝到密鑰內。
B. 如何使用ca證書 實現 電子簽名
《電子簽名法》第13、14條規定:電子簽名同時符合下列條件的,視為可靠的電子簽名:
從技術上來講,可以通過三種方式確保簽署時數字證書由電子簽名人控制:
其一是通過電子簽名人設置簽名密碼;
其二是系統下發驗證碼到電子簽名人提供的手機或郵箱,或提供驗證碼生成器給電子簽名人,通過電子簽名人回填驗證碼的方式確保數字證書由電子簽名人控制;
其三是通過EID調用數字證書。EID是派生於居民身份證、在網上遠程證實身份的證件,即「電子身份證」。在技術上。EID也是採用PKI(Public Key
Infrastructure,公鑰基礎設施)的密鑰對技術,由智能晶元生成私鑰,再由公安部門統一簽發證書、並經現場身份審核後,再發放給公民。EID
採用了PKI、硬證書加PIN碼的技術,通過這些技術可以有效防止在網路上身份信息被截取、篡改和偽造。而且由於EID具有PIN碼,別人撿到或盜取後也
無法使用。EID本身採用先進密碼技術,重要信息在key中物理上就無法被讀取,因此無法被破解,從而有效避免被他人冒用。
如果採用了「數字簽名」技術,一般可認定為可靠的電子簽名。
數字簽名並非是書面簽名的數字圖像化,而是通過密碼技術對電子文檔進行電子形式的簽名。實際上人們可以否認曾對一個文件簽過名,且筆跡鑒定的准確率並非
100%,但卻難以否認一個數字簽名。因為數字簽名的生成需要使用私有密鑰,其對應的公開密鑰則用以驗證簽名,再加上目前已有一些方案,如數字證書,就是把一個實體(法律主體)的身份同一個私有密鑰和公開密鑰對綁定在一起,使得這個主體很難否認數字簽名。
就其實質而言,數字簽名是接收方能夠向第三方證明接收到的消息及發送源的真實性而採取的一種安全措施,其使用可以保證發送方不能否認和偽造信息。
數字簽名的主要方式是:報文的發送方從報文文本中生成一個散列值(或報文摘要)。發送方用自己的私有密鑰對這個散列值進行加密來形成發送方的數字簽名。然後,這個數字簽名將作為報文的附件和報文一起發送給報文的接收方。報文的接收方首先從接收到的原始報文中計算出散列值(或報文摘要),接著再用發送方的公開密鑰來對報文附加的數字簽名進行解密和驗證。如果兩個散列值(也稱哈希值)相同,那麼接收方就能確認該數字簽名是發送方的。哈希值有固定的長度,運算不可逆,不同明文的哈希值不同,而同樣明文的哈希值是相同並唯一的,原文的任何改動其哈希值就會發生變化,通過此原理可以識別文件是否被篡改。
事實上,被篡改的經過數字簽名的數據電文很容易被發覺,甚至該文件在外觀上即可識別、無需鑒定,除非被告能夠提交不同內容且未發現篡改的經過數字簽名的數據電文。
C. 如何創建一個自簽名的SSL證書
自簽名證書只適合內部使用或測試需要,網站使用自簽名SSL證書存在極大的風險:
一:自簽SSL證書最容易被假冒和偽造,被欺詐網站利用
自簽SSL證書是可以隨意簽發的,不受任何監管,您可以自己簽發,別人也可以自己簽發。如果您的網站使用自簽SSL證書,那黑客也可以偽造一張一模一樣的自簽證書,用在釣魚網站上,偽造出有一樣證書的假冒網銀網站!
二:部署自簽SSL證書的網站,瀏覽器會持續彈出警告
自簽SSL證書是不受瀏覽器信任的,用戶訪問部署了自簽SSL證書的網站時,瀏覽器會持續彈出安全警告,極大影響用戶體驗。
三:自簽SSL證書最容易受到SSL中間人攻擊
用戶訪問部署了自簽SSL證書的網站,遇到瀏覽器警告提示時,網站通常會告知用戶點擊「繼續瀏覽」,用戶逐漸養成了忽略瀏覽器警告提示的習慣,這就給了中間人攻擊可乘之機,使網站更容易受到中間人攻擊。
典型的SSL中間人攻擊就是中間人與用戶或伺服器在同一個區域網,中間人可以截獲用戶的數據包,包括SSL數據包,並做一個假的伺服器SSL證書與用戶通信,從而截獲用戶輸入的機密信息。當網站被假的SSL證書替換時,瀏覽器會警告用戶此證書不受信任,需要用戶確認是否信任此證書,用戶習慣性點擊「繼續瀏覽」,中間人攻擊輕而易舉的實現了。
四:自簽SSL證書沒有可訪問的吊銷列表
這也是所有自簽SSL證書普遍存在的問題,做一個SSL證書並不難,使用OpenSSL幾分鍾就搞定,但真正讓一個SSL證書發揮作用就不是那麼輕松的事情了。要保證SSL證書正常工作,其中一個必備功能是要讓瀏覽器能實時查驗證書狀態是否已過期、已吊銷等,證書中必須帶有瀏覽器可訪問的證書吊銷列表。如果瀏覽器無法實時查驗證書吊銷狀態,一旦證書丟失或被盜而無法吊銷,就極有可能被用於非法用途而讓用戶蒙受損失。此外,瀏覽器還會發出「吊銷列表不可用,是否繼續?」的安全警告,大大延長瀏覽器的處理時間,影響網頁的流量速度。
D. 如何生成SSL證書和key
可以找專業的抄SSL證書服務商來生成SSL證書和key,具體步驟如下:
第一步:將CSR提交到證書服務商
CSR(Certificate Signing Request)文件必須由用戶自己生成,也可以利用在線CSR生成工具。選擇要申請的產品,提交一個新的訂單,並將製作好的CSR文件提交。
第二步 資料提交到CA
當收到您的訂單和CSR後,如果是域名驗證型證書(DV SSL證書),在域名驗證之後10分鍾左右就可頒發證書,若是其他類型證書則是需要通過CA機構進行驗證之後才可頒發。
第三步 發送驗證郵件到管理員郵箱
權威CA機構獲得資料後,將發送一封確認信到管理員郵箱,信中將包含一個 對應的鏈接過去。每一個訂單,都有一個唯一的PIN以做驗證用。
第四步 郵件驗證
點擊確認信中的鏈接,可以訪問到CA機構驗證網站,在驗證網站,可以看到該訂單的申請資料,然後點擊」I Approve」完成郵件驗證。
第五步 頒發證書
在用戶完成郵件驗證之後,CA機構會將證書通過郵件方式發送到申請人自己的郵箱,當用戶收到證書後直接安裝就可以了。若安裝存在問題,安信證書是提供免費證書安裝服務的。
E. 數字簽名程序生成的是什麼舉例說明!
數字簽名程序生成的是什麼?舉例說明!
:需要包含的包
import java.security.*;
import java.io.*;
import java.util.*;
import java.security.*;
import java.security.cert.*;
import sun.security.x509.*
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
二:從文件中讀取證書
用keytool將.keystore中的證書寫入文件中,然後從該文件中讀取證書信息
CertificateFactory cf=CertificateFactory.getInstance("X.509");
FileInputStream in=new FileInputStream("out.csr");
Certificate c=cf.generateCertificate(in);
String s=c.toString();
三:從密鑰庫中直接讀取證書
String pass="123456";
FileInputStream in=new FileInputStream(".keystore");
KeyStore ks=KeyStore.getInstance("JKS");
ks.load(in,pass.toCharArray());
java.security.cert.Certificate c=ks.getCertificate(alias);//alias為條目的別名
四:JAVA程序中顯示證書指定信息
System.out.println("輸出證書信息:\n"+c.toString());
System.out.println("版本號:"+t.getVersion());
System.out.println("序列號:"+t.getSerialNumber().toString(16));
System.out.println("主體名:"+t.getSubjectDN());
System.out.println("簽發者:"+t.getIssuerDN());
System.out.println("有效期:"+t.getNotBefore());
System.out.println("簽名演算法:"+t.getSigAlgName());
byte [] sig=t.getSignature();//簽名值
PublicKey pk=t.getPublicKey();
byte [] pkenc=pk.getEncoded();
System.out.println("公鑰");
for(int i=0;ipkenc.length;i++)System.out.print(pkenc[i]+",");
五:JAVA程序列出密鑰庫所有條目
String pass="123456";
FileInputStream in=new FileInputStream(".keystore");
KeyStore ks=KeyStore.getInst......
瀘唨尤孚咢懎摻彇塂搑垟枛環抰噠
F. 如何製作和應用數字簽名證書
需要准備的工具:makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe。
在MS的SDK6.0中有個證書生成工具makecert.exe, 你可以使用這個工具來生成測試用的證書。
第一步,生成一個自簽名的根證書(issuer,簽發者)。
>makecert -n "CN=Root" -r -sv RootIssuer.pvk RootIssuer.cer
這個時候,會彈出提示框,首先給RootIssuer.pvk文件設置私鑰保護口令;
然後,再次輸入這個口令用私鑰(在RootIssuer.pvk文件中)來給公鑰(在RootIssuer.cer文件中)加密。
第二步,使用這個證書簽發一個子證書(使用者,subject)。
>makecert -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cer
此時,會彈出提示框先給這個子證書的私鑰文件ChildSubject.pvk設置保護口令;
然後,輸入這個子證書的私鑰(在ChildSubject.pvk中)口令來保護子證書的公鑰(在ChildSubject.cer中)。
接下來會提示輸入根證書私鑰(在RootIssuer.pvk中)口令來簽發整個子證書(公鑰和用戶信息)。
如果你還要簽發更多的子證書,類似的,使用這個證書來簽發再下層的證書,前提是ChildSubject證書也可以用於簽發(作為Issuer)用途。
備註:
(1)如果你需要一個交互證書,用於安全通信,那麼,加入選項 -sky exchange;
(2)如果你需要一個簽名證書來簽發證書或者二進制文件,那麼,加入選項 -sky signature.
(3)如果你需要一個客戶端證書來標志你的身份,或者個人信息保護(電子郵件),那麼,選項-n 中的E欄位是不可缺少的。
舉例:-n "CN=公司名稱, E=E-MAIL地址, O=組織名稱, OU=組織單位, C=國家, S=省份(州), P=縣城"
其他輔助工具:
1) 公鑰證書格式轉換成SPC。 cert2spc.exe
>cert2spc TestRoot.cer TestRoot.spc
.spc 意思是 軟體發布者證書(Software Pulisher Cerificate).
2) 將公鑰證書和私鑰合並成一個PFX格式的證書文件。pvk2pfx.exe
>pvk2pfx -pvk TestRoot.pvk -spc TestRoot.spc -pfx TestRoot.pfx
輸入TestRoot.pvk的保護口令來合並.pvk和.spc文件,如果你不設置即將合並出來的TestRoot.pfx的保護口令的話,這個保護口令和輸入文件TestRoot.pvk的保護口令一樣。(備註:直接從cer文件也可以,不一定要得到SPC文件).
3) 簽名工具。signtool.exe
二進制文件數字簽名.為了保證二進制文件的完整性,數字簽名是一個好的方法。
以下命令啟動一個有圖形界面的文件簽名工具向導:
>signtool wizard
以下是命令行方式的簽名:
>signtool sign /f "pfx文件的全路徑" /p "pfx文件的保護口令" /t "http://timestamp.verisign.com/scripts/timstamp.dll" /d "本次簽名的描述" "被簽名的程序的全路徑"
G. 個人簽名數字證書製作
你可以去http://qianming.ouku.com/ 直接在線免費申請 輸入串號 機型
一般12小時之內就生成證書的 速度很快 而且不回用像塞班那答樣固定時間 24小時接受申請的
而且還提供在線軟體簽名功能的 不用自己下什麼簽名工具
把你要簽名的軟體上傳下 自動就可以下載簽好的軟體了
H. 如何生成Android的簽名證書
cmd命令生成android簽名證書,有空在寫一篇eclipse導出帶簽名的,這裡麵包括生成新的簽名。現在還是講講在cmd怎麼操作生成簽名證書。
1、dos下進入JDK的bin目錄
運行如下命令:keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
(-validity 20000代表有效期天數),命令完成後,bin目錄中會生成android.keystore
示例:
C:\Program Files (x86)\Java\jdk1.8.0_25\bin>
keytool -genkey -alias test.keystore -keyalg RSA -validity 20000 -keystore d:\test.keystore
ps:-alias test 生成的keystore別名,-keyalg RSA 加密和數字簽名的演算法,-validity 20000 有效天數
輸入密鑰庫口令:123456
再次輸入新口令:123456
您的名字與姓氏是什麼?
[Unknown]: rob
您的組織單位名稱是什麼?
[Unknown]: abc
您的組織名稱是什麼?
[Unknown]: abc
您所在的城市或區域名稱是什麼?
[Unknown]: guangzhou
您所在的省/市/自治區名稱是什麼?
[Unknown]: guangzhou
該單位的雙字母國家/地區代碼是什麼?
[Unknown]: cn
CN=rob, OU=abc, O=abc, L=guangzhou, ST=guangzhou, C=cn是否正確?
[否]: y
輸入 <test> 的密鑰口令
(如果和密鑰庫口令相同, 按回車):
如果沒有錯誤則回去查看D盤根目錄下,多了test.keystore
所以第一次輸入的是,密鑰庫的密碼。
最後輸入時密鑰別名的密碼。到這里生成簽名就搞定啦。
2、查看md5指紋驗證
輸入keytool -list -v -alias androiddebugkey -keystore 再加上剛剛從紅色框中復制出來的內容
我這里的就是keytool -list -v -alias androiddebugkey -keystore C:\Users\ZLQ\.android\debug.keystore了,回車
-alias androiddebugkey 這個是別名
-keystore C:\Users\ZLQ\.android\debug.keystore 具體位置的密鑰庫
要求輸入密碼,密碼是android,至此就可以拿到MD5認證指紋了
I. 數字證書有哪些主要欄位並簡述證書的簽名生成過程。
用戶首先產生來自己的密源鑰對,並將公共密鑰及部分個人身份信息傳送給認證中心。認證中心在核實身份後,將執行一些必要的步驟,以確信請求確實由用戶發送而來,然後,認證中心將發給用戶一個數字證書,該證書內包含用戶的個人信息和他的公鑰信息,同時還附有認證中心的簽名信息。用戶就可以使用自己的數字證書進行相關的各種活動。數字證書由獨立的證書發行機構發布。數字證書各不相同,每種證書可提供不同級別的可信度。可以從證書發行機構獲得您自己的數字證書。