IP Library › Granted Patent US 11,763,301
Granted Patent B2
US 11,763,301 · App. 17/525,466 · Granted Sep 19, 2023

Systems, methods and apparatuses for securely storing and providing payment information

Inventors: Sergey Ignatchenko (Innsbruck, AT); Dmytro Ivanchykhin (Kiev, UA)
Assignee: OLogN Technologies AG
G06Q20/3829G06F21/57G06F21/606G06F21/74G06Q20/351G06Q20/3823G06Q20/3825
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,763,301
App. No.
17/525,466
Granted
Sep 19, 2023
Kind
B2
Abstract

The systems, methods and apparatuses described herein provide a virtual integrated circuit card (ICC). In one aspect, a method of creating a virtual ICC may be provided. The method may comprise obtaining executable code configured to run on a user device to facilitate financial transactions, preparing a first encryption key usable by the executable code, receiving a second encryption key associated with the user device, forming a virtual ICC comprising the executable code and the first encryption key, and encrypting the virtual ICC with the second encryption key. In another aspect, a virtual ICC may be embodied on a non-transitory computer-readable medium. The virtual ICC may comprise executable code configured to run on a user device to facilitate financial transactions and a first encryption key usable by the executable code. The virtual ICC may be encrypted using a second encryption key associated with the user device.

Claims (46)

1. A computer-implemented method comprising:

receiving, by a computing device, from a first server a subtask representing a virtual integrated circuit card (ICC) and comprising data and first executable code, wherein the first executable code is configured to facilitate secure transactions;

storing, by the computing device, the subtask representing the virtual ICC in a non-transitory machine readable memory of the computing device;

receiving, by the computing device, from a second server a task comprising second executable code that instructs a processor of the computing device to execute the first executable code of the subtask;

verifying, by the computing device, that maximum memory use of the subtask does not exceed maximum memory available for subtasks;

verifying, by the computing device, that the subtask meets one or more requirements imposed by the task;

verifying, by the computing device, that the task meets one or more requirements imposed by the subtask; and

executing, by the computing device, the first executable code of the subtask responsive to verifying that the maximum memory use of the subtask does not exceed the maximum memory available for subtasks, that the subtask meets the one or more requirements imposed by the task, and that the task meets one or more requirements imposed by the subtask.

2. The method of claim 1 , wherein verifying that the maximum memory use of the subtask does not exceed the maximum memory available for subtasks comprises comparing a maximum memory use field of the subtask with a field of the task indicating a maximum amount of memory available for subtasks, wherein the maximum memory use field of the subtask indicates a maximum amount of memory the subtask needs to run.

3. The method of claim 2 , wherein the field of the task indicating a maximum amount of memory available for subtasks indicates a maximum amount of memory available for subtasks, executable code of subtasks, and/or data of subtasks.

4. The method of claim 1 , wherein verifying that the subtask meets one or more requirements imposed by the task comprises determining that a digital certificate of the subtask identifies the subtask as produced by a legitimate ICC developer.

5. The method of claim 1 , wherein verifying that the task meets one or more requirements imposed by the subtask comprises determining that a digital certificate of the task identifies the task as associated with a bank or other financial institution.

6. The method of claim 1 , wherein the task comprises one or more fields identifying one or more restrictions on a type of subtask called by the task, and wherein verifying that the subtask meets one or more requirements imposed by the task comprises determining that the subtask meets the one or more restrictions on the type of subtask called by the task.

7. The method of claim 1 , wherein verifying that the task meets one or more requirements imposed by the subtask comprises:

determining, by the computing device, that the subtask was launched by another subtask; and

comparing, by the computing device, a digital certificate of the other subtask that launched the subtask with one or more requirements imposed by the task.

8. The method of claim 1 , wherein the subtask representing the virtual ICC further comprises a digital signature identifying a first entity associated with the first server from which the subtask was received by the computing device, and wherein the task further comprises a digital signature identifying a second entity associated with the second server from which the task was received by the computing device.

9. The method of claim 1 , wherein the data of the subtask is encrypted, the method further comprising:

decrypting, by the computing device, the data of the subtask representing the virtual ICC;

loading, by the computing device, the second executable code of the task into an instruction memory of the computing device and the decrypted data of the subtask into a data memory of the computing device; and

clearing, by the computing device, the second executable code of the task from the instruction memory.

10. The method of claim 1 , the method further comprising:

loading, by the computing device, the data of the subtask into a portion of a data memory of the computing device according to the first executable code of the subtask, wherein the portion of the data memory is accessible by the subtask and the task; and

retrieving, by the computing device, the data of the subtask from the portion of the data memory according to the second executable code of the task.

11. A non-transitory computer-readable medium comprising a set of instructions that when executed by a computer processor, cause the computer processor to:

receive from a first server a subtask representing a virtual integrated circuit card (ICC), wherein the subtask representing the virtual ICC comprises data and first executable code configured to facilitate secure transactions;

store the subtask representing the virtual ICC in a non-transitory machine readable memory of the computing device;

receive from a second server a task comprising second executable code that instructs the processor to execute the first executable code of the subtask;

verify that maximum memory use of the subtask does not exceed maximum memory available for subtasks;

verify that the subtask meets one or more requirements imposed by the task;

verify that the task meets one or more requirements imposed by the subtask; and

execute the first executable code of the subtask responsive to verifying that the maximum memory use of the subtask does not exceed the maximum memory available for subtasks, that the subtask meets the one or more requirements imposed by the task, and that the task meets one or more requirements imposed by the subtask.

12. The non-transitory computer-readable medium of claim 11 , wherein to verify that the maximum memory use of the subtask does not exceed the maximum memory available for subtasks, the set of instructions cause the processor to compare a maximum memory use field of the subtask with a field of the task indicating a maximum amount of memory available for subtasks, wherein the maximum memory use field of the subtask indicates a maximum amount of memory the subtask needs to run.

13. The non-transitory computer-readable medium of claim 12 , wherein the field of the task indicating a maximum amount of memory available for subtasks indicates a maximum amount of memory available for subtasks, executable code of subtasks, and/or data of subtasks.

14. The non-transitory computer-readable medium of claim 11 , wherein to verify that the subtask meets one or more requirements imposed by the task, the set of instructions cause the processor to determine that a digital certificate of the subtask identifies the subtask as produced by a legitimate ICC developer.

15. The non-transitory computer-readable medium of claim 11 , wherein to verify that the task meets one or more requirements imposed by the subtask, the set of instructions cause the processor to determine that a digital certificate of the task identifies the task as associated with a bank or other financial institution.

16. The non-transitory computer-readable medium of claim 11 , wherein the task comprises one or more fields identifying one or more restrictions on a type of subtask called by the task, wherein to verify that the subtask meets one or more requirements imposed by the task, the set of instructions cause the processor to determine that the subtask meets the one or more restrictions on the type of subtask called by the task.

17. The non-transitory computer-readable medium of claim 11 , wherein to verify that the task meets one or more requirements imposed by the subtask, the set of instructions cause the processor to:

determine that the subtask was launched by another subtask; and

compare a digital certificate of the other subtask that launched the subtask with one or more requirements imposed by the task.

18. The non-transitory computer-readable medium of claim 11 , wherein the subtask representing the virtual ICC further comprises a digital signature identifying a first entity associated with the first server from which the subtask was received by the computing device, and wherein the task further comprises a digital signature identifying a second entity associated with the second server from which the task was received by the computing device.

19. The non-transitory computer-readable medium of claim 11 , wherein the data of the subtask is encrypted, and wherein the set of instructions further cause the processor to:

decrypt the data of the subtask representing the virtual ICC;

load the second executable code of the task into an instruction memory of the computing device and the decrypted data of the subtask into a data memory of the computing device; and

clear the second executable code of the task from the instruction memory.

20. The non-transitory computer-readable medium of claim 11 , wherein the subtask representing the virtual ICC instructs the processor to load the data of the subtask into a portion of the data memory accessible by the subtask and the task, and wherein the task instructs the processor to retrieve the data of the subtask from the portion of the data memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2024
From: OLOGN TECHNOLOGIES AG
To: FINGON LLC
Reel/Frame 067333/0104 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2021
From: IGNATCHENKO, SERGEY; IVANCHYKHIN, DMYTRO
To: OLOGN TECHNOLOGIES AG
Reel/Frame 058100/0861 →
Continuity (3)
Continuation 14213912 · Mar 14, 2014
Provisional Application 61789618 · Mar 15, 2013
Related Publication 20220138743A1 · May 5, 2022
Cited By (2)
US 12,288,208 US 12,307,448