Source Code Key Exposure Prevention via Automated Scanning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Directly writing symmetric or private keys into source code poses security risks due to widespread access within large software development organizations, and converting source code into executable programs further exposes these keys, making it difficult to maintain security.

Innovation Solution

Implementing an electronic tool to scan source code for cryptographic keys and perform remedial actions such as alerting administrators, deleting, or replacing the keys, similar to data loss prevention techniques, to prevent undesired exposure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If cryptographic keys are directly written into source code, then the program can access the key for encryption/decryption operations, but anyone with access to the source code can also access the key, compromising security

Engineering Contradiction:
Improveease of key accessVSAvoidkey exposure risk
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent extracts the cryptographic key from the source code by using an electronic tool to scan and detect keys during the software development process. When a key is detected, it is removed from the source code and stored separately in a secure key repository, while the source code is modified to reference the key through a secure mechanism rather than containing it directly.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary component - a secure key repository and key management system - that acts as a mediator between the source code and the cryptographic key. The source code references the key through secure identifiers or tokens, and the intermediary system handles key retrieval and protection, preventing direct exposure of the key in the source code.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If source code containing keys is stored in a laptop for development work, then programmers can access and modify the code easily, but if the laptop is lost or stolen, the key security is compromised

Engineering Contradiction:
Improvecode accessibilityVSAvoidsecurity assurance
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The cryptographic key is extracted from the source code and stored separately in a secure key repository that is distinct from the source code storage locations (such as laptops). This separation ensures that even if a laptop containing the source code is lost or stolen, the key remains protected in the secure repository with controlled access mechanisms.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system segments the key management process into separate components: source code storage, key storage, and key retrieval mechanisms. The source code is stored in development environments (laptops, version control systems), while the key is stored in a dedicated secure repository with access controls, creating multiple security layers that protect against single-point failures.

Inventive Principle:
Principle #1Segmentation

3Productivity

If the source code is converted into an executable program, then the program can run and perform encryption/decryption, but the executable program itself must be protected as possession provides the ability to decrypt data

Engineering Contradiction:
Improveprogram execution capabilityVSAvoidprotection complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cryptographic key is extracted from the executable program during the build process. The electronic tool scans the source code, detects keys, and prevents them from being compiled into the executable. Instead, the executable contains references to the key stored in the secure repository, and the key is loaded at runtime through secure mechanisms, ensuring the key never resides in the executable file.

Inventive Principle:
Principle #2Taking out (Extraction)

4Reliability

If backups of source code and executable programs are created, then data loss is prevented, but each backup provides another avenue to access the key

Engineering Contradiction:
Improvedata recovery capabilityVSAvoidkey exposure pathways
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The cryptographic key is extracted from both the source code and executable program, and stored separately in a secure key repository. Backup systems can then back up the source code and executable programs without including the key, since the key is stored in a separate, secured location with controlled access. This eliminates the key exposure risk associated with traditional backup processes.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8621237B1Protecting against cryptographic key exposure in source code
Publication Date: 2013.12.31 EMC IP HLDG CO LLC
  • US8621237B1 patent drawing
  • US8621237B1 patent drawing
  • US8621237B1 patent drawing

AI summary

A technique protects source code and is performed in an electronic device. The technique involves performing, on the source code, a scanning operation which provides a scanning result indicating whether the source code includes a cryptographic key. The technique further involves performing a remedial operation (e.g., alerting an administrator, deleting the key, replacing the key, combinations thereof, etc.) to prevent undesired exposure of the cryptographic key when the scanning result indicates that the source code includes a cryptographic key. The technique further involves refraining from performing the remedial operation when the scanning result indicates that the source code does not include a cryptographic key.