CodeSign程式碼簽章使用經驗

什麼是程式碼簽章呢?它又有什麼作用呢?

前一陣子工作上遇到一件事,客戶說我們公司開發的產品沒有程式碼簽章 ,會有病毒,這種時候很無奈,只能花錢了事,順便讓筆者賺一次處理的經驗

程式碼簽章主要用來證明:

  1. 開發者為合法的公司或個人
  2. 該檔案從開發者釋出到使用者手上的過程中沒有經過任何竄改

這邊有詳細的說明,了解後便可以發現,簽章和是否為病毒是兩件分開的事,何況我們公司產品還是用光碟安裝的,但是為了客戶,還是去研究如何加上簽章, 實際找資料後發現,相關資料並不多,大多都是火紅的https加密簽章,這也難怪,現在web當道,但是大公司的軟體像是Chrome, Firefox等還是都有簽章的,最後當然還是努力達成任務,為我們公司的產品加上簽章囉。

簽章主要還是需要$$的,研究了各家簽章後,果斷放棄使用賽門鐵克的,因為https的憑證出了大包,不被Google Chrome所信任了,最後找了一家台灣代理商,買GlobalSign的CodeSign,以免有什麼問題還有人可以問XD

不過找到的資料實在是都很老舊,連代理商提供的資料也是,感覺都好幾年前了, 後來還是靠摸索完成了 ,各家實際步驟不盡相同,但主要流程應該差不多

  • 聯絡代理商購買CodeSign,填寫公司相關資料,並產生CSR給代理商
  • 取得帳號密碼下載憑證檔
  • 取得實體USB金鑰和使用密碼
  • 使用簽章工具配合USB金鑰為軟體加上憑證

其中CSR主要只是填入憑證顯示的相關資訊,不像https憑證還有私鑰的問題,所以我就在這邊產生囉

之後收到mail取得帳號密碼,按照文件教學,使用瀏覽器去下載憑證,這邊有點卡住,因為他們提供的教學畫面都很古早了,跟新版瀏覽器的界面都不相同了,不過最後測試了不同瀏覽器還是成功下載了憑證檔

簽章工具是使用微軟的SignTool.exe,主要是按照這篇教學安裝,實際還是有些出入,總之就是安裝windows SDK後,找到SignTool.exe就對了

USB金鑰的部分,還要安裝驅動,一開始不知道一直失敗,裝了驅動後,有一個程式負責管理,還可以讓我修改密碼,之後使用SignTool.exe下指令簽章時,會自動呼叫出視窗,要插入USB金鑰和輸入密碼,簽章才會成功,指令部分我已經濃縮成一個bat檔,先將下面程式碼另存成bat檔(部分資訊需按照申請資訊修改),後續只要拖拉就可完成簽章,主要是參考這篇文章修改而成,可惜現在沒有提供免費的CodeSign了,當然實際跟文章還是有點出入,像我下載的憑證檔附檔名是p7b

@echo off
if "%~1"=="" (goto blank)
signtool.exe sign /d "your company name" /du "http://yoursite.tw" /f %~dp0your_sign_file.p7b /fd "SHA256" /t http://timestamp.verisign.com/scripts/timstamp.dll /ph %~1
pause
exit

:blank
echo 請拖曳exe檔案到sign.bat檔上
pause

只要將憑證檔、SignTool.exe和這個bat放在同一個目錄,然後再把要被簽章的檔案拖拉到bat檔上就好了,最後還是提醒一下,如果有心人,還是可以產生有簽章的病毒,防毒軟體是根據程式特徵跟行為來判斷的。可以發現本文參考的文章都有點年代了,所以特地提供這次的使用經驗供人參考,希望對你有幫助。

參考來源

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

Create a website or blog at WordPress.com

向上 ↑

%d 位部落客按了讚: