DEV Community

Anna Shipman
Anna Shipman

Posted on

How Code Signing Process Work?

How Does Code Signing WorkCode signing certificates are issued by Certificate Authorities (CAs) and are used to sign the code of software, scripts, drivers, executables, etc. to secure them from unauthorized alteration and tampering and also validate the publisher's identity, which authenticates the software source as legitimate and trustworthy for users.

But, this is possible only when the developer completes the signing process by applying a digital signature to the code, which involves some specific steps such as:

  1. In the first step, the publisher need to request the signing Certificate from a Trusted Certificate Authority (CA) such as DigiCert Code Signing Certificate by completing the CA based validation process.

  2. The Certificate Authority (CA), like DigiCert, verifies the publisher's identity and then only issues the requested code signing certificate to the publisher.

  3. The publisher uses the issued Signing Certificate and Private Key to create a unique Digital Signature for signing the software code.

  4. Whenever the end user downloads the signed software or application, their system Decrypts the signature using a Public Key to authenticate the software source as legitimate

  5. Furthermore, the system authenticates that the code signing certificate belongs to a trusted CA through a "Root" certificate with a valid identity.

  6. In this step, the system compares the Hash Value used to sign the code against downloaded software.

  7. As per Step 6, if the Hashes Match and the System trusts the Root certificate, the Software is authenticated to be Trustworthy for Download and Installation on the system.

  8. In case of the opposite scenario, if the Hashes don't match, the system recognizes the software source as unsafe by giving a warning message to the user and interrupting the download process.

To conclude, the summation of these 8 Steps is the core Process of Code Signing used for digitally securing software, applications etc. from the threat of unauthorized tampering or alteration.

Top comments (0)