Back to Search
Start Over
Stack-Aware Hyperproperties
- Publication Year :
- 2023
-
Abstract
- A hyperproperty relates executions of a program and is used to formalize security objectives such as confidentiality, non-interference, privacy, and anonymity. Formally, a hyperproperty is a collection of allowable sets of executions. A program violates a hyperproperty if the set of its executions is not in the collection specified by the hyperproperty. The logic HyperCTL^* has been proposed in the literature to formally specify and verify hyperproperties. The problem of checking whether a finite-state program satisfies a HyperCTL^* formula is known to be decidable. However, the problem turns out to be undecidable for procedural (recursive) programs. Surprisingly, we show that decidability can be restored if we consider restricted classes of hyperproperties, namely those that relate only those executions of a program which have the same call-stack access pattern. We call such hyperproperties, \emph{stack-aware hyperproperties.} Our decision procedure can be used as a proof method for establishing security objectives such as noninference for recursive programs, and also for refuting security objectives such as observational determinism. Further, if the call stack size is observable to the attacker, the decision procedure provides exact verification.
- Subjects :
- FOS: Computer and information sciences
Computer Science - Logic in Computer Science
Computer Science - Cryptography and Security
D.2.4
F.4.1
Formal Languages and Automata Theory (cs.FL)
Computer Science - Formal Languages and Automata Theory
Cryptography and Security (cs.CR)
Logic in Computer Science (cs.LO)
Subjects
Details
- Language :
- English
- Database :
- OpenAIRE
- Accession number :
- edsair.doi.dedup.....e04a6c77cf4ab65dcf9b86241816cf08