数位信任:
公司滨罢、笔碍滨与身分
程式码与软体
程式码签章是將数位签章應用於軟體二進位檔案或檔案的流程。此数位签章驗證軟體作者或發行者的身分,並驗證檔案自簽章以來是否未被更改或竄改。程式码签章向軟體接收者表明程式碼可以受到信任,而且程式码签章在打擊入侵系統或資料的惡意企圖方面發揮著重要作用。
程式码签章的使用案例包括內部或外部使用的軟體、修補程式或修正程式、測試、IoT装置產品開發、運算環境和行動應用程式。除了程式碼和軟體之外,程式码签章還適用於應用程式、韌體、檔案、訊息、XML、指令碼、容器和圖像。
與其他PKI技術一樣,程式码签章涉及公開金鑰/私密金鑰對、憑證授權中心和數位憑證。在發行者對軟體進行簽章時,他們會創建一個限定封裝,其中包含發行者的軟體、程式码签章凭证和数位签章。程式码签章凭证包含發行者的身分和公開金鑰,以及CA的簽章,用於確認CA已驗證此身分。数位签章是使用發行者私密金鑰的軟體的已簽章雜湊。在傳遞軟體時,使用者代理程式將檢查憑證的有效性和完整性(確定自簽章以來軟體是否被更改)。它使用憑證中的公開金鑰來顯示数位签章中的雜湊。然後,它將数位签章雜湊與最近運算的軟體雜湊進行比较。如果雜湊匹配,那麼客戶或使用者就得以確認軟體沒有被竄改。私密金鑰管理是程式码签章中的一個重要安全要素。如果金鑰被盜或管理不當,那麼網路犯罪分子可以使用金鑰來簽署惡意程式碼,並將其作為更新傳送給开发人员或客戶系統。
Java和Microsoft等主要軟體平台要求程式码签章,以防止惡意軟體傳播。對程式碼進行簽章也是安全方面的最佳做法,這樣客戶或使用者就不會下載被竄改的程式碼或來自未知來源的程式碼。它將來自貴組織的程式碼或軟體與被封裝為看似來自貴組織的程式碼區分開來。此外,如果沒有為軟體簽章,那麼軟體被提供給公眾之後,使用者就可能會遇到安全警告標籤。如果程式碼是為內部使用而組建並開發,程式码签章可促進劃分權責制和控制。
可以对任何类型的二进位档案或档案进行签章,包括:
? 可從網站下載的軟體應用程式
? 內部的IT應用程式
? 行動應用程式
? XML檔案
? 指令碼
? 軟體圖像
? 容器
? 驅動程式和公用程式
? 韌體
首先,軟體發行者產生一個公開金鑰/私密金鑰對。然後,他們透過向憑證授權中心(CA)提交憑證簽章要求(CSR)及其公開金鑰來獲得程式码签章凭证。CA驗證發行者的身分並對憑證要求進行驗證。如果驗證成功,CA將頒發程式码签章凭证。憑證包括發行者的身分、公開金鑰和CA的簽章。CA的簽章很重要,因為它作為受信任的第三方證明了憑證持有者的身分。程式码签章凭证不僅確認發行者的身分,還確認軟體的完整性。在發行者對軟體進行簽章時,他們會創建一個限定封裝,其中包含軟體、程式码签章凭证和数位签章。
数位签章還需要以下步驟:?
程式码签章可以手動進行,或將其作為持续整合/持续传递(颁滨/颁顿)流程等软体开发生命週期的一部分来自动执行。