Embedding Ancillary Data in Digitally Signed Executables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing digital distribution systems face inefficiencies in creating and managing different versions of software products for various distribution networks, as modifying ancillary distribution-related information in digitally signed executables is difficult without invalidating the digital signature, making it challenging to track distribution channels and insert ancillary information.
Innovation Solution
A computer-implemented system and method that embeds and authenticates ancillary information in digitally signed content by modifying the digital signature size to include additional data without invalidating the signature, allowing distribution-related information to be stored in unused portions of the executable file, enabling efficient distribution across multiple networks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If ancillary distribution information is embedded in digitally signed executables, then distribution channel tracking capability is improved, but the digital signature validity is compromised
Solution Approach 1:
The executable file is divided into authenticated sections (code, resources) and unauthenticated sections (signature directory, CRC block). Ancillary distribution information is embedded in the unauthenticated sections, specifically in the signature directory or CRC block, allowing information storage without affecting the digital signature validation of the authenticated sections.
Solution Approach 2:
The patent uses the signature directory and CRC block as intermediary storage locations within the executable file structure. These sections serve as mediators that can hold ancillary information while the digital signature continues to protect the core executable code, effectively separating the information storage function from the security function.
2Loss of information
If multiple versions of software are created for different distribution networks, then distribution network tracking is improved, but device complexity and manufacturing cost increase
Solution Approach 1:
A single executable file structure is designed to serve multiple distribution networks by incorporating variable-length signature directories and CRC blocks that can accommodate different distribution information. This universal structure eliminates the need to create separate executable versions for each distribution network while maintaining the ability to track and compensate different distribution channels.
Solution Approach 2:
The patent employs variable-length fields in the signature directory and CRC block to adapt the same executable structure to different distribution networks. By changing the length and content parameters of these sections, the system can encode distribution network-specific information without altering the core executable code or creating multiple file versions.
3Loss of information
If ancillary information is inserted into the executable, then distribution tracking is improved, but the executable integrity is compromised
Solution Approach 1:
The executable is segmented into integrity-critical sections (code, resources) and information-storage sections (signature directory, CRC block). The digital signature covers only the integrity-critical sections, while ancillary distribution information is stored in the separate storage sections, maintaining executable integrity while enabling distribution tracking.
Solution Approach 2:
The patent extracts the information storage function from the core executable code by utilizing the signature directory and CRC block as separate storage areas. This extraction allows distribution tracking information to be stored without being included in the digital signature verification process, thus preserving executable integrity.
Data Source
AI summary
A computer-implemented system and method for embedding and authenticating ancillary information in digitally signed content are disclosed. The method and system include: loading digital content containing a digitally signed portion into memory for processing; identifying an existing digital signature block and an existing digital signature size block in a digitally signed file header of the digitally signed portion; obtaining a digital signature size value from the digital signature size block, the digital signature size value corresponding to the size of the digital signature block plus the length of an ancillary data block plus a pre-determined pad; authenticating the integrity of the digitally signed portion using the digital signature while processing the digital content; unwrapping a purchase mechanism built into as wrapper associated with the digital content; and extracting from the ancillary data block data referenced by instructions of the purchase mechanism, the extracting being performed without invalidating the digital signature.


