IExpress是微軟為壓縮CAB文件及制作安裝程序所開發的小工具,其實應該算是MAKECAB的一個Shell。雖一直藏身于微軟的產品中,卻從未對它說明過,但不能否認是一款不錯的免費軟件。
打開 C:\WINDOWS\SYSTEM 文件夾,運行iexpress.exe,其中會使用到三個文件為:makecab.exe(CAB 文件制作工具)、iexpress.exe(CAB 自解壓文件制作向導)、wextract.exe(CAB 自解壓文件的“頭”文件)。
介紹一下 Iexpress 的用法。 運行 iexpress.exe,出現 Iexpress Wizard(向導),然后依次按“下一步”進入各步驟;
(1)選擇默認選項“Create new Self Extraction Directive file”(建立新的自解壓文件);
(2)選擇“Extract file only”(僅解壓文件)單選鈕;
(3)后面的根據提示進行制作既可。
給ActiveX簽名 (轉)
給AcitveX簽名有很多種方式,現介紹我所了解的幾種:
以下用到的工具請在http://ftp.intron.ac/pub/security/下載authenticode.zip文件
一,使用微軟的工具不采用私鑰文件
1.制作根證書
makecert -sk "myPK" -ss mySSName -n "CN=公司名稱" -r myroot.cer
sk-表示主題的密鑰容器位置,ss-主題的證書存儲名稱, n-證書頒發對象,r-證書存儲位置;
2.制作子證書
makecert -sk "myPK" -is mySSName -n "CN=公司名稱" -$ commercial -ic myroot.cer test.cer
sk-表示主題的密鑰容器位置,is-頒發者的證書存儲名稱, n-證書頒發對象,ic-頒發者的證書存儲位置,-$-授權范圍(用于代碼簽名);
3.使用Cert2Spc生成spc發行者證書
cert2spc test.cer test.spc
4.使用signcode為你的程序,庫或cab包簽名:
雙擊signcode,或在控制臺鍵入signcode,不帶參數會啟動簽名向導。在第三步選擇“自定義選項”,第四步選擇“從文件選擇”選擇 test.spc或test.cer,第五步選擇“CSP中的私鑰”,在密鑰容器中選擇我們定義的myPK,其他步驟默認即可,如果想添加時間戳,請在時間戳服務器地址上鍵入:(免費時間戳認證)
http://timestamp.wosign.com/timestamp
完成后,觀察你所簽名的文件屬性,應該已經添加數字簽名項。
5.將myroot.cer導入“受信任的根證書頒發機構”,使用chktrust測試剛才的文件是否簽名成功
二,使用微軟的工具采用私鑰文件
1.制作根證書
makecert -sv "myroot.pvk" -ss mySSName -n "CN=公司名稱" -r myroot.cer
sv-私鑰文件名,ss-主題的證書存儲名稱, n-證書頒發對象,r-證書存儲位置;
2.制作子證書
makecert -sv "test.pvk" -iv myroot.pvk -n "CN=公司名稱" -$ commercial -ic myroot.cer test.cer
sv-私鑰文件名,iv-根證書的私鑰文件, n-證書頒發對象,ic-頒發者的證書存儲位置,-$-授權范圍(用于代碼簽名);
3.使用Cert2Spc生成spc發行者證書
cert2spc test.cer test.spc
4.使用signcode為你的程序,庫或cab包簽名:
雙擊signcode,或在控制臺鍵入signcode,不帶參數會啟動簽名向導。在第三步選擇“自定義選項”,
第四步選擇“從文件選擇”選擇test.spc或test.cer,
第五步選擇“文件中的私鑰”選擇test.pvk,其他步驟默認即可,如果想添加時間戳,請在時間戳服務器地址上鍵入:(免費時間戳認證)
http://timestamp.wosign.com/timestamp
完成后,觀察你所簽名的文件屬性,應該已經添加數字簽名項。
用命令方式:signcode -spc test.spc -v test.pvk -n test的軟件 test.cab
注意:用signcode.exe簽署自己的軟件。假如是.cab文件,需要在用cabarc.exe制作的時候
用-s參數留出簽名的空間(一般6144字節即可)。
5.將myroot.cer導入“受信任的根證書頒發機構”,使用chktrust測試剛才的文件是否簽名成功
三,使用openssl產生根證書
1.用openssl創建CA證書的RSA密鑰(PEM格式):
openssl genrsa -des3 -out ca.key 1024
2.用openssl創建CA證書(PEM格式,假如有效期為一年):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf
openssl是可以生成DER格式的CA證書的,很奇怪Windows卻說那證書是“無效的”,
無奈,只好用IE將PEM格式的CA證書轉換成DER格式的CA證書。
3.將ca.crt導入至IE中。
導入時注意一定要將證書存儲至“本地計算機”。
具體步驟如下:
1)在“我的電腦”或“資源管理器”里雙擊該文件圖標。
2)在“常規”卡片上選擇“安裝證書”。
3)點“下一步”至“證書導入向導”,選擇“將所有的證書放入下列存儲區”,
點下面的“瀏覽”。勾上“顯示物理存儲區”。選擇“受信任的根目錄...”下一級的
“本地計算機”。點“確定”,再點“下一步”。
4)點“完成”。
可以檢查一下導入是否完全成功:
在IE的Internet選項中的“證書”中“受信任根證書頒發機構”中應該可以
看見上述的根證書。
4.IE的Internet選項中的“證書”中“受信任根證書頒發機構”中將剛才
導入的證書導出。格式為“DER編碼的二進制X.509(.CER)”。
假設導出的文件名為ca.cer
5.將PEM格式的ca.key轉換為Microsoft可以識別的pvk格式。
pvk -in ca.key -out ca.pvk -nocrypt -topvk
6.步驟接第二種方式的第3步
---------------------------------------------------------------------------------------------
如何給ActiveX控件簽名
2007-04-05 12:54
???????????? 簡單地說,所謂數字簽名就是附加在數據單元上的一些數據,或是對數據單元所作的密碼變換。這種數據或變換允許數據單元的接收者用以確認數據單元的來源和數據單元的完整性并保護數據,防止被人(例如接收者)進行偽造。它是對電子形式的消息進行簽名的一種方法,一個簽名消息能在一個通信網絡中傳輸。基于公鑰密碼體制和私鑰密碼體制都可以獲得數字簽名,目前主要是基于公鑰密碼體制的數字簽名。包括普通數字簽名和特殊數字簽名。普通數字簽名算法有 RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir數字簽名算法、Des/DSA,橢圓曲線數字簽名算法和有限自動機數字簽名算法等。特殊數字簽名有盲簽名、代理簽名、群簽名、不可否認簽名、公平盲簽名、門限簽名、具有消息恢復功能的簽名等,它與具體應用環境密切相關。顯然, 數字簽名的應用涉及到法律問題,美國聯邦政府基于有限域上的離散對數問題制定了自己的數字簽名標準(DSS)。一些國家如法國和德國已經制定了數字簽名法。數字簽名(Digital Signature)技術數字簽名技術是不對稱加密算法的典型應用。數字簽名的應用過程是,數據源發送方使用自己的私鑰對數據校驗和或其他與數據內容有關的變量進行加密處理,完成對數據的合法“簽名”,數據接收方則利用對方的公鑰來解讀收到的“數字簽名”,并將解讀結果用于對數據完整性的檢驗,以確認簽名的合法性。數字簽名技術是在網絡系統虛擬環境中確認身份的重要技術,完全可以代替現實過程中的“親筆簽字”,在技術和法律上有保證。在公鑰與私鑰管理方面,數字簽名應用與加密郵件 PGP技術正好相反。在數字簽名應用中,發送者的公鑰可以很方便地得到,但他的私鑰則需要嚴格保密。
數字簽名:數字簽名驗證發送方的標識并保護數據的完整性。事實上數字簽名不是一種具體的技術實現,它是基于以上各種加密技術組合的解決方案。通常一個基本的數字簽名方案可能有如下步驟:
雙方各自生成一個公鑰/私鑰對。
雙方交換他們的公鑰。
雙方生成一個用于對稱加密法的私鑰,并使用該對稱私鑰加密要發送的消息。
生成加密后消息的哈希值。
用對方的共鑰加密對稱私鑰和哈希值(該組合密文即為簽名),并將該簽名附加在消息主體的密文后發送給對方。
首先要有工具包,包括以下幾個軟件:
makecert.exe 制作cer格式的證書,即X.509證書,同時可以創建私鑰
cert2spc.exe 將cer格式證書轉換成spc格式證書,即PKCS #7證書
signcode.exe 將證書簽署到ocx上去
chktrust.exe 檢查簽署證書后的ocx是否正確
還有一個certmgr.exe,是管理證書用的。
下面是具體的步驟:
1、創建一個自己的證書文件:
makecert /sv "Record.PVK" /n "CN=公司名稱,E=email,O=作者" dream.cer
這里,Record.PVK表示新創建的私人密鑰保存文件名
DreamCaptial是你想顯示的公司名
dream.cer是你創建最后的證書文件名
這些根據你自己的要求填寫,最后得到Record.PVK和dream.cer兩個文件。
其中,運行過程中需要輸入私人密鑰的保護密碼,一定要輸入一致,不要
出錯。
2、轉換cer格式為spc格式(可以省略)
cert2spc dream.cer dream.spc
得到dream.spc文件。
3、給ocx進行簽名
運行signcode,命令行的我沒有試驗通過,我是通過界面實現的。
signcode運行后會出現數字簽名向導,首先選擇你要簽名的ocx,
下一步后會出現簽名選項,一種是典型,一種是自定義。選擇自定義,
這樣才能從文件選擇證書,選擇前面制作的dream.spc,再下一步是
選擇私鑰文件,選擇Record.PVK,輸入私人密鑰的保護密碼,選擇散
列算法,一般用md5就可以了,下一步是選擇其他證書,直接下一步,
填寫一下這個控件的聲明,用戶用ie瀏覽的時候,會彈出證書說明,
再下一步是加蓋時間戳,我不會,直接下一步就完成了。
4、用chktrust檢查是否正確
chktrust -v RecordProj.ocx
就這樣,得到了一個測試證書,恩,雖然只是一個測試證書,但至
少保證這個ocx在ie瀏覽的時候能夠彈出來一個窗口,問你是否安裝,
而不是直接禁止了。