Authenticode and Code Signing Digital ID From Comodo
Signing by the publisher:
Verification at the end-user's browser:
- Publisher obtains a Code Signing Digital ID from Comodo.
- Publisher creates code.
- Using the SIGNCODE.EXE utility, the publisher:
- Creates a hash of the code, using an algorithm such as MD5 or SHA,
- Encrypts the hash using his/her private key,
- Creates a package containing the code, the encrypted hash, and the publisher's certificate.
- The end user encounters the package.
- The end user's Microsoft browser examines the publisher's Digital ID. Using the Comodo root Public Key, which is already embedded in Authenticode-enabled applications, the end user browser verifies the authenticity of the Code Signing Digital ID (which is itself signed by the Comodo root Private Key).
- Using the publisher's public key contained within the publisher's Digital ID, the end user browser decrypts the signed hash.
- The end user browser runs the code through the same hashing algorithm as the publisher, creating a new hash.
- The end user browser compares the two hashes. If they are identical, the browser messages that the content has been verified by Comodo, and the end user has confidence that the code was signed by the publisher identified in the Digital ID, and that the code hasn't been altered since it was signed.
The entire process is seamless and transparent to end users, who see only a message that the content was signed by its publisher and verified by Comodo.
The Six Steps In Code Signing
These instructions provide an overview of obtaining and using Microsoft Authenticode and a Code Signing Digital ID from Comodo.
Step 1: Make Sure that you Are Running the Correct Versions of all Tools:
- Internet Explorer 4.0 or later
- Internet Client SDK
Step 2: Apply for a Code Signing ID for Authenticode from Comodo
In the process of applying for a Code Signing ID, your browser will generate a private key. You should store this private key (called MyPrivateKey.pvk) on an external storage device like a USB drive, which is stored in a safe deposit box or other secure location. Please make a back-up copy of this private key, as you will need this key to sign code. This key is never sent to Comodo, so if you lose this private key, you will be unable to sign code. If this key is lost or stolen, please contact Comodo immediately.
Step 3: Pick up your Digital ID
Once you have completed the application process, Comodo will take a number of steps to verify your identity.
- Code Signing Certificate - For commercial publishers, Comodo does a considerable amount of background checking.
- EV Code Signing Certificate - Issuance of an EV code signing certificate requires a stringent validation of the publisher as per CA/Browser forum standards and Microsoft specifications.
As a result, it will take approximately 3-5 days to verify your information and issue a Digital ID.
At the end of this process, Comodo will send you an e-mail containing a PIN (Personal Identification Number). Save the PIN in a safe place. Follow the instructions in this email to pick up your Digital ID. Save your Digital ID as a file (e.g. MyCredentials.spc).
Please note that you must use the same machine to apply for and obtain your Digital ID. You can then use the private key and Digital ID to sign files on a different machine.
Step 4: Prepare your Files to be Signed
If you are building any PE file (.exe, .ocx, .dll or other), you need not do anything special. For cab files, you need to add the following entry to your .ddf file before creating the cab file: Set ReservePerCabinetSize=6144
Step 5. Sign your Files
You can now sign your .exe, or .cab, .ocx, or .dll file. To sign, you will use the SIGNCODE.EXE utility included in the ActiveX SDK. You will also need your Digital ID file (generally called MyCredentials.spc) and the USB token containing your private key (MyPrivateKey.pvk). For EV Code Signing, you will also require to enter the PIN you received in your certificate collection email, for authenticating your self.
As part of this process you will need to know the URL of Comodo's time stamping server, which is http://timestamp.comodoca.com/authenticode
Step 6: Test Your Signature
The Microsoft SDK contains a utility called chktrust.exe. This may be used to check your signature before distributing your file.
To test a signed .exe, .dll or .ocx file, run chktrust filename
To test a signed cab file, run chktrust -c cabfilename.cab
If your code signing process was OK, this will bring up a digital certificate. Congratulations, you have just digitally signed your file. When this file is downloaded from a Web site by Internet Explorer, it will display the same digital certificate to the user. If the file is tampered with in any way after it has been signed, the user will be notified and given the option of refusing installation.
Microsoft and Comodo are committed to making the Internet a secure and viable platform for commerce and the distribution of content through encryption and SSL Certificate. With Authenticode and Comodo's Code Signing Certificate Digital IDs, your code will be as safe and trustworthy to your customers as it would be if you shrink-wrapped it and sold it off a store shelf.