Local Encryption Key Splitting for SSO Data Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Single Sign-On (SSO) systems face a security flaw in securely generating and storing encryption keys for client-side application data when users log in via an external authentication source, as the client-side portion cannot generate encryption keys due to lack of access to user passwords.

Innovation Solution

The client-side application generates a random encryption key, divides it into shares using a secret sharing algorithm, and stores one share securely with a trusted third party, allowing decryption upon successful authentication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If SSO system is implemented to allow single sign-on access, then ease of operation is improved, but security of client-side application data is worsened

Engineering Contradiction:
Improvesingle sign-on accessVSAvoidsecurity of client-side application data
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The encryption key is divided into multiple shares using secret sharing algorithms, where no single share can reconstruct the key alone. This segments the security credential so that even though SSO provides centralized authentication, the actual decryption capability is distributed and requires collaboration between multiple parties (cloud service and trusted third party), thus maintaining security while enabling SSO convenience

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A trusted third party is introduced as an intermediary to hold one share of the encryption key. This intermediary enables the SSO system to function by verifying authentication tokens and releasing the necessary key share to the client device, without the trusted third party having access to the complete encryption key or being able to decrypt the data alone

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If encryption key is derived from user password, then ease of operation is improved, but adaptability is worsened

Engineering Contradiction:
Improvepassword-based encryptionVSAvoidcompatibility with external authentication sources
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

Instead of deriving the encryption key from the user password (traditional approach), the system inverts the approach by using the authenticated token from the external authentication source combined with a share from the trusted third party to reconstruct the encryption key. This allows the system to work with external authentication sources while maintaining strong encryption

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The system changes the input parameters for key derivation from user password to authenticated token plus trusted third party share. This parameter change enables compatibility with external authentication sources like SSO systems while maintaining the security properties of password-based encryption through the use of cryptographically strong tokens

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10911431B2Local encryption for single sign-on
Publication Date: 2021.02.02 WICKR INC
  • US10911431B2 patent drawing
  • US10911431B2 patent drawing
  • US10911431B2 patent drawing

AI summary

The present disclosure describes techniques that allow for a client-side application, located on a first client device, to generate a random encryption key and encrypt locally-stored application data with the random encryption key. In order to ensure that the client-device application is unable to decrypt the locally-stored encrypted application data prior to authenticating with an external authentication source (i.e., SSO, IdP), the client-side application divides the random encryption key into at least a first share and a second share according to a secret sharing algorithm. The first share is transmitted to a trusted third party, while the second share is encrypted locally and stored in a secure location on the client device. Upon successful authentication, the trusted third party returns the second share to the first client device. The client-side application derives the random encryption key and decrypts the locally-stored encrypted application data to be used by the client-side application. By dividing the key used to encrypt the client-side application data and storing one of the secret shares necessary to deriving the key at a trusted third party, the present disclosure solves the problem of how to encrypt local application data when the login credentials for the application are managed by a trusted third party, such as an SSO system.