Re: HTTP security
See what happens when you call my name (or at least try to...) James is > Amanda is >>
This seems a very relevant criticism: Has Amanda, or anyone else proposed an extension to HTML that would incorporate such things? Actually, it's not an extension to HTML, but to MIME (whose formats HTTP uses top tag and label data), and it just went to Proposed Standard (the last step before Internet Standard). The MIME multipart/signed and multipart/encrypted body parts allow anything using MIME encapsulation to sign and/or encrypt arbitrary body parts. Since it's at the document layer, it requires no special transport software, works with existing proxies and caching servers, and allows secure HTTP software to share code with secure email software (since it would use exactly the same formats). The framework is general enough to allow use with either PEM-compliant signatures and encryption or others (such as PGP). I believe that can also be used with symmetric key management, which could be useful for special purpose applications. Uh, PEM-MIME no longer supports symmetric key management.
EInet's secure SHTTP proposal is also an end-to-end security framework. Actually, it's EIT. EInet is an MCC (the people who did MacWeb, not to be confused with MCOM, the people who did Netscape. Confusing, ain't it?) project.
Anyway, the approach that Amanda describes is pretty much the one that SHTTP takes. We use already established encapsulation formats to do data encapsulation. SHTTP can be used to enhance either entire protocol messages or objects or both. (You can do both in the same message using a recursive encapsulation). I think Amanda has done an adequate job of talking about end to end security, so I won't talk about that. I would like to briefly motivate why just using PEM-MIME isn't enough, though. (We considered it and believe me it would have been a lot easier on our brains and fingers...) PEM-MIME and to a lesser extent PGP are basically cryptographic messaging formats intended for email type applications. However, the email model is fundamentally different from the Web model in a number of ways. Let me just give one example: In the email world, you don't necessarily have any sort of prior relationship with the person you're communicating with and that public key cryptography is relatively cheap. (When it takes minutes to ship mail across the net, who's going to notice a second or two of signature verification?) However, in the case of the Web, things are very different. When a server replies to one of my requests, we have definitely exchanged at least one message. Now, assume for the moment that my request was encrypted and that I desire confidentiality for the reply. There is no need for the server to perform public key crypto because we've had the opportunity to exchange a key already. This means a substantial performance improvement. [It incidentally means that a server and I can communicate privately even if I don't have a key pair]. When I say that just PEM-MIME is inadequate, I don't mean to imply that using it is inadequate, however. On the contrary, we use PEM and PKCS7 already and are gearing up to include PEM-MIME, now that it's going to proposed standard. [Incidentally, there's no reason you couldn't use PGP too, although I propose that it's most useful in the proposed PGP-MIME multiparts...] And you should be able to reuse your PEM-MIME engines to write SHTTP handlers. It's just that we also took on some issues that we thought were important that we couldn't steal solutions for.. -Ekr
Eric Rescorla says:
In the email world, you don't necessarily have any sort of prior relationship with the person you're communicating with and that public key cryptography is relatively cheap. (When it takes minutes to ship mail across the net, who's going to notice a second or two of signature verification?) However, in the case of the Web, things are very different.
Since one can sign pages just once (they are written once and read often) and one can pick one's signature algorithm to speed up verifications relative to the signatures (using small exponents is the usual trick fo this), I'm not sure its that big a problem. I'd like these algorithms to support the serving of signed pages from hosts that do not know the keys that the pages have been signed with -- offline signature schemes like the one I just described will support that nicely. (However, any algorithm that is cognisant of the difference between securing the pages and just securing the channel is an improvement over the SSL proposal.) .pm
participants (2)
-
ekr@eit.COM -
Perry E. Metzger