This item is only available for download by members of the University of Illinois community. Students, faculty, and staff at the U of I may log in with your NetID and password to view the item. If you are trying to access an Illinois-restricted dissertation or thesis, you can request a copy through your library's Inter-Library Loan office or purchase a copy directly from ProQuest.
Permalink
https://hdl.handle.net/2142/124826
Description
Title
TRUDI: Trusted Userspace DMA Using IPC
Author(s)
Kausik, Neela Louise
Issue Date
2024
Keyword(s)
Direct Memory Access
Security
GPU
Graphic Processing Units
DMA
Abstract
As the computer industry progresses in accelerating applications with accelerators
like GPUs (Graphic Processing Units), the OS-kernel-level I/O
software stack for storage data access and network communication has increasingly
become the bottleneck of the end-to-end application execution. To
alleviate this new bottleneck, high-performance systems are evolving towards
user-space I/O services, where user-level libraries directly communicate with
storage and I/O devices for data transfers, bypassing the operating system.
Such systems pre-allocate and pin user memory, map for Direct Memory
Access (DMA), and return the DMA physical address. The userspace application
can use the returned DMA address to request the storage devices
to directly read from and write to the pinned memory. However, there are
currently no measures that prevent a malicious application from specifying
a DMA address for memory belonging to another process. In this thesis,
we propose TRUDI, a system design that enables a trusted user-level process
to maintain DMA addresses and initiate I/O requests on behalf of an
application process without exposing DMA addresses to the application process,
thereby preventing unauthorized access to the physical memory of other
processes. We provide the basic primitive of registering and sharing memory
buffers between an untrusted application and a trusted process. These
buffers can also be mapped for DMA with an I/O device by the trusted process,
which maintains the needed DMA addresses in metadata. This allows
the application to identify memory with a virtual address that the trusted
entity can verify and translate. With this shared-memory primitive, we can
build an isolated and high-throughput communication channel between the
untrusted application and trusted process. We exemplify this by implementing
a shared queue that allows CPU or GPU applications to communicate to the trusted process at high-throughput.
Use this login method if you
don't
have an
@illinois.edu
email address.
(Oops, I do have one)
IDEALS migrated to a new platform on June 23, 2022. If you created
your account prior to this date, you will have to reset your password
using the forgot-password link below.