IP Library Granted Patent US 11,250,143
Granted Patent B2
US 11,250,143 · App. 16/947,619 · Granted Feb 15, 2022

Method and system for implementing an encryption SDK

Inventors: Christopher Vasselli (Putney, VT); Irving Yunchi Ruan (Mountain View, CA)
Assignee: Box, Inc.
G06F21/602G06F9/54G06F21/6218G06F21/6281H04L9/0894H04L9/3226H04L63/06G06F8/20G06F21/31H04L2209/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,250,143
App. No.
16/947,619
Granted
Feb 15, 2022
Kind
B2
Abstract

Disclosed is an approach to implement a new layer of security within mobile devices using an encryption SDK, which implements a standalone component for applications to encrypt, decrypt, and view sensitive data on the device. A security layer is implemented on the device, wherein the security layer manages encryption for data retrieved onto the device from a cloud-based environment. Encrypted content is then generated at the security layer before storing the encrypted content by receiving the content object from the cloud-based environment and encrypting the content object with an encryption key that is password protected. The encrypted content is stored within an encrypted filesystem for presenting the content on the device.

Claims (59)

1. A method comprising:

identifying data in a cloud-based environment, the cloud-based environment comprising at least a storage device storing at least one content object accessible over a network;

implementing a security layer on a device, wherein the security layer manages encryption for the data retrieved onto the device from the cloud-based environment; and

generating encrypted content at the security layer before storing the encrypted content by:

receiving the at least one content object to be stored at the device from the cloud-based environment, and

encrypting the at least one content object with an encryption key, wherein the encrypted key is password protected; and

storing the encrypted content within an encrypted filesystem on the device;

wherein the security layer comprises a first layer that comprises an encryption client that manages authentication and secure key storage, a second layer that comprises a core set of application programming interface (API) functions that implements levels of encryption or decryption for data content, and a third layer that comprises a front-end set of APIs calls.

2. The method of claim 1 , further comprising storing the encrypted key within a keychain.

3. The method of claim 1 , wherein the encryption key is stored in a first location and encrypted content is stored in a second location, wherein the first location and the second location are different.

4. The method of claim 1 , wherein an application password or application passcode is not stored within a keychain.

5. The method of claim 1 , wherein implementing the security layer on the device further comprises:

performing an authentication within a user interface at an application; loading the encryption key into memory;

configuring delegates that correlates to a function in the third layer, wherein the delegates are configured to intercept calls that are made and to implement a callback to the functions in the security layer;

converting an unencrypted offset value into an encrypted offset value that offsets a first value within an unencrypted file into a second value within the encrypted file;

receiving, at the second layer, a request to perform an action from the third layer, wherein the request is performed with access to the encryption key;

returning a response to the request back to the function at the third layer, wherein the response corresponds to an unencrypted content; and presenting the unencrypted content.

6. The method of claim 1 , wherein the security layer corresponds to an encryption software developers kit.

7. A computer program product, embodied in a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which when stored in memory and executed by a processor causes the processor to perform a set of acts, the act of:

identifying data in a cloud-based environment, the cloud-based environment comprising at least a storage device storing at least one content object accessible over a network;

implementing a security layer on a device, wherein the security layer manages encryption for the data retrieved onto the device from the cloud-based environment; and

generating encrypted content at the security layer before storing the encrypted content by:

receiving the at least one content object to be stored at the device from the cloud-based environment, and

encrypting the at least one content object with an encryption key, wherein the encrypted key is password protected; and

storing the encrypted content within an encrypted filesystem on the device;

wherein the security layer comprises a first layer that comprises an encryption client that manages authentication and secure key storage, a second layer that comprises a core set of application programming interface (API) functions that implements levels of encryption or decryption for data content, and a third layer that comprises a front-end set of APIs calls that are directly accessed by a consumer to access encrypted content.

8. The computer program product of claim 7 , further comprising storing the encrypted key within a keychain.

9. The computer program product of claim 7 , wherein the encryption key is stored in a first location and encrypted content is stored in a second location, wherein the first location and the second location are different.

10. The computer program product of claim 7 , wherein an application password or application passcode is not stored within a keychain.

11. The computer program product of claim 7 , wherein implementing the security layer on the device further comprises:

performing an authentication within a user interface at an application;

loading the encryption key into memory;

configuring delegates that correlates to a function in the third layer, wherein the delegates are configured to intercept calls that are made and to implement a callback to the functions in the security layer;

converting an unencrypted offset value into an encrypted offset value that offsets a first value within an unencrypted file into a second value within the encrypted file;

receiving, at the second layer, a request to perform an action from the third layer, wherein the request is performed with access to the encryption key;

returning a response to the request back to the function at the third layer, wherein the response corresponds to an unencrypted content; and presenting the unencrypted content.

12. The computer program product of claim 7 , wherein the security layer corresponds to an encryption software developers kit.

13. A system comprising:

a storage medium having stored thereon a sequence of instructions and

a processor or processors that execute the instructions to cause the processor or processors to perform a set of acts, the acts comprising:

identifying a storage device in a cloud-based environment, the storage device storing at least one content object accessible over a network;

identifying data in a cloud-based environment, the cloud-based environment comprising at least a storage device storing at least one content object accessible over a network;

implementing a security layer on a device, wherein the security layer manages encryption for the data retrieved onto the device from the cloud-based environment; and

generating encrypted content at the security layer before storing the encrypted content by:

receiving the at least one content object to be stored at the device from the cloud-based environment, and

encrypting the at least one content object with an encryption key, wherein the encrypted key is password protected; and

storing the encrypted content within an encrypted filesystem on the device;

wherein the security layer comprises a first layer that comprises an encryption client that manages authentication and secure key storage, a second layer that comprises a core set of application programming interface (API) functions that implements levels of encryption or decryption for data content, and a third layer that comprises a front-end set of APIs calls that are directly accessed by a consumer to access encrypted content.

14. The system of claim 13 , further comprising storing the encrypted key within a keychain.

15. The system of claim 13 , wherein the encryption key is stored in a first location and encrypted content is stored in a second location, wherein the first location and the second location are different.

16. The system of claim 13 , wherein an application password or application passcode is not stored within the keychain.

17. The system of claim 13 , wherein implementing the security layer on the device further comprises:

performing an authentication within a user interface at an application;

loading the encryption key into memory;

configuring delegates that correlates to a function in the third layer, wherein the delegates are configured to intercept calls that are made and to implement a callback to the functions in the security layer;

converting an unencrypted offset value into an encrypted offset value that offsets a first value within an unencrypted file into a second value within the encrypted file;

receiving, at the second layer, a request to perform an action from the third layer, wherein the request is performed with access to the encryption key;

returning a response to the request back to the function at the third layer, wherein the response corresponds to an unencrypted content; and

presenting the unencrypted content.

Assignments (2)
SECURITY INTEREST Recorded Jul 26, 2023
From: BOX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 064389/0686 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2020
From: VASSELLI, CHRISTOPHER; RUAN, IRVING YUNCHI
To: BOX, INC.
Reel/Frame 053447/0975 →
Continuity (3)
Continuation 15950885 · Apr 11, 2018
Provisional Application 62484371 · Apr 11, 2017
Related Publication 20210026972A1 · Jan 28, 2021