保持交易與客戶資料隱密性
程式碼簽章(Code Sign)是甚麼?
當我們在電腦上安裝下載來的軟體的時候.都會跳出一個視窗問說:是否要允許下列程式變更這部電腦,這時候您會看到一些訊息,有出現已驗證的發行者欄位,這個程式就是有CodeSign過,如果是不明的發行者,代表沒有CodeSign,那到底是甚麼ㄋ?我們來說明一下:
程式碼簽章主要是為讓軟體在使用的時候有一個軟體身分驗證的機制,因為現在網路上一大堆免費的軟體,您在下載的時候可曾注意此軟體真的是安全的嗎 (我們先不談軟體本身內建木馬程式的情況),我想應該會想知道是否安全,但是我相信大部分的人都沒有能力去證明軟體安全與否?所以才會有防毒軟體可以幫忙掃描軟體是否有病毒的功能. 而程式碼簽章顧名思義,就是針對這個程式進行簽章的動作,以證明兩件事情:
一.程式的開發者是否為合法的公司或個人
二.當您透過網路下載軟體到您的主機上時,軟體是否在過程中是否被竄改.
,您可能會問,有很多軟體下載的時候沒有程式碼簽章,那如何保證程式不會被竄改呢?目前大部分都是用一個check sum的方式,通常網頁上會在某處(軟體旁)show出此軟體的PGP,MD5,SHA1的加密參數, 您下載下來後,利用hash工具取得軟體的hash值,確認此碼與網站上的是否相同,即可知道軟體有無被動手腳,您也可以用本網站的HASH值檢查器工具來確認!
言歸正傳,那我們要如何知道此程式碼有被簽章或者沒有簽章呢?您可以從以下的說明就可清楚了解:
首先我們先找一個軟體來下載,舉例:我們來下載java的軟體看看
下載完成後,直接對軟體按下右鍵->內容
按下內容後,再找到數位簽章的Tab,如果沒有找到,那代表此軟體沒有簽章過! 沒有簽章過的內容會是如下畫面(舉常用的putty.exe為例)
有簽章過的會如下所示
這時候我們點選數位簽章,會出現簽章的一些資訊
簽署人的名稱: 通常開發者本身的公司或個人
電子郵件地址: 簽署人的郵件地址
時間戳記:甚麼時候簽的
如果想要看更詳細的簽章憑證資訊,可點到簽暑人的名稱,然後點選詳細資料,這時候會出現簽署人的資訊以及副署的資訊,簽暑人的資料前面有提過,副署就是這張codesign憑證的提供商(跟誰買的憑證)如下圖
這時候想要看憑證資訊,請按下檢視憑證,會出現憑證的使用目的,確保軟體來自軟體發行者,保護軟體在發行後不會被竄改.
還有詳細資料,如發給Oracle America,inc公司,是Verisign所簽發的哪個等級的憑證,有效期間是多久,如下圖
如果想看簽發者聲明的話,點下去會連到簽發者的網站,會有聲明的文件可以看,有空可以看一下!
您也可看詳細資料,這邊就會呈現憑證的詳細內容,如下圖
點選憑證路徑,則會呈現憑證的上下層關係,憑證狀態應該是這個憑證沒有問題,如下圖,如果有出現XX或者!,代表串鍊路徑有問題!
這樣您就可以知道要如何知道程式碼有被簽章,以及一些簽章憑證的資訊了,您可能會問,為何有很多的下載軟體都沒有程式碼簽章,那不是很不安全嗎? 我們覺得,應為Codesign的憑證要費用是主因,很多軟體開發者不會想去花這筆錢,但是有沒有安全性的風險就看下載的人買不買單了.
與憑證一樣,您也可以用自簽憑證去進行程式碼簽章,但是簽出來是不被作業系統或者瀏覽器所認可(主要是根憑證內建的問題)! 本網站有提供程式碼簽章的工具,您可以試試看!如使用本網站提供的codesign工具