Reading Time : 3 minutes

Code signing is a crucial mechanism to establish authenticity and trust, ensuring that software is not compromised during distribution. However, improper code signing practices can introduce significant risks. In this blog, we explore the importance of code signing and delve into the potential consequences of a compromised code signing process.

The Devastating Impact of a Code Signing Failure

Below are a few notable attacks that occurred as a result of code signing compromise or failure:

  1. NotPetya Attack

    In June 2017, the global shipping conglomerate A.P. Moller-Maersk fell victim to the NotPetya malware attack. The attack originated from a small Ukrainian software company that had fallen victim to state-sponsored hackers. Exploiting vulnerabilities in the company’s security infrastructure, the hackers gained access to the code signing keys, allowing them to inject malware into a legitimate software update. This malicious update was subsequently distributed to customers, including A.P. Moller-Maersk, resulting in widespread infection and significant disruptions.

  2. ShadowPad Supply Chain Attack

    In 2017, a sophisticated supply chain attack targeted the software update mechanism of the popular Ukrainian accounting software, MeDoc. The attackers compromised the code signing process, allowing them to distribute a backdoored software update to MeDoc users. This malicious update ultimately led to the spread of the ShadowPad malware, compromising numerous organizations worldwide.

  3. ASUS Live Update Hack

    In 2019, hackers infiltrated ASUS’s web update server and injected malware into legitimate ASUS driver updates. The compromised code signing keys allowed the malicious updates to appear authentic, resulting in over one million infected ASUS computers. This attack highlighted the vulnerability of software supply chains and the importance of robust code-signing practices.

  4. CCleaner Backdoor

    In 2017, the popular system optimization tool CCleaner was compromised when hackers injected malware into one of their official software updates. The attackers signed the malicious update with a valid code signing certificate, tricking users into believing it was a legitimate update. The incident affected millions of users and underscored the significance of code signing integrity.

These attacks serve as a stark reminder of the critical role code signing plays in ensuring the trustworthiness and authenticity of the software.

Looking for Code Signing Product

Assessing Software Trust and Vetting Processes

In light of such incidents, it is crucial to question the level of trust we place in the software we install and utilize. Businesses rely on numerous external software packages to support their daily operations. However, the lack of stringent vetting processes for these software packages can introduce significant risks. To enhance software security, consider the following measures:

  1. Vetting and Whitelisting

    Implement a robust process to vet and approve software before allowing users to install it. Consider establishing a whitelist of trusted software and restrict installations to only those approved applications.

  2. Internal Software Production

    Recognize the importance of securing your company’s software. Treat your private code signing keys as the keys to your business’s kingdom. Implement strict access controls, encryption, and monitoring mechanisms to safeguard these keys from theft or misuse. Consider using Hardware Security Modules (HSMs) to store and protect your code signing keys, as they provide high security and tamper resistance.

  3. Supply Chain Integrity

    Ensure that the software you receive from external sources undergoes thorough security checks. Implement mechanisms to verify the integrity and authenticity of software updates before installation.

Understanding the Code Signing Problem

The efficacy of code signing in protecting software supply chains has been proven over the past three decades. However, certain challenges hinder its effectiveness. Organizations often struggle to effectively manage private code signing keys, leading to vulnerabilities and potential compromises. Let’s explore some common issues:

  1. Lack of Centralized Key Management

    Many global organizations have geographically dispersed teams of software developers. These teams require access to private code signing keys to sign their software. However, when keys are stored on developers’ laptops, build servers, or web update servers, they become susceptible to theft or misuse.

  2. Failure to Recognize Key Importance

    Private code signing keys should be treated as the master keys to your business. Unfortunately, organizations often overlook their criticality and fail to implement adequate security measures to protect them.

  3. Insufficient Security Practices

    Inadequate security practices, such as weak password management, lack of encryption, and inadequate access controls, further contribute to code signing vulnerabilities.

Looking for Code Signing Product

Best Practices for Robust Code Signing

To enhance the security and integrity of your software infrastructure, it is imperative to implement best practices for code signing. Consider the following recommendations:

  1. Implement Hardware Security Modules (HSMs)

    HSMs provide a dedicated and secure environment for key storage and cryptographic operations. By leveraging HSMs, organizations can protect their private keys from physical and logical attacks, ensuring the integrity of the code-signing process.

  2. Regularly Rotate Keys

    Periodically rotate code signing keys to mitigate the impact of potential key compromises. By regularly updating keys, organizations minimize the risk of unauthorized access and maintain the trustworthiness of their signed software.

  3. Employ Code Signing Policies and Procedures

    Develop comprehensive code-signing policies and procedures that define roles, responsibilities, and workflows for the code-signing process. Ensure employees receive proper training and adhere to these policies to maintain a secure code-signing environment.

  4. Continuous Monitoring and Auditing

    Implement a robust monitoring and auditing mechanism to detect and investigate any suspicious activities related to code signing. Regularly review logs and perform audits to identify potential security gaps and take corrective actions promptly.

  5. Scan for viruses

    While code signing provides authentication, it does not guarantee the security of the code itself. Therefore, conducting thorough virus and malware scans on the code before publication and signing with digital certificates is highly recommended. Performing these scans enhances the overall quality of the code and helps identify and mitigate potential security risks.

Want to know how we can assist you?

Encryption Consulting’s CodeSign Secure provides organizations with a comprehensive code-signing solution tailored to their unique requirements. By utilizing this solution, organizations can establish a strong code-signing policy that effectively mitigates security risks and ensures the authenticity of their software. Our product streamlines the code-signing process and offers a range of features designed to enhance security.

One key feature of CodeSign Secure is secure key management. It enables organizations to securely store their private keys of the code-signing certificate by integrating with industry-leading Hardware Security Modules (HSMs) that are FIPS certified. This integration eliminates the potential risks associated with stolen, corrupted, or misused keys, as the private keys never leave the HSM during the code signing operation.

Conclusion

Code signing is a critical component of ensuring software authenticity and trust. However, the potential consequences of a compromised code signing process are severe, as demonstrated by notable attacks like the NotPetya malware attack on A.P. Moller-Maersk and other incidents. To protect your software infrastructure, it is essential to implement robust code-signing practices and prioritize the security of private code-signing keys. Organizations can mitigate the risks associated with code signing failures by adhering to best practices such as HSM usage, regular key rotation, stringent code signing policies, continuous monitoring, and virus scanning.

Free Downloads

Datasheet of Code Signing Solution

Code signing is a process to confirm the authenticity and originality of digital information such as a piece of software code.

Download
secure and flexible code signing solution

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

Reading Time : 10 minutes

Table of Contents

  1. Introduction
  2. Why Should Microsoft CA Be Your Go-To Private PKI?
    1. Technical Benefits
      1. Enhanced Security and Data Control
      2. Privacy and Data Confidentiality
      3. Key Security
      4. Control Over Certificate Lifecycle
      5. Instant Revocation
      6. Strong Crypto-Agility
      7. Network Isolation
      8. Performance and Latency
      9. Availability and Reliability
      10. Protection Against Downtime
      11. Reducing Dependency on Internet Connectivity
      12. Flexibility for Internal Certificate Policies
      13. Legacy System Compatibility
      14. Advanced Configurations and Enhancements
      15. Enhanced Incident Response and Forensics
      16. Authentication
    2. Business Benefits
      1. Compliance and Regulatory Requirements
      2. Independence from Cloud Service Providers
      3. Independence from Vendor’s Roadmap
      4. Vendor Lock-in
      5. Enhanced Trust
      6. Long-term Viability
      7. Efficient Scalability and Resource Management
      8. Cost Predictability
      9. Enhanced Disaster Recovery Capabilities
      10. Customization and Integration
  3. How can we assist you in implementing and managing PKI?
  4. Conclusion

1. Introduction

In the modern digital landscape, organizations place utmost importance on secure communication and data protection. Public Key Infrastructure (PKI) plays a vital role in ensuring the integrity and confidentiality of sensitive information. While cloud-based PKI solutions have gained popularity, Microsoft Certificate Authority (CA) offers distinct advantages for on-premises PKI deployments. This article will dive deep into how Microsoft CA outshines cloud PKI options, providing exceptional benefits for organizations seeking robust and reliable PKI solutions.

2. Why Should Microsoft CA Be Your Go-To Private PKI?

When establishing a robust and secure Private PKI, Microsoft CA stands out as a top choice. With its comprehensive features and benefits, Microsoft CA empowers organizations to take full control of their cryptographic keys and certificates while ensuring enhanced security, compliance, and performance. Let’s explore its benefits in detail:

2.1 Technical Benefits

2.1.1 Enhanced Security and Data Control

  • Enhanced security features for full control over cryptographic keys and certificates.
  • Implementation of physical security measures to restrict access to PKI and secure key storage.
  • Mitigation of unauthorized access and data breaches through enhanced security.

2.1.2 Privacy and Data Confidentiality

  • On-premises PKI with Microsoft CA ensures privacy and data confidentiality.
  • Cryptographic operations are performed within the organization’s controlled network environment.
  • Reduced risk of unauthorized access by keeping keys and certificates within physical boundaries.
  • Address data sovereignty and residency concerns by storing keys and certificates in designated geographic areas.

2.1.3 Key Security

  • On-premises PKI with Microsoft CA keeps private keys on-site, often in Hardware Security Modules (HSMs) that provide physical and logical protection against unauthorized.
  • Control over the storage and management of cryptographic keys, reducing the risk of exposure associated with off-site key storage in cloud-based PKI providers.
  • Minimize exposure to cybercriminals who often target cloud services.
  • Microsoft CA allows you to manage and enforce stringent security controls for enhanced protection.

2.1.4 Control Over Certificate Lifecycle

  • Complete control over certificate lifecycle, from issuance to revocation and renewal
  • Enforce compliance with industry standards and internal security requirements
  • Efficient management, auditing, and reporting of certificates
  • Mitigate the risk of unauthorized or expired certificates compromising security
  • Ensure the integrity and trustworthiness of digital communications and transactions

2.1.5 Instant Revocation

  • Instantly revoke certificates in case of key compromise
  • Avoid delays in revocation compared to cloud PKI
  • Quick response in security-critical scenarios
  • Mitigate the risk of major breaches by immediate revocation
  • Maintain control over the revocation process for enhanced security

2.1.6 Strong Crypto-Agility

  • Ability to leverage multiple cryptographic algorithms to enhance cryptographic agility, enabling proactive response to evolving cybersecurity threats.
  • Rapid adoption of new cryptographic algorithms in the event of vulnerabilities, eliminating the necessity for extensive redesign of the entire PKI system.
  • Flexibility to switch algorithms without compromising security

2.1.7 Network Isolation

  • Physically separate on-premises PKI infrastructure from external networks
  • Reduce exposure to external threats and vulnerabilities associated with cloud-based solutions
  • Minimize the risk of attacks targeting network connections
  • Mitigate unauthorized access points by limiting network connectivity
  • Enhance security by isolating PKI infrastructure from external environments

2.1.8 Performance and Latency

  • On-premises PKI provided by Microsoft CA allows for local cryptographic operations within the organization’s network, resulting in reduced network latency and faster response times.
  • Organizations can allocate dedicated on-premises resources like HSMs for optimal performance and efficient cryptographic processing.
  • Improved user experience through local cryptographic operations, minimizing latency in communication with external cloud-based PKI services.
  • Enhanced performance and reduced latency for applications relying on secure connections and frequent cryptographic operations.
PKI as a service

2.1.9 Availability and Reliability

  • Full control over the availability and reliability of cryptographic services
  • Implementation of redundancy measures for uninterrupted operation
  • Backup systems and failover mechanisms for continuous service during network outages
  • Mitigation of disruptions through proactive availability management

2.1.10 Protection Against Downtime

  • Independence from cloud service provider’s downtime
  • Assurance of uninterrupted PKI operations
  • Control over uptime for critical operations
  • Mitigation of service interruptions
  • Increased reliability and availability of PKI services

2.1.11 Reducing Dependency on Internet Connectivity

  • Reduced dependency on internet connectivity for critical cryptographic operations
  • Local execution of key tasks, such as certificate issuance, validation, and revocation
  • Ensured availability of PKI services during intermittent or disrupted internet connectivity
  • Independence from unreliable or unstable internet connections
  • Enhanced resilience of PKI operations in challenging network environments

2.1.12 Flexibility for Internal Certificate Policies

  • Customizable internal certificate policies aligned with organizational security and operational requirements
  • Ability to define and enforce parameters such as certificate lifetimes and key lengths
  • Compliance with organizational needs and industry regulations
  • Enhanced control over certificate usage and encryption algorithms

2.1.13 Legacy System Compatibility

  • Support for legacy systems and applications with specific certificate formats or protocols
  • Flexibility to accommodate existing infrastructure without major changes or external dependencies
  • Seamless integration with legacy systems for uninterrupted operation
  • Continued support for critical systems and applications

2.1.14 Advanced Configurations and Enhancements

  • Advanced configuration options and enhancements for increased customization
  • Integration with third-party add-ons to enhance functionality
  • Implementation of additional security measures like OCSP stapling
  • Superior level of customization compared to cloud-based services

2.1.15 Enhanced Incident Response and Forensics

  • Direct access to PKI logs, audit trails, and cryptographic evidence for incident response and forensic investigations
  • Timely detection and mitigation of security breaches and unauthorized activities
  • Effective root cause analysis to identify vulnerabilities and improve security measures
  • Preserving the integrity of the PKI infrastructure through comprehensive logging and evidence collection

2.1.16 Authentication

  • Enables the provisioning of user certificates across multiple departments by seamlessly syncing with Active Directory, allowing organizations to easily divide forests and manage certificates.
  • Ensure efficient integration with Windows Hello for Business, enabling secure certificate-based authentication and password less access for users within the organization’s network.

2.2 Business Benefits

2.2.1 Compliance and Regulatory Requirements

  • Enables compliance with industry-specific regulations like HIPAA, PCI DSS, and GDPR.
  • Strict security policies and procedures tailored to compliance requirements.
  • Control over PKI lifecycle for audit compliance and inquiries.
  • Alignment with local jurisdiction regulations and data protection laws.
  • Ensures security practices and data processing activities meet local jurisdiction regulations

2.2.2 Independence from Cloud Service Providers

  • Reduces dependence on cloud service providers.
  • Maintains control over PKI infrastructure
  • Autonomy in managing and maintaining PKI systems.
  • Freedom from external policies and service disruptions.
  • Direct control over software updates, patches, and upgrades.

2.2.3 Independence from Vendor’s Roadmap

  • Control upgrade and evolution cycle.
  • Avoid forced changes from cloud-based services.
  • Align PKI strategy with organizational readiness.
  • Maintain control over the pace of adoption and implementation.

2.2.4 Vendor Lock-in

  • Avoid the risks of vendor lock-in in cloud-based solutions.
  • Mitigate the impact of pricing model changes or provider disruptions on PKI operations.
  • Eliminate the potential for unexpected costs resulting from cloud service provider changes or failures.
  • Maintain independence and control over the PKI infrastructure by keeping it in-house.

2.2.5 Enhanced Trust

  • Ensure authenticity and integrity of digital certificates issued by having complete control over the PKI infrastructure
  • Foster confidence in the trustworthiness of the PKI ecosystem.
  • Increase trust among users, customers, partners, and other entities relying on the organization’s digital certificates.

2.2.6 Long-Term Viability

  • Proven track record of Microsoft CA with widespread adoption.
  • Reliable and long-term viability for peace of mind.
  • Contrast with cloud-based solutions that may lack similar longevity.
  • Confidence in the stability and reliability of Microsoft CA.

2.2.7 Efficient Scalability and Resource Management

  • Greater control and flexibility in scaling on-premises PKI infrastructure with Microsoft CA.
  • Allocation of resources, such as HSMs and certificate authority servers, based on capacity needs.
  • Optimal resource utilization and cost management.
  • Tailored scalability to accommodate organizational growth and evolving requirements.
PKI as a service

2.2.8 Cost Predictability

  • Increased cost predictability with on-premises PKI from Microsoft CA.
  • Visibility and control over infrastructure costs.
  • Elimination of subscription-based pricing models and variable costs based on usage.
  • Long-term cost predictability for budgeting and planning.

2.2.9 Enhanced Disaster Recovery Capabilities

  • Robust disaster recovery strategies enabled by on-premises PKI from Microsoft CA.
  • Complete control over the PKI infrastructure for implementing redundancy and backup mechanisms.
  • Off-site replication of critical components for enhanced business continuity.
  • Mitigation of potential disasters or system failures through effective disaster recovery planning.

2.2.10 Customization and Integration

  • Microsoft CA’s on-premises PKI solutions allow organizations greater flexibility in customizing their PKI infrastructure to meet specific business requirements.
  • Seamless integration with existing systems and workflows, aligning with identity and access management and certificate management tools, is achieved.
  • Streamlined certificate lifecycle management and simplified user authentication and authorization through integration.
  • Centralized monitoring and reporting for enhanced operational efficiency and security

3. How can we assist you in implementing and managing PKI?

We assist organizations with deploying on-premises PKI solutions by providing various services.  Our experts design and build the PKI based on your needs, utilizing Windows Server 2019 R2, Microsoft Active Directory Certificate Services (MS ADCS), and HSMs. We start by gathering requirements through workshops and documenting the proposed solution and scope of work. We then help deploy the solution, conduct thorough testing, and provide training for your PKI team. We aim to ensure a seamless implementation and empower your staff to manage the on-premises PKI solution effectively. We also develop PKI policies, rules, and operational processes in alignment with your business needs. You can trust us to deliver a resilient on-premises PKI solution for enhanced security and data protection.

4. Conclusion

Throughout the blog, we explored the multitude of benefits Microsoft CA brings, outshining cloud-based PKI options. Microsoft CA stands out as a superior choice for on-premises PKI deployments. It offers a compelling solution for organizations seeking comprehensive control, enhanced security, and reliable performance. From enhanced security and compliance to network isolation, performance, and customization, Microsoft CA empowers organizations to take charge of their cryptographic infrastructure. Additionally, the advantages of data sovereignty, long-term operational control, and cost predictability further solidify Microsoft CA as the go-to choice for private PKI deployments. By leveraging Microsoft CA’s strengths, organizations can establish a resilient PKI ecosystem, enhance trust, and ensure their sensitive information’s confidentiality, integrity, and availability.

Free Downloads

Datasheet of Public Key Infrastructure

We have years of experience in consulting, designing, implementing & migrating PKI solutions for enterprises across the country.

Download
Implementing & migrating PKI solutions for enterprises

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

Reading Time : 5 minutes

Organizations rely on Transport Layer Security (TLS) certificates to secure their online communications, protect sensitive information, and establish trust with their users. Recently, Google proposed a significant change (Moving Forward, Together) at the Certificate Authority/Browser (CA/B) Forum that focuses on automated certificate lifecycle management by reducing the validity of TLS certificates from 398 days to 90 days. In this article, we explore the implications of this proposal and highlight the critical role of automated certificate lifecycle management in maintaining a secure and efficient online environment.

Understanding Google’s 90-Day Proposal for TLS Certificates

Google’s proposal to reduce the validity of TLS certificates to 90 days aims to enhance security and promote quicker adoption of security updates. Traditionally, TLS certificates have had a validity period of one or two years. However, this extended validity exposes organizations to risks such as undetected compromises and outdated encryption algorithms. By shortening the certificate validity to 90 days, Google aims to encourage more frequent certificate renewals, reducing the window of vulnerability and ensuring organizations stay updated with the latest security measures.

How Google’s Proposed Change Could Impact Your Organization?

Google’s proposal to reduce the validity of TLS certificates to 90 days has significant implications for organizations that rely on manual certificate management processes. Manual certificate management already poses various challenges, and this proposed change further amplifies the difficulties organizations face.

With the reduced validity period, organizations will be required to renew their certificates more frequently, potentially exacerbating the complexities and risks associated with manual management. The shorter validity window burdens IT teams, who must diligently track expiration dates, initiate renewal processes, and ensure the timely deployment of updated certificates across various domains, subdomains, and servers.

Manual certificate management often involves laborious tasks such as tracking expiration dates using spreadsheets, manually installing and configuring certificates, and keeping up with compliance requirements. These manual processes are error-prone and time-consuming and can lead to issues such as expired certificates, misconfigurations, and compliance violations.

Moreover, the proposed change necessitates a heightened focus on security updates and patches. Organizations must diligently stay informed about the latest security vulnerabilities and encryption algorithms to ensure their certificates align with the evolving best practices. Failure to keep up with these updates can leave organizations vulnerable to potential compromises and exploitation of outdated encryption standards.

In light of Google’s proposal, organizations relying on manual certificate management processes will face even greater pressure to adapt their workflows and adopt automated certificate lifecycle management solutions.

Secure data with encryption assessment

Benefits of Automating Certificate Lifecycle Management

Automated certificate lifecycle management brings numerous advantages to organizations, enabling them to overcome the challenges associated with manual processes. By implementing an automated approach, organizations can enjoy the following benefits:

  1. Enhanced Security

    It ensures timely certificate renewals and updates, reducing the risk of expired or compromised certificates. It enables organizations to adopt the latest security protocols, algorithms, and cryptographic standards, enhancing the overall security posture.

  2. Time and Cost Savings

    Automation streamlines the certificate management workflow, eliminating the need for manual tracking, renewal, and installation processes. This significantly reduces the time and resources required to manage certificates, allowing IT teams to focus on more strategic initiatives.

  3. Centralized Management

    With an automated solution, organizations can centrally manage all their certificates from a single platform. This provides a holistic view of the certificate landscape, simplifies the management process, and ensures consistent policy enforcement across the entire infrastructure.

  4. Proactive Monitoring and Alerts

    Automated certificate lifecycle management solutions often include monitoring capabilities that proactively identify issues such as impending certificate expirations, weak encryption algorithms, or misconfigurations. Real-time alerts enable IT teams to address potential risks promptly and prevent service disruptions.

  5. Compliance and Reporting

    Automated solutions facilitate compliance with industry regulations and standards by providing comprehensive reporting and audit trails. This simplifies the auditing process and helps organizations demonstrate adherence to best practices and regulatory requirements.

By transitioning from manual certificate management to automated solutions, organizations can ensure timely certificate renewals, minimize the risk of expired certificates, and streamline the entire certificate lifecycle. Automation allows IT teams to focus on strategic initiatives rather than manual tracking and administration, ultimately improving security, compliance, and the overall efficiency of certificate management practices.

Want to know how we can assist you?

Encryption Consulting’s CertSecure Manager is an advanced solution designed to address the challenges of manual certificate management and assist organizations in meeting these upcoming requirements. With its comprehensive features, including lifecycle management, certificate discovery, inventory management, issuance, deployment, renewal, revocation, and reporting capabilities, CertSecure Manager streamlines the entire certificate management process through end-to-end automation.

Additionally, CertSecure Manager’s built-in alerts provide timely notifications for critical events such as upcoming certificate expirations, allowing organizations to take proactive measures and prevent service disruptions. With a focus on security and compliance, CertSecure Manager helps organizations meet the highest industry standards, such as PCI-DSS, HIPAA, and GDPR, ensuring a secure and compliant certificate infrastructure. By leveraging CertSecure Manager, organizations can effectively manage their certificates, enhance security, save time and resources, and maintain a strong online presence while aligning with Google’s proposed TLS certificate validity reduction.

Conclusion

Given Google’s proposal to reduce the validity of TLS certificates to 90 days, organizations need to adjust their certificate management practices to maintain a secure and efficient online environment. The implications of this change are significant, particularly for organizations relying on manual certificate management processes. The challenges of manual management, including the increased frequency of certificate renewals, tracking expiration dates, and ensuring timely updates across domains and servers, become even more pronounced with the reduced validity period. Automated certificate lifecycle management solutions like CertSecure Manager provide a compelling answer to these challenges.

Free Downloads

Datasheet of Encryption Consulting Services

Encryption Consulting is a customer focused cybersecurity firm that provides a multitude of services in all aspects of encryption for our clients.

Download
Encryption Services

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

Reading Time : 3 minutes

Security is critical in today’s digital world, especially when it comes to the protection of codesigning certificate private keys. Over the years, developers have used code-signing certificates to establish their software applications’ authenticity, integrity, and trustworthiness. However, the private keys associated with the code signing certificate were not adequately protected due to a lack of stringent policies and guidelines.

In this blog, we will delve deep into the recent updates to Baseline Requirements for Code Signing Certificates by the Certificate Authority/Browser (CA/B) Forum, which have to be implemented from 1st June 2023.

What are CA/B Forum updates?

The CA/Browser Forum, a consortium of certificate authorities (CAs) and browser vendors, periodically revises its guidelines and requirements to enhance the security of digital certificates. In a recent update, the forum introduced new recommendations specifically aimed at code-signing certificate private keys. These updates aim to address emerging security threats and strengthen the overall security posture of the code-signing ecosystem.

Starting June 1, 2023, it is mandatory for subscriber private keys associated with code signing certificates to be protected using a Hardware Crypto Module that complies with either FIPS 140-2 Level 2 or Common Criteria EAL 4+ requirements. Subscribers are required to select one of the approved approaches for generating and securing their code signing certificate private keys:

  1. Option 1

    Use a Hardware Crypto Module operated by them that adheres to the prescribed standards.

  2. Option 2

    Employ a cloud-based key generation and protection solution that satisfies the following criteria:

    • Keeps private keys within the secure boundaries of the cloud platform’s hardware crypto module, meeting the specified requirements.
    • Logs all access, operations, and configuration changes related to the resources securing the private key.
  3. Option 3

    Utilize a Signing Service that meets the established baseline requirements.

In addition, CAs shall verify that the subscriber’s private key is generated, stored, and used in a suitable hardware crypto module using one of the following methods:

  1. The CA provides a hardware crypto module with pre-generated key pairs.
  2. The subscriber uses key attestation to verify the private key’s secure generation in a hardware crypto module.
  3. The subscriber employs a prescribed crypto library and suitable hardware crypto module for key pair generation and storage.
  4. The subscriber presents an IT audit report confirming the exclusive use of a suitable hardware crypto module for key pair generation of code signing certificates.
  5. The subscriber provides a report from their cloud-based key protection solution, demonstrating the secure configuration of resources protecting the private key.
  6. The CA relies on a report, signed by an approved auditor, confirming key pair creation in a suitable hardware crypto module, including cloud-based solutions.
  7. The subscriber provides an agreement agreeing to use a Signing Service that meets the requirements.

How can you stay compliant?

To ensure compliance with these updates and enhance the security of their digital certificates, organizations should take the following steps:

  • Review the Requirements

    Thoroughly study the updated recommendations the CA/Browser Forum provided to understand the specific requirements and changes related to code signing certificate private keys.

  • Assess Existing Infrastructure

    Organizations need to review their current infrastructure and identify their methods to generate and protect code signing certificate private keys. This assessment will help identify gaps or areas that must be addressed to comply with the new guidelines.

  • Select a Suitable Approach

    Organizations must choose one of the approved approaches stated in the blog for generating and securing their code signing certificate private keys.

Want to know how can we assist you?

Encryption Consulting’s CodeSign Secure provides organizations with a comprehensive code-signing solution tailored to their unique requirements. By utilizing this solution, organizations can establish a strong code-signing policy that effectively mitigates security risks and ensures the authenticity of their software. Our product streamlines the code-signing process and offers a range of features designed to enhance security.

One key feature of CodeSign Secure is secure key management. It enables organizations to securely store their private keys of the code-signing certificate by integrating with industry-leading Hardware Security Modules (HSMs) that are FIPS certified. This integration eliminates the potential risks associated with stolen, corrupted, or misused keys, as the private keys never leave the HSM during the code signing operation.

Conclusion

In conclusion, the recent updates to the Baseline Requirements for Code Signing Certificates by the CA/Browser Forum emphasize the criticality of protecting code signing certificate private keys. Organizations must adapt to these updates by implementing robust measures, such as using Hardware Crypto Modules that do not only comply with but exceed the requirements of FIPS 140-2 Level 2 or Common Criteria EAL 4+ standards. Organizations can bolster trust, integrity, and authenticity in their software applications by prioritizing the security of code signing certificate private keys.

Free Downloads

Datasheet of Code Signing Solution

Code signing is a process to confirm the authenticity and originality of digital information such as a piece of software code.

Download
secure and flexible code signing solution

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

Reading Time : 3 minutes

As technology advances and the world becomes more reliant on software, cyber threats continue to evolve, posing a significant risk to organizations. Code-signing policies have become a critical aspect of ensuring the safety and integrity of software. These policies ensure that only authorized code is executed on systems, preventing malware from being installed. Despite its importance, many organizations still fail to enforce these policies, leaving their systems vulnerable to attacks.

Lack of Understanding

One of the main reasons why code signing policies are being disregarded or not enforced is due to a lack of understanding. Many organizations may not fully comprehend the risks associated with unsigned code or may not understand how to implement a code-signing policy effectively. Sometimes, the IT team may not have the necessary skills and knowledge to manage code-signing policies. As a result, the organization may not prioritize code signing policies and may not be given the necessary attention.

Cost

Another reason why organizations may be reluctant to enforce code-signing policies is the cost associated with implementing them. Code signing certificates can be expensive, and organizations may not want to invest in them, especially if they do not fully understand their benefits. Additionally, implementing code signing policies may require changes to existing infrastructure, which can be time-consuming and costly. This may result in organizations deciding not to enforce code signing policies, leaving them vulnerable to cyberattacks.

Lack of Accountability

In some organizations, there may be a lack of accountability when it comes to enforcing code-signing policies. This may occur if it is unclear who is in charge of overseeing the code signing guidelines.  If there is no one person or department responsible for implementing and enforcing code signing policies, it can be challenging to ensure that they are followed consistently. This lack of accountability can lead to policies being disregarded or not implemented.

Legacy Applications

Legacy applications can also be a hindrance to enforcing code signing policies. Many older applications were not designed with code signing in mind and may not be compatible with modern code-signing certificates. In some cases, code signing may not be possible without significant modifications to the application, which may not be feasible or cost-effective. This can create a situation where code-signing policies cannot be enforced effectively, leaving the organization vulnerable to cyberattacks.

Lack of Awareness

Another reason why code signing policies may be ignored or not enforced is due to a lack of awareness. Some organizations may be unaware of the advantages of code-signing policies or may not completely comprehend how they work. This can lead to a situation where code signing policies are not considered a priority and may not be enforced. Furthermore, employees may be unaware of the significance of code signing policies, which can lead to unintentional violations.

Resistance to Change

Finally, some organizations may resist implementing code-signing policies due to resistance to change. Change may be challenging, particularly when introducing new security measures. Employees may be reluctant to workflow changes or unwilling to learn new methods. This can make it difficult to implement and enforce code-signing policies effectively.

Conclusion

In conclusion, code-signing policies are essential to modern cybersecurity, and their implementation and enforcement are critical for protecting software applications against malicious attacks. Ignoring or neglecting these policies can result in severe consequences for organizations, including data breaches, financial loss, and damage to reputation. Organizations can ensure their systems and data remain secure by addressing the common barriers to code signing policy implementation, such as a lack of understanding, cost, and resistance to change.

Free Downloads

Datasheet of Code Signing Solution

Code signing is a process to confirm the authenticity and originality of digital information such as a piece of software code.

Download
secure and flexible code signing solution

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

Reading Time : 5 minutes

In today’s digital age, where almost everything is interconnected, cybersecurity has become more important than ever before. One of the most critical aspects of software security is code signing. It ensures that the software being installed on a system is genuine and has not been tampered with. However, as the use of code signing has increased, so have the risks associated with it. Hackers are getting better at stealing code-signing machine identities, which poses a significant threat to the security of software systems.

What is Code Signing, and How Does It Work?

Code signing is a process that involves digitally signing software with a certificate to prove its authenticity. A code signing certificate is essentially a digital ID that is issued by a trusted third party, such as a certificate authority (CA). The certificate includes information about the software vendor, the software’s hash value, and the digital signature. When the software is installed, the operating system checks the signature against the certificate to ensure that the software is genuine and has not been tampered with.

Code signing provides several benefits, such as ensuring the integrity of the software, protecting against malware, and establishing trust between the software vendor and the end user.

The Risks Associated with Code Signing:

One of the most significant risks associated with code signing is the theft of code-signing machine identities. If a hacker gains access to the code signing keys, they can steal and use them to insert malware. This can allow the malware to bypass antivirus software and other security measures, making it much harder to detect and remove.

Another risk associated with code signing is the misuse of certificates by insiders. Insiders, such as developers or system administrators, may have access to code-signing certificates and can misuse them to sign malicious software. This can happen accidentally or deliberately, which can be challenging to detect and prevent.

Finally, code signing can also be vulnerable to phishing attacks. Hackers can send phishing emails to developers or system administrators, tricking them into revealing their credentials or downloading malware. This allows the attacker to sign malicious software with a legitimate code signing certificate, making it much harder to detect and remove.

The Consequences of Code Signing Identity Theft:

The consequences of code-signing identity theft can be severe. This can result in a range of negative consequences, such as:

  • Loss of trust

    If software vendors’ code signing certificates are compromised, it can lead to a loss of trust between the vendor and the end-user. This can result in a loss of business and a damaged reputation.

  • Financial loss

    Malware signed with a legitimate code signing certificate can result in significant financial losses for both the software vendor and the end user.

  • Legal issues

    If a software vendor’s code signing certificate is stolen and used to sign malware, the vendor may face legal issues, such as lawsuits or regulatory fines.

 Preventing Code Signing Identity Theft:

  • Using code signing best practices

    Software vendors should follow code signing best practices, such as using the latest certificate technologies, validating certificate chains, and verifying the certificate’s revocation status. This can help prevent code signing identity theft and ensure the integrity of the software.

  • Monitoring for suspicious activity

    Software vendors should monitor code signing machines for suspicious activity, such as unauthorized access attempts or unusual signing patterns. This can help detect code signing identity theft early and prevent further damage.

  • Implementing strong security policies

    Software vendors should implement strong security policies that cover all aspects of code signing, such as password management, access control, and incident response. This can help prevent code signing identity theft and minimize the impact of any security incidents.

Conclusion

Code signing is a critical component of software security that ensures software integrity and establishes trust between the vendor and the end user. Preventing code-signing identity theft requires a multi-layered approach, including securing code-signing machines, limiting access to code-signing certificates, storing the keys in a safe environment, educating employees, following code-signing best practices, monitoring for suspicious activity, and implementing strong security policies. By taking these steps, software vendors can help prevent code signing identity theft and ensure the integrity of their software systems.

Free Downloads

Datasheet of Code Signing Solution

Code signing is a process to confirm the authenticity and originality of digital information such as a piece of software code.

Download
secure and flexible code signing solution

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

Reading time: 3 minutes

In this blog, we’ll discuss the issue faced while configuring the web interface on CipherTrust Manager.

Error

NET::CRR_CERT_INVALID

Description

Let’s consider that we have a CipherTrust Manager and want to configure the web interface using an external CA-generated certificate. As per the procedure, we’ll have to generate a CSR (Certificate Signing Request), upload the root and intermediate CAs on CipherTrust Manager, and then assign the externally signed certificate to the web interface.

Cause

The primary reason for this error is that the certificated signed by the external CA for the web interface of CipherTrust Manager has yet to be in an active state.

intermediate CAs on CipherTrust Manager

Solution

Let’s assume we are configuring a web interface certificate for thales01.ec.com. To resolve this error, please follow the below-mentioned steps

  1. Login to CipherTrust Manager. From the dashboard, click on CSR Tool under CA.

    CSR Tool under CA
  2. Click on + Create CSR and enter all the required information.

    CSR Info
  3. After verifying the information, click on Create.

  4. Save the private key as well as the CSR.

    RSA
  5. Send the CSR to the signing authority to create the signed certificate.

    Note: The preferred certificate format is PEM.

  6. Now, upload the Root and Intermediate CA Certificates. From the Dashboard, click External under the CA section.

    Root and Intermediate CA Certificates
  7. Click on + Add External CA.

    Add External CA
  8. Enter the Display name and paste the Root CA certificate in the box. Click on Save.

    Add External Certificate
  9. Perform similar steps for adding intermediate/issuing CA.

  10. Navigate to interfaces under admin settings.

    interfaces under admin settings
  11. Click on the … (3 dots) for web and select Edit.

    Interfaces
  12. Select “Turn off auto generation from Local CA” for Local CA for Automatic Server Certificate Generation.

    Local CA
  13. Add the Root CA and the Intermediate CA to the External Trusted CAs list.

    Root CA and the Intermediate CA
  14. Click on the arrow and expand the Upload Certificate option. Paste the entire certificate chain into the box.
  15. Select PEM on Format.
  16. Enter the Private Key Password (if required) created during the process of CSR generation.
  17. Click on Upload New Certificate. We have now successfully assigned an externally signed certificate to the web interface.
  18. Navigate to services under Admin settings.
  19. Click on System Restart

    CSR generation
  20. Once the services have been restarted, try to access the GUI of CipherTrust Manager by entering the hostname in the browser. If the error below appears, wait approximately 20-30 minutes for the certificate to get active and then refresh the page.

    intermediate CAs on CipherTrust Manager

Free Downloads

Datasheet of Encryption Consulting Services

Encryption Consulting is a customer focused cybersecurity firm that provides a multitude of services in all aspects of encryption for our clients.

Download
Encryption Services

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

Reading time: 3 minutes

In this blog, we’ll discuss the issues faced while scheduling backups on CipherTrust Manager.

Error

codeDesc: NCERRInvalidParamValue

errorMessage: Specified backup key does not exist for scope (system)

Description

Let’s consider that we have 4 CipherTrust Manager nodes (thales01.ec.com, thales02.ec.com, thales03.ec.com, thales04.ec.com)  in a cluster. As per the procedure, we’ll have to create a system backup schedule on any of the nodes, which will further get replicated on others.

Note: Backups and backup keys are not replicated across the cluster.

Cause

The primary reason for this error is that the backups occur randomly on any one of the nodes, and if the backup key isn’t present on that particular node while it is being initiated, the backup will fail.

CipherTrust Manager Backup Error

Solution

Let’s assume we are scheduling a backup from thales01.ec.com. To resolve this error, please follow the below-mentioned steps

  1. On thales01.ec.com, navigate to the Backup keys under Admin settings.

    Backup keys
  2. First, create a new system backup key and make it as default.

    system backup key
  3. Download the newly created system backup key in order to upload them on other CipherTrust Manager cluster nodes.

    cluster nodes
  4. Enter a password for the corresponding backup key and click “Download.”

    Download backup keys
  5. Now, follow the below-mentioned path to upload the system backup key on all the CipherTrust Manager cluster nodes.

    Choose the downloaded file and enter the password generated in the previous step for the uploaded backup key.

    step for the uploaded backup key
  6. Navigate to Admin Settings Schedules to schedule a system-level backup.

    system level backup
  7. Click on “Add Schedule.”

    Schedules
  8. Select “System Backup” and click “Next.”

    System Backup Schedule
  9. Enter the “Schedule Name” and click “Next.”

    cipher trust schedule name
  10. Determine the backup frequency and click “Next.”

    backup frequency
  11. State the number of backups to retain and select “Use default backup key.”

    Note: “Use default backup key” will help perform a successful backup on any cluster node since the default key is the same on all of them.

    Use default backup key

Free Downloads

Datasheet of Encryption Consulting Services

Encryption Consulting is a customer focused cybersecurity firm that provides a multitude of services in all aspects of encryption for our clients.

Download
Encryption Services

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

In this blog, we’ll discuss the issues of clustering encountered during CipherTrust Manager installation and configuration.

Error

  1. A generic connection error occurred while creating the cluster. This type of error typically occurs when the host is invalid. Please retry using a valid IP or hostname. Code 8: NCERRInternalServerConnectFailed
  2. Failed self-connection check. This type of error typically occurs when the host is invalid. Please retry using a valid IP or hostname. Code 8: NCERRInternalServerConnectFailed

Description

Let’s consider that we have 4 CipherTrust Manager nodes (thales01.ec.com, thales02.ec.com, thales03.ec.com, thales04.ec.com)  to add to a cluster. As per the procedure, we’ll have to select one of the nodes to create a cluster and, after that, add all the remaining nodes to that cluster. Usually, we have two options for calling out each of the appliances.

We can either mention the hostname of the CipherTrust manager or the IP address. It is, however, recommended to use the hostname instead of the IP address from a networking standpoint. The errors mentioned above are encountered during the cluster creation process when the hostname of the CipherTrust Manager is entered.

Cause

The primary reason for these errors is that the CipherTrust Manager cannot recognize the hostname. A user might encounter this issue despite setting up a DNS and a proper hostname.

Cluster
cluster error

Solution

Let us assume we are creating a cluster from thales01.ec.com and adding all other nodes from this server. To resolve this error, please follow the below-mentioned steps:

  1. On thales01.ec.com, navigate to DNS hosts under Admin settings.

    CipherTrust Manager Admin settings
  2. First, add all 4 CipherTrust Manager hostnames.

    CipherTrust Manager hostnames
  3. Navigate to clustering and try creating the cluster again with the hostname of the primary node (thales01.ec.com).

    clustering
  4. After creating a cluster, we will add other nodes by using their hostname from thales01.ec.com. To complete this process successfully, we’ll first have to add the primary node (thales01.ec.com) on each of the secondary nodes (thales02.ec.com,thales03.ec.com, thales04.ec.com) and then add the secondary node itself

    under Admin settings-> DNS Hosts. The concept behind adding the same is for both nodes to recognize themselves as well as each other.

  5. Once the cluster is created, all the nodes have been added, and the testing has been completed, you can delete all the DNS hosts added on each of the CipherTrust Manager appliances and check that clustering is functioning properly.

Free Downloads

Datasheet of Encryption Consulting Services

Encryption Consulting is a customer focused cybersecurity firm that provides a multitude of services in all aspects of encryption for our clients.

Download
Encryption Services

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

Reading time: 5 minutes.

SSH stands for Secure Shell or Secure Socket Shell. It is a cryptographic network protocol that allows users and sysadmins to access computers over an unsecured network such as the Internet. It is used to log in to a remote server, execute commands, and transfer data from one machine to another.

Where do we use SSH?

SSH is used to replace unprotected remote login protocols like Telnet, rlogin, rsh, and others, as well as insecure file transfer protocols like FTP. Network administrators extensively utilize its protection capabilities. We can use SSH protocol in various scenarios, such as:

  • Enabling secure access for users and automated processes
  • Performing interactive and automated file transfers
  • Issuing remote commands
  • Managing network infrastructure and other mission-critical system components

How does SSH work?

The SSH protocol works on a client-server architecture, so an SSH client establishes a secure connection to an SSH server. The SSH client drives the connection establishment process and uses public key infrastructure (PKI) to verify the authenticity of the SSH server. Once configured, the SSH protocol uses strong symmetric encryption and hashing algorithms to ensure the confidentiality and integrity of data exchanged.

What are the different types of authentication?

Key-based authentication

The most commonly used form of SSH deployment is public key authentication. It is preferred over simple passwords because of enhanced security. Key-based authentication provides unmatched cryptographic strength, which is even more than that offered by very long passwords. SSH greatly increases security through public key authentication, eliminating users’ need to remember complex passwords.

In addition to security, public key authentication improves usability. This allows the user to implement single sign-on across the SSH servers he connects to. Key-based authentication also enables automated passwordless logins, a key feature of the myriad of secure automated processes running in corporate networks worldwide.

This type of authentication generates a key pair (public and private key).

  • The public key is copied to the SSH server and, by default, added to the ~/.ssh/authorized_keys file. Anyone who has a copy of the public key can encrypt data that can only be read by those who have the corresponding private key.
  • The private key remains (only) with the user. Only a user whose private key corresponds to the server’s public key can authenticate successfully. Private keys should be stored and handled carefully, and copies of private keys should not be distributed.

Disadvantages of key-based authentication

  • Poor SSH key management can pose a great risk to organizations.
  • Misuse of SSH keys can lead to confidential or privileged information access.
  • Since keys are trusted permanently, it increases the chances of an attack.

Certificate-based authentication

This type of authentication does not need key approval and distribution. Instead of distributing public keys across static files, we can use certificates to bind public keys to names. A certificate contains data such as a public key, a name, and additional data such as expiration dates and permissions. This data is signed by a certification authority (CA).

To enable certificate authentication, configure clients and hosts to verify certificates using your CA’s public key (i.e., trust certificates issued by your CA).

On each host, edit /etc/ssh/sshd_config, specifying the CA public key for verifying user certificates, the host’s private key, and the host’s certificate.

On each client, add a line to ~/.ssh/known_hosts specifying the CA public key for verifying host certificates.

Advantages of certificate-based authentications

  • It is simple to use as a trust on first use (TOFU) warnings are not displayed because certificate authentication uses certificates to communicate public key bindings, allowing clients to authenticate at all times.
  • It streamlines operations by eliminating the key approval and distribution process. It also reduces the operational cost of monitoring and maintaining current infrastructure for adding, removing, synchronizing, and auditing static public key files.
  • It promotes good security hygiene as compared to key-based authentication. The chances of a compromised private key going unnoticed for a long time is quite likely; however, certificates, on the other hand, expire, which means in case of theft, misuse, etc., it will automatically expire, thereby making it fail-secure.

Conclusion

Certificate-based authentication has many benefits, such as improving usability, enhancing security, streamlining operations, etc. If implemented, it will help organizations reduce complexities of key approval and distribution, improper key management-related risks, and much more.

Free Downloads

Datasheet of Encryption Consulting Services

Encryption Consulting is a customer focused cybersecurity firm that provides a multitude of services in all aspects of encryption for our clients.

Download
Encryption Services

About the Author

Yathaarth Swaroop is a Consultant at Encryption Consulting, working with PKIs, HSMs and working as a consultant with high-profile clients.

Let's talk