{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/129893"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/129893","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Exploiting and generalizing relative speculative leakage","abstract":"Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2025-10-20 without embargo terms","abstract_html":"Submission original under an indefinite embargo labeled &#x27;Open Access&#x27;. The submission was exported from vireo on 2025-10-20 without embargo terms","abstract_has_math":false,"creators":["Choudhary, Rutvik"],"institution":"University of Illinois Urbana-Champaign","degree_name":"Ph.D.","degree_level":"Dissertation","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Fletcher, Christopher W.","Fletcher, Christopher W","Marinov, Darko","Kumar, Rakesh","Morrison, Adam"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2025,"date_issued":"2025-07-18","date_published":"2025-07-18","updated_at":"2026-07-22T22:25:06Z","subjects":["Hardware Security"],"languages":["en","eng"],"rights":["Copyright 2025 Rutvik Choudhary"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"https://hdl.handle.net/2142/129893","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Fletcher, Christopher W.","Fletcher, Christopher W","Marinov, Darko","Kumar, Rakesh","Morrison, Adam"]},{"key":"dc:creator","label":"Author","values":["Choudhary, Rutvik"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2025-07-18","2025-08"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Ph.D."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Hardware Security"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en","eng"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2025 Rutvik Choudhary"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["https://hdl.handle.net/2142/129893"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2025-10-20 without embargo terms","The student, Rutvik Choudhary, accepted the attached license on 2025-07-18 at 07:26.","The student, Rutvik Choudhary, submitted this Dissertation for approval on 2025-07-18 at 07:43.","This Dissertation was approved for publication on 2025-07-18 at 11:14.","DSpace SAF Submission Ingestion Package generated from Vireo submission #22651 on 2025-10-20 at 16:58:50","Constant-time code has been, until recently, the de-facto way to write secure programs. Unfortunately recent microarchitecture-based attacks have been shown to undermine the security of modern software. The most notorious of these were speculative execution attacks. Previous attempts to protect against these attacks have either been too costly in terms of performance overhead, or had to reduce their protection scope, making them unusable for constant-time programs. There have been attempts to formalize speculative safety of programs and describe speculative leakage, but these were focused on modeling speculative execution only, and are only capable of providing \"satisfied\"/\"not-satisfied\" as an answer rather than something more descriptive. The first chapter proposes a hardware scheme, SPT, that utilizes a new security definition to provide comprehensive, low-overhead and software-transparent protection against speculative execution attacks. A \"secret\" is defined to be only the data that does NOT leak non-speculatively. We delay the execution of all speculative transmitters that operate on secret data. When a transmitter becomes non-speculative, we mark that the data passed to it as non-secret, and thus that data need not be protected from speculative leakage down the line. We use dynamic information flow techniques to further deduce what other data can be marked as non-secret as well. We describe the microarchitectural changes required to implement SPT in an out-of-order processor. We implement SPT in the gem5 simulator and evaluate it against the SPEC2017 benchmarks as well as some constant-time code. We find that it adds only 45%/11% overhead on average (depending on the attack model) relative to an insecure processor. Compared to a secure baseline with the same protection scope, SPT reduces overhead by an average 3.6×/3×. The second chapter utilizes the same definition of \"secret\" to reduce the overheads of software-level protection against speculative execution attacks. Rather than explicitly tracking secrets, we instead model \"attacker knowledge\"— data that is guaranteed to be leaked in a non-speculative execution. We can then remove protections for data that are part of attacker knowledge. This provides the guarantee that any data that does not leak in a non-speculative execution will never leak in a speculative execution, but with lower overhead than other software-level mechanisms. We deduce attacker knowledge for a given program using our proposed analysis, Declassiflow. It consists of a series of data-flow analyses and a symbolic execution pass. We implement the data-flow passes in LLVM and utilize Klee for the symbolic execution. We then use Declassiflow to show that we can reduce the protection overhead of speculative load hardening (SLH)—a state-of-the-art software-level mechanism—for protecting several constant-time programs. The third chapter generalizes the ideas of relative speculative leakage exploited by SPT and Declassiflow and proposes a theory for describing what can be leaked by arbitrary microarchitectural optimizations. We define a general notion of relative leakage and propose a concept known as the \"reach\", which describes what architectural state can be leaked by a program running on one machine relative to another machine. We provide a method for statically estimating the reach of arbitrary programs by using known leaky patterns called \"gadgets\". We also describe a method for formally verifying that a set of gadgets is safe to use for any possible program. We implement several CPU models in the uclid5 model checker and test various gadgets libraries against them."]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["Exploiting and generalizing relative speculative leakage"]}]}],"canonical_facts":{"dc:contributor":["Fletcher, Christopher W.","Fletcher, Christopher W","Marinov, Darko","Kumar, Rakesh","Morrison, Adam"],"dc:creator":["Choudhary, Rutvik"],"dc:date":["2025-07-18","2025-08"],"dc:description":["Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2025-10-20 without embargo terms","The student, Rutvik Choudhary, accepted the attached license on 2025-07-18 at 07:26.","The student, Rutvik Choudhary, submitted this Dissertation for approval on 2025-07-18 at 07:43.","This Dissertation was approved for publication on 2025-07-18 at 11:14.","DSpace SAF Submission Ingestion Package generated from Vireo submission #22651 on 2025-10-20 at 16:58:50","Constant-time code has been, until recently, the de-facto way to write secure programs. Unfortunately recent microarchitecture-based attacks have been shown to undermine the security of modern software. The most notorious of these were speculative execution attacks. Previous attempts to protect against these attacks have either been too costly in terms of performance overhead, or had to reduce their protection scope, making them unusable for constant-time programs. There have been attempts to formalize speculative safety of programs and describe speculative leakage, but these were focused on modeling speculative execution only, and are only capable of providing \"satisfied\"/\"not-satisfied\" as an answer rather than something more descriptive. The first chapter proposes a hardware scheme, SPT, that utilizes a new security definition to provide comprehensive, low-overhead and software-transparent protection against speculative execution attacks. A \"secret\" is defined to be only the data that does NOT leak non-speculatively. We delay the execution of all speculative transmitters that operate on secret data. When a transmitter becomes non-speculative, we mark that the data passed to it as non-secret, and thus that data need not be protected from speculative leakage down the line. We use dynamic information flow techniques to further deduce what other data can be marked as non-secret as well. We describe the microarchitectural changes required to implement SPT in an out-of-order processor. We implement SPT in the gem5 simulator and evaluate it against the SPEC2017 benchmarks as well as some constant-time code. We find that it adds only 45%/11% overhead on average (depending on the attack model) relative to an insecure processor. Compared to a secure baseline with the same protection scope, SPT reduces overhead by an average 3.6×/3×. The second chapter utilizes the same definition of \"secret\" to reduce the overheads of software-level protection against speculative execution attacks. Rather than explicitly tracking secrets, we instead model \"attacker knowledge\"— data that is guaranteed to be leaked in a non-speculative execution. We can then remove protections for data that are part of attacker knowledge. This provides the guarantee that any data that does not leak in a non-speculative execution will never leak in a speculative execution, but with lower overhead than other software-level mechanisms. We deduce attacker knowledge for a given program using our proposed analysis, Declassiflow. It consists of a series of data-flow analyses and a symbolic execution pass. We implement the data-flow passes in LLVM and utilize Klee for the symbolic execution. We then use Declassiflow to show that we can reduce the protection overhead of speculative load hardening (SLH)—a state-of-the-art software-level mechanism—for protecting several constant-time programs. The third chapter generalizes the ideas of relative speculative leakage exploited by SPT and Declassiflow and proposes a theory for describing what can be leaked by arbitrary microarchitectural optimizations. We define a general notion of relative leakage and propose a concept known as the \"reach\", which describes what architectural state can be leaked by a program running on one machine relative to another machine. We provide a method for statically estimating the reach of arbitrary programs by using known leaky patterns called \"gadgets\". We also describe a method for formally verifying that a set of gadgets is safe to use for any possible program. We implement several CPU models in the uclid5 model checker and test various gadgets libraries against them."],"dc:format":["application/pdf"],"dc:identifier":["https://hdl.handle.net/2142/129893"],"dc:language":["en","eng"],"dc:rights":["Copyright 2025 Rutvik Choudhary"],"dc:subject":["Hardware Security"],"dc:title":["Exploiting and generalizing relative speculative leakage"],"dc:type":["text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Ph.D."],"thesis:institution_name":["University of Illinois Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:06Z"}