Skip to content

CEASER randomized cache

Last-level cache'in line-address-to-set mapping'ini encrypt et ve periyodik olarak re-key yap, böylece saldırganın eviction set'i kurulamadan stale olur — Prime+Probe gibi conflict-based cache saldırılarını çürütür.

Mechanism

Neden çalışır

Conflict-based LLC saldırıları (Prime+Probe, Evict+Reload) hepsi bir eviction set'e ihtiyaç duyar: victim line ile aynı cache set'ine map olan bir line grubu. Geleneksel cache'ler, physical line-address (PLA)'in sabit bir hash'i ile index'ler, dolayısıyla bir saldırgan çakışan line'ları deterministik olarak bulabilir — eviction set'i kurmak basittir.

CEASER, cache'i bir encrypted address space üzerinde index'ler. Bir Low-Latency Block Cipher (LLBC) — ~2 cycle içinde encrypt/decrypt yapan, ~10 byte key'li 4-aşamalı bir Feistel network'ü — b-bit PLA'yı cache'i index'lemek için kullanılan b-bit bir Encrypted Line-Address (ELA)'e map eder. Cipher'ın avalanche etkisi, spatially-correlated line'ları ilgisiz set'lere dağıtır, dolayısıyla PLA-based muhakeme artık conflict'leri tahmin etmez.

  • Encryption-only temel tasarımdır (CEASE).
  • CEASER = CEASE + Remapping: periyodik olarak key'i değiştir ve line'ları eski key'den yeni key'e kademeli olarak remap et. Bu, herhangi bir sabit line→set mapping'inin geçerli olduğu pencereyi sınırlar. Analiz, her 100 cache erişiminde ~1 line remap etmenin (%1 remap rate) eviction set'leri 100+ yıl saldırıya tolerans gösterecek kadar stale tuttuğunu gösterir; ~%1.1 yavaşlama, <24 byte eklenen storage ve OS desteği gerektirmeden.

Invariant: saldırgan, cache mapping'i re-randomize etmeden daha hızlı bir eviction set kurmalıdır — CEASER, build süresi içinde re-key yaparak bunu imkânsız kılar.

Walkthrough

CEASER bir microarchitectural cache tasarımıdır, bir software knob değil; kavramsal olarak:

Indexing path (per LLC access):
    PLA  --LLBC encrypt (key K)-->  ELA  -->  set = ELA[index bits]
    (decrypt on fill/writeback to recover PLA for tag/coherence)

Remapping (rekey) loop:
    every ~100 accesses:
        migrate one line from mapping(K_old) to mapping(K_new)
    when the whole cache is remapped:
        K_old <- K_new ;  pick fresh K_new

Eviction set kuran bir saldırgan üzerindeki etki:

1. Attacker probes addresses to find lines colliding in a target set.
2. The set membership depends on the current key K.
3. Before enough colliding lines are confirmed, the rekey/remap has
   shuffled the mapping -> the partially-built eviction set is invalid.
=> Prime+Probe cannot maintain a stable eviction set; the channel collapses.

Tek-key skew zayıf noktadır

CEASER'ın tek encrypted mapping'inin sonradan daha hızlı eviction-set algoritmalarıyla saldırılabilir olduğu gösterildi; takip eden CEASER-S (Skewed CEASER, ISCA 2019), cache'i skew'lere bölerek bir line'ın partition başına farklı set'lere map olmasını sağlar ve onu daha da sertleştirir. CEASER yalnızca conflict-based saldırıları hedefler — shared memory üzerindeki flush-based (Flush+Reload) channel'ları durdurmaz.

Mitigation

(Residual risk / bypass.) Geliştirilmiş eviction-set construction, düz CEASER için güvenli remap periyodunu azalttı ve CEASER-S'yi motive etti; shared-memory flush saldırıları ve occupancy/contention channel'ları kapsam dışındadır ve başka savunmalara ihtiyaç duyar (CAT gibi cache partitioning).

References