  Caches have been used to construct various types of covert and side channels
to leak information. Most existing cache channels exploit the timing difference
between cache hits and cache misses. However, we introduce a new and broader
classification of cache covert channel attacks: Hit+Miss, Hit+Hit, and
Miss+Miss. We highlight that cache misses for cache lines in different states
may have more significant time differences, and these can be used as timing
channels. Based on this classification, we propose a new stable and stealthy
Miss+Miss cache channel. Write-back caches are widely deployed in modern
processors. This paper presents in detail a way in which replacement latency
differences can be used to construct timing-based channels (called WB channels)
to leak information in a write-back cache. Any modification to a cache line by
a sender will set it to the dirty state, and the receiver can observe this
through measuring the latency of replacing this cache set. We also demonstrate
how senders could exploit a different number of dirty cache lines in a cache
set to improve transmission bandwidth with symbols encoding multiple bits. The
peak transmission bandwidths of the WB channels in commercial systems can vary
between 1300 and 4400~kbps per cache set in a hyper-threaded setting without
shared memory between the sender and the receiver. In contrast to most existing
cache channels, which always target specific memory addresses, the new WB
channels focus on the cache set and cache line states, making it difficult for
the channel to be disturbed by other processes on the core, and they can still
work in a cache using a random replacement policy. We also analyzed the
stealthiness of WB channels from the perspective of the number of cache loads
and cache miss rates. We discuss and evaluate possible defenses. The paper
finishes by discussing various forms of side-channel attack.
