100 likes | 310 Views
OTP Methods for TLS. OTPS Workshop February, 2006. Background. Work item suggested at Vienna workshop Enable use of One-Time Passwords in TLS Leverages cipher suites defined in IETF RFC 4279 (TLS-PSK) and TLS extensions defined in IETF RFC 3546 (RFC 4366). Approach.
E N D
OTP Methods for TLS OTPS Workshop February, 2006
Background • Work item suggested at Vienna workshop • Enable use of One-Time Passwords in TLS • Leverages cipher suites defined in IETF RFC 4279 (TLS-PSK) and TLS extensions defined in IETF RFC 3546 (RFC 4366)
Approach • Extensions are not needed if challenge is not needed and hardening unnecessary/implicit • In ClientHello, client may use new TLS extensions to: • Request challenge data • Suggest OTP hardening parameters • In ServerHello, server may use new TLS extensions to: • Provide challenge data (if asked for) • Determine hardening parameters (if suggested)
From OTP to PSK (I) • PSK = PBKDF2 (OTP, RS || RC, iterationCount, keyLen) Where: • OTP is the current one-time password, • RS is the server_random value from the Server Hello • RC is the client_random value from the Client Hello • iterationCount is the iteration_count value from the otp_hardening extension • keyLen shall be set to 16 (128 bits).
From OTP to PSK (II) • Three choices for key exchange scheme • Direct PSK: Likely requires OTP hardening • Ephemeral D-H: OTP hardening too, if MITM is a concern • RSA: No need for OTP hardening, but requires PKI
The Challenge_Data extension struct { ChallengeDataType challenge_data_type; select (ChallengeDataType) { case request: ChallengeRequestData; case response: ChallengeResponseData; } challenge_data; } ChallengeData; struct { opaque otp_algorithm<0..2^16-1>; opaque otp_user_id<0..2^16-1>; opaque otp_key_id<0..2^16-1>; } ChallengeRequestData; struct { opaque otp_challenge<1..2^16-1>; } ChallengeResponseData;
The OTP_Hardening extension struct { uint16 iteration_count; } OTPHardeningData;
Identifying the key • Proposal is to use the “psk_identity” component of the ClientKeyExchange message • May also carry e.g. current counter value or time • Example: "UI=J. Random User, T=20051222114204"
Identified Issues • PIN handling • Combine PIN and OTP before calculating PSK? • I.e. PSK = PBKDF2(f(OTP,PIN),…) • Treat PIN as out of scope for this document? • Weakens the PSK but allows PIN processing outside of TLS layer • New Error Alerts? • E.g. “Next OTP”?
Next Steps • Decide on PIN handling, Error alerts • Resolve any other comments • Produce new draft version • Preferably within 4 -5 weeks