Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Currently, EVE does not have capability to provide data security at rest. This is being designed and implemented [1]. With this,  EVE will provide capabilities like file system encryption, but it is up to the EVE Controller to make use of these capabilities to  to achieve the security goals. For this EVE needs to define its interface towards EVE controller, and provision a way to define security policies from the Controller.  This proposal focuses more on the interaction between EVE and EVE controller(EVC) in the context of realising a use case that the user might have to secure data processed on the EVE platform.

Terminology

We introduce a few terms here for better understanding of this proposal
Edge Container Objects (ECO) -  A VM or Container deployed on an EVE instance. 
ECO Images - The image file for a particular VM or Container. The image that is used for deploying the VM or Container for the first time in the production environment. 
Mutated ECO Image:  As the ECO starts running on an EVE instance, it continuously changes its runtime state, and it starts accumulating data feeds from its external interfaces. All this is stored on its virtual disk. We call this virtual disk that contains the modified ECO state as mutated ECO image
Local File Store - Space on the permanent storage disk on EVE instance that is consumable from ECO, e.g. /persist/img . A file store need not be a secure file system.
Vault -  A secure version of a Local File Store, where the files are encrypted using filesystem encryption support (e.g. fscrypt)

Sample Use Cases 

Assuming that EVE provides a capability to store some files in an encrypted filesystem, we can foresee the following use cases: 

...

App Instance configuration will carry this information  - Whether the App is protected by End-to-End Security, and if yes, what is the Vault to associate this App Instance with.  Zedmanager will consume this configuration, and co-ordinate between Vault manager and Domain Manager to make sure the required Vault is ready before launch of the User Application.

Components Interacting with RW Partition on EVE

ComponentDirectory/FileCommentsContains Sensitive Data?
Domain Mgr

/persist/img

/persist/rkt

for storing the mutable ECO disk imagesYes
Downloader/persist/downloads

for downloading Edge Container Images

No
Verifier/persist/downloadsfor verifying integrity of downloaded imagesNo
ZedAgent/persist/config

for storing EVE device configuration

Yes
TPM Mgr/persist/config/tpm_in_usefor marking TPM mode of operationNo
device-steps.sh/persist/IMGA, /persist/IMGBfor storing image specific logs, infoNo
Network Interface Manager (NIM)/persist/statusfor storing 

DevicePortConfigList

No

Providing Security By Default

While the interface described provides way for a user to create and manage his own “Local File Stores”, and configure policies for it (like storage limit,  encryption enablement, key rotation frequency) and associate them with his ECO Images (e.g. ECO 1 to use Local File Store A, ECO 2 and 3 to use Local File Store B etc),  what might be easier for the user is to have some Vaults created by default by EVE, and thus user might need to do nothing to secure his ECO instances, and it is enabled by default for a user who does not know/care/want to control Vaults at a much granular level. 

Therefore it is proposed that, we create a couple of Vaults by default: 
a) A Vault to store EVE device configuration (for EVE host OS consumption) - let's call it Config Vault - to store sensitive parts of EVE device configuration (e.g. S3 credentials)

b) A Vault to store ECO related files (for ECO consumption) - let’s call it Image Vault - to store and launch mutated ECO images 

Even though these vaults are created by default, a User (if he wants) can change the policies associated with these Vaults, through the interface specified in this proposal, like he would do for any user-created Vaults.

Attestation Challenge by EVC 

...