Attacking and Fixing PKCS#11 Security Tokens



Similar documents
Efficient Padding Oracle Attacks on Cryptographic Hardware

Getting to know your card: Reverse-Engineering the Smart-Card Application Protocol Data Unit for PKCS#11 Functions

Introducing etoken. What is etoken?

}w!"#$%&'()+,-./012345<ya

Yale Software Library

Preface. Limitations. Disclaimers. Technical Support. Luna SA and IBM HTTP Server/IBM Web Sphere Application Server Integration Guide

SecureDoc Disk Encryption Cryptographic Engine

When is a PKCS#11 Configuration Secure?

CryptoNET: Security Management Protocols

Certification Report

Arcot Systems, Inc. Securing Digital Identities. FPKI-TWG Mobility Solutions Today s Speaker Tom Wu Principal Software Engineer

SafeNet Authentication Client (Windows)

Smart Card APDU Analysis

Secure recharge of disposable RFID tickets

DIGIPASS CertiID. Getting Started 3.1.0

Use of any trademarks in this report is not intended in any way to infringe upon the rights of the trademark holder.

Digital Signature Certificate Online Enrollment Guide using etoken Pro 72K (Java)

TABLE OF CONTENTS. Vendor Web & e-registration...2. Usage of Digital Signature Certificate...3. What is an etoken?. 4. General FAQ...

Charismathics Smart Security Interface for Mac OS X Version 5.0. User Manual

Managed Portable Security Devices

CRYPTOGRAPHY AS A SERVICE

Mobile OTPK Technology for Online Digital Signatures. Dec 15, 2015

The new PostZertifikat: first hands-on experience

CALIFORNIA SOFTWARE LABS

Software Token Security & Provisioning: Innovation Galore!

How to integrate RSA ACE Server SecurID Authentication with Juniper Networks Secure Access SSL VPN (SA) with Single Node or Cluster (A/A or A/P)

PLATFORM ENCRYPTlON ARCHlTECTURE. How to protect sensitive data without locking up business functionality.

epass2003 User Guide V1.0 Feitian Technologies Co., Ltd. Website:

Gemalto SafeNet Minidriver 9.0

EXPLORING SMARTCARDS: AN INDEPENDENT LOOK TO TECHNOLOGIES AND MARKET

IPSecuritas 3.x. Configuration Instructions. Collax Business Server. for

SafeNet KMIP and Google Cloud Storage Integration Guide

Smart Card- An Alternative to Password Authentication By Ahmad Ismadi Yazid B. Sukaimi

CSC Network Security. User Authentication Basics. Authentication and Identity. What is identity? Authentication: verify a user s identity

FPGAs for Trusted Cloud Computing

Digital Signature Certificate Online Enrollment Guide using etoken

Electronic Voting Protocol Analysis with the Inductive Method

PROCEDURE FOR DSC CONFIGURATION. A. Installation of the driver has to be done for the first time and only once.

Using etoken for Securing s Using Outlook and Outlook Express

<Insert Picture Here> Oracle Security Developer Tools (OSDT) August 2008

Mobility, Security and Trusted Identities: It s Right In The Palm of Your Hands. Ian Wills Country Manager, Entrust Datacard

KeySecure CUSTOMER RELEASE NOTES. Contents. Version: Issue Date: 2 February 2015 Document Part Number: , Rev A.

SafeNet Authentication Client (Mac)

Product Release Bulletin

RELEASE NOTES. Table of Contents. Scope of the Document. [Latest Official] ADYTON Release corrections. ADYTON Release 2.12.

Towards a Type System for Security APIs

Microsoft SQL Server Integration Guide

How To Use The Syndicate Bank Rsa Security Token For Internet Banking On Pc Or Mac Or Mac (For A Web Browser) For A Long Time (For An Ipad) For Free (For Free) For An Unlimited Time) For Your

Key Management Best Practices

RSA SecurID Software Token 1.0 for Android Administrator s Guide

MOBILE SMARTPHONES AS SECURE SIGNATURE-CREATION DEVICES

Citrix Netscaler Advanced guide for SMS PASSCODE SMS PASSCODE 2014

Strong authentication of GUI sessions over Dedicated Links. ipmg Workshop on Connectivity 25 May 2012

Q: Why security protocols?

How To Run A Password Manager On A 32 Bit Computer (For 64 Bit) On A 64 Bit Computer With A Password Logger (For 32 Bit) (For Linux) ( For 64 Bit (Foramd64) (Amd64 (For Pc

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Biometrics to Enhance Smartcard Security

PrivateServer HSM EKM Provider for Microsoft SQL Server

Secure Network Communications FIPS Non Proprietary Security Policy

Entrust Managed Services PKI. Getting an end-user Entrust certificate using Entrust Authority Administration Services. Document issue: 2.

Windows Server 2008 R2 Boot Manager Security Policy For FIPS Validation

Applying Cryptography as a Service to Mobile Applications

mguard Device Manager Release Notes Version 1.6.1

PUBLIC Secure Login for SAP Single Sign-On Implementation Guide

Hitachi ID Password Manager Telephony Integration

Case Study for Layer 3 Authentication and Encryption

ASA 8.x: Renew and Install the SSL Certificate with ASDM

User Guide May Using Certificates in Outlook Express

How To Use Kerberos

SECURITY IN NETWORKS

Hardware Security Modules for Protecting Embedded Systems

Security Guide. BlackBerry Enterprise Service 12. for ios, Android, and Windows Phone. Version 12.0

Moving to Multi-factor Authentication. Kevin Unthank

FIPS Security Policy LogRhythm Log Manager

Exchange Reporter Plus SSL Configuration Guide

Lecture 9: Application of Cryptography

Network Security. Computer Networking Lecture 08. March 19, HKU SPACE Community College. HKU SPACE CC CN Lecture 08 1/23

Charismathics Smart Security Interface. User Manual V 5.0

Secure Data Exchange Solution

Crittografia e Enterprise Key Management una sfida possibile da affrontare

DRAFT Standard Statement Encryption

IOActive Security Advisory

Draft Middleware Specification. Version X.X MM/DD/YYYY

Shakambaree Technologies Pvt. Ltd.

Certificate Management

Thales e-security Key Isolation for Enterprises and Managed Service Providers

Check Point FDE integration with Digipass Key devices

Efficient Key Management for Oracle Database 11g Release 2 Using Hardware Security Modules

RSA Two Factor Authentication

Information Security

Modeling and verification of security protocols

Transcription:

Attacking and Fixing PKCS#11 Security Tokens Matteo Bortolozzo, Matteo Centenaro Riccardo Focardi and Graham Steel Università Ca Foscari, Venezia and LSV, INRIA & CNRS & ENS-Cachan

RSA PKCS#11 Describes cryptoki : cryptographic token interface Widely adopted in industry for authentication tokens, smartcards (and HSMs, other devices,...) 1/20

RSA PKCS#11 Describes cryptoki : cryptographic token interface Widely adopted in industry for authentication tokens, smartcards (and HSMs, other devices,...) Authentication tokens used for secure login to VPN etc. Devices cost from 20 to 400 USD, global market estimated at 5 billion USD by InfoSecurity Magazine 1/20

RSA PKCS#11 Describes cryptoki : cryptographic token interface Widely adopted in industry for authentication tokens, smartcards (and HSMs, other devices,...) Authentication tokens used for secure login to VPN etc. Devices cost from 20 to 400 USD, global market estimated at 5 billion USD by InfoSecurity Magazine Cryptoki provides a logical view of objects on the token Keys (etc.) stored on the device and accessed by handles Attributes stored with keys to control usage 1/20

2/20

PKCS#11 Security Section 7 of standard: 3/20

PKCS#11 Security Section 7 of standard: 1. Access to private objects on the token, and possibly to cryptographic functions and/or certificates on the token as well, requires a PIN. 3/20

PKCS#11 Security Section 7 of standard: 1. Access to private objects on the token, and possibly to cryptographic functions and/or certificates on the token as well, requires a PIN. 2. Additional protection can be given to private keys and secret keys by marking them as sensitive or unextractable. Sensitive keys cannot be revealed in plaintext off the token, and unextractable keys cannot be revealed off the token even when encrypted 3/20

PKCS#11 Security Section 7 of standard: 1. Access to private objects on the token, and possibly to cryptographic functions and/or certificates on the token as well, requires a PIN. 2. Additional protection can be given to private keys and secret keys by marking them as sensitive or unextractable. Sensitive keys cannot be revealed in plaintext off the token, and unextractable keys cannot be revealed off the token even when encrypted Rogue applications and devices may also change the commands sent to the cryptographic device to obtain services other than what the application requested [but cannot] compromise keys marked sensitive, since a key that is sensitive will always remain sensitive. Similarly, a key that is unextractable cannot be modified to be extractable. 3/20

4/20

Clulow, CHES 2003 5/20

Formal Model (Delaune, Kremer, S., CSF 2008) Abstract Dolev-Yao style h(n1,k1) - a handle n1 for key k1 (h is a private symbol) a1(n1) - setting of attribute a1 for handle n1 Command : input; state new output;state 6/20

Key Management - 1 KeyGenerate : new n,k h(n, k); L Where L = extract(n), wrap(n), unwrap(n), encrypt(n), decrypt(n), sensitive(n) 7/20

Key Management - 2 Set Wrap : h(x 1,y 1 ); wrap(x 1 ) ;wrap(x 1 ) Set Encrypt : h(x 1,y 1 ); encrypt(x 1 ) ;encrypt(x 1 ). UnSet Wrap : h(x 1,y 1 ); wrap(x 1 ) ; wrap(x 1 ) UnSet Encrypt : h(x 1,y 1 ); encrypt(x 1 ) ; encrypt(x 1 )... Some restrictions, e.g. can t unset sensitive, can t set extract 8/20

Key Management - 3 Wrap : h(x 1,y 1 ),h(x 2,y 2 ); wrap(x 1 ), {y 2 } y1 extract(x 2 ) Unwrap : h(x 2,y 2 ),{y 1 } y2 ; unwrap(x 2 ) new n 1 h(n1,y 1 ); L Where L = extract(n), wrap(n), unwrap(n), encrypt(n), decrypt(n), sensitive(n) 9/20

Key Usage Encrypt : h(x 1,y 1 ),y 2 ; encrypt(x 1 ) {y 2 } y1 Decrypt : h(x 1,y 1 ),{y 2 } y1 ; decrypt(x 1 ) y 2 10/20

Fix decrypt/wrap, (and encrypt/unwrap): 11/20

Fix decrypt/wrap, (and encrypt/unwrap): Intruder knows: h(n 1,k 1 ), h(n 2,k 2 ), k 3 State: sensitive(n 1 ),extract(n 1 ), extract(n 2 ) Set wrap: h(n 2,k 2 ) ;wrap(n 2 ) Set wrap: h(n 1,k 1 ) ;wrap(n 1 ) Wrap: h(n 1,k 1 ),h(n 2,k 2 ) {k 2 } k1 Set unwrap: h(n 1,k 1 ) ;unwrap(n 1 ) newn Unwrap: h(n 1,k 1 ),{k 2 } 3 k1 h(n 3,k 2 ) Wrap: h(n 2,k 2 ),h(n 1,k 1 ) {k 1 } k2 Set decrypt: h(n 3,k 2 ) ;decrypt(n 3 ) Decrypt: h(n 3,k 2 ),{k 1 } k2 k 1 11/20

Tool for cryptoki Analysis 12/20

Templates KeyGenerate : KeyPairGenerate : new n,k h(n,k);a(n,b) (with B G) new n,s h(n,s),pub(s);a(n,b) (with B G) Unwrap(sym/sym) : h(x,y 2 ),{ y 1 } y2 ; unwrap(x, ) new n 1 h(n1,y 1 ); A(n 1,B) (with B U) CreateObject : x; new n h(n,x); A(n,B) (with B C) 13/20

Configuration Language Functions Attributes Always on/off Conflicts Tied Templates Flags (see http://secgroup.ext.dsi.unive.it/tookan for full description) 14/20

Abstractions for Proof (based on Fröschle & Steel WITS 09) KeyGenerate : h(n i,k i );A(n i,b i ) (with B i G) KeyPairGenerate : h(n j,s j ),pub(s j );A(n j,b j ) (with B j G) Unwrap(sym/sym) : h(x,y 2 ),{ y 1 } y2 ; unwrap(x, ) h(n k,y 1 ); A(n k,b k ) (with B k U) CreateObject : x; h(n l,x); A(n l,b l ) (with B l C) 15/20

16/20

Device Supported Functionality Attacks found Brand Model s as cobj chan w ws wd rs ru su Tookan Aladdin etoken PRO wd Athena ASEKey Bull Trustway RCI wd Eutron Crypto Id. ITSEC Feitian StorePass2000 rs Feitian epass2000 rs Feitian epass3003auto rs Gemalto SEG MXI Stealth MXP Bio RSA SecurID 800 rs SafeNet ikey 2032 Sata DKey rs ACS ACOS5 Athena ASE Smartcard Gemalto Cyberflex V2 wd Gemalto SafeSite V1 Gemalto SafeSite V2 rs Siemens CardOS V4.3 B ru 17/20

Manufacturer Reaction All 7 received notification at least 5 months before publication. We offered to publish responses on project website 18/20

Manufacturer Reaction All 7 received notification at least 5 months before publication. We offered to publish responses on project website RSA sent response, registered vulnerability with Mitre (CVE-2010-3321), will issue patch details today Aladdin (now Safenet) sent a 2-page response for website 18/20

Manufacturer Reaction All 7 received notification at least 5 months before publication. We offered to publish responses on project website RSA sent response, registered vulnerability with Mitre (CVE-2010-3321), will issue patch details today Aladdin (now Safenet) sent a 2-page response for website Bull invited me for a private meeting at their HQ 18/20

Manufacturer Reaction All 7 received notification at least 5 months before publication. We offered to publish responses on project website RSA sent response, registered vulnerability with Mitre (CVE-2010-3321), will issue patch details today Aladdin (now Safenet) sent a 2-page response for website Bull invited me for a private meeting at their HQ Gemalto responded to Cyberflex vulnerability, but not to SafeSite, and not to request to publish their reponse. Minimal response from anyone else (e.g. requests to know who else is vulnerable) 18/20

OpencryptokiX IBM Opencryptoki is a library including a software token Vulnerable to many attacks (but it s a software token) 19/20

OpencryptokiX IBM Opencryptoki is a library including a software token Vulnerable to many attacks (but it s a software token) We have coded two fixed versions one implements config from Fröschle & Steel WITS 09 one is a new fix with no new crypto mechanisms Uses a carefully chosen set of templates G = {wu,ed},u = {eu} 19/20

OpencryptokiX IBM Opencryptoki is a library including a software token Vulnerable to many attacks (but it s a software token) We have coded two fixed versions one implements config from Fröschle & Steel WITS 09 one is a new fix with no new crypto mechanisms Uses a carefully chosen set of templates G = {wu,ed},u = {eu} Available to download from http://secgroup.ext.dsi.unive.it/cryptokix 19/20

Conclusions Tookan: our tool for formal analysis of PKCS#11 configurations OpencryptokiX: a sandbox for trying token configurations Bees: a library for programming PKCS#11 tokens using symbolic model language 20/20

Conclusions Tookan: our tool for formal analysis of PKCS#11 configurations OpencryptokiX: a sandbox for trying token configurations Bees: a library for programming PKCS#11 tokens using symbolic model language State of art of tokens not great (10/18 vulnerable, the rest very limited functionality) Some manufacturers patching, no reaction from others 20/20

Conclusions Tookan: our tool for formal analysis of PKCS#11 configurations OpencryptokiX: a sandbox for trying token configurations Bees: a library for programming PKCS#11 tokens using symbolic model language State of art of tokens not great (10/18 vulnerable, the rest very limited functionality) Some manufacturers patching, no reaction from others Maybe we need a new standard with modern crypto? (OASIS, IEEE SISWG,...) 20/20

Conclusions Tookan: our tool for formal analysis of PKCS#11 configurations OpencryptokiX: a sandbox for trying token configurations Bees: a library for programming PKCS#11 tokens using symbolic model language State of art of tokens not great (10/18 vulnerable, the rest very limited functionality) Some manufacturers patching, no reaction from others Maybe we need a new standard with modern crypto? (OASIS, IEEE SISWG,...) More details in the paper or online: http://secgroup.ext.dsi.unive.it/tookan 20/20