The Dynamic Symmetric Key Provisioning Protocol (DSKPP)

Slides:



Advertisements
Similar presentations
1 IETF KEYPROV WG Protocol Basis and Characteristics IEEE P April 11, 2007 Andrea Doherty.
Advertisements

Dynamic Symmetric Key Provisioning Protocol (DSKPP)
Enabling Secure Internet Access with ISA Server
The Cryptographic Token Key Initialization Protocol (CT-KIP) OTPS Workshop February 2006.
CT-KIP Magnus Nyström, RSA Security OTPS Workshop, October 2005.
TLS Introduction 14.2 TLS Record Protocol 14.3 TLS Handshake Protocol 14.4 Summary.
Secure Socket Layer.
SSL CS772 Fall Secure Socket layer Design Goals: SSLv2) SSL should work well with the main web protocols such as HTTP. Confidentiality is the top.
Socket Layer Security. In this Presentation: need for web security SSL/TLS transport layer security protocols HTTPS secure shell (SSH)
An Introduction to Secure Sockets Layer (SSL). Overview Types of encryption SSL History Design Goals Protocol Problems Competing Technologies.
Module 5: TLS and SSL 1. Overview Transport Layer Security Overview Secure Socket Layer Overview SSL Termination SSL in the Hosted Environment Load Balanced.
CHAPTER 8: SECURITY IN COMPUTER NETWORKS Encryption Encryption Authentication Authentication Security Security Secure Sockets Layer Secure.
Key Provisioning Use Cases and Requirements 67 th IETF KeyProv BOF – San Diego Mingliang Pei 11/09/2006.
Mar 19, 2002Mårten Trolin1 This lecture On the assignment Certificates and key management SSL/TLS –Introduction –Phases –Commands.
DESIGNING A PUBLIC KEY INFRASTRUCTURE
Apr 2, 2002Mårten Trolin1 Previous lecture On the assignment Certificates and key management –Obtaining a certificate –Verifying a certificate –Certificate.
Principles of Information Security, 2nd edition1 Cryptography.
Internet Engineering Task Force Provisioning of Symmetric Keys Working Group Hannes Tschofenig.
ACE – Design Considerations Corinna Schmitt IETF ACE WG meeting July 23,
1 The Cryptographic Token Key Initialization Protocol (CT-KIP) Web Service Description KEYPROV WG IETF-68 Prague March 2007 Andrea Doherty.
Russ Housley IETF Chair Founder, Vigil Security, LLC 8 June 2009 NIST Key Management Workshop Key Management in Internet Security Protocols.
Wolfgang Schneider NSI: A Client-Server-Model for PKI Services.
Chapter 10: Authentication Guide to Computer Network Security.
Wireless and Security CSCI 5857: Encoding and Encryption.
An XMPP (Extensible Message and Presence Protocol) based implementation for NHIN Direct 1.
Registration Processing for the Wireless Internet Ian Gordon Director, Market Development Entrust Technologies.
Enabling Embedded Systems to access Internet Resources.
Behzad Akbari Spring 2012 (These slides are based on lecture slides by Lawrie Brown)
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
WS-Security: SOAP Message Security Web-enhanced Information Management (WHIM) Justin R. Wang Professor Kaiser.
Web Services An introduction for eWiSACWIS May 2008.
Cosc 4765 SSL/TLS and VPN. SSL and TLS We can apply this generally, but also from a prospective of web services. Multi-layered: –S-http (secure http),
Dynamic Symmetric Key Provisioning Protocol (DSKPP) Mingliang Pei Salah Machani IETF68 KeyProv WG Prague.
WebDAV Issues Munich IETF August 11, Property URL encoding At present, spec. allows encoding of the name of a property so it can be appended to.
Network Security Essentials Chapter 5
Certificate-Based Operations. Module Objectives By the end of this module participants will be able to: Define how cryptography is used to secure information.
1 The Cryptographic Token Key Initialization Protocol (CT-KIP) KEYPROV BOF IETF-67 San Diego November 2006 Andrea Doherty.
DSKPP And PSKC: IETF Standard Protocol And Payload For Symmetric Key Provisioning Philip Hoyer Senior Architect – CTO Office.
DSKPP And PSKC: IETF Standard Protocol And Payload For Symmetric Key Provisioning Philip Hoyer Senior Architect – CTO Office.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Distributed Authentication in Wireless Mesh Networks Through Kerberos Tickets draft-moustafa-krb-wg-mesh-nw-00.txt Hassnaa Moustafa
IETF KeyProv work group: Provisioning of Symmetric Keys.
Module 3: Configuring File Access and Printers on Windows 7 Clients
Kemal Baykal Rasim Ismayilov
Security Patterns for Web Services 02/03/05 Nelly A. Delessy.
Security fundamentals Topic 5 Using a Public Key Infrastructure.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
1 The Cryptographic Token Key Initialization Protocol (CT-KIP) KEYPROV WG IETF-68 Prague March 2007 Andrea Doherty.
SACRED REQUIREMENTS DOCUMENT Stephen Farrell, Baltimore Alfred Arsenault, Diversinet.
Introduction to Active Directory
Design Guidelines Thursday July 26, 2007 Bernard Aboba IETF 69 Chicago, IL.
Requirements and Selection Process for RADIUS Crypto-Agility December 5, 2007 David B. Nelson IETF 70 Vancouver, BC.
©2009 HP Confidential1 Proposal to OASIS KMIP TC Stan Feather and Indra Fitzgerald Hewlett-Packard Co. 26 October, 2010 Encoding Options for Key Wrap of.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
December 14, 2000Securely Available Credentails (SACRED) - Framework Draft 1 Securely Available Credentials (SACRED) Protocol Framework, Draft Specification.
Keyprov PSKC spec Philip Hoyer 71-st IETF, Philadelphia.
Portable Symmetric Key Container (PSKC) Mingliang Pei Philip Hoyer Dec. 3, th IETF, Vancouver.
Keyprov PSKC spec Philip Hoyer 71-st IETF, Philadelphia.
IP Security (IPSec) Matt Hermanson. What is IPSec? It is an extension to the Internet Protocol (IP) suite that creates an encrypted and secure conversation.
Lecture 6 (Chapter 16,17,18) Network and Internet Security Prepared by Dr. Lamiaa M. Elshenawy 1.
@Yuan Xue CS 285 Network Security Secure Socket Layer Yuan Xue Fall 2013.
Cryptography CSS 329 Lecture 13:SSL.
KeyProv PSKC Specification Mingliang Pei Authors: P. Hoyer, M. Pei and S. Machani 73 nd IETF meeting, Minneapolis, Nov
IETF Provisioning of Symmetric Keys (keyprov) WG Update WG Chairs: Phillip Hallam-Baker Hannes Tschofenig Presentation by Mingliang Pei 05/05/2008.
IETF Provisioning of Symmetric Keys (keyprov) WG Update
Chinese wall model in the internet Environment
Presentation transcript:

The Dynamic Symmetric Key Provisioning Protocol (DSKPP) KEYPROV WG IETF-69 Chicago July 2007 Andrea Doherty

Current Status 2nd draft of DSKPP protocol specification (draft-doherty-keyprov-dskpp-01) implements the convergence plan that was proposed at IETF-68 KEYPROV WG meeting in Prague Builds on information contained in RFC4758, adding specific enhancements in response to implementation experience and liaison requests. Also builds on: draft-pei-keyprov-dskpp-00.txt draft-nyström-keyprov-ct-kip-two-pass-00.txt

Highlights of Convergence Like RFC4758, the merged protocol specification now: Supports mutually generated secrets by both client and server (4-pass variant) Has ability to start with a blank device, i.e., one with no private key nor transport key Supports full crypto suite negotiation (incl. MAC) Ensures negotiation can occur in first pass, minimizing unnecessary binding of resources in case of client-server non-interoperability Is capable of encapsulating XML or ASN.1 In addition, the merged protocol specification: Supports symmetric key transport from a server to a client (2- and 1-pass variants) Supports multiple key container formats PSKC is defined as the default (see draft-hoyer-keyprov-portable-symmetric-key-container-02.txt) Allows client authentication prior to provisioning within the core protocol Supports user authentication using activation code without requiring HTTPS Supports explicit device authentication using a device certificate

DSKPP Primer DSKPP is a client-server protocol for initialization (and configuration) of symmetric keys to cryptographic modules. Intended for use within computer and communications systems employing symmetric cryptographic modules that are locally (over-the-wire) or remotely (over-the-air) accessible. Can be run with or without private-key capabilities in the cryptographic modules, and with or without an established public key infrastructure

DSKPP Object Model User Device owns 1 * * User ID … Device ID … contains Cryptographic Module * Cryptographic Module ID Encryption Algorithms MAC Algorithms … 1 contains Key Container Key ID Key Type … *

Protocol variants DSKPP variants support multiple usage scenarios: Four-pass variant enables mutual key generation by the provisioning server and cryptographic module in near real-time; provisioned keys are not transferred over-the-wire or over-the-air Two- and one-pass variants enable generation and transport of symmetric keys to a cryptographic module in environments where near real-time communication is not possible Two- and one-pass variants also enable transport of pre-generated (i.e., legacy) keys to a cryptographic module

DSKPP 1, 2, 4-pass Comparison DSKPP server DSKPP client Smart Device Client Hello (2, 4-pass) Server Hello (4-pass) Client Nonce (4-pass) Server Finished (1, 2, 4-pass)

DSKPP 1- and 2-pass Key Initialization Profiles Key transport and derivation Usage Key Transport Using a public key, K_CLIENT, whose private key part resides in the cryptographic module Ideal for PKI-capable devices Key Wrap Using a symmetric key-wrapping key, K_SHARED, known in advance by both the DSKPP client and server Ideal for pre-keyed devices, e.g., SIM cards Passphrase-based Key Wrap Using a passphrase-derived key-wrapping key, K_DERIVED, known in advance by both the DSKPP client and server Ideal for constrained devices with key-pads, e.g., mobile phones

Cryptographic properties Key confirmation In both variants via MAC on exchanged data (and counter in 1-pass) Replay protection In 4- and 2-pass through inclusion of client-provided data in MAC Suggested method for 1-pass based on counter Server authentication In all variants through MAC in ServerFinished message when replacing existing key Protection against MITM In both variants through use of shared keys, client certificates, or server public key usage User authentication Enabled in 4- and 2-pass variants using activation code Alternative methods rely on draft-doherty-keyprov-ct-kip-ws-00 Device authentication In 4- and 2-pass variants if based on shared secret key or if device sends a client certificate

Bindings Security Binding HTTP Binding SOAP Binding Transport level encryption (e.g., TLS) is not required for key transport TLS/SSL is required if other parameters/attributes must be protected in transit HTTP Binding Special content header recommended Examples provided in draft-doherty-keyprov-dskpp-01 SOAP Binding WSDL defined in draft-doherty-keyprov-ct-kip-ws-00

Open Items in Issue Tracker (http://www.tschofenig.com:8080/keyprov/) # Description 1 Should PDU names reflect KEYPROV in WS request/response style? 4 Should Key Identifiers be represented as strings or base64Binary? 6 Map dskpp:AlgorithmType and pskc:EncryptionAlgorithmType? 7 Add explicit support for SMS-based key delivery method? 8 How to refer to OTP (e.g., HOTP and SecurID) algorithms? 9 What is relationship between dskpp:KeyInitializationMethod and pskc:EncryptionMethod? 11 Is special KEYPROV HTTP header definition required? 12 DSKPP schema sometimes relies on “any” type for flexibility. Should it instead strongly type request and response parameters?

Issue #1 Original Comment: The current PDU naming style (e.g. ClientHello, ServerFinished) is specific to certain SSL and key exchange protocol flavor. However, when KEYPROV is implemented as a WS using REST, SOAP, or even native HTTP, it is better to reflect the “KEYPROV” namespace in PDU names. For example, in a WS exchange, KeyProvRequest is more intuitive than ClientHello. Is it necessary to change the naming scheme?

Issue #4 (1) The Key Identifier is opaque in the protocol KeyID is currently defined in DSKPP as “base64Binary” The original reason for base64Binary was to allow for creating unique identifiers by, e.g., hashing together the issuer’s DNS name together with an issuer-unique serial number base64Binary encoding allows for full usage of all bits in a byte. PSKC defines KeyID as a user friendly “string” Provides a readable value String encoding does not allow for full usage of all bits in a byte; a different scheme for guaranteeing Key ID uniqueness has to be defined (e.g., <KeyID>http://example.com|0123456789</KeyID>) In addition to uniqueness and user friendliness, other needs play a role when using a key identifier, e.g., cross-domain sharing of keys Some applications may associate metadata with the key identifier in an explicitly specified structure One possibility is a two-level URI + ID scheme Compromise between binary blobs that cannot be “filtered” and the hard-to-deploy hierarchical names of X.500 e.g., <KeyID issuer="http://example.com/policy#3">0123456789</KeyID>

Issue #4 (2) IEEE P1619.3, which is actively defining requirements for a key identifier and namespace specification, is considering various proposals, e.g.,: Define the namespace (Key ID Space) to be a string that would typically identify a set of KMS servers. This string would be encoded into the Key ID. The structure of the namespace (e.g. URI, URL, GUID, FQDN, etc) is not specified. Define the namespace as a URI set to kms://realm/object/path Encode a key id and attributes in a PKCS#7 formatted message Use something from T10, wherein the namespace part is the Device Name Address Authority Identifier T10 is a Technical Committee of the INCITS that is focused on SCSI Storage Interfaces Keep namespace and Key ID separate, and never encode attributes of the key into either; namespace would only be required when keys are shared between “domains”

Issue #4 (3) Recommendation: Ensure that DSKPP, in combination with PSKC, makes available all of the key metadata (e.g., KeyID and IssuerID) required of an application Leave it up to the application to extract the key identifier, attributes, and namespace from the DSKPP key container, and to format the data in accordance with the relevant key identifier specification It is always possible to generate a key identifier specification and leave it to use cases or a later profile to address If the key metadata is maintained in the key container, then the original base64Binary encoding of the key identifier can be used

Issues #6, #8, and #9 DSKPP relies on PSKC as default container format; therefore, consistency between the two specifications is desired Currently, there is some overlap in algorithm type definitions in DSKPP and PSKC, e.g., OTP algorithms and EncryptionAlgorithm There is also potential overlap in how the key transport method is defined Two solutions have been proposed: Publish a separate document that maps the relationships between data types common to DSKPP and PSKC Align algorithm and method types across DSKPP and PSKC

Issue #7 Use case: A user owns a mobile phone that is unable to communicate with a provisioning server The user initiates a key provisioning request using a cryptographic module resident on the user’s PC The server authenticates the user The server delivers the symmetric key to the mobile phone via SMS. Should explicit support for KeyDeliveryMethod (i.e., HTTP, HTTPS, SMS, etc.) be added to DSKPP to address this use case? What would the security characteristics of this be? It can only be 1-pass, as there is hardly any connection to other variants. If 1-pass, then what user does on browser/PC beforehand is outside the scope of DSKPP. Mobile phones that cannot connect to the Internet are becoming rare. Recommendation: KEYPROV should not address this use case.

Issue #11 In actuality, an HTTP header definition is not specified in draft-doherty-keyprov-dskpp-01.txt The specified HTTP binding: Requires identification of all DSKPP messages via a MIME type set to application/vnd.ietf.keyprov.dskpp+xml Defines restrictions on HTTP headers Is there an IETF Best Practices guide for defining HTTP bindings?

Issue #12 For extensibility, the schema defined in draft-doherty-keyprov-dskpp-01.txt relies on the use of the any type However, the specification uses any with processContents=“strict”, which still allows for extensibility Is it better to use strongly typed request and response parameters? For example, should complex types be explicitly declared for schema validation and code automation tools? If use of any type is not adopted, then new types that are extensions of old types will be needed whenever a new feature is added. There is plenty of precedence for using the any type, e.g., XMLenc and XMLDsig. Recommendation: Continue to rely on the any type with processContents=“strict”

Next steps Decide on whether draft-doherty-keyprov-dskpp-01.txt document should become a KEYPROV working group item Decide on how SOAP binding should be addressed within KEYPROV: Should draft-doherty-keyprov-ct-kip-ws-00.txt document become a KEYPROV working group item, or Should SOAP binding should be merged into draft-doherty-keyprov-dskpp-01.txt Or, other? Resolve open issues using the mailing list Revise and resubmit draft