玉山科技 AsiaPeak  
 


中文首頁
最新消息

解決方案

產品

檔案傳輸管理(MFT)

檔案加密傳輸服務

檔案傳輸管理員

檔案傳輸代理服務

跨平台SFTP/FTPS指令API

高速檔案傳輸

硬體加密模組(HSM)

網路型 HSM

單機型(PCIe卡) HSM

USB介面 HSM

OpenPGP加密

PGP加密指令集與API

PGP for Java API

PGP加密原理

電子時戳

資源

連絡我們

English Version

程式碼簽章(Code Signing)是一種將數位簽章應用於軟體二進位檔案或腳本的過程。它的主要目的是確保軟體的真實性(Authenticity)和完整性(Integrity


程式碼簽章的原理
程式碼簽章的運作原理與其他公開金鑰基礎建設(PKI)技術相似,涉及以下幾個核心要素:

  • 公開金鑰/私密金鑰對(Public/Private Key Pair:開發者擁有一對相關的公鑰和私鑰。私鑰用於簽署程式碼,而公鑰則用於驗證簽章。
  • 憑證授權中心(Certificate Authority, CA:這是一個受信任的第三方,負責驗證軟體發行者的身份,並核發程式碼簽章憑證
  • 數位憑證(Digital Certificate:這個憑證包含了發行者的身份資訊和公鑰,並由CA簽署,以確認CA已驗證該身份。

當開發者簽署軟體時,會執行以下步驟:

  1. 產生雜湊值:對軟體程式碼產生一個唯一的雜湊值(類似於數位指紋)。
  2. 私鑰加密:開發者使用他們的私鑰加密這個雜湊值,形成數位簽章。
  3. 打包與發布:這個數位簽章、程式碼簽章憑證(包含公鑰和發行者資訊)會一同嵌入到軟體檔案中。

當使用者下載或執行帶有數位簽章的軟體時,作業系統或使用者代理程式會進行以下驗證:

  1. 憑證有效性檢查:檢查程式碼簽章憑證是否有效,例如是否過期、是否被撤銷。
  2. 公鑰解密:使用憑證中的公鑰解密數位簽章,取得原始的雜湊值。
  3. 重新計算雜湊值:對下載的軟體檔案重新計算一個雜湊值。
  4. 比對驗證:比較解密得到的雜湊值與重新計算的雜湊值。
    • 如果兩者相符,則表示軟體自簽署以來沒有被更改或竄改,且確實來自憑證上所顯示的發行者。
    • 如果兩者不符,則表示軟體可能已被修改或遭到惡意破壞,系統通常會發出警告或拒絕執行。

程式碼簽章的重要性
程式碼簽章在現今的數位世界中扮演著至關重要的角色,主要體現在以下幾個方面:

  • 提升使用者信任度:當軟體帶有有效的數位簽章時,使用者在下載或安裝時會看到發行者的資訊,而非「未知發行者」的警告,這大大增加了使用者對軟體的信任。
  • 防止惡意竄改:程式碼簽章能確保軟體自發行者簽署後未經任何惡意或非故意的修改。這對於防止惡意軟體(Malware)、病毒和間諜軟體散播至關重要。
  • 保障軟體完整性:它證明了軟體在傳輸過程中沒有被損壞或篡改。
  • 確立開發者責任:透過數位簽章,軟體發行者無法否認其所發布的程式碼,有助於追溯責任。
  • 符合平台要求:許多主流軟體平台(如Java、Microsoft Windows、Apple macOS、行動應用程式商店等)都要求軟體必須經過程式碼簽章才能安裝或發布,以確保生態系統的安全。

程式碼簽章的應用
程式碼簽章廣泛應用於各種軟體和檔案類型,包括:

  • 應用程式(Applications:桌上型電腦軟體、行動應用程式(iOS, Android等)。
  • 驅動程式(Drivers:作業系統的核心元件,確保其來自可信賴的硬體供應商。
  • 軟體更新與修補程式(Software Updates & Patches:驗證更新的來源和完整性,避免惡意更新。
  • 韌體(Firmware:嵌入式系統和IoT設備中的韌體,確保其未被篡改。
  • 腳本檔案(Script Files:如PowerShell腳本、VBA巨集等,確保其安全性。
  • DLLs 和 EXE 檔案:Windows 環境下的執行檔和動態連結庫。

總之,程式碼簽章就像是軟體的一個數位「防偽標籤」,它向使用者保證所下載或執行的軟體來自合法且可信任的來源,並且自發布以來沒有被任何人惡意修改。


如何使用 HSM 加強 Code Signing 的安全性

請與我們連絡


玉山科技 版權所有 © Copyright AsiaPeak 2006, All Rights Reserved