IP Library Granted Patent US 8,478,997
Granted Patent B2
US 8,478,997 · App. 12/879,800 · Granted Jul 2, 2013

Multi-level security software architecture

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 8,478,997
App. No.
12/879,800
Granted
Jul 2, 2013
Kind
B2
Abstract

A multi-level security software architecture includes various components configured to provide full data separation across multiple processors while limiting the number and size of high assurance components. The architecture includes a domain separator for ensuring that messages exchanged between domains that are distributed on different microprocessors are securely routed between domain members. The domain separator verifies a message label including a domain identifier provided by a domain gateway and cryptographically binds the message label to each message via cryptographic keys. This prevents misrouting messages caused by accidental or malicious corruption of message labels. Additionally, the domain separator can encrypt messages as necessary to enforce data separation on shared network buses. The domain separator is also responsible for managing the cryptographic keys used to label or encrypt messages.

Claims (54)

1. A data processing apparatus adapted for transmitting messages classified at different security classification levels while maintaining data separation of the messages, the data processing apparatus comprising:

a first processor having a first memory, the first processor being associated with a first domain operating at a particular security classification level, the first domain being identified via a domain identifier;

a second processor having a second memory; and

a communication bus coupled in-between the first processor and the second processor,

wherein, the first memory includes program instructions, the first processor being operable to execute the program instructions, the program instructions including:

receiving a message from a first application in the first processor intended for a second application in the second processor;

tagging the domain identifier to the message;

receiving the message with the tagged domain identifier;

identifying a first domain gateway from which the message is received;

verifying accuracy of the tagged domain identifier based the identification of the first domain gateway from which the message is received;

selecting an encryption key based on the domain identifier;

encrypting at least a portion of the message based on the selected encryption key; and

routing the encrypted message to the second processor via the communication bus, wherein the second application in the second processor generates an output in response to the message.

2. The data processing apparatus of claim 1 , wherein the second processor is associated with a second domain operating at a different security classification level, wherein each of the first and second domains is associated with specific virtual address spaces in the memory of the corresponding processor.

3. The data processing apparatus of claim 2 , wherein the program instructions further include preventing communication between virtual address spaces associated with different domains within the first processor, wherein the program instructions further include forwarding the message to the first domain gateway module for the first domain operating at the particular security classification level.

4. The data processor apparatus of claim 1 , wherein the program instructions for selecting of the encryption key and the encrypting of at least a portion of the message are associated with a first domain separator module in the first processor, wherein a single domain separator module exists for each of the first and second processors.

5. The data processing apparatus of claim 4 , wherein the program instructions further comprise:

determining that the second application is in the second processor; and

forwarding the message to the first domain separator module.

6. The data processing apparatus of claim 1 further comprising a data store storing a table mapping domain identifiers to domain gateways, the program instructions further including:

discarding the message if the tagged domain identifier does not match the domain identifier in the table for the first domain gateway from which the message is received.

7. The data processing apparatus of claim 4 , wherein the message includes a header generated according to a first protocol associated with a specific communication middleware program, and the first memory includes program instructions including converting the header to a common header generated according to a common messaging protocol associated with the first domain separator module.

8. The data processing apparatus of claim 1 , wherein the message includes a message type, and the program instructions include broadcasting the message to subscribers of the message type.

9. The data processing apparatus of claim 1 , wherein the security classification level is selected from a group consisting of unclassified, secret, confidential, and top secret.

10. The data processing apparatus of claim 1 , wherein the second memory in the second processor includes program instructions stored therein, the second processor being operable to execute the program instructions, the program instructions including:

receiving the encrypted message;

retrieving the tagged domain identifier from the message;

selecting a decryption key based on the retrieved domain identifier;

decrypting the message based on the decryption key; and

forwarding the message to the second application.

11. The data processing apparatus of claim 1 , wherein the message is routed to the second application while maintaining data separation with a second message also transmitted via the communication bus, wherein the second message is classified at a security classification level different from the particular security classification level.

12. The data processing apparatus of claim 1 wherein the first program instructions further include:

verifying routing information associated with the message for enforcing restrictions on data exchanged between the first and second applications.

13. The data processing apparatus of claim 1 , wherein the two applications operate according to a same security classification level.

14. A non-transitory computer readable medium embodying program instructions for execution by a data processing apparatus including a first processor and a second processor, the program instructions adapting the data processing apparatus for transmitting messages classified at different security classification levels while maintaining data separation of the messages, the program instructions comprising:

receiving from a first application in the first processor a message intended for a second application in the second processor, wherein the first processor is associated with a first domain operating at a particular security classification level, the first domain being identified via a domain identifier;

tagging the domain identifier to the message;

receiving the message with the tagged domain identifier;

identifying a first domain gateway from which the message is received;

verifying accuracy of the tagged domain identifier based the identification of the first domain gateway from which the message is received;

selecting an encryption key based on the domain identifier;

encrypting at least a portion of the message based on the selected encryption key; and

routing the encrypted message to the second processor via a communication bus, wherein the second application in the second processor generates an output in response to the message.

15. The non-transitory computer readable medium of claim 14 , wherein the message is routed to the second application while maintaining data separation with a second message also transmitted via the communication bus, wherein the second message is classified at a security classification level different from the particular security classification level.

16. A method for transmitting messages classified at different security classification levels while maintaining data separation of the messages, the program instructions comprising:

receiving from a first application in a first processor a message intended for a second application in a second processor, wherein the first processor is associated with a first domain operating at a particular security classification level, the first domain being identified via a domain identifier, wherein the first and second processors are included in a data processing apparatus;

tagging the domain identifier to the message;

receiving the message with the tagged domain identifier;

identifying the first domain gateway from which the message is received;

verifying accuracy of the tagged domain identifier based the identification of the first domain gateway from which the message is received;

selecting an encryption key based on the domain identifier;

encrypting at least a portion of the message based on the selected encryption key; and

routing the encrypted message to the second processor via a communication bus, wherein the second application in the second processor generates an output in response to the message.

17. The method of claim 16 , wherein the message is routed to the second application while maintaining data separation with a second message also transmitted via the communication bus, wherein the second message is classified at a security classification level different from the particular security classification level.

Assignments (11)
CHANGE OF NAME Recorded Mar 21, 2025
From: FORCEPOINT FEDERAL HOLDINGS LLC
To: EVERFOX HOLDINGS LLC
Reel/Frame 070585/0625 →
PARTIAL PATENT RELEASE AND REASSIGNMENT AT REEL/FRAME 055052/0302 Recorded Oct 3, 2023
From: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: FORCEPOINT FEDERAL HOLDINGS LLC (F/K/A FORCEPOINT LLC)
Reel/Frame 065103/0147 →
SECURITY INTEREST Recorded Sep 29, 2023
From: FORCEPOINT FEDERAL HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC, AS COLLATERAL AGENT
Reel/Frame 065086/0822 →
CHANGE OF NAME Recorded May 12, 2021
From: FORCEPOINT LLC
To: FORCEPOINT FEDERAL HOLDINGS LLC
Reel/Frame 056216/0309 →
PATENT SECURITY AGREEMENT Recorded Jan 20, 2021
From: REDOWL ANALYTICS, INC.; FORCEPOINT LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 055052/0302 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jan 8, 2021
From: RAYTHEON COMPANY
To: FORCEPOINT LLC
Reel/Frame 055452/0220 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Feb 12, 2018
From: FORCEPOINT LLC
To: RAYTHEON COMPANY
Reel/Frame 045312/0043 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2017
From: FORCEPOINT FEDERAL LLC
To: FORCEPOINT LLC
Reel/Frame 043397/0460 →
CHANGE OF NAME Recorded Feb 16, 2016
From: RAYTHEON CYBER PRODUCTS, LLC
To: FORCEPOINT FEDERAL LLC
Reel/Frame 037821/0818 →
CHANGE OF NAME Recorded Jun 2, 2015
From: RAYTHEON CYBER PRODUCTS, INC.
To: RAYTHEON CYBER PRODUCTS, LLC
Reel/Frame 035806/0367 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2015
From: RAYTHEON COMPANY
To: RAYTHEON CYBER PRODUCTS, INC.
Reel/Frame 035774/0322 →