GithubHelp home page GithubHelp logo

remote-hwa / sideline_zynq Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 4.0 449.18 MB

SideLine is a novel power side-channel vector based on delay-line components widely implemented in high-end SoC.

Python 0.97% C 99.02% C++ 0.01%
sideline side-channel remote hardware attack delay delay-line openssl aes delay-locked-loop

sideline_zynq's Introduction

SideLine - How Delay-Lines (May) Leak Secrets from your SoC

About SideLine

SideLine is a novel side-channel vector based on delay-line components widely implemented in high-end SoCs. In the associated paper, we provide a detailed method on how to access and convert delay-line data into power consumption information and we demonstrate that these entities can be used to perform remote power side-channel attacks. We report experiments carried out on two SoCs from distinct vendors and we recount several core-vs-core attack scenarios in which an adversary process located in one processor core aims at eavesdropping the activity of a victim process located in another core. For each scenario, we demonstrate the adversary ability to fully recover the secret key of an OpenSSL AES running in the victim core. Even more detrimental, we show that these attacks are still practicable if the victim or the attacker program runs over an operating system.

Figure 1: The three attack scenarios presented in SideLine

Content

This repository contains:

  • A detailed tutorial on how to build the first SideLine attack scenario as illustrated in Figure 1.a). Source codes, tutorials and other resources are located in the folder attack_setup.

  • DLL datasets for AES and RSA side-channel attacks and Python scripts for data treatment, Correlation Power Analysis and Simple Power Analysis. These resources are located in the folder attack_results.

Reproduce SideLine

SideLine on AES

The attack is conducted on a Xilinx Zynq-7000 SoC in baremetal mode. Two C programs (attacker and victim) are implemented in two different physical cores (AP#0 and AP#1).

  • The victim source code contains the OpenSSL AES crypto implementation. It is used as an encryption service by the attack program.
  • The attack source code contain several methods which configure the encryption mode and uses DMA and DLL to perform SCA on the algorithms running in the victim program.
  • The AES attack tutorial is available in AES_setup

SideLine on RSA (new!)

The attack is conducted on a Xilinx Zynq-7000 SoC in baremetal mode. A C program handles the RSA calculation and the DLL acquisition.

  • Several custom RSAs are implemented (naive, constant time, montgomery ladder). WolfSSL crypto library was used to develop the different RSA variants.
  • The RSA attack tutorial is available in RSA_setup

The SideLine Database

A complete database containing DLL acquisitions for AES and RSA can be found in the latest release.

Attack Results

  • Python scripts located in AES_results and RSA_results can be used to perform SPA and CPA attacks. These scripts can be directly used with the database file or with your own experimentation files.

Requirements

  • A Xilinx Zynq-7000 SoC based development board
  • Working installations of Vivado, Vitis and python3

sideline_zynq's People

Contributors

josephgravellier avatar remote-hwa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.