Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3062341.3062378acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article
Public Access

Decomposition instead of self-composition for proving the absence of timing channels

Published: 14 June 2017 Publication History

Abstract

We present a novel approach to proving the absence of timing channels. The idea is to partition the program's execution traces in such a way that each partition component is checked for timing attack resilience by a time complexity analysis and that per-component resilience implies the resilience of the whole program. We construct a partition by splitting the program traces at secret-independent branches. This ensures that any pair of traces with the same public input has a component containing both traces. Crucially, the per-component checks can be normal safety properties expressed in terms of a single execution. Our approach is thus in contrast to prior approaches, such as self-composition, that aim to reason about multiple (k≥ 2) executions at once.
We formalize the above as an approach called quotient partitioning, generalized to any k-safety property, and prove it to be sound. A key feature of our approach is a demand-driven partitioning strategy that uses a regex-like notion called trails to identify sets of execution traces, particularly those influenced by tainted (or secret) data. We have applied our technique in a prototype implementation tool called Blazer, based on WALA, PPL, and the brics automaton library. We have proved timing-channel freedom of (or synthesized an attack specification for) 24 programs written in Java bytecode, including 6 classic examples from the literature and 6 examples extracted from the DARPA STAC challenge problems.

References

[1]
J. Agat. Transforming out timing leaks. In POPL, 2000.
[2]
J. B. Almeida, M. Barbosa, J. S. Pinto, and B. Vieira. Formal verification of side-channel countermeasures using selfcomposition. Science of Computer Programming, 78(7), 2013.
[3]
J. B. Almeida, M. Barbosa, G. Barthe, F. Dupressoir, and M. Emmi. Verifying constant-time implementations. In USENIX Security Symposium, 2016.
[4]
M. S. Alvim, K. Chatzikokolakis, C. Palamidessi, and G. Smith. Measuring information leakage using generalized gain functions. In CSF, 2012.
[5]
M. Assaf, D. A. Naumann, J. Signoles, E. Totel, and F. Tronel. Hypercollecting semantics and its application to static analysis of information flow. In POPL, 2017.
[6]
R. Bagnara, P. M. Hill, and E. Zaffanella. The Parma Polyhedra Library: Toward a complete set of numerical abstractions for the analysis and verification of hardware and software systems. Science of Compututer Programming, 72(1-2), 2008.
[7]
G. Barthe, P. R. D’Argenio, and T. Rezk. Secure information flow by self-composition. In CSFW, 2004.
[8]
G. Barthe, J. M. Crespo, and C. Kunz. Relational verification using product programs. In FM, 2011.
[9]
N. Benton. Simple relational correctness proofs for static analyses and program transformations. In POPL, 2004.
[10]
J. Berdine, A. Chawdhary, B. Cook, D. Distefano, and P. W. O’Hearn. Variance analyses from invariance analyses. In POPL, 2007.
[11]
E. Çiçek, G. Barthe, M. Gaboardi, D. Garg, and J. Hoffmann. Relational cost analysis. In POPL, 2017.
[12]
Á. Darvas, R. Hähnle, and D. Sands. A theorem proving approach to analysis of secure information flow. In SPC, 2005.
[13]
dk.brics.automaton. Finite-state automata and regular expressions for Java. http://www.brics.dk/automaton/, 2017.
[14]
G. Doychev, B. Köpf, L. Mauborgne, and J. Reineke. CacheAudit: A tool for the static analysis of cache side channels. ACM Transactions on Information and System Security, 18(1), 2015.
[15]
D. Genkin, I. Pipman, and E. Tromer. Get your hands off my laptop: Physical side-channel key-extraction attacks on PCs. In CHES, 2014.
[16]
S. Gulwani and F. Zuleger. The reachability-bound problem. In PLDI, 2010.
[17]
S. Gulwani, S. Jain, and E. Koskinen. Control-flow refinement and progress invariants for bound analysis. In PLDI, 2009.
[18]
S. Gulwani, K. K. Mehra, and T. M. Chilimbi. SPEED: precise and efficient static estimation of program computational complexity. In POPL, 2009.
[19]
D. Hedin and D. Sands. Timing aware information flow security for a JavaCard-like bytecode. In Workshop on Bytecode Semantics, Verification, Analysis and Transformation, 2005.
[20]
J. Henry. Static analysis by path focusing. Master’s thesis, Grenoble INP, 2011.
[21]
J. Henry, D. Monniaux, and M. Moy. PAGAI: A path sensitive static analyser. In TAPAS, 2012.
[22]
P. C. Kocher. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems. In CRYPTO, 1996.
[23]
B. Köpf and D. A. Basin. Automatically deriving informationtheoretic bounds for adaptive side-channel attacks. Journal of Computer Security, 19(1), 2011.
[24]
S. Langkemper. The password guessing bug in Tenex. https://www.sjoerdlangkemper.nl/2016/11/01/ tenex-password-bug/, 2016.
[25]
P. Malacaria. Assessing security threats of looping constructs. In POPL, 2007.
[26]
L. Mauborgne and X. Rival. Trace partitioning in abstract interpretation based static analyzers. In ESOP, 2005.
[27]
D. A. Naumann. From coupling relations to mated invariants for checking information flow. In ESORICS, 2006.
[28]
N. Partush and E. Yahav. Abstract semantic differencing for numerical programs. In SAS, 2013.
[29]
C. S. Pasareanu, Q. Phan, and P. Malacaria. Multi-run sidechannel analysis using symbolic execution and max-SMT. In CSF, 2016.
[30]
A. Podelski and A. Rybalchenko. Transition invariants. In LICS, 2004.
[31]
J. C. Reynolds. The Craft of Programming. Prentice Hall International series in computer science. Prentice Hall, 1981.
[32]
G. Smith. On the foundations of quantitative information flow. In FOSSACS, 2009.
[33]
G. Snelting, D. Giffhorn, J. Graf, C. Hammer, M. Hecker, M. Mohr, and D. Wasserrab. Checking probabilistic noninterference using JOANA. it - Information Technology, 56(6), 2014.
[34]
M. Sousa and I. Dillig. Cartesian Hoare logic for verifying k-safety properties. In PLDI, 2016.
[35]
STAC. DARPA space/time analysis for cybersecurity (STAC) program. http://www.darpa.mil/program/ space-time-analysis-for-cybersecurity, 2017.
[36]
T. Terauchi and A. Aiken. Secure information flow as a safety problem. In SAS, 2005.
[37]
H. Unno, N. Kobayashi, and A. Yonezawa. Combining typebased analysis and model checking for finding counterexamples against non-interference. In PLAS, 2006.
[38]
D. M. Volpano, C. E. Irvine, and G. Smith. A sound type system for secure flow analysis. Journal of Computer Security, 4 (2/3), 1996.
[39]
WALA. IBM T.J. Watson Libraries for Analysis (WALA). http://wala.sourceforge.net/, 2017.
[40]
H. Yang. Relational separation logic. Theoretical Computer Science, 375(1-3), 2007.
[41]
H. Yasuoka and T. Terauchi. Quantitative information flow - verification hardness and possibilities. In CSF, 2010.
[42]
H. Yasuoka and T. Terauchi. On bounding problems of quantitative information flow. Journal of Computer Security, 19 (6), 2011.
[43]
H. Yasuoka and T. Terauchi. Quantitative information flow as safety and liveness hyperproperties. Theoretical Computer Science, 538, 2014.
[44]
A. Zaks and A. Pnueli. CoVaC: Compiler validation by program analysis of the cross-product. In FM, 2008.
[45]
D. Zhang, A. Askarov, and A. C. Myers. Language-based control and mitigation of timing channels. In PLDI, 2012.

Cited By

View all
  • (2024)Timing Side-Channel Mitigation via Automated Program RepairACM Transactions on Software Engineering and Methodology10.1145/367816933:8(1-27)Online publication date: 16-Jul-2024
  • (2024)Towards Efficient Verification of Constant-Time Cryptographic ImplementationsProceedings of the ACM on Software Engineering10.1145/36437721:FSE(1019-1042)Online publication date: 12-Jul-2024
  • (2024)Compositional Verification of First-Order Masking Countermeasures against Power Side-Channel AttacksACM Transactions on Software Engineering and Methodology10.1145/363570733:3(1-38)Online publication date: 14-Mar-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation
June 2017
708 pages
ISBN:9781450349888
DOI:10.1145/3062341
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 June 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Blazer
  2. Decomposition
  3. Subtrails
  4. Timing Attacks
  5. Verification

Qualifiers

  • Research-article

Funding Sources

Conference

PLDI '17
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)178
  • Downloads (Last 6 weeks)26
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Timing Side-Channel Mitigation via Automated Program RepairACM Transactions on Software Engineering and Methodology10.1145/367816933:8(1-27)Online publication date: 16-Jul-2024
  • (2024)Towards Efficient Verification of Constant-Time Cryptographic ImplementationsProceedings of the ACM on Software Engineering10.1145/36437721:FSE(1019-1042)Online publication date: 12-Jul-2024
  • (2024)Compositional Verification of First-Order Masking Countermeasures against Power Side-Channel AttacksACM Transactions on Software Engineering and Methodology10.1145/363570733:3(1-38)Online publication date: 14-Mar-2024
  • (2024)Owl: Differential-Based Side-Channel Leakage Detection for CUDA Applications2024 54th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)10.1109/DSN58291.2024.00044(362-376)Online publication date: 24-Jun-2024
  • (2024)Sound Abstract Nonexploitability AnalysisVerification, Model Checking, and Abstract Interpretation10.1007/978-3-031-50521-8_15(314-337)Online publication date: 15-Jan-2024
  • (2023)Quantifying and Mitigating Cache Side Channel Leakage with Differential SetProceedings of the ACM on Programming Languages10.1145/36228507:OOPSLA2(1470-1498)Online publication date: 16-Oct-2023
  • (2023)ENCIDER: Detecting Timing and Cache Side Channels in SGX Enclaves and Cryptographic APIsIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2022.316034620:2(1577-1595)Online publication date: 1-Mar-2023
  • (2023)Verifying Data Constraint Equivalence in FinTech SystemsProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00117(1329-1341)Online publication date: 14-May-2023
  • (2022)Enforcing Fine-grained Constant-time PoliciesProceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security10.1145/3548606.3560689(83-96)Online publication date: 7-Nov-2022
  • (2022)DeJITLeak: eliminating JIT-induced timing side-channel leaksProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549150(872-884)Online publication date: 7-Nov-2022
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media