Secure Software Enablement Over Narrow Bandwidth Channels
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for secure software enablement over narrow bandwidth channels, such as telephone channels, face limitations due to the need for short validation codes that are specific to an entitlement and hard to generate by anyone but the software vendor, while avoiding shared secrets between the vendor and client, and are vulnerable to attacks like fixed string, dictionary, and fixed index attacks.
Innovation Solution
A system where vendor-side messages are stored on a server, and their hashes are stored on client machines, allowing clients to verify validation codes by computing hash functions, using tables of messages and hashes to ensure security without relying on shared secrets, and using pseudorandom numbers and hashing to create vendor-side secrets that can be easily verified by clients.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If public key digital signature algorithms are used to ensure security, then the validation code becomes hard to generate by anyone but the software vendor, but the code length increases to more than 78 digits which is unsuitable for narrow bandwidth channels
Solution Approach 1:
The validation code is segmented into two parts: a first portion transmitted over the narrow bandwidth channel and a second portion stored locally on the client device. This segmentation allows the use of a secure but longer cryptographic signature while presenting only a short code to the user for verbal transmission.
Solution Approach 2:
The solution moves from a single-dimensional code transmission to a two-dimensional verification process involving both a transmitted code portion and a locally stored verification portion. This dimensional change enables secure verification without requiring the full cryptographic signature to be transmitted over the narrow channel.
2Length of moving object
If symmetric key encryption is used to reduce code length, then the validation code becomes short enough for narrow bandwidth channels, but the shared secret must be stored on the user's computer which opens it to security risks
Solution Approach 1:
The vulnerable shared secret is extracted from the user's computer and replaced with a locally stored hash value. The actual secret remains only on the vendor's secure server, while the client device stores only a one-way hashed version that cannot be reverse-engineered to reveal the original secret.
Solution Approach 2:
The symmetric key encryption mechanism is replaced with a cryptographic hash function. Instead of using reversible encryption that requires storing the key, the system uses one-way hashing where the original data cannot be recovered from the hash, eliminating the need to store vulnerable secrets on client devices.
3Ease of operation
If a short validation code is used to accommodate narrow bandwidth channels, then the code is easy for users to handle, but the number of possible codes decreases making it easier for hackers to brute force
Solution Approach 1:
The validation code is segmented into a transmitted portion and a locally stored portion. The transmitted portion can be kept short for ease of user handling, while the locally stored portion (combined with the transmitted portion during verification) provides the additional entropy needed to resist brute force attacks.
Solution Approach 2:
The client device performs preliminary verification by computing a hash of the received code portion and comparing it against a locally stored hash value before completing the validation process. This preliminary action enables fast verification of short codes while maintaining security through the cryptographic hash function.
Data Source
AI summary
A system and method provide an enablement scheme that accommodates small bandwidth channels and does not rely on shared secrets between parties. This is accomplished by storing a table of messages on a vendor server and a table of hashes of the message on client machines. A process is used by the vendor to select a message from the table to use for a validation code for enablement, and an identical process is used by the client to find a corresponding hash in the hash table. By comparing the hash in the hash table to a hash of the validation code received, the client can verify the validation code. The system includes software portions for enabling the method.


