···1919resource. This tight coupling of security policy and access mechanisms works
2020well since any access must be done through the kernel, so why not perform
2121security checks alongside accesses? This coupling gets challenged as soon as one
2222-tries to decouple access mechanisms from the kernel, as we see in Twizzler.
2222+tries to seperate access mechanisms from the kernel, as we see in Twizzler.
23232424== Data-Centric Operating Systems
2525···32323333// I would add a paragraph motivating the data-centric approach
3434// like why would i want the kernel out of the way?
3535-These principiles emerge from treating persistent data as a first class citizen.
3535+These principles emerge from treating persistent data as a first class citizen.
3636Since NVM removes the necessity of the kernel to serialize and deserialize
3737data from storage devices and memory, it only makes sense for it to be removed
3838from the access path. If applications want to utilize memory as truly
···41414242// this talks about why this kind of access rights is a secuirty issue.
4343With the decoupling of the kernel and access methods, we have to rethink
4444-how security policy for objects is enforced. While the kernel doesn't manage
4444+how security policy for data is enforced. While the kernel doesn't manage
4545the connection between applications and data, its still responsible for
4646creating that connection. This provides one area of enforcement, where
4747the kernel can check access rights before granting the application access
4848-to the object, and then stay out of the way after. Twizzler programs
4949-the MMU, per thread, to grant access rights, allowing for a point of enforcement; more
5050-detail can be found in section 4.2. Now we have to build the underlying system that
5151-must be enforced.
4848+to data. Twizzler programs the MMU ( Memory Management Unit ) according to
4949+granted access rights and then lets the hardware enforce it; more detail can be
5050+found in section 4.2. Now we have to define the underlying system that must be
5151+enforced.
525253535454== Capability Based Security Systems
5555Capability-based security systems have a rich history in research, and offer an
5656alternative approach to security, in opposition to the Access Control Lists of
5757prevalent OS's @linux_security. Boiled down, a capability is a token of
5858-authority, holding at minimum some permissions and a unique identifier to which
5858+authority, holding at minimum some permissions and a unique identifier for which
5959"thing" those permissions apply to @cap-book. There are some
6060additions we make to this basic defenition in order to apply capabilities in Twizzler,
6161most notablity the addition of a cryptograhic signature. Since capabilities
···7070security by enforcing it right before the point of access through the MMU.
71717272== Our Contributions
7373-In this thesis, I detail the fundamentals of security in the Twizzler
7474-operating system, and discuss how I implement and refine some of the high
7575-level ideas described in Twizzler @twizzler and an early draft of a Twizzler security
7676-paper @twizsec. Additionally, we evaluate these systems inside kernel and user space, using
7777-Alice/Bob scenarios and microbenchmarks.
7373+In this thesis, I detail the fundamentals of security in the Twizzler operating
7474+system, and discuss how I implement and refine some of the high level ideas
7575+described in Twizzler @twizzler and an early draft of a Twizzler security paper
7676+@twizsec. Additionally, we evaluate these systems inside kernel and user space
7777+through microbenchmarks.
78787979A list of merged PR's to Twizzler:
8080+ #link("https://github.com/twizzler-operating-system/twizzler/pull/267")[Old Security Port to Main]
···8282 - Implementation of Capabilities mentioned in section 3.
8383 - Support to compile twizzler-security for the kernel and userspace
84848585-+ #link("https://github.com/twizzler-operating-system/twizzler/pull/273")[Adds creation of SigningKey / Verifying object pairs.]
8585++ #link("https://github.com/twizzler-operating-system/twizzler/pull/273")[Adds creation of SigningKey / VerifyingKey object pairs.]
8686 - Implementation of the keypair objects containing singing and verifying keys, mentioned in section 2.
8787 - Userspace tests for keypair creation and usage of signing / verifying keys.
88888989+ #link("https://github.com/twizzler-operating-system/twizzler/pull/275")[Security Contexts and Benchmarking]
9090 - Implements Security Contexts for kernel and userspace, as described in section 4.
9191 - A benchmarking framework for the kernel.
9292- - Benchmarks for cryptographic operations inside the kernel, and can be viewed in seciton 5.
9393- - Userspace benchmarks of security policy creation, as shown in section 5.
9292+ - Benchmarks for cryptographic operations inside the kernel, shown in seciton 5.
9393+ - Userspace benchmarks of security policy creation, shown in section 5.
94949595More details can be found in this
9696#link("https://github.com/twizzler-operating-system/twizzler/issues/268")[Github
thesis.pdf
This is a binary file and will not be displayed.
+14-10
thesis.typ
···3131// more feedback throughout, feel free to take or ignore
32323333#mol-abstract[
3434- Traditional operating systems permit data access through the kernel, applying
3535- security policy as a part of that pipeline. The Twizzler operating system
3636- flips that relationship on its head, focusing on an approach where data
3737- access is a first-class citizen, getting rid of the kernel as a middleman.
3838- This data-centric approach requires us to rethink how security policy
3939- interacts with users and the kernel. In this thesis, I present the design and
4040- implementation of core security primitives in Twizzler. Then I evaluate the
4141- security model with a basic and advanced scenario, as well as microbenchmarks
4242- of core security operations. Lastly, I discuss future work built off this
4343- thesis, such as the incorporation of Decentralized Information Flow Control.]
3434+Traditional operating systems permit data access through the kernel, applying
3535+security policy as a part of that pipeline. The Twizzler operating system flips
3636+that relationship on its head, focusing on an approach where data access is a
3737+first-class citizen, getting rid of the kernel as a middleman. This
3838+data-centric approach requires us to rethink how security policy interacts with
3939+users and the kernel. In this thesis, I present the design and implementation of
4040+core security primitives in Twizzler. Then I evaluate the security model with
4141+microbenchmarks of core security operations, and ways to increase performace.
4242+Lastly, I discuss a few things we plan to do in the continuation of this work, as
4343+its not conplete by any means.
4444+// Lastly, I discuss future work built
4545+// off this thesis, such as the incorporation of Decentralized Information Flow
4646+// Control.
4747+]
444845494650