There is a common misconception that Security certificates are just for Web servers. Many certificates, and code-signing certificates in particular can be useful in a plethora of fields; they can make your enterprise more secure, make your software more accepted, and even stop malware in its tracks. A Code Signing Certificate is a technology which includes the process of validation for publishers of software, content, code, and scripts based on a digital signature to authenticate their identities to web users. In addition to identifying the identity of the publisher, code signing also protects the code from being tampered with. [video=youtube;pfSv44cWHTg]http://www.youtube.com/watch?feature=player_embedded&v=pfSv44cWHTg[/video] How to get a Code Signing Certificate? Code Signing Certificates depend on a digital signature technology, which is issued by an internationally trusted third party called Certificate Authority (CA). A Code Signing Certificate from a trusted Certificate Authority (CA) will identify the software and publisher as trustworthy. For example, VeriSign / Symantec and Thawte utilize digital IDs for application designers. When a programmer applies for a digital ID, it is necessary to provide confirmation of identification. A public/private key couple is produced when the certificate is issued. The key continues to be on the requester’s computer and is never sent to the CA and should not be shared with anyone. The community key is presented to the CA with the certificate. Once the certificate is issued, the developer uses the private key associated with that group key to sign the content, code, or script. When web users download the signed code, they get a copy of the certificate to authenticate the identity of the publisher/author. The Web browser verifies the digital signature, and the user trusts that the code did indeed come from that particular developer. What happens when a Code Signing Certificate is issued: The code is put through a one-way hash function. This creates a “digest” of fixed length. The developer’s private key is used to encrypt this digest. The digest is combined with the certificate and hash algorithm to create a signature block. The signature block is inserted into the portable executable file. Steps of Authentication Process When Code is Downloaded From Another User: The certificate is examined and the developer’s public key is obtained from the CA. The digest is then decrypted with the public key. The same hash algorithm that was used to create the digest is run on the code again, to create a second digest. The second digest is compared to the original. Advantages of using a Code Signing Certificate: Protects Your Code A digital signature indicates that a piece of code belongs to you and has not been corrupted with malware. Unsigned code presents frightening warning messages in an attempt to limit the chance of malicious code harming a user’s PC, device, or network. Increases Adoption Because of the proliferation of malware disguised as legitimate software, customers view any software downloaded from the Web with extreme suspicion. Unexpected warning messages from their OS or browser such as those resulting from unsigned code, no matter how benign, cause many users to cancel the install. Protects Your Reputation Consumers expect a smooth installation process; warning messages look unprofessional and create suspicion. Code Signing allows you to forgo these types of messages and helps you train your customers to only trust digitally-signed code. Meets the Requirements of Your Partners Your partners and distribution channels want to ensure that they are not risking their reputation and their customers’ safety by distributing your code. Digital signatures allow them to verify that the content they are sharing is legitimate. Simplifies Monitoring and Enforcement A digital signature using a Code Signing Certificate helps identify the authenticity of signed code, making it easy to screen for modified files. With a DigiCert Time-stamp, any signed code remains valid even after the certificate expires. The time stamp tells users that you had a valid certificate when the software was signed.