Dual-Server Authentication System for Secure Credential Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current user authentication systems face vulnerabilities in storing sensitive information, as hackers can exploit stored hashed passwords using brute force or dictionary attacks, and updating security measures requires user intervention.
Innovation Solution
Implementing a dual-server system where the first server handles public access and the second server, not connected to the public network, processes user authentication using one-way hashing and asymmetrical encryption, storing only cryptograms on the first server and security parameters on the second server, allowing for secure updates without user intervention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If hashed passwords are stored in a database, then authentication can be performed, but the system becomes vulnerable to brute force and dictionary attacks
Solution Approach 1:
The system divides the authentication data into two separate servers: the first server stores only cryptograms (hashed passwords) while the second server stores security parameters and user identifiers. This segmentation prevents attackers from obtaining complete user data in a single breach, as each server holds only a fragment of the authentication information.
Solution Approach 2:
The first server acts as an intermediary between the user and the second server. During authentication, the first server receives credentials, computes cryptograms using security parameters from the second server, and verifies them without storing the actual passwords or security parameters itself. This intermediary role isolates sensitive data from the public-facing server.
2Adaptability or versatility
If security parameters are stored on a single server, then authentication can be performed, but updating security measures requires user intervention
Solution Approach 1:
The system performs preliminary action by pre-distributing security parameters to multiple servers during the initial setup phase. When security updates are needed, the new parameters are distributed to the appropriate servers in advance, allowing the system to automatically switch to the updated security mechanism without requiring users to re-enter their passwords or undergo manual reconfiguration.
Solution Approach 2:
The authentication system performs self-service updates by automatically distributing new security parameters to the relevant servers and updating the cryptogram verification process. The system monitors and maintains its own security parameters without requiring user awareness or intervention, allowing seamless security enhancements.
3Device complexity
If all sensitive data is stored in one place, then data management is simplified, but the system becomes a prime target for hackers
Solution Approach 1:
The system segments sensitive data across multiple servers: the first server stores only cryptograms (derived from passwords), while the second server stores security parameters and user identifiers. None of the individual servers hold all sensitive data, reducing the attractiveness of any single server as a hacking target while maintaining manageable data organization through clear separation of concerns.
Data Source
AI summary
A method for authenticating a user having a first enrollment step including: receiving by a first server an identifier and a password, and sending this information to a second server; on the second server: loading a security parameter, calculating a first cryptogram on the identifier, the password, and the security parameter, encrypting at least the identifier and the password, storing the encrypted data, sending the first cryptogram to the first server and storing said cryptogram on the first server; and a second verification step including: receiving by the first server the current identifier and the current password, and sending the information to the second server; on the second server calculating a second cryptogram on the current identifier, the current password, and the security parameter and sending the second cryptogram to the first server and verification that the first cryptogram is included in the database, if not, generating an error message.

