File

advertisement
AcceSys Technology
11/30/2012
SCATEboard Walkthrough Task 2.1
SCATEboard is a DARPA CFT funded project to evaluate device hardening against
Side Channel Attacks (SCA). These attacks were published in 1997 by Paul
Kosher from Cryptography Research Inc. The attacks in the paper included
Power Attacks and Timing Attacks. More advanced attacks like Electro-Magnetic
(EM) Attacks and Acoustic Attacks have been added to the list over the years
as well as ways of defeating them. The attacks are significant due to them
involving physical processes of the system. The devices’ hardware would need
to be redesigned to protect against such attacks.
There is no standard, as of yet, to test these devices. However, there are
commercial services available (RisCure Inspector) for manufacturers to
evaluate the device against all side channels.
Side Channel Attack Test Evaluation Board (SCATEboard) allows manufacturers
or anyone to implement and evaluate a device against Side Channels with a
very small learning curve. It will be open-source and available to both the
research community and any party interested in Side Channel Analysis.
SCATEboard Task 2.1 is a Windows Program that allows you to try your hand at
some DPA attacks against some traditional cryptographic algorithms like DES,
RSA and AES.
Walkthrough
Basic Setup involves a PicoScope (should be 5000 or 6000 series for attacks)
Oscilloscope to, an FPGA Attacker and a Victim. In this walkthrough we will
be using the Nexys 2 board for the Attack and the Spartan-3E board for the
Victim. We will also be using a Windows 8 operating system, but the process
is the same from Windows XP, Vista and 7.
Step 0: Download the Source Files
Step 1: Connect the Victim (Spartan3E) Board to the Evaluation PC (and Power)
Step 2: Install Xilinx ISE Webpack or iMPACT (Free)
iMPACT is still used to program the tool chain for both the attacker and
victim. This is because this would be more familiar with the embedded
community. We would like to move to a more automated command-line equivalent
of the iMPACT or a direct program interface. However, it depends on how the
user wrote his or her own VHDL and programming file for the FPGA. Therefore,
in the interest of dealing with edge-cases and unknown errors, SCATEboard
just relies on iMPACT to program the FPGA.
AcceSys Technology
11/30/2012
Step 3: Run Scateboard_Gui.exe
This GUI features a Help and
About page for completion.
The Help page is a small
checklist of instructions on how
to run a DPA attack using the
GUI. While the About page only
shows the copyright information
on SCATEboard. This is v1.0 so
there is bound to be some
improvements in the near future.
SCATEboard GUI also features a nice file list on the
side as well as a text editor. The text editor
serves no purpose other than to allow the user to write and modify the attack
vector file and list file. These will be used in the Run functions.
Step 4: Create New Project
Click “File” then “New
Project”. This should open
a wizard-ish window to
allow you to enter the project name,
directory to use, and information about the
algorithm. Be sure that the information is
correct because it was designed for all
traditional algorithms (namely RSA, AES, and
DES). Also make sure the directory exists.
For this example we will use AES Algorithm.
Fill out the information as seen in the picture. Enter 10 Rounds, 128 Block
AcceSys Technology
11/30/2012
Length, 16 S-boxes, 8 bits Input of S-boxes, 16 S-box Rows and Columns. Click
“Next” and wait a while as the S-box Definition form gets generated. This
will take a while. After the form is visible, quickly tick the “All SBOXs are
the same” to remove the extra sbox definitions. Note: Other Algorithms such
as DES have a different S-box definition for their 8 S-boxes. RSA does not
use any S-boxes so is not currently supported. RSA would need sensitivity to
number of times the multipliers operations are executed.
Please input all the values you see or open the preloaded project. The first
and second values are 63 and 7C respectively. After completing the
definitions, press “Finish” to complete defining the new project.
Step 5: Connect the Picoscope
Step 6: Add Attack File and Run Capture
In this step we will try to run the capture of samples
(similar to Task 1 GetSamples.exe). This requires first
adding or defining the attack file. Be sure to use the “.atk” extension when
searching for the attack file or when writing your own. Make sure the size of
the input vector is exactly the same as you defined in the project
definition. Please also note that you should be in the habit of saving your
AcceSys Technology
11/30/2012
project regularly before running capture otherwise old samples may be written
by new samples that are not as
correct. Please have the Picoscope
software installed on your evaluation
PC otherwise it will fail on launch.
After adding
the attack
file, select it
and click on
“Run” and then “Run Capture”. Ensure
you have the epp.exe (from Task 1.2)
file in your project or it will ask
you to locate it.
The power samples should automatically
be added to the project. And be available to view. These power samples
contain a list of doubles ready for analysis. You will not be able to modify
these through SCATEboard GUI. Any modification won’t be saved. To save a
modification to a file, click it, edit it in the text editor field and press
the “Add” on top of the field.
Step 6: Add List File and Run Analysis
Add the list file in the same way you add the attack file. In this case, the
extension is “.lst” instead. Then select your list file as well as the
samples and click “Run Analysis”.
The Analysis should usually go without a hitch and return to you the possible
key visible down below. If the certain S-box was not targeted, it will show
as “00”.
AcceSys Technology
11/30/2012
Significance
SCATEboard is now able to take in a traditional cryptographic algorithm that
uses substitution boxes for non-linearity and attack it with DPA. All steps
are easily accessible with the GUI and will serve as a platform to take in
Custom designed algorithm APIs for Task 2.2. This User Interface also stores
projects so that future testing does not impede on previous results and
everything is neatly kept in the project directory.
Download