Securing Conditional Branches in the Presence of Fault Attacks

Research output: Chapter in Book/Report/Conference proceedingConference contributionResearchpeer-review

Abstract

In typical software, many comparisons and subsequent branch operations are highly critical in terms of security. Examples include password checks, signature checks, secure boot, and user privilege checks. For embedded devices, these security-critical branches are a preferred target of fault attacks as a single bit flip or skipping a single instruction can lead to complete access to a system. In the past, numerous redundancy schemes have been proposed in order to provide control-flow-integrity (CFI) and to enable error detection on processed data. However, current countermeasures for general purpose software do not provide protection mechanisms for conditional branches. Hence, critical branches are in practice often simply duplicated. We present a generic approach to protect conditional branches, which links an encoding-based comparison result with the redundancy of CFI protection mechanisms. The presented approach can be used for all types of data encodings and CFI mechanisms and maintains their error-detection capabilities throughout all steps of a conditional branch. We demonstrate our approach by realizing an encoded comparison based on AN-codes, which is a frequently used encoding scheme to detect errors on data during arithmetic operations. We extended the LLVM compiler so that standard code and conditional branches can be protected automatically and analyze its security. Our design shows that the overhead in terms of size and runtime is lower than state-of-the-art duplication schemes.
Original languageGerman
Title of host publicationDesign, Automation & Test in Europe Conference - DATE 2018
Subtitle of host publicationInstitute of Electrical and Electronics Engineers
DOIs
Publication statusPublished - Mar 2018
EventDesign, Automation & Test in Europe Conference 2018 - Dresden, Germany
Duration: 19 Mar 201823 Mar 2018

Conference

ConferenceDesign, Automation & Test in Europe Conference 2018
CountryGermany
Period19/03/1823/03/18

Keywords

    Cite this

    Schilling, R., Werner, M., & Mangard, S. (2018). Securing Conditional Branches in the Presence of Fault Attacks. In Design, Automation & Test in Europe Conference - DATE 2018: Institute of Electrical and Electronics Engineers https://doi.org/10.23919/DATE.2018.8342268

    Securing Conditional Branches in the Presence of Fault Attacks. / Schilling, Robert; Werner, Mario; Mangard, Stefan.

    Design, Automation & Test in Europe Conference - DATE 2018: Institute of Electrical and Electronics Engineers. 2018.

    Research output: Chapter in Book/Report/Conference proceedingConference contributionResearchpeer-review

    Schilling, R, Werner, M & Mangard, S 2018, Securing Conditional Branches in the Presence of Fault Attacks. in Design, Automation & Test in Europe Conference - DATE 2018: Institute of Electrical and Electronics Engineers. Design, Automation & Test in Europe Conference 2018, Germany, 19/03/18. https://doi.org/10.23919/DATE.2018.8342268
    Schilling R, Werner M, Mangard S. Securing Conditional Branches in the Presence of Fault Attacks. In Design, Automation & Test in Europe Conference - DATE 2018: Institute of Electrical and Electronics Engineers. 2018 https://doi.org/10.23919/DATE.2018.8342268
    Schilling, Robert ; Werner, Mario ; Mangard, Stefan. / Securing Conditional Branches in the Presence of Fault Attacks. Design, Automation & Test in Europe Conference - DATE 2018: Institute of Electrical and Electronics Engineers. 2018.
    @inproceedings{7a8013057c6f460da83ead847c986e18,
    title = "Securing Conditional Branches in the Presence of Fault Attacks",
    abstract = "In typical software, many comparisons and subsequent branch operations are highly critical in terms of security. Examples include password checks, signature checks, secure boot, and user privilege checks. For embedded devices, these security-critical branches are a preferred target of fault attacks as a single bit flip or skipping a single instruction can lead to complete access to a system. In the past, numerous redundancy schemes have been proposed in order to provide control-flow-integrity (CFI) and to enable error detection on processed data. However, current countermeasures for general purpose software do not provide protection mechanisms for conditional branches. Hence, critical branches are in practice often simply duplicated. We present a generic approach to protect conditional branches, which links an encoding-based comparison result with the redundancy of CFI protection mechanisms. The presented approach can be used for all types of data encodings and CFI mechanisms and maintains their error-detection capabilities throughout all steps of a conditional branch. We demonstrate our approach by realizing an encoded comparison based on AN-codes, which is a frequently used encoding scheme to detect errors on data during arithmetic operations. We extended the LLVM compiler so that standard code and conditional branches can be protected automatically and analyze its security. Our design shows that the overhead in terms of size and runtime is lower than state-of-the-art duplication schemes.",
    keywords = "control-flow integrity, countermeasures, conditional branch, fault attacks",
    author = "Robert Schilling and Mario Werner and Stefan Mangard",
    year = "2018",
    month = "3",
    doi = "10.23919/DATE.2018.8342268",
    language = "deutsch",
    booktitle = "Design, Automation & Test in Europe Conference - DATE 2018",

    }

    TY - GEN

    T1 - Securing Conditional Branches in the Presence of Fault Attacks

    AU - Schilling, Robert

    AU - Werner, Mario

    AU - Mangard, Stefan

    PY - 2018/3

    Y1 - 2018/3

    N2 - In typical software, many comparisons and subsequent branch operations are highly critical in terms of security. Examples include password checks, signature checks, secure boot, and user privilege checks. For embedded devices, these security-critical branches are a preferred target of fault attacks as a single bit flip or skipping a single instruction can lead to complete access to a system. In the past, numerous redundancy schemes have been proposed in order to provide control-flow-integrity (CFI) and to enable error detection on processed data. However, current countermeasures for general purpose software do not provide protection mechanisms for conditional branches. Hence, critical branches are in practice often simply duplicated. We present a generic approach to protect conditional branches, which links an encoding-based comparison result with the redundancy of CFI protection mechanisms. The presented approach can be used for all types of data encodings and CFI mechanisms and maintains their error-detection capabilities throughout all steps of a conditional branch. We demonstrate our approach by realizing an encoded comparison based on AN-codes, which is a frequently used encoding scheme to detect errors on data during arithmetic operations. We extended the LLVM compiler so that standard code and conditional branches can be protected automatically and analyze its security. Our design shows that the overhead in terms of size and runtime is lower than state-of-the-art duplication schemes.

    AB - In typical software, many comparisons and subsequent branch operations are highly critical in terms of security. Examples include password checks, signature checks, secure boot, and user privilege checks. For embedded devices, these security-critical branches are a preferred target of fault attacks as a single bit flip or skipping a single instruction can lead to complete access to a system. In the past, numerous redundancy schemes have been proposed in order to provide control-flow-integrity (CFI) and to enable error detection on processed data. However, current countermeasures for general purpose software do not provide protection mechanisms for conditional branches. Hence, critical branches are in practice often simply duplicated. We present a generic approach to protect conditional branches, which links an encoding-based comparison result with the redundancy of CFI protection mechanisms. The presented approach can be used for all types of data encodings and CFI mechanisms and maintains their error-detection capabilities throughout all steps of a conditional branch. We demonstrate our approach by realizing an encoded comparison based on AN-codes, which is a frequently used encoding scheme to detect errors on data during arithmetic operations. We extended the LLVM compiler so that standard code and conditional branches can be protected automatically and analyze its security. Our design shows that the overhead in terms of size and runtime is lower than state-of-the-art duplication schemes.

    KW - control-flow integrity

    KW - countermeasures

    KW - conditional branch

    KW - fault attacks

    UR - https://arxiv.org/abs/1803.08359

    U2 - 10.23919/DATE.2018.8342268

    DO - 10.23919/DATE.2018.8342268

    M3 - Beitrag in einem Konferenzband

    BT - Design, Automation & Test in Europe Conference - DATE 2018

    ER -