Re: TLS API discussion
Jeff Williams <[email protected]> Wed, 21 May 1997 09:21:34 +0100
| Newsgroups | gmane.ietf.apps-tls |
|---|---|
| Organization | IEG. INC. |
| Message-ID | <[email protected]> |
David Brownell wrote: > > If portability is a primary concern, I've got a rather portable > Java API to present! :-) Yea, so do we. Love to see what you got there Dave! :) > > Before an API (in some language) is settled on, it strikes me there > ought to be some agreements on exactly what features should be > exposed, and how. If those can't be agreed on, then there may be > no real virtue in trying to focus on some specific C/C++/Java/... > interface set. Absolutely right. > > Sessions and associated data (active cipher suite, peer cert chain, > creation time, etc) seem like no-brainers ... but then, how are > applications supposed to associate data with those sessions? It'll > be important to let apps be involved in session creation/destruction, > both by providing policies (must/mustn't create a new session here, > invalidate now, invalidate after N hours not in use, etc) and > notifications (just created/destroyed this session etc). IMHO, and interface facility better services these needs. Also more flexible and easier to impliment. > > Handshaking seems to me to be a lot easier. Even there, one finds > issues. It's easy to say "enable only these cipher suites", or > "handshake now" (and tell me when it's finished). But surely some > folk will claim it's important for clients to prioritize suites, > or for servers to choose amongst clients' prioritized suites, at the > application level ... and such policy flexibility is annoying to get > well tested. (Similarly, "re-key after every N Megabytes.") Same comment as above. > > Stuff like peer authentication is curiously tricky too. Where is the > agreed standard for X509v3 certificate APIs? That's unrelated to SSL, > but one sort of needs an API there to use SSL well. How do applications > say whether they accept the cert chain proferred during handshaking? > How does the TLS layer get access to the N different private keys > (and associated cert chains) it may need to authenticate itself? How > do clients choose which of the M appropriate cert chains to send? Again, same as above but with a twist. The interface can easily provide for these considerations and additional considerations as they present themselves. Chenging a standard for some of these type of requirnments seems a bit lengthy a process to me. > > Plus, oddly enough, there are languages where TLS sockets "need" to > work differently from other sockets. Hmm. Even C++ can't do what > Java does, since there's no 100% standard "Socket" class which is > used by everyone. So, there are clearly going to be some areas where > the API functionality needs to differ between different languages. > > The discussion I've seen so far on this list seems focussed on low > level issues ... what about policies for how the data exposed by TLS > gets used? For example, isn't the whole point of TLS-izing SMTP to > create a "trusted" mail network, used to ensure that senders, forwarding > agents, and recipients are who they say they are? Thus being able to > do stuff like exclude forgers and abusers (SPAM SPAM SPAM)?? (I'm not > forgetting privacy-in-transit, but remember that forwarding agents get > the plaintext anyway.) Good point. > > We need to be thinking more broadly about how the capabilities of TLS > get used by applications ... and then ensure they get exposed in the > TLS APIs. We can of course try to expose every protocol feature in > a "basic" API, but that quickly get unwieldy. I have been saying this sience the conception of TLS itself. Sigh... > > So ... how do YOU think applications should use TLS sessions? Or use > peer authentication? What control do they need over handshaking? I don't necessarly see any need for any limitations on how TLS should use sessions necessarly. Controls are, of course going to very depending on implimentation needs. > > - Dave Regards, -- Jeffrey A. Williams DIR. Internet Network Eng/SR. Java Development Eng. Information Eng. Group. Phone :913-294-2375 (v- office) E-Mail [email protected]