diff --git a/1-introduction.typ b/1-introduction.typ index 6258147..98fa8d8 100644 --- a/1-introduction.typ +++ b/1-introduction.typ @@ -19,7 +19,7 @@ hostage unless the requesting party has the authorization to access some resource. This tight coupling of security policy and access mechanisms works well since any access must be done through the kernel, so why not perform security checks alongside accesses? This coupling gets challenged as soon as one -tries to decouple access mechanisms from the kernel, as we see in Twizzler. +tries to seperate access mechanisms from the kernel, as we see in Twizzler. == Data-Centric Operating Systems @@ -32,7 +32,7 @@ it is built upon two key principles @twizzler: // I would add a paragraph motivating the data-centric approach // like why would i want the kernel out of the way? -These principiles emerge from treating persistent data as a first class citizen. +These principles emerge from treating persistent data as a first class citizen. Since NVM removes the necessity of the kernel to serialize and deserialize data from storage devices and memory, it only makes sense for it to be removed from the access path. If applications want to utilize memory as truly @@ -41,21 +41,21 @@ notion of persistent pointers. // this talks about why this kind of access rights is a secuirty issue. With the decoupling of the kernel and access methods, we have to rethink -how security policy for objects is enforced. While the kernel doesn't manage +how security policy for data is enforced. While the kernel doesn't manage the connection between applications and data, its still responsible for creating that connection. This provides one area of enforcement, where the kernel can check access rights before granting the application access -to the object, and then stay out of the way after. Twizzler programs -the MMU, per thread, to grant access rights, allowing for a point of enforcement; more -detail can be found in section 4.2. Now we have to build the underlying system that -must be enforced. +to data. Twizzler programs the MMU ( Memory Management Unit ) according to +granted access rights and then lets the hardware enforce it; more detail can be +found in section 4.2. Now we have to define the underlying system that must be +enforced. == Capability Based Security Systems Capability-based security systems have a rich history in research, and offer an alternative approach to security, in opposition to the Access Control Lists of prevalent OS's @linux_security. Boiled down, a capability is a token of -authority, holding at minimum some permissions and a unique identifier to which +authority, holding at minimum some permissions and a unique identifier for which "thing" those permissions apply to @cap-book. There are some additions we make to this basic defenition in order to apply capabilities in Twizzler, most notablity the addition of a cryptograhic signature. Since capabilities @@ -70,11 +70,11 @@ This paradigm permits kernel-free access of data, while also guaranteeing security by enforcing it right before the point of access through the MMU. == Our Contributions -In this thesis, I detail the fundamentals of security in the Twizzler -operating system, and discuss how I implement and refine some of the high -level ideas described in Twizzler @twizzler and an early draft of a Twizzler security -paper @twizsec. Additionally, we evaluate these systems inside kernel and user space, using -Alice/Bob scenarios and microbenchmarks. +In this thesis, I detail the fundamentals of security in the Twizzler operating +system, and discuss how I implement and refine some of the high level ideas +described in Twizzler @twizzler and an early draft of a Twizzler security paper +@twizsec. Additionally, we evaluate these systems inside kernel and user space +through microbenchmarks. A list of merged PR's to Twizzler: + #link("https://github.com/twizzler-operating-system/twizzler/pull/267")[Old Security Port to Main] @@ -82,15 +82,15 @@ A list of merged PR's to Twizzler: - Implementation of Capabilities mentioned in section 3. - Support to compile twizzler-security for the kernel and userspace -+ #link("https://github.com/twizzler-operating-system/twizzler/pull/273")[Adds creation of SigningKey / Verifying object pairs.] ++ #link("https://github.com/twizzler-operating-system/twizzler/pull/273")[Adds creation of SigningKey / VerifyingKey object pairs.] - Implementation of the keypair objects containing singing and verifying keys, mentioned in section 2. - Userspace tests for keypair creation and usage of signing / verifying keys. + #link("https://github.com/twizzler-operating-system/twizzler/pull/275")[Security Contexts and Benchmarking] - Implements Security Contexts for kernel and userspace, as described in section 4. - A benchmarking framework for the kernel. - - Benchmarks for cryptographic operations inside the kernel, and can be viewed in seciton 5. - - Userspace benchmarks of security policy creation, as shown in section 5. + - Benchmarks for cryptographic operations inside the kernel, shown in seciton 5. + - Userspace benchmarks of security policy creation, shown in section 5. More details can be found in this #link("https://github.com/twizzler-operating-system/twizzler/issues/268")[Github diff --git a/thesis.pdf b/thesis.pdf index e168784d8df9cd28e62940a614d3fcdb2ed10b26..d16cc9e6d5ebd33f1cd49c09d3bb633cf87065cc 100644 GIT binary patch delta 49076 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 diff --git a/thesis.typ b/thesis.typ index 7001bd6..7c5f5f1 100644 --- a/thesis.typ +++ b/thesis.typ @@ -31,16 +31,20 @@ // more feedback throughout, feel free to take or ignore #mol-abstract[ - Traditional operating systems permit data access through the kernel, applying - security policy as a part of that pipeline. The Twizzler operating system - flips that relationship on its head, focusing on an approach where data - access is a first-class citizen, getting rid of the kernel as a middleman. - This data-centric approach requires us to rethink how security policy - interacts with users and the kernel. In this thesis, I present the design and - implementation of core security primitives in Twizzler. Then I evaluate the - security model with a basic and advanced scenario, as well as microbenchmarks - of core security operations. Lastly, I discuss future work built off this - thesis, such as the incorporation of Decentralized Information Flow Control.] +Traditional operating systems permit data access through the kernel, applying +security policy as a part of that pipeline. The Twizzler operating system flips +that relationship on its head, focusing on an approach where data access is a +first-class citizen, getting rid of the kernel as a middleman. This +data-centric approach requires us to rethink how security policy interacts with +users and the kernel. In this thesis, I present the design and implementation of +core security primitives in Twizzler. Then I evaluate the security model with +microbenchmarks of core security operations, and ways to increase performace. +Lastly, I discuss a few things we plan to do in the continuation of this work, as +its not conplete by any means. +// Lastly, I discuss future work built +// off this thesis, such as the incorporation of Decentralized Information Flow +// Control. +]