[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CAP: IDENTIFY seems dangerous




The CAP IDENTIFY command seems like it has some dangerous security implications. AUTHENTICATE presents credentials, then IDENTIFY can reuse those credentials to become a different user. The problem is that this requires the CS to keep the credentials stored in memory for the lifetime of the connection, which carries a risk of leakage (a bug which lets an attacker read the contents of the server's memory can expose the credentials for all active connections). Now, with some types of credentials, this may be safe; but, for others, it's not. I believe that, at a minimum, the server needs to be able to refuse to store credentials which are not safe.


More generally, it's not clear why IDENTIFY is needed at all, as a separate comand. Clearly, there is some need to be able to authenticate as a user other than the default implied by one's credentials (proxy access); but that doesn't have to mean switching identities at arbitrary times during the connection; it can be handled with an extra parameter to AUTHENTICATE. I believe this would be the better approach (better than refusing to store unsafe credentials), because it would mean that proxy access can be done with any sort of credentials, not just ones which are safe for the server to store.

--
/===============================================================\
|John Stracke    | http://www.ecal.com |My opinions are my own. |
|Chief Scientist |==============================================|
|eCal Corp.      |"Why did you become a spokesmodel?" "Oh, well,|
|francis@xxxxxxxx <mailto:francis@xxxxxxxx>|I've always liked pointing." -- _LA Story_    |
\===============================================================/