diff --git a/1-introduction.typ b/1-introduction.typ index 67bfc5d..332a2a5 100644 --- a/1-introduction.typ +++ b/1-introduction.typ @@ -5,7 +5,6 @@ #mol-chapter("Introduction") // talk about the standard unix abstractions - In mainstream operating systems, an omnicient and all-powerful kernel enforces security policy at runtime. // what am i trying to say here. @@ -13,15 +12,26 @@ It acts as the bodyguard, holding all I/O and data 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? However, +alongside accesses? + + +This coupling gets challenged as soon as one tries to decouple access mechanisms +from the kernel, as we see in Twizzler. +Twizzler is a research operating system focused on new programming paradigms + +However, the enforcement of security policy starts getting complicated when we try -to separate the access mechanisms from the kernel. +to separate the access mechanisms from the kernel. + +// TODO: maybe give a brief introduction to twizzler? -//TODO: explain why this happens? -This problem arises in a certain class of operating systems. + + +//TODO: explain why this happens? == Data-Centric Operating Systems + //TODO: daniel feedback // I would add a paragraph motivating the data-centric approach // like why would i want the kernel out of the way? @@ -32,6 +42,10 @@ Data-centric operating systems are defined by two principles @twizzler: + They have a notion of pointers that are tied to the data they represent. +By defenition, they require the removal of the kernel from the access path. +This is desirable since it would remove the kernel overhead for data accesses, +resulting in pure performance gains for heavy I/O applications. + // then this paragrapch can focus on why removing the kernel // from the access path is a security probjem // maybe worth discussing how the access is tied to the mmu as well. diff --git a/3-cap.typ b/3-cap.typ index 080f9f2..9a6677b 100644 --- a/3-cap.typ +++ b/3-cap.typ @@ -5,6 +5,7 @@ // define a capability Capabilities are the atomic unit of security in Twizzler, acting as tokens of +//NOTE: point forward towards security contexts? protections granted to a process, allowing it to access some object in the ways it describes. Colloquially a capability is defined as permissions and a unique object to which those permissions apply, but in Twizzler we add @@ -28,7 +29,7 @@ struct Cap { // == Signature The signature is what determines the validity of the capability. The -only possible signer of some capability is who ever has permissions to the +only possible signer of some capability is who ever has permissions to read the signing key object, or the kernel itself. The signature is built up of a array with a maximum length and a enum representing what type of cryptographic scheme was used to create it; quite similar to the keys mentioned previously. @@ -46,6 +47,9 @@ paper @twizzler describes gates as a way to perform IPC, and calls between disti but in the context of this thesis it is sufficient to think of them as a region of allowed memory access. +// interesting! I think this model you describe is more general, if we were to add a SWITCH_CTX permission bit... +// something to think about + == Flags Currently, flags in capabilities are used to specify which hashing algorithm to use to form a message to be signed. We allow for multiple algorithms to be used to allow for backward capability when newer, more efficient hashing algorithms are created. @@ -56,6 +60,9 @@ form the message for the signature, but there's plenty of bits left to use. We hope for future work to develop more expressive ways of using capabilities, i.e. Decentralized Information Flow Control, as specified in 6.1. +//TODO: maybe worth discussing delegations if only to describe how they could be +// extended from capabilities (as a future work ofc) + #load-bib(read("refs.bib")) diff --git a/4-secctx.typ b/4-secctx.typ index fbe3f6f..856e331 100644 --- a/4-secctx.typ +++ b/4-secctx.typ @@ -2,10 +2,10 @@ #mol-chapter("Security Contexts") -Security Contexts are objects that processes attach to in-order to inherit the +Security Contexts are objects that threads attach to in-order to inherit the permissions inside the context. The contexts store capabilities, allowing for userspace programs to add capabilities to contexts, and kernel space to efficiently search -through them to determie whether a process has the permissions to perform a memory access. +through them to determine whether a process has the permissions to perform a memory access. == Base @@ -30,6 +30,9 @@ parse security context objects. Implicitly, the kernel uses this map for lookup while the user interacts with this map to indicate the insertion, removal, or modification of a capability. +//TODO: talk about the map in memory, and about how its flat, might be worth discussing in the context +// of not storing virtual address pointers. + === Masks Masks act as a restraint on the permissions this context can provide for some targeted object. This allows for more expressive security policy, such as being able to quickly restrict @@ -60,7 +63,7 @@ which holds onto security context references that a thread has. The enforcement of security policy in Twizzler happens on page fault when trying to access a new object @twizzler. Upon fault, the kernel inspects the target object and identifies the -default permissnons of that object. Then the kernel checks if the currently active +default permissions of that object. Then the kernel checks if the currently active security context for the accessing thread has either cached or capabilities that provide permissions. If default permissions + the active context permissions arent enough to permit the access, the kernel then checks each of the inactive contexts to see if they @@ -77,4 +80,14 @@ The original Twizzler paper @twizzler, and the following security paper go into more detail about the philosophy behind why enforcement works this way, such as the performance benefits of letting programs access objects directly without kernel involvement, etc. +//TODO: may be worth summarizing a few more bits here +// doesnt have to be super detailed or anything but its better to havea ... thing tie together +// than and a parathere with "etc" +// +// eg. recovering posix semantics and why thats desirable, allowing for +// "contained" threads, ... +// +// basically talk more about stuff from the original twizzler paper about why this style of enforcement +// is good, its fine to benefit + #load-bib(read("refs.bib")) diff --git a/5-results.typ b/5-results.typ index 980bf09..b0c2abb 100644 --- a/5-results.typ +++ b/5-results.typ @@ -32,14 +32,25 @@ TBA == Micro Benchmarks Additionally, we have microbenchmarks of core security operations in Twizzler. All benchmarks were run with a Ryzen 5 2600, with Twizzler virtualized in QEMU. Unfortunately +//TODO: do not say they they should be the same :sob:, instead say that finding +// the difference between virtualized performance and actual performance is future work I ran out of time to perform benchmarks on bare metal, but they should be the same, if not more, performant. === Kernel - There a couple of things we benchmark inside the kernel, including core cryptographic operations like signature generation and verification, as well as the total time it takes to verify a capability. + +//TODO: is this with SIMD in kernel? maybe worth discussing this nuance +// +// how many times did you run the experimnt and how were the stats calculated. +// +// could be interesting to compare signature verification cost as the amount of data +// to verify goes up +// my_note: (wouldnt this only be applicable towards delegations though since others are always +// done properly) +// #figure( table( columns: (auto, auto), diff --git a/6-conclusion.typ b/6-conclusion.typ index 56de786..7dcde7b 100644 --- a/6-conclusion.typ +++ b/6-conclusion.typ @@ -2,6 +2,9 @@ #mol-chapter("Conclusion") +//TODO: So, this is more a summary. Which is good to have here, but +// you'll want to have some conclusions -- e.g. What did you learn (e.g. about the +// cost of the operations) In short we provide a general overview of the critical security components for security system in Twizzler, along with implementation details and desgin descisions. The evaluation programs show how @@ -11,6 +14,8 @@ programmed. Lastly we go over microbenchmarks to show and explain the cost of th == Future Works +// TODO: Maybe go into more detail here. There's a number of things that are discussed +// as future work throughout that could use a couple sentences each here. In the future I hope to take the primitives created during my thesis, and apply them towards the implementation of Decentralized Information Flow Control, as described in @flume, into the Twizzler security model. Additionally I would love to see how the current security model @@ -19,7 +24,6 @@ the orignal paper @twizzler. == Acknowledgements - I couldn't have done the work for this thesis and for Twizzler if it wasn't for the support I've recieved from my advisor Owen Arden and my technical mentor Daniel Bittman! I owe both of you so much, not just for the class credit but also for how much I've learned in diff --git a/thesis.pdf b/thesis.pdf index 33c08ae905b957db15a7ab24c343e837f1e4f269..a3a3ac89a0a9925bf59edb2ab1a67dce1bbdd968 100644 GIT binary patch delta 25533 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 UC`wJ^vNSifG~!ZKb@g`x0D|%P{{R30 delta 24772 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 E0K$9T&j0`b