Skip to content

[WIP] [libOS] Single Process lifetime rollback protection for Protected Files#1856

Draft
g2flyer wants to merge 22 commits intogramineproject:masterfrom
g2flyer:msteiner/enclave-lifetime-rollback-protection
Draft

[WIP] [libOS] Single Process lifetime rollback protection for Protected Files#1856
g2flyer wants to merge 22 commits intogramineproject:masterfrom
g2flyer:msteiner/enclave-lifetime-rollback-protection

Conversation

@g2flyer
Copy link
Contributor

@g2flyer g2flyer commented Apr 23, 2024

Description of the changes

This is a WIP PR addresses issue #1835, i.e., rollback protection of protected files beyond a single open-to-close window but across the whole runtime of gramine. Released as draft PR in anticipation of 23. April 2024 Community Call. It depends on closing PR #1874 and PR #1875 (and is currently rebased on the current version of these to work)

Steps:

How to test this PR?


This change is Reviewable

@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch from 2233cf6 to f42b179 Compare April 23, 2024 04:51
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch from 11858ac to 79890bf Compare May 6, 2024 15:36
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch from 79890bf to 95c577f Compare May 10, 2024 22:53
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch 4 times, most recently from ee4c0c4 to 17d0062 Compare May 23, 2024 18:08
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch 7 times, most recently from 2e9c69e to 71ef5c8 Compare June 4, 2024 19:11
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch 2 times, most recently from d220ddb to 50794dd Compare June 11, 2024 22:15
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch 3 times, most recently from d555d18 to 681307a Compare June 14, 2024 19:33
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch 2 times, most recently from 8eeed74 to 47cc591 Compare July 9, 2024 22:55
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch 2 times, most recently from 2c7435e to cd25ee0 Compare July 26, 2024 18:37
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch 2 times, most recently from 4b0b0b6 to cd03cef Compare August 14, 2024 17:44
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch from 6f71463 to 39e2dc4 Compare August 22, 2024 18:21
Signed-off-by: g2flyer <michael.steiner@intel.com>
* also fixes one missing call to put_handle in error handling

Signed-off-by: g2flyer <michael.steiner@intel.com>
Signed-off-by: g2flyer <michael.steiner@intel.com>
Signed-off-by: g2flyer <michael.steiner@intel.com>
g2flyer added 12 commits August 23, 2024 12:31
* use --skip-teardown to prevent removal of artifacts
* for tamper tests, run all of them instead of abort on first failure

Signed-off-by: g2flyer <michael.steiner@intel.com>
* Make sure decrypt is called on correct path (or it will fail always
  due to invalid path it didn't fail already due to plain text tampering)
* Remove undetectable "tampering" test-cases but also add a few use-cases
  tampering with header ciphertext

Signed-off-by: g2flyer <michael.steiner@intel.com>
Signed-off-by: g2flyer <michael.steiner@intel.com>
Signed-off-by: g2flyer <michael.steiner@intel.com>
…es (SPLRB)

* adds libos_encrypted_volume as mount-data for protected fileystem which
  includes map <name, <last-root-hash, ...>> to keep track of root hashes
  across open/close cycles of a particular value, ensuring consistency across
  the whole enclave life-time

Signed-off-by: g2flyer <michael.steiner@intel.com>
* Updated existing non-adverserial ones

Signed-off-by: g2flyer <michael.steiner@intel.com>
* New adverserial ones

Signed-off-by: g2flyer <michael.steiner@intel.com>
…ted files (SPLRB)

Signed-off-by: g2flyer <michael.steiner@intel.com>
Signed-off-by: g2flyer <michael.steiner@intel.com>
Signed-off-by: g2flyer <michael.steiner@intel.com>
…ted files (SPLRB)

Signed-off-by: g2flyer <michael.steiner@intel.com>
* make corruption status for encrypted files sticky
* update filemap state for any corruption also encountered
  during operations other than open, close, unlink and rename

Signed-off-by: g2flyer <michael.steiner@intel.com>
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch 2 times, most recently from 364defc to 00e1010 Compare August 23, 2024 23:05
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch from 00e1010 to f15133b Compare August 26, 2024 21:02
Signed-off-by: g2flyer <michael.steiner@intel.com>
Signed-off-by: g2flyer <michael.steiner@intel.com>
@g2flyer g2flyer force-pushed the msteiner/enclave-lifetime-rollback-protection branch from d412869 to 977e999 Compare August 27, 2024 00:07
Signed-off-by: Michael Steiner <steiner@acm.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Working on it

Development

Successfully merging this pull request may close these issues.

1 participant