Trusted execution environment는 privileged host가 protected memory를 read 또는 modify하지 못하게 하지만 block은 그 boundary를 떠납니다. Secure disk는 보통 데이터를 encrypt하고 Merkle tree로 authenticate하며 freshness metadata로 rollback을 막고 update를 journal해 crash consistency를 얻습니다. AtomicDisk는 이 property가 있어도 application이 commit하기로 선택하지 않은 state를 허용할 수 있음을 보여 줍니다.
Opening은 cache eviction입니다. SGX-PFS는 application이 sync를 issue하기 전에 dirty protected-file block과 authentication metadata를 write할 수 있습니다. Intermediate on-disk layout마다 recovery가 가능할 만큼 internally valid합니다. Malicious host는 transient snapshot 하나를 capture했다가 later replay할 수 있습니다. Tree는 block이 함께 속한다는 것은 prove하지만 application이 그 moment를 durable하다고 지정했다는 것은 prove하지 않습니다.
AtomicDisk는 sync atomicity를 정의합니다. Completed sync 전 모든 write가 together committed되거나 none이 됩니다. SGX-PFS에 internal commit operation과 journal semantic을 추가해 cache-evicted write와 synchronized write를 구분합니다. Upper filesystem과 application은 ordinary block read, write, flush를 계속 사용합니다.
User intent를 표현하지 못하는 integrity와 freshness
Confidentiality는 observation을 막고 integrity는 alteration을 detect하며 freshness는 older authenticated 데이터를 reject하고 consistency는 valid structure를 recover합니다. 이 property는 block validity와 ordering을 설명하지만 application이 restart 뒤 expose하려 한 valid state가 무엇인지는 표시하지 않습니다. I/O timing을 control하는 host는 missing semantic bit를 이용할 수 있습니다.
Several write 뒤 sync 하나가 있다고 가정합니다. Secure cache는 subset을 different order로 evict하면서 Merkle tree와 journal을 매번 update할 수 있습니다. Captured disk image는 모두 cryptographic check를 pass할 수 있습니다. Replay가 one intermediate combination을 restore하면 application은 synchronization point 사이 state를 봅니다. 데이터를 forge하는 attack과 다릅니다. Adversary는 normal operation이 만든 authentic encrypted block과 metadata를 reuse합니다.
Threat model은 TEE hardware와 inside software를 trust하고 host에는 storage request, response, crash, replay timing control을 줍니다. Denial of service, access-pattern side channel, root key를 포함한 entire-disk rollback은 scope 밖입니다. Whole-disk rollback에는 small rollback-resistant trusted store 또는 monotonic 계수기가 따로 필요합니다.

Journal interpretation을 바꾸는 commit marker
AtomicDisk는 SGX-PFS의 in-place Merkle-tree structure를 유지하고 metadata와 journal handling을 modify합니다. Cache eviction은 trusted memory capacity를 넘지 않도록 block을 계속 write할 수 있습니다. 그 record는 uncommitted로 label합니다. Sync는 preceding group을 one application-visible state로 만드는 internal commit operation을 emit합니다.
Recovery journal에는 one logical block의 multiple 버전이 있을 수 있습니다. Recovery 중 AtomicDisk는 beginning부터 scan하고 committed group에 속한 first occurrence를 restore합니다. Bitmap이 already recovered logical block을 표시합니다. Uncommitted eviction에서 온 later occurrence는 ignore합니다. 이 ordering은 identical cryptographic block identity를 commit position으로 구분합니다.
Journal block은 MAC 연결을 만듭니다. Each block은 next block의 metadata를 통해 previous block을 authenticate합니다. Interior block을 remove 또는 replace하면 연결이 깨집니다. Last block rollback은 whole-disk rollback과 비슷하므로 external freshness anchor가 필요합니다. AtomicDisk는 trusted monotonic 계수기를 integrate할 수 있지만 evaluation은 journal 연결 안 eviction snapshot에 집중합니다.
Existing filesystem 아래에 배치한 atomicity
Prototype은 Occlum SGX library OS 안에서 100GiB secure virtual disk를 구현합니다. Standard block I/O를 expose하므로 existing filesystem이 transactional API나 modified write path를 필요로 하지 않습니다. 약 5,000 lines Rust가 SGX-PFS metadata와 journal logic을 adapt하고 Merkle tree design은 그대로 둡니다.
이 layering은 compatibility를 넓히지만 write amplification을 inherit합니다. One 데이터 block update가 authentication node와 journal entry를 요구할 수 있습니다. AtomicDisk는 application sync boundary를 protect하고 block interface 위 arbitrary group을 define하지 않습니다. Background flush를 issue하거나 fsync를 several device command로 translate하는 filesystem은 intended boundary를 entire stack에서 preserve해야 합니다.
Secure virtual disk는 TEE 안 code도 모두 trust합니다. Memory-safety bug, compromised library-OS component, leaked key는 sync atomicity가 repair하지 않습니다. Property는 storage adversary의 valid replay point를 좁힙니다. Larger confidential-computing threat model 중 한 layer입니다.
Valid snapshot 수를 센 security evaluation
Five datacenter block trace는 8~49GiB를 write하고 end에 sync 하나를 issue했습니다. Block I/O를 SGX-PFS protected file로 redirect한 PFSDisk comparison은 trace당 173,000~788,000개 recoverable transient snapshot을 만들었습니다. Every snapshot이 potential eviction-replay point였습니다. AtomicDisk는 each trace에서 single sync에 해당하는 valid state 하나만 만들었습니다.
이 metric은 attack success probability가 아니라 security-state cardinality를 측정합니다. Set을 hundreds of thousands에서 one으로 줄이면 cache behavior가 hidden commit point를 더 만들지 않음을 보여 줍니다. Evaluation은 real adversary가 every required block을 capture할 frequency나 repeated rollback에서 whole-disk freshness anchor가 behave하는 방식은 estimate하지 않습니다.
저자들은 earlier semantic에서 SGX-protected Redis를 compromise할 수 있는 eviction attack도 reproduce합니다. AtomicDisk guarantee는 Redis가 new transaction protocol을 배우기 때문이 아니라 recovery가 transient state를 reject하기 때문에 성립합니다. Transparency가 operational value입니다.
SGX-PFS와 같은 performance가 encryption-only speed는 아닌 이유
Test machine은 64-core Ice Lake Xeon, Intel DC S3500 SATA SSD, 256GiB memory와 64GiB SGX EPC, Linux 5.17, SGX SDK 2.15를 사용했습니다. Microbenchmark는 one synchronous direct-I/O job, 1GiB cache, 4KiB default block, 4KiB부터 256KiB sequential 또는 무작위 request를 구성했습니다.
AtomicDisk와 PFSDisk는 same Merkle-tree and journal work를 수행해 read와 write throughput이 비슷했습니다. Merkle tree가 없는 encryption and integrity comparison CRYPTDISK는 write에서 1.2~7.5배, read에서 2.2~2.8배 빨랐습니다. Sync atomicity는 SGX-PFS relative cost가 작지만 authenticated freshness 자체는 expensive합니다.
Trace-driven throughput도 PFSDisk와 같았습니다. Redis는 lightweight I/O pattern과 always-fsync setting에서 three virtual disk가 비슷했습니다. BadgerDB의 AtomicDisk와 PFSDisk는 CRYPTDISK throughput의 50~85%였습니다. Sequential write가 device를 saturate하지 않고 uniform small read가 authentication overhead를 expose했기 때문입니다.
이 result는 performance claim을 정확히 bound합니다. AtomicDisk는 selected protected-file comparison에 material cost를 더하지 않고 vulnerability를 없앱니다. Simpler encryption-only disk와 gap을 닫지는 않으며 SATA testbed는 NVMe, high queue depth, remote storage behavior를 establish하지 않습니다.
Durability hint를 넘어 security boundary가 된 sync
Application은 이미 fsync 또는 flush로 persistence를 요청합니다. AtomicDisk는 이 call을 only valid externally replayable state transition으로 elevate합니다. Entire stack은 completion을 precise하게 만들어야 합니다. Commit record와 authentication 연결이 durable하기 전에 success를 return하면 gap이 다시 열립니다. Durability 뒤 response를 잃어 retry하면 distinguishable committed outcome 두 개를 만들지 않아야 합니다.
Operational evidence는 committed journal sequence, last trusted freshness anchor, uncommitted byte, eviction count, recovery decision, sync latency를 포함해야 합니다. Remote attestation은 AtomicDisk code와 configuration을 verify할 수 있지만 underlying device가 flush ordering을 honor한다는 것도 prove해야 합니다. Hardware volatile cache에는 power-loss protection 또는 correctly implemented barrier가 필요합니다.
Snapshot과 backup system도 같은 boundary를 사용해야 합니다. Sync 사이 encrypted volume을 capture하면 AtomicDisk가 intentionally reject할 image를 저장할 수 있습니다. Management plane은 sync를 요청하고 commit evidence를 기다린 뒤에만 snapshot을 usable하다고 declare해야 합니다. Storage efficiency가 TEE commit protocol을 우회해서는 안 됩니다.
Adversary가 replay할 수 있는 valid state라는 설계 기준
Cryptographic storage review는 block이 encrypted and authenticated인지 묻습니다. AtomicDisk는 어느 authenticated disk state를 recovery가 accept하는지 더 묻습니다. Normal cache eviction이 many valid point를 만들면 privileged host는 MAC을 깨지 않고 history 중 하나를 선택할 수 있습니다.
Strongest fit은 conventional filesystem을 쓰고 transparent block storage가 필요하며 sync를 durability contract로 삼는 TEE workload입니다. Application-level replicated log가 있는 system은 disk 위 epoch를 이미 validate할 수 있고 rollback-resistant root가 없는 system은 anchor가 여전히 필요합니다. AtomicDisk는 그 protocol을 replace하지 않고 그 아래 hidden commit point를 제거합니다.
Procurement와 validation은 raw encrypted IOPS가 아니라 secure committed transaction per second를 비교해야 합니다. Denominator에는 Merkle-tree write amplification, sync latency, trusted 계수기 cost, recovery behavior, application-authorized state 수가 들어갑니다. AtomicDisk는 eviction-replay state를 제거하는 비용이 SGX-PFS relative로 거의 없음을 보여 주면서 SGX-PFS protection cost 자체는 substantial하다는 점도 밝힙니다.
출처와 저작권 안내
이 글은 Silicon & Systems가 작성한 편집 분석으로 threat model, mechanism, measurement, limit을 우리 표현으로 다시 썼습니다. 원문의 문장, 표, 도판은 재수록하지 않았고 도판은 이 글을 위해 새로 만들었습니다. 전체 논문은 USENIX FAST 2025 발표 페이지에서 확인할 수 있습니다. 저작권은 저자에게 있습니다. 2025.