simple (&secure??) PW-based web login (was Re: Another entryin theinternet security hall of shame....)
Amir Herzberg
herzbea at macs.biu.ac.il
Thu Sep 15 04:45:23 EDT 2005
Some clarification of the proposal:
Initialization:
===============
client has dedicated pw(server) to each server (today's situation).
Client is supposed to be able to identify server based on the server's
certificate etc., e.g. using TrustBar over regular browser.
Client also installs the pw-based login extension, and provides it with
a `master pw` MPW.
Init1: client establishes SSL connection with server, to access login
page. Let PK be the public key of the server.
Init2: server sends login form, with indication of support for secure login
Init3: extension identified this is a secure login, presents special
window asking client to provide pw(server), and MPW if not provided yet,
and to authenticate server (based on certificate).
Init4: extension generates random number and saves it as R(PK) - random
number for this particular server (as identified by its public key PK)
Init5: extension sends to server, inside the SSL connection, a secure
login submission, containing:
1. pw(server) as (only) current means of client authentication
2. h(h(MPW, R(PK))) - The value h(MPW, R(PK)) will be the `one time
password` to be used in next login (we could also use a `hash chain`
here but I removed it for simpicity and since it does not change much)
Init6: server verifies pw(server) (old password) and stores the received
h(h(MPW, R(PK))) as the hash of the new PW. It sends ack to the client
(again protected by SSL).
Init7: upon receipt of ack, client knows pw was updated.
Regular login is pretty similar:
=================================
RL1: client establishes SSL connection with server, to access login
page. Let PK be the public key of the server.
RL2: server sends login form, with indication of support for secure login
RL3: extension identified this is a secure login, presents special
window asking client to provide MPW if not provided yet.
RL4: extension sends to server, inside the SSL connection, a secure
login submission, containing:
1. h(MPW, R(PK)) - The `one time password`
2. h(h(MPW, r')) - a new one-time-pw validator for next login
R5: server verifies OTP (i.e. h(MPW, R(PK))), if OK, login is approved
and saves new OTP validator h(h(MPW,r')). It sends ack to the client
(again protected by SSL).
R6: upon receipt of ack, client knows pw was updated: R(PK)=r'.
This description glosses over dealing with failures, but this is not
difficult; I also don't discuss how to support users of `public` PCs and
changing PCs, solutions are possible.
--
Best regards,
Amir Herzberg
Associate Professor
Department of Computer Science
Bar Ilan University
http://AmirHerzberg.com
Try TrustBar - improved browser security UI:
http://AmirHerzberg.com/TrustBar
Visit my Hall Of Shame of Unprotected Login pages:
http://AmirHerzberg.com/shame
---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo at metzdowd.com
More information about the cryptography
mailing list