Keyed API Access Control for Software Tier Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software developers face challenges in efficiently managing and distributing multiple versions of software with varying functionality tiers, leading to increased costs and resource expenditure due to the need for separate binary code versions and complex access control mechanisms.
Innovation Solution
A method and system that utilize keyed verification through APIs and GUIs to securely control access to software functionality tiers, allowing providers to distribute upgrades and modifications while restricting unauthorized access by using a key-based verification process within the binary code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate versions of binary code are provided to different customers to restrict access to functionality tiers, then access control to different functionality tiers is achieved, but device complexity and resource expenditure increase due to maintaining multiple variants
Solution Approach 1:
The patent implements a single universal binary code version that can serve multiple functionality tiers through the use of license keys. Instead of creating separate binary versions for each tier, the system uses a key verification mechanism that enables or disables specific features within the same binary code, making one version universal for all customer needs.
Solution Approach 2:
The patent introduces a license key as an intermediary element between the customer and the functionality tiers. The key acts as a mediator that verifies authorization and controls access to different features without requiring separate binary code versions. This intermediary mechanism simplifies the system by decoupling access control from code distribution.
2Reliability
If multiple variants of code are maintained to accommodate different customers, then access to different functionality tiers is restricted, but resource expenditure increases due to testing, supporting, and maintaining multiple variants
Solution Approach 1:
The patent merges the access control functionality into a single unified mechanism using license keys. Instead of maintaining separate code variants that would require independent testing and support resources, the system combines all functionality tiers into one binary code with a unified key verification system, significantly reducing resource expenditure.
Solution Approach 2:
The single binary code version is designed to be universal, capable of serving all functionality tiers through the license key mechanism. This universality eliminates the need to test, support, and maintain multiple separate code variants, thereby reducing the resources required for software lifecycle management.
3Reliability
If customers are provided with binary code instead of source code to protect proprietary software, then software security is improved, but flexibility is reduced for customers wanting to add new functionality tiers
Solution Approach 1:
The license key serves as an intermediary that enables customers to access and utilize additional functionality tiers without requiring source code access. The key verification mechanism allows customers to securely extend their functionality by obtaining appropriate keys, maintaining security while providing adaptability.
Solution Approach 2:
The system is designed to be dynamic, allowing customers to add new functionality tiers by obtaining additional license keys rather than requiring source code modifications. This dynamic approach enables flexibility and adaptability while maintaining the security benefits of binary code distribution.
Data Source
AI summary
A method and system for controlling access to various tiers of functionality of core software are provided. A software developer/vendor can develop a single version of software having one or more limited-access functionalities and provide the single version of the software to various types of customers. Each customer, using the single version of the core software, may develop additional software that utilizes one or more functionalities of the core software as authorized by the software developer/vendor. Access to a certain functionality or set of functionalities by the customer developed software is obtained by adapting the customer developed software to submit a key, provided by the software developer/vendor, to the core software through, for example, an application programming interface (API) of the core software. The core software is adapted to verify the provided key and, if the provided key is correct, allow the customer developed software access to the corresponding one or more functionalities of the core software.


