Entrust Certificate Services. Authenticode Signing. User Guide. For software release: Date of Issue: June Document issue: 1.

Similar documents
Entrust Certificate Services. Java Code Signing. User Guide. Date of Issue: December Document issue: 2.0

CODE SIGNING. Why Developers Need to Digitally Sign Code and Applications entrust.com

Microsoft Windows Macros and Visual Basic Signing User Guide

Publicly trusted certification authorities (CAs) confirm signers identities and bind their public key to a code signing certificate.

X.509 Certificate Generator User Manual

Personal Secure Certificate

Personal Secure Certificate

An Introduction to CODE SIGNING

Windows Intune Walkthrough: Windows Phone 8 Management

Entrust Managed Services PKI. Getting started with digital certificates and Entrust Managed Services PKI. Document issue: 1.0

How to Time Stamp PDF and Microsoft Office 2010/2013 Documents with the Time Stamp Server

Managed Services PKI 60-day Trial Quick Start Guide

Installation and Configuration Guide

Entrust Managed Services PKI. Configuring secure LDAP with Domain Controller digital certificates

CLIENT CERTIFICATE (EAP-TLS USE)

Using Entrust certificates with Microsoft Office and Windows

Concept of Electronic Approvals

Certify your Software Integrity with thawte Code Signing Certificates

Entrust Certificate Services for Adobe CDS

Entrust Managed Services PKI. Getting an end-user Entrust certificate using Entrust Authority Administration Services. Document issue: 2.

Certificates for computers, Web servers, and Web browser users

PDF Signer User Manual

HMRC Secure Electronic Transfer (SET)

Entrust Managed Services PKI Administrator Guide

GlobalSign Digital IDs for Adobe AIR Code Signing

Ciphermail S/MIME Setup Guide

Entrust Managed Services PKI

SafeGuard Easy upgrade guide. Product version: 7

Using Microsoft Windows Authentication for Microsoft SQL Server Connections in Data Archive

Secure IIS Web Server with SSL

SafeGuard Enterprise upgrade guide. Product version: 7

Technical Description. DigitalSign 3.1. State of the art legally valid electronic signature. The best, most secure and complete software for

YubiKey PIV Deployment Guide

HP Device Manager 4.7

Introduction...3 Terms in this Document...3 Conditions for Secure Operation...3 Requirements...3 Key Generation Requirements...

Using Entrust certificates with Adobe PDF files and forms

S/MIME on Good for Enterprise MS Online Certificate Status Protocol. Installation and Configuration Notes. Updated: October 08, 2014

SafeGuard Enterprise upgrade guide. Product version: 6.1

SEZ SEZ Online Manual Digital Signature Certficate [DSC] V Version 1.2

Certificate technology on Pulse Secure Access

CA Nimsoft Service Desk

Certificate technology on Junos Pulse Secure Access

Dlink DFL 800/1600 series: Using the built-in MS L2TP/IPSEC VPN client with certificates

Djigzo S/MIME setup guide

Certificate Management Service 9.7

SolarWinds Technical Reference

This Month s Tips & Tricks Topic: PDF Digital Signatures - Part 1: The Basics

EV Multi-Domain Certificate Enrollment Guide

Iowa Immunization Registry Information System (IRIS) Web Services Data Exchange Setup. Version 1.1 Last Updated: April 14, 2014

SSL Configuration Best Practices for SAS Visual Analytics 7.1 Web Applications and SAS LASR Authorization Service

Sophos SafeGuard Native Device Encryption for Mac Administrator help. Product version: 7

for esigntrust Personal Secure Enrollment and Generation Guide Operation Guide Microsoft Windows System & Internet Explorer Users

VeriSign Code Signing Digital Certificates for Adobe AIR Technology

Upgrade Guide. Platform Compatibility. Dell Secure Mobile Access Upgrade Guide

Trustis FPS PKI Glossary of Terms

RB Digital Signature Proxy overview

SSL Configuration on Weblogic Oracle FLEXCUBE Universal Banking Release [August] [2014]

SETTING UP ACTIVE DIRECTORY (AD) ON WINDOWS 2008 FOR EROOM

Carillon eshop User s Guide

Yubico PIV Management Tools

MOVEIT: SECURE, GUARANTEED FILE DELIVERY BY JONATHAN LAMPE, GCIA, GSNA

Instructions to operating forms created in MSWord and Excel

TIBCO Spotfire Automation Services 6.5. User s Manual

STEP BY STEP IIS, DotNET and SQL-Server Installation for an ARAS Innovator9x Test System

CoSign for 21CFR Part 11 Compliance

HP Quality Center. Software Version: Microsoft Word Add-in Guide

Administration Guide Certificate Server May 2013

HP Application Lifecycle Management

Xerox Multifunction Devices. Verify Device Settings via the Configuration Report

Digital Signature Verification using Historic Data

SEZ SEZ Online Manual- DSC Signing with Java Applet. V Version 1.0 ersion 1.0

Citrix Receiver. Configuration and User Guide. For Windows Users

CA SiteMinder. Upgrade Guide. r12.0 SP2

Entrust Adobe CDS Individual Certificate

Procedure for How to Enroll for Digital Signature

Using Microsoft s CA Server with SonicWALL Devices

WebSphere Application Server security auditing

vrealize Air Compliance OVA Installation and Deployment Guide

Ciphire Mail. Abstract

Mobile Secure Cloud Edition Document Version: ios Application Signing

StoneGate SSL VPN Technical Note Adding Bundled Certificates

DIGIPASS CertiID. Getting Started 3.1.0

Dell Active Administrator 8.0

Patching the Windows 2000 Server Operating System on S8100 Media Servers, IP600 Communications Servers, & DEFNITY ONE Communications Systems

Signature policy for TUPAS Witnessed Signed Document

Card Management System Integration Made Easy: Tools for Enrollment and Management of Certificates. September 2006

Creating and Managing Certificates for My webmethods Server. Version 8.2 and Later

RemotelyAnywhere Getting Started Guide

THE IMPORTANCE OF CODE SIGNING TECHNICAL NOTE 02/2005

Microsoft Trusted Root Certificate: Program Requirements

Web servers and WebSphere Portal

Vulnerability Remediation Plugin Guide

HTTPS Configuration for SAP Connector

Integrated SSL Scanning

Download and Installation Instructions. Android SDK and Android Development Tools (ADT) Microsoft Windows

Security Digital Certificate Manager

Code Signing for Source Code

Transcription:

Entrust Certificate Services Authenticode Signing User Guide For software release: 11.0 Date of Issue: June 2012 Document issue: 1.0

Copyright 2009-2012 Entrust. All rights reserved. Entrust is a trademark or a registered trademark of Entrust, Inc. in certain countries. All Entrust product names and logos are trademarks or registered trademarks of Entrust, Inc. in certain countries. All other company and product names and logos are trademarks or registered trademarks of their respective owners in certain countries. Obtaining technical support For support assistance by telephone call one of the numbers below: 1 (866) 267-9297 in North America 1 (613) 270-2680 outside North America You can also email Customer Support at: SSL@entrust.com This information is subject to change as Entrust reserves the right to, without notice, make changes to its products as progress in engineering or manufacturing methods or circumstances may warrant. Export and/or import of cryptographic products may be restricted by various regulations in various countries. Export and/or import permits may be required. 2 Authenticode Signing 11.0 User Guide

Code signing Signing Microsoft Authenticode This guide contains information about signing Microsoft Authenticode files. Sections in this guide include: Obtaining and using an Entrust Microsoft Authenticode signing certificate on page 4 The code signing process for Microsoft Authenticode on page 8 Verifying the authenticity of the software on page 10 Use Entrust certificates for Microsoft Authenticode to sign CAB, CAT, CTL, DLL, EXE, and OCX files. Browsers use the signature and its accompanying information to provide some confidence to the end user that the code is from a legitimate source and is free of tampering. Entrust offers PKCS#7 (Public Key Cryptography Standard # 7) certificates for use with Authenticode. Note: You cannot use Entrust code signing certificates for Microsoft Authenticode to sign kernel mode software. User guides containing information about: Entrust code signing certificates for Windows macros and Visual Basic files Entrust code signing certificates for Java code are available from http://www.entrust.net/ssl-resources/whitepapers.htm. 3

Obtaining and using an Entrust Microsoft Authenticode signing certificate When you install the certificate, a private key is created on your machine. This process provides added security, as the private key does not exist until it is created on the signer s computer. Microsoft Authenticode files can be signed using SignTool an application that is included when you download and install the Windows Software Development Kit (SDK). The Windows SDK is available from Microsoft s Web site. Topis in this section include: Obtaining a certificate from Entrust on page 4 Signing Microsoft Authenticode on page 4 Signing kernel mode software using SignTool on page 6 Obtaining a certificate from Entrust To obtain a code signing certificate from Entrust, log into the Entrust Web site URL https://buy.entrust.net/buy. Code signing certificates can be only purchased by customers who have registered for the Entrust Certificate Management Service (CMS). For information about enrolling in the CMS see the Entrust Certificate Management Service Enrollment Guide. For information about buying and managing code signing certificates see the Entrust Certificate Management Service User Guide. Signing Microsoft Authenticode The procedure in this section assumes: that you have purchased and installed an Entrust certificate for signing Authenticode Microsoft SDK is installed on the machine you are using Note: SignTool supports PFX format. If you selected PVK format when you purchased your certificate you can convert it to PFX using the PVK2PFX utility, located in the same folder as SignTool. Alternatively, when you import the certificate into your certificate store you can specify PFX format. Converting a PVK formatted file to PFX This procedure outlines how convert a PVK formatted file to PFX using the PVK2PFX utility. 4 Authenticode Signing 11.0 User Guide Document issue: 1.0

To convert a PVK file to a PFX file 1 From the command prompt, enter the command: <Path to the PVK2PFX executable>\pvk2pfx.exe -pvk <name of PVK file> -pi <password for PVK> -spc <name of SPC file> -pfx <name of PFX file> Where: <Path to the PVK2PFX executable> is usually the bin folder of the Windows SDK installation <name of PVK file> is the name of the PVK file that you purchased from Entrust <password for PVK> is the password that you created to safeguard and use the certificate <name of SPC file> the name of the SPC file <name of PFX file> is an option to allow you to use a different name for the PFX file. If you choose not to use this option an export wizard opens and subsequent options (-po and -f) in the command are ignored. Optionally you can add -po <password> to set a password for the PFX file that is different from the one set for the PVK file. If you choose not to set a new password the original password applies. Optionally you can add -f to force an existing PFX file to be overwritten. Signing a file using SignTool There are several options available when signing files using SignTool. Some of these allow you to automate the process but may not be as secure as the method used in this example. A full explanation of the available options can be found on the Microsoft Web site. This example, uses the PFX file in the command and requires a password. Note: Older versions of SignTool (version 6.0 and lower) require you to specify the timestamp in a separate command, rather than as an option in the signing command. To sign code using SignTool 1 From the command prompt, enter the command: <Path to the SignTool executable>\signtool.exe sign /f <path>\<cert.pfx> /p <password> /t Signing Microsoft Authenticode 5

http://timestamp.entrust.net/tss/authenticodets /v <path>\<file to be signed> Where: <Path to the SignTool executable> is usually the bin folder in the Windows SDK installation. <path>\<cert.pfx> is the location and name of your certificate <password> is the password for your certificate http://timestamp.entrust.net/tss/authenticodets is the URL of Entrust s timestamp authority for Authenticode Note: This URL applies only to Authenticode signing certificates. Other types of Entrust code signing certificates use different URLs. /v specifies verbose execution for information about success, failure, or errors <path>\<file to be signed> is the location and name of the file containing the code that you want to sign Signing kernel mode software using SignTool There are several options available when signing files using SignTool. Before you can sign kernel mode software, you must obtain an Entrust certificate that has been cross-signed with Microsoft. These certificates are available from the Microsoft Web site at: http://msdn.microsoft.com/en-us/windows/hardware/gg487315 The command used to sign kernel mode software is similar to the command outlined in the previous section. However, this command allows you to use the Entrust cross-certificate obtained from Microsoft with your Entrust Authenticode signing certificate to sign Kernel mode software. This example, uses the PFX file in the command and requires a password. Note: Signtool 6.0 or higher is required to use this command. To sign code using SignTool 1 From the command prompt, enter the command: 6 Authenticode Signing 11.0 User Guide Document issue: 1.0

<Path_to_the SignTool_executable>\signtool.exe sign /ac <path>\<name_of_cross_certificate> /f <path>\<cert.pfx> /p <password> /t <Entrust_timestamp_server> /v <path>\<file_to_be_signed> Where: <Path_to_the_SignTool_executable> is usually the bin folder in the Windows SDK installation. <path>\<cross certificate> is the location and name of the cross-certificate <path>\<cert.pfx> is the location and name of the code signing certificate <password> If you opted to create a password, use this option to enter it <Entrust_timestamp_server> is the URL of Entrust s timestamp authority for kernel mode signing (RFC3161 compliant) to use a SHA1 hash in the timestamp enter the value http://timestamp.entrust.net/tss/rfc3161sha1ts to use a SHA2 hash in the timestamp enter the value http://timestamp.entrust.net/tss/rfc3161sha2ts Many other options are available. For example: /sha1 <SHA_VALUE> where <SHA_VALUE> is the SHA1 hash value can be used to identify the certificate by its hash value /d allows you to add a description of the signed content; for example the name of the software XYZ Desktop Client /du allows you to add a URL with additional information about the signed content See the Microsoft Web site for a complete list of options. Signing Microsoft Authenticode 7

The code signing process for Microsoft Authenticode When the code is signed, several pieces of information are added to the file. This information is used when the code is downloaded though your browser to authenticate the author of the code and to check for tampering. The bundle that is used to verify the authenticity of the code is created during two sequences of events. A mathematical representation of the code, called a hash, is created and signed. The hash and signature are timestamped, hashed (with the timestamp) and signed again. The timestamp and second signature are applied by a timestamping authority (TSA). Timestamping Authorities are usually maintained by a third party (such as Entrust) that can insure the validity of the timestamp. The entire sequence takes place as follows: The code is passed through a hashing algorithm creating a hash of the file. The hash is an exact numerical representation of the file. The hash is only reproducible using the unaltered file and the hashing algorithm that was used to create the hash. The hash is bundled with the file. The hash is signed using the signer s private key. Information identifying the creator of the signature is drawn from the signer s certificate and incorporated into the signature. Information about the CA or CAs that signed the signer s certificate is drawn from the signer s certificate and incorporated into the signature. The signer s public key is added to the bundle (it is required to authenticate the code when it is verified). The signature is sent to the timestamping authority (TSA). The TSA adds a timestamp to the to the bundled information and computes a new hash. The TSA signs the new hash with its private key creating a new bundle of information. The timestamped bundle, original bundle that was sent to the TSA and the time stamp are re-bundled with the original code. 8 Authenticode Signing 11.0 User Guide Document issue: 1.0

Figure 1: The code-signing process for Microsoft Authenticode Authenticode signing process Timestamping Authority Private key (PVK file) Hash of code Code Code Code Public key Certificate Signing Microsoft Authenticode 9

Verifying the authenticity of the software When the end user s browser loads the code, it checks the authenticity of the software using the signer s public key, signature and the hash of the file. The timestamp is checked using a similar process. If both the timestamp and the signature are verified successfully, the browser accepts the code as valid. If either the timestamp or signature are not successfully verified, the browser will react by warning the user or rejecting the code, depending on the level of security set in the browser. Verifying the timestamp The following sequence of events is used to verify the timestamp. The timestamp is added to the bundled signature information and the combined signature and timestamp are hashed. The Timestamping Authority s public key is applied to the timestamped signature block revealing the hash calculated by the TSA. The validity of the TSA s public key is verified by checking its expiry date and consulting the revocation lists to be sure that it has not been revoked. The two hashes are compared. If the hashes are equal, the timestamp is considered to be valid. Verifying the signature The signature is verified as follows: The original code is passed through a hashing algorithm creating a hash. The public key of the designer or publisher is extracted from the bundle and applied to the signature information. Applying the public key reveals the hash that was calculated when the file was signed. The expiry date of the public key is checked. The public key is checked against the revocation lists to be sure that it is valid. The two hashes are compared. If equal, the signature is considered to be valid. If the file is considered to be valid it is accepted by the browser. If the file is not considered to be valid the browser takes the security measure appropriate to its current level of security. 10 Authenticode Signing 11.0 User Guide Document issue: 1.0

Figure 2: Verifying the authenticity of the code Code Check Signature ` Check Timestamp Signer s Public key TSA Public key Create hash using signer s public key Hash from signer s public key Nov 6 2009 Hash of signature and timestamp Create hash using TSA public key Revocation list Revocation list Signer s Public key TSA Public key Nov 6 2009 Hash from signer s private key Hash from signer s public key Hash of signature and timestamp Original Hash from TSA s private key Nov 6 2009 Code Signing Microsoft Authenticode 11