<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Best Practices &#8211; HARICA</title>
	<atom:link href="https://www.harica.gr/en/posts/post-tag/best-practices/feed/index.xml" rel="self" type="application/rss+xml" />
	<link>https://www.harica.gr/</link>
	<description>Hellenic Academic and Research Institutions Certification Authority</description>
	<lastBuildDate>Thu, 15 Oct 2026 04:05:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>Best Practices for Code Signing Certificates</title>
		<link>https://www.harica.gr/en/posts/post-5682</link>
		
		<dc:creator><![CDATA[Alkisti Vasilika Patsarasli]]></dc:creator>
		<pubDate>Tue, 01 Mar 2022 09:00:50 +0000</pubDate>
				<category><![CDATA[Code Signing]]></category>
		<category><![CDATA[HARICA]]></category>
		<category><![CDATA[Access Control]]></category>
		<category><![CDATA[Authorization]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Certificate Revocation]]></category>
		<category><![CDATA[Hardware Security (HSM / Tokens)]]></category>
		<category><![CDATA[Key Rotation]]></category>
		<category><![CDATA[Logging & Auditing]]></category>
		<category><![CDATA[Private Key Protection]]></category>
		<category><![CDATA[Release‑Signing]]></category>
		<category><![CDATA[Test‑Signing]]></category>
		<category><![CDATA[Time‑Stamping]]></category>
		<category><![CDATA[Virus Scanning]]></category>
		<guid isPermaLink="false">https://d6e22a41ec31e3639b464.admin.hardypress.com/?p=5682</guid>

					<description><![CDATA[Code Signing Certificates are used to sign applications, drivers, executables and software programs (code executed on Operating Systems and Java), so that relying parties are aware of its software publisher and can verify the integrity of the code. The biggest issue with code signing is the protection of the private key associated with the  [...]]]></description>
										<content:encoded><![CDATA[<div class="fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:1248px;margin-left: calc(-4% / 2 );margin-right: calc(-4% / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-1"><div class="content-info has-text-left margin-left-10">Code Signing Certificates are used to sign applications, drivers, executables and software programs (code executed on Operating Systems and Java), so that relying parties are aware of its software publisher and can verify the integrity of the code.</p>
</div>
<div class="content-info has-text-left margin-left-10">The biggest issue with code signing is the protection of the private key associated with the certificate. For example, if a key is stolen, the certificate could be used to fraudulently sign malicious code and deliver an application that contains a trojan or virus that appears to originate from a legitimate software publisher, jeopardizing the software that is already signed.</p>
</div>
<div class="content-info has-text-left margin-left-10">It is therefore prudent for software publishers to implement policies defining how to protect private keys, who approves code signing operations and how to ensure high quality, virus-free code is signed and released to the relying parties.</p>
</div>
<div class="content-info has-text-left margin-left-10">Software publishers should consider the following code signing best practices when implementing their code signing process and securing the private keys associated with their signing certificates:</p>
</div>
<div class="header-mid-black has-text-left margin-left-10"><b>Minimize access to private keys</b></div>
<ul>
<li class="content-info has-text-left margin-left-10">Allow minimal connections to computers with keys.</li>
<li class="content-info has-text-left margin-left-10">Minimize the number of users who have key access.</li>
<li class="content-info has-text-left margin-left-10">Use physical security controls to reduce access to keys.</li>
</ul>
<div class="header-mid-black has-text-left margin-left-10"><b>Protect private keys with cryptographic hardware products</b></div>
<ul>
<li class="content-info has-text-left margin-left-10">Cryptographic hardware does not allow export of the private key to software where it could be attacked.</li>
<li class="content-info has-text-left margin-left-10">Use a FIPS 140 Level 2-certified product or a Common Criteria EAL 4+</li>
<li class="content-info has-text-left margin-left-10">Use an EV code signing certificate which requires the private key to be generated and stored in hardware.</li>
<li class="content-info has-text-left margin-left-10">Keep the token physically separate from the device that hosts the code signing function until a signing session is begun.</li>
<li class="content-info has-text-left margin-left-10">If private keys will be transported, ensure that passwords are randomly generated with at least 16 characters containing uppercase letters, lowercase letters, numbers, and symbols.</li>
</ul>
<div class="header-mid-black has-text-left margin-left-10"><b>Time-stamp code</b></div>
<ul>
<li class="content-info has-text-left margin-left-10">Time-stamping allows code to be verified after the certificate has expired or been revoked. Time-stamp certificates can be issued for a maximum of 135 months which can support the signed software to be validated for up to 11 years.</li>
</ul>
<div class="header-mid-black has-text-left margin-left-10"><b>Understand the difference between test-signing and release-signing</b></div>
<ul>
<li class="content-info has-text-left margin-left-10">Test-signing private keys and certificates requires less security access controls than production code signing private keys and certificates.</li>
<li class="content-info has-text-left margin-left-10">Test-signing certificates can be self-signed or come from an internal test CA.</li>
<li class="content-info has-text-left margin-left-10">Test certificates must chain to a completely different root certificate than the root certificate that is used to sign publicly released products; this precaution helps ensure that test certificates are trusted only within the intended test environment.</li>
<li class="content-info has-text-left margin-left-10">Establish a separate test code signing infrastructure to test-sign pre-release builds of software.</li>
</ul>
<div class="header-mid-black has-text-left margin-left-10"><b>Authenticate code to be signed</b></div>
<ul>
<li class="content-info has-text-left margin-left-10">Any code that is submitted for signing should be strongly authenticated before it is signed and released.</li>
<li class="content-info has-text-left margin-left-10">Implement a code signing submission and approval process to prevent the signing of unapproved or malicious code.</li>
<li class="content-info has-text-left margin-left-10">Log all code signing activities for auditing and/or incident-response purposes.</li>
</ul>
<div class="header-mid-black has-text-left margin-left-10"><b>Virus scan code before signing</b></div>
<ul>
<li class="content-info has-text-left margin-left-10">Code signing does not confirm the safety or quality of the code; it confirms the publisher and whether or not the code has been changed.</li>
<li class="content-info has-text-left margin-left-10">Take care when incorporating code from other sources.</li>
<li class="content-info has-text-left margin-left-10">Implement virus-scanning to help improve the quality of the released code.</li>
</ul>
<div class="header-mid-black has-text-left margin-left-10"><b>Do not over-use any one key (distribute risk with multiple certificates)</b></div>
<ul>
<li class="content-info has-text-left margin-left-10">If code is found with a security flaw, then publishers may want to prompt a User Account Control dialogue box to appear when the code is installed in the future; this can be done by revoking the code signing certificate so a revoked prompt will occur.​</li>
<li class="content-info has-text-left margin-left-10">If the code with the security flaw was issued before more good code was issued, then revoking the certificate will impact the good code as well.</li>
<li class="content-info has-text-left margin-left-10">Changing keys and certificates often will help to avoid this conflict.</li>
</ul>
<div class="header-mid-black has-text-left margin-left-10"><b>Revoke stolen keys</b></div>
<ul>
<li class="content-info has-text-left margin-left-10">Report key theft or signed malware to your issuing Certification Authority. Stolen keys or signed malicious code will require the code signing certificate to be revoked.</li>
<li class="content-info has-text-left margin-left-10">If signed code is time-stamped, then the revocation date can be selected before the time of theft. This means that any code signed before the revocation date will remain valid.</li>
</ul>
<div class="is-flex">
<div class="has-text-left">For more information, <a href="https://pkic.org/" target="_blank" rel="noopener"> PKI Consortium</a> provides a <a href="https://pkic.org/uploads/2016/12/CASC-Code-Signing.pdf" target="_blank" rel="noopener">best practices whitepaper</a> on Code Signing</div>
</div>
</div></div></div></div></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
