[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(fwd) Java implementation of secure login protocol
Look, Ma! Java code!
Real cyph3rpunks, of course, flame each other anonymously.
(Incidentally, I got tired of Alice making it to my noise box, and the
following seems to work well. Deleting the leading ^ characters would
cause all responses to go into the junk box; perhaps a good idea.
This is, for those of you who don't recognize it, procmail code. My
mail filter of choice for hacking in.)
:0B:
* ^Alice de 'nonymous
* ^P.S. This post is in the public domain.
| formail -a "Status: O" >> cjunk
> From: [email protected] (Greg Noel)
> Newsgroups: comp.lang.java,sci.crypt
> Subject: Java implementation of secure login protocol
> Date: 19 Dec 1995 23:12:52 -0800
> Organization: QUALCOMM, Incorporated; San Diego, CA, USA
> Lines: 64
> Message-ID: <[email protected]>
> NNTP-Posting-Host: guru.qualcomm.com
>
> Please note that this article is cross-posted both to comp.lang.java and
> sci.crypt. If you follow up, please trim the newsgroups appropriately.
>
> Since a number of people expressed interest, I'm releasing an initial
> implementation of a secure login protocol in Java. This is still very
> much a work in progress (it's not really even of alpha quality), but
> the protocol itself is functional.
>
> It's intended that the classes in crypto.* and qualcomm.qbs.login.*
> live on the client; any other classes needed would be downloaded over
> the encrypted link. Hopefully, the client-resident classes will be
> few in number and change rarely; they are just intended to bootstrap
> up the connection. In the long run, the classes in crypto.* could be
> provided by the vendor of the Java VM.
>
> The distribution consists of two files:
> ftp://ftp.qualcomm.com/pub/gnoel/java.login.tar.gz
> ftp://ftp.qualcomm.com/pub/gnoel/java.no-export.tar.gz
> The first file contains the logic to execute the protocol and launch
> the splash screen (see below); it also contains the base classes from
> crypto.* but no cryptographic functions. The second file contains the
> base classes and the actual implementations of a few cryptographic
> functions to demonstrate how the base classes can be used.
>
> For sci.crypt, I've tried to capture the essence of what cryptographic
> functions can do in the base classes, without being specific to any
> particular protocol. I'm not completely happy with it, and would welcome
> any comments people might have on what might be missing. It's as minimal
> as I could make it and still provide a basis for whatever protocols need
> to be implemented.
>
> My motivation here is that Sun and Netscape are talking about defining
> a standard way of incorporating cryptographic functions in Java; it would
> be nice if the specification were usable for a lot more than the security
> protocols that come with Netscape. (I wouldn't object to having access
> to SSL from Java---in fact, I'd really like it---but I'd also like access
> to MD5 and the like.)
>
> This implementation of the secure login protocol uses short text strings
> to identify the packets being exchanged; that's for convenience while
> debugging---in a production implementation, it would be done differently.
> Other than that, I'd appreciate any suggestions as to how to improve the
> implementation. (A MAC digest prefixed to the packets is something I'm
> considering, for example.)
>
> For comp.lang.java, the splash screen is loaded over the secure connection
> but attempts to instantiate a member of the class cause a NoSuchMethodError
> to be thrown. The class itself seems to be defined correctly, and it should
> be no different from how an applet would be loaded and instantiated, but it
> still fails. If anyone can tell me what is going wrong and what I can to
> to fix it, the pizza and beer will be on me. (This has been a showstopper
> for four days now and I'm getting very frustrated by it.)
>
> The class design tries to minimize the number of classes that must be
> present in the bootstrap set; this led to a somewhat, ah, baroque set of
> functionality. If anyone has suggestions on how this could be done better,
> I'd be pleased to hear about it.
>
> If anyone has any questions about this, don't hesitate to drop me a line
> or post something in one of the newsgroups. I'm going home for some sleep
> now, but I'll be banging my head against it again in the morning.
>
> --
> -- Greg Noel, UNIX Guru [email protected] or [email protected]