2.5 - Crypto_ATMEL

Report
CryptoAuthentication™
Real. Easy.
1
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Agenda
• Cryptography Introduction
• Use Cases for Hardware Security Devices
• Authentication, Trusted Identification, Secure boot, Download
Protection, Anti-cloning, Consumption tracking, and more
• Crypto Authentication Product Portfolio
• ATSHA204(A)
• ATAES132
• ATECC108(A)
• FIPS certified Embedded Systems
• Trusted Platform Module
2
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Does Security Matter?
What Happened?
•
Hackers loaded unauthorized code
into system
•
Common system architecture to
store program in Flash and let users
download updated versions from the
web
How Can Atmel Help?
•
3
Put ATSHA204 in system to
enable firmware validation
capability upon any software
download or update event
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Does Security Matter?
4
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Does Security Matter?
What Happened?
•
Hackers exploited bug in
crypto code
•
Hard for every system
designer to be a
cryptographic expert,
open-source crypto
code may be imperfect
How Can Atmel Help?
Add ATSHA204 for:
5
© 2014 Atmel Confidential
•
•
Secure key storage
•
Random number
2014
generator
Hardware
implementation of
algorithm
CryptoAuthentication™
Concepts of
Cryptographic
Algorithms
6
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Encryption vs. Authentication
Encryption
Text
Encrypt
Cipher
Text
Decrypt
Only Receiver can see the text in the clear
Authentication
Text
Sign
Signature
Verify
Text
Receiver can determine identity of sender,
make sure text wasn’t changed
7
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Text
Hashing vs. Encryption
• Data is scrambled/compressed into a fixed length digest
• Constant input always generates the same digest
Hash
(1 Way)
• Can be used to verify the identity of the sender
• Can verify the integrity of the message - that it hasn’t
been changed
• Usually SHA, but AES can be used as a hash algorithm
• Data can be scrambled and unscrambled
Encryption
(2 Way)
• Provides confidentiality so that data can only be
understood by authorized users
• Common algorithms: AES, DES, RSA, ECC
8
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Symmetric Authentication
System
A
KEYSECRET
System
B
KEYSECRET
SHA256
SHA256
System B
Compares the
Hash of M with
the Response to
verify the shared
Secret
Challenge
M
Response
• Notice System A and System B MUST Share Knowledge of a Secret Key
• All Systems with Secret Key can create and verify
9
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Asymmetric Authentication
KEYPRIVATE
M
Sign
Verifies Message
with the Signature
and Public Key of
the Signer
KEYPUBLIC
Signature
Verify
Message
•
•
•
•
The Signer has a unique Private Key
Only the System with the Private Key can Sign the message
All Systems can verify the signature
Verify uses only public data
1. Message to Sign
2. Signature generated by the private key
3. Public Key associated with the private key
10
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Hardware Security
System Use Cases
11
© 2014 Atmel Confidential
CryptoAuthentication™
2014
CryptoAuthentication
• Authentication
• Mobile devices: Chargers, batteries, adapters, speakers,
•
keyboards, etc.
Industrial devices: Sensors
• IP Protection
• Prevent copying/cloning of system and software, authenticate
phone/tablet software to OEM hardware, manage licensing
revenue
• Secure Communication
•
• Wireless Systems, Wired Systems (PLC, Ethernet, ...),
Trusted Operation
• Secure boot to ensure that system works as desired – medical,
•
12
industrial, metering
Encrypted downloads: ensure OEM approved software
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Symmetric* Authentication Example
Symmetric Authentication occurs when host verifies that its key and the
client’s key match.

Host
SecureStorage
MCU
Verified
Not
Verified
Challenge
Client
SecureStorage
Random
Number
HASH
VALUE
(Digest)
HASH
VALUE
(Digest)
HASH
Function
(SHA)
HASH
Function
(SHA)
=?

Verify

Response
*With symmetric authentication the host and client always have the same secret key.
13
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Asymmetric Authentication Phases
•
The authentication of ECC108 is done in two phases
•
First Phase: Verify Certificate Signature
•
•
Is the device certificate signed by my trusted certificate chain?
Perform ECDSA verify (signer public key, signature, digest of cert)
After First Phase, you can trust the device public key
•
14
Second Phase: Verify Private Key
•
•
Send random message to be signed by the device private key
Perform ECDSA verify (device public key, signature, random message)
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Asymmetric Authentication
Phase 1
Host Public
Key
Digest
Function


Certificate
Data
+
Verify
Public
Key

 Host requests & receives certificate from client
extracts signature, client’s public key, & certificate
 Hostdata.
Then hashes certificate data to create a digest.
runs ECDSA Verify Calculation on its public key,
 Hostdigest
& client’s signature. If it succeeds then
client’s public key is verified, and can go to phase 2.
15
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Asymmetric Authentication
Phase 2




Verify
Private
Key
ATECC108

creates random number challenge
 Host
sends challenge to client.
 Host
Client uses ECDSA engine to sign random number with client’s
 private key.
 Client sends signature to host
Host runs ECDSA Verify using client public key verified in phase 1,
 random number, & new signature from client. If it succeeds
then the Private Key is verified.
16
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Asymmetric Authentication
The two phases of ECDSA put together
Host
Host
Public Key
Digest
Function

Certificate

ECDSA
Verify
Calculation
Fail
17
© 2014 Atmel Confidential

Client Public
Key
Success
Random
Random
Challenge
Number
Generator
Verify
Private
Key
Certificate
Data
Client
Public
Key
ECDSA
Verify
Calculation
Fail
ATECC108
Accessory
Signature
Verify
Public
Key


MCU
Accessory (Client)
Client
Private
Key
Challenge

Signature

ECDSA
Signature
Engine
Success
CryptoAuthentication™
2014

Authentication Can Mean Many Things
18
•
User Identity – Validate that a user is who he says he is without
having to reveal the user’s secret. Authenticate serial numbers
•
Sensor Location – Identify which sensor, where it’s located,
validate source of the control message
•
Data Integrity – Verify that the message (file/packet/data)
hasn’t been compromised when in transit/storage
•
Consumables – Maintain OEM revenue flow (razor/razor blade
business model). Ensure that device are not used beyond their
expected life
•
Spare Parts – Verify only factory genuine parts are used
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Secure Communication
Secure Session Key Generation
● Session Key Generation for Symmetric-key Based Systems
● Tamper-resistant Hardware Security IC Provides Root of
Trust
● Achieve Both Machine Authentication and Secure
19
© 2014 Atmel Confidential
Communications
CryptoAuthentication™
2014
Firmware IP protection - Method of Protection
 Concept: Software Communicates with Security Device
 Send challenge message to security chip, check response for
correctness
 Only systems with properly programmed security devices will
work correctly
 Goal: Increase Cost of Attack!
 If properly implemented, each check in the code must be
found and removed separately
 Require a new and separate attack with each revision of
program
20
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Security Devices Can Help Prevent Piracy
• Software communicates with security device
• Send challenge message to security chip, check
response for correctness
• Only system with properly programmed security device
will work correctly
• Multiple checks in software
• 10, 100, 1000 – as many as are practical
• Different values for each check
• Be creative!
• Use diverse methods to send challenge and deal with
response
• Some methods should include fixed challengeresponses, some should include random challenges and
compiled in keys
• Change methods with each software update
• Use all key slots, check different set of slots with each
version
21
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Simple Example
// 0x1234 is challenge to ATSHA204*
// 0xABCD is correct response from ATSHA204
. . .
if (sendChallenge(Slot0, 0x1234) != 0xABCD)
{ error(“System Fault”); exit(-1); }
. . .



ATSHA204 in every system has same secret in Slot0
Practically infinite number of possible challenges
 Only one correct response for each challenge
Each system could optionally have unique challengeresponse pairs compiled in
This code construct may be easy to find and remove via reverse
compilation
*These examples show the challenge and response as a 16 bit integer for
clarity and simplicity. They will actually be 32 byte arrays for ATSHA204.
22
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Anti-Piracy Example Technique using
• Fixed Challenge Response
CLIENT
MICRO
RESPONS
E
ad00 10e0 d467 25de
8c60 8f60 5b93 5f7e
2354 a436 cb44 1486
f18d 03b2 d911 81cf
Challenge
CHALLENG
E
ad00 10e0 d467 25de
8c60 8f60 5b93 5f7e
2354 a436 cb44 1486
f18d 03b2 d911 81cf
ad00 10e0 d467 25de
8c60 8f60 5b93 5f7e
2354 a436 cb44 1486
f18d 03b2 d911 81cf
ATSHA204
Secret
Key
SHA256
Response
=?
68b1
4c36
12f0
8dc2
282b
629c
96d3
2484
91de
b8dd
e3c5
4463
2c05
447f
8797
3483
68b1
282b 91de 2c05
01000110010111100000
4c36
629c b8dd 447f
11110100010110010111
12f0
96d3 e3c5 8797
00111111010101001011
8dc2
2484 4463 3483
1110000111110010
Yes
Authentication Verified
•But what if the authentication verification answer is no?
23
© 2014 Atmel Confidential
Select Insert > Header & Footer
> Type Title in Footer 2014
field 03/14/2012
CryptoAuthentication™
Slightly More Complicated Example
// 0x1234 is challenge to ATSHA204
// 0xABCD is correct response from ATSHA204
. . .
int resp, chal = 0x1200;
chal += 0x0034;
resp = sendChallenge(Slot0, chal);
answer += resp;
answer -= 0xABCD;
. . .

Vary the constructs

Use state variables as the challenge

Use responses as part of calculation, jump vector, etc.
An attacker with a logic analyzer on the bus may be able to
record all the correct responses
24
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Even More Complicated Example
Microcontroller
Challenges
Compiled
into Software
Intermediate Keys
Compiled
into Software

Date, Time,
RNG, etc.
ATSHA204
Unique

SHA-256
Hash
Engine

Intermediate
Keys
Nonce

SHA-256
Hash
Engine


Response 
Do They
Match ?

No

Challenge 
SHA-256
SW

Secure
Key
Storage
Yes

Can’t be attacked with a logic analyzer
25
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Measures that could be taken if the system fails
the validation process
•
•
•
•
Send Error message
Blacklist a device
Make a device in-operable
Have code do something unexpected or incorrect (ex. Cell
phone always dials wrong numbers)
• Limit/Reduce functionality of device
• Display message stating that the required (legitimate)
software must be downloaded
• Some other creative idea
26
© 2014 Atmel Confidential
CryptoAuthentication™
2014
No Limits to Programmer’s Creativity!
• Multiple checks in software, each different
• 10, 100, 1000 – as many as are practical
• Change methods with each software update
• Program multiple slots, each version works differently
• Use all the key slots & methods
• Vary the slots used with date, revision number
• Make sure that some methods require runtime analysis
• Chain or combine one response as the next challenge
• Use response as part of a jump vector or table pointer
• Consider web-based system enablement
• Server can use ATSHA204 dongle for secure checks
• ATSHA204 includes password handler
• May provide useful capability in some situations
• Maintain blacklist of invalid serial numbers
• Can be updated with software revisions
and so on…
27
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Increase the Complexity
CC + PA + CM + DC + RC + TK + RK
CC + PA + CM + DC + RC + TK
CC + PA + CM + DC + RC
MU + CC + PA + CM + DC
MU + CC + PA + CM
•
•
•
•
•
•
•
•
RK = Rolled Key
TK = Move the Challenge to Temp Key
MU + CC
RC = Random Challenge Response
DC = Dynamic Challenge on the Stack
MU
CM = Code Misdirection
PA = Periodic Authentications
FC
Increased
Protection
CC = Chaining Challenge Responses
MU = Multiple Unordered Fixed
Chall/Resp
None
• FC = Fixed Challenge Response
28
© 2014 Atmel Confidential
CryptoAuthentication™
2014
CryptoAuthentication
products
29
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Crypto Architecture
Optimized for high security, ease-of-use and low cost
Attackers cannot
see what’s inside
Standards based
crypto engine
between interface
and memory
Secured EEPROM for
keys & data
Tamper-hardened Hardware Boundary
© 2014 Atmel Confidential
Unique Serial
Number
ECC / SHA /AES
Cryptographic
Engine
Monotonic
Counters
Secured
EEPROM
Tracks number
of
authentications
High Quality
Random Number
Generator
I/O options
simplify
design in
30
Isolates any
attack to a
single device
Required for
every crypto
protocol
Multiple
Serial I/O
options
CryptoAuthentication™
2014
Hardware Security Features
• Strong Multi-Level HW Security:
ATMEL CryptoAuthentication
• Active shield over entire chip
• All memories internally encrypted
• Data independent crypto execution
• Randomized math operations
• Internal state consistency checking
• Voltage tampers, isolated power rail
• Internal clock generation
• Secure test methods, no JTAG
• No debug probe points, no test pads
• No package or die identification
Standard
Devices
• Designed to Defend Against:
• Microprobe attacks
• Timing attacks
• Emissions attacks
• Faults, invalid command attacks
• Power cycling, clock glitches
• Partial personalization attacks
Cannot achieve this level of
security with software alone!
31
© 2014 Atmel Confidential
CryptoAuthentication™
2014
High Level Device Comparison
World Class Hardware Security to Complement Every Micro
•
ATSHA204
•
•
•
•
•
ATECC108
•
•
•
•
•
Standard SHA256 hash algorithm
Secure key storage (16 slots)
Turnkey authentication, validation, key derivation, password checking
Functionality for both Host and Client configurations
Full 256-bit Elliptic Curve Cryptography (ECC)
No requirement for secure storage in the host system
Fast execution reduces code and performance requirements
Complete compatibility with ATSHA204
ATAES132
• Secure storage for both data (32Kb) and keys (16 slots)
• Rich command set to support every system architecture
• Drop-in compatibility with industry standard 32Kb Serial EEPROM
32
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Where to Use ATECC108, ATSHA204 or ATAES132
• Customers Who Are Most Price Sensitive – Use ATSHA204
• Host hardware cannot be easily changed – Use ATECC108
• Compatibility with Serial EEPROM is a benefit
• All Three Parts use same packages & pinout when configured for I2C
• Systems that need full software compatibility or SPI – Use ATAES132
• All components of system come from same OEM – Use ATSHA204
• Systems w/many partners, complex ecosystem – Use ATECC108
• Need to Secure up to 4Kbytes of data for Fingerprints, Calibration
data, Firmware blocks, etc.. – Use ATAES132
33
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Standards-Based
Security
Targeting OS-Based
Embedded Systems
34
© 2014 Atmel Confidential
CryptoAuthentication™
2014
What is a TPM?
TPM is a Hardware-based Key Storage device providing
a “Secure Vault” for any Embedded System
•
Four Primary Capabilities
Platform Integrity
• Authentication
• Secure Communication
• IP Protection
•
•
Asymmetric Algorithm (RSA)
Supports 512, 1024, & 2048 keys
• SHA-1 Hashing & HMAC
•
• Industry Standard Specification
Trusted Computing Group
• In every commercial PC, most servers
•
35
© 2014 Atmel Confidential
CryptoAuthentication™
2014
TPM … Way Beyond PCs
•
•
•
•
•
•
•
•
•
•
36
Anything on a network!
LTE base stations
Servers
Multifunction printers
Gambling / gaming machines
Access points
Smart appliances with network
connectivity
Test & measurement devices
Mobile payment terminals
Inventory control terminals
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Support Tools
37
© 2014 Atmel Confidential
CryptoAuthentication™
2014
ACES Demonstration/Evaluation Software
www.atmel.com/cryptokits
38
© 2014 Atmel Confidential
•
ACES
• Demo
• Evaluate
• Educate
• Design
•
A platform to exercise
CryptoAuthentication devices
•
Demos & Wizards to
visualize end uses
•
Learn the memory and
commands of
CryptoAuthentication devices
•
See properly formatted
commands for firmware
•
Stores and reloads
configurations
•
Works with any
CryptoAuthentication kit
CryptoAuthentication™
2014
CryptoAuthentication Tools and Support
• www.atmel.com
• Stand alone Library for Atmel CryptoAuthentication Devices
• ATSHA204
• http://www.atmel.com/tools/CRYPTOAUTHENTICATIONATSHA204DE
VELOPMENTLIBRARY.aspx
• ATECC108
• http://www.atmel.com/tools/CryptoAuthentication_ATECC108_Devel
opment_Library.aspx
• ATAES132
• http://www.atmel.com/tools/CRYPTOAUTHENTICATIONATAES132DE
VELOPMENTLIBRARY.aspx
39
© 2014 Atmel Confidential
CryptoAuthentication™
2014
Logic Analyzer
Built In Atmel Protocol Analyzer
• Saleae
• Low cost Logic Analyzer with support for both I2C and Atmel’s Signal Wire
Interface (SWI)
• App note available at:
http://www.atmel.com/Images/Atmel-8847-CryptoAuth-ATSHA204-SWI-I2CDebugging-Saleae-Logic-Analyzer-ApplicationNote.pdf
40
© 2014 Atmel Confidential
CryptoAuthentication™
2014
CryptoAuthentication Tools and Support
• Application Notes
• ATSHA204 Authentication Modes
• ATSHA204 Single-Wire and I2C Seamless Debugging Using Saleae Logic
Analyzer
• Secure Session Encryption Key Exchange with ATSHA204
• Secure Boot Simplified
• Designing with CryptoAuthentication Client Devices
• Application Brief: Analyzing Strength of Security
•
41
© 2014 Atmel Confidential
The ATECC108 supports all the functionality of the ATSHA204
CryptoAuthentication™
2014
AT88CK490 CryptoAuthentication
Demonstration & Evaluation Kit
ATSHA204
ATECC108
ATAES132
Software: Atmel Crypto Evaluation Studio (ACES)
42
© 2014 Atmel Confidential
CryptoAuthentication™
2014
AT88CK101- ()CryptoAuthentication Development Kit
Evaluate and Develop with
AT88CK101STK
• Development Tools Reduce
Time to Market
• Easily connect to any AVR or
•
ARM development platform
100% support for Atmel MCUs
and development kits
• Complete Development
Environment
• Source code libraries and
example code available for free
at www.atmel.com/cryptokits
• Libraries fully tested for
AVR micros
* AT88CK101STK8-MAH (UDFN) shown
43
© 2014 Atmel Confidential
• ACES Software Exploration tool
• Ordering Codes based on
package type
CryptoAuthentication™
2014
Introducing Atmel’s
Embedded TPM
Starter Kit!
• Start sending commands to the
TPM immediately
• Includes…
• TPM SMBus Module
• Mounted on AT90USBKey Board
• Standard A to Mini B USB device
•
•
•
cable
Mini A to receptacle A USB host
adapter
USB flash drive
Alternate 9V battery supply cable
Flash Drive includes Sample Code & All Necessary
Documentation!
44
© 2014 Atmel Confidential
CryptoAuthentication™
2014
CryptoAuthentication Low Volume Personalization
• The AT88CK9000 Board is
design for stand-alone secure
programming of
CryptoAuthentication family.
• The board support a XML
configuration file generated by
ACES and is securely stored
within the programmer board.
• For large annual volumes,
contact Atmel for other
solutions.
• Ordering Codes based on
package type
AT88CK9000-xxx
45
© 2014 Atmel Confidential
CryptoAuthentication™
2014
© 2014 Atmel Corporation. All rights reserved.
Atmel®, Atmel logo and combinations thereof, Enabling Unlimited Possibilities®, and others are registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Other terms and product
names may be trademarks of others.
Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Atmel
products. EXCEPT AS SET FORTH IN THE ATMEL TERMS AND CONDITIONS OF SALES LOCATED ON THE ATMEL WEBSITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING
TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS AND PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE
THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to
make changes to specifications and products descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided otherwise, Atmel products are not suitable for, and
shall not be used in, automotive applications. Atmel products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life.
46
© 2014 Atmel Confidential
CryptoAuthentication™
2014

similar documents