implementing memory protection primitives on reconfigurable hardware

12
Implementing Memory Protection Primitives on Reconfigurable Hardware Brett Brotherton Nick Callegari Ted Huffmire

Upload: melissa-french

Post on 03-Jan-2016

19 views

Category:

Documents


0 download

DESCRIPTION

Brett Brotherton Nick Callegari Ted Huffmire. Implementing Memory Protection Primitives on Reconfigurable Hardware. Project Goals. Evaluate security primitives for reconfigurable hardware Build a real system with multiple cores Design a security policy for the system - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Implementing Memory Protection Primitives on Reconfigurable Hardware

Implementing Memory Protection Primitives on Reconfigurable

Hardware

Brett BrothertonNick CallegariTed Huffmire

Page 2: Implementing Memory Protection Primitives on Reconfigurable Hardware

Project Goals

•Evaluate security primitives for reconfigurable hardware

•Build a real system with multiple cores

•Design a security policy for the system

•Efficient memory system performance

•Programmatic interface to system

Page 3: Implementing Memory Protection Primitives on Reconfigurable Hardware

System Overview

OPB

ublaze 1 ublaze 1

Ref Monitor/Arbiter

Shared External Memory

AES Core

RS232 Ethernet

Page 4: Implementing Memory Protection Primitives on Reconfigurable Hardware

Security Policy

•Range0[0x41400000,0x4140ffff]; (Debug)

•Range1[0x28000000,0x28000777]; (AES1)

•Range2[0x28000800,0x28000fff]; (AES2)

•Range3[0x24000000,0x24777777]; (DRAM1)

•Range4[0x24800000,0x24ffffff]; (DRAM2)

•Range5[0x40600000,0x4060ffff]; (RS-232)

•Range6[0x40c00000,0x40c0ffff]; (Ethernet)

•Range7[0x28000004,0x28000007]; (Ctrl_Word1)

•Range8[0x28000008,0x2800000f]; (Ctrl_Word2)

•Range9[0x28000000,0x28000003]; (Ctrl_WordAES)

Page 5: Implementing Memory Protection Primitives on Reconfigurable Hardware

Security Policy

•Access0{M1,rw,R5}|{M2,rw,R6}|{M1,rw,R3}• |{M2,rw,R4}|{M1,rw,R0}|{M2,rw,R0};•Access1Access0|{M1,rw,R1}|{M1,rw,R9};•Access2Access0|{M2,rw,R1}|{M2,rw,R9};•Trigger0{M1,w,R7};•Trigger1{M1,w,R8};•Trigger2{M2,w,R7};•Trigger3{M2,w,R8};•Expr1Access0|Trigger3Access2*Trigger4;•Expr2Access1|Trigger2Expr1*Trigger1;•Expr3Expr1*Trigger1Expr2*;•PolicyExpr1*|Expr1*Trigger3Access2*• |Expr3Trigger2Expr1*Trigger3Access2*• |Expr3Trigger2Expr1*|Expr3|;

Page 6: Implementing Memory Protection Primitives on Reconfigurable Hardware

Security Policy DFA

init

M1 M2R0: rw rwR3: rw __R4: __ rwR5: rw __R6: __ rwR7: _w _w

M1 M2R0: rw rwR2: __ rwR3: rw __R4: __ rwR5: rw __R6: __ rwR8: __ _wR9: __ rw

{M2,w,R7}

M1 M2R0: rw rwR1: rw __R3: rw __R4: __ rwR5: rw __R6: __ rwR8: _w __R9: rw __

{M1,w,R7}{M2,w,R8} {M1,w,R8}

Page 7: Implementing Memory Protection Primitives on Reconfigurable Hardware

System Overview

OPB

ublaze 1 ublaze 1

Ref Monitor/Arbiter

Shared External Memory

AES Core

RS232 Ethernet

Page 8: Implementing Memory Protection Primitives on Reconfigurable Hardware

Performance Results

•One cycle latency increase for reference monitor 25.75 vs 26.75 cycles

•Area overhead very small 116 LUTs (1% increase)

•Clock speed increase 65 to 73 MHz

Page 9: Implementing Memory Protection Primitives on Reconfigurable Hardware

Impact of Moats

•Moats tested for size 0, 1, 2, 6•Best case: 0 and 6 only a 4% decrease in

clock frequency•Area overhead minimal

Page 10: Implementing Memory Protection Primitives on Reconfigurable Hardware

User Interface

• Currently using Hyperterminal to connect to AES core via serial connection Tested using 128 bit key & data

manually parsed into 32 bit lines and sent via hyperterminal.

• GOAL Incorporate a User Interface to

allow the user to select a data file and key file and receive the corresponding result over multiple communication platforms to test multi-core design and Reference Monitor.

s5816160000ce537f5e5a567cc9966d92590336763e6a118a874519e64e9963798a503f1d35

Page 11: Implementing Memory Protection Primitives on Reconfigurable Hardware

User Interface

•Progress Implemented User Interface in C++ to

allow more functionality and user friendliness.

SERIAL OR ETHERNET? [1-SERIAL][2-ETHERNET] ENCRYPT OR DECRYPT? [1-ENCRYPT][2-DECRYPT] INPUT FILENAME: KEY FILENAME: OUTPUT SENT TO OUTPUT.TXT

Page 12: Implementing Memory Protection Primitives on Reconfigurable Hardware

Demo

•Demo