Post
Topic
Board Announcements (Altcoins)
Re: NXT :: descendant of Bitcoin - Updated Information
by
nxtru
on 08/02/2014, 08:30:57 UTC
25000 NXT bounty for a method and Java implementation that verifies NXTplugin process has not changed. Need an OS independent way of finding the executable code of a previously registered NXTplugin. This means we can constrain the creation method (linker output), probably need to do this for unix, Mac and Windows separately.

I am looking for a practical solution that will allow realtime verification by the NXTcore to make sure that the NXTplugin has not been tampered with. NXTplugins will have to be opensourced and publish signatures for specific compilers. This signature is then verified prior to any usage of that plugin by the NXTcore.

BEFORE we would ever consider submitting this to jean-luc, we of course need to test it like crazy. If the code is changed at all, we assume it is tampered. This probably means we cant do any dynamic linking, and need either static or relative jumps. Not sure though. Just finding where the code is might not be so easy. Figuring out how to get a ptr to the Java process will probably be pretty difficult. Any reasonable one way hash function is fine for this bounty, just want to get the system issues out of the way so we can validate in realtime that a plugin has not been tampered with.

As long as the source is reviewed for Evil Bobness and the code that is executing generates the same signature, I think we are getting close to where we can trust it almost as much as a hardcoded plugin where the plugin is actually part of the NXT core. Once we have the ability to have NXT plugins that are external to the NXT core, that is when things can really take off. We still need a formal validation process before it is approved for inclusion in the approved list of plugins, but maybe we can sidestep that issue by just having web.xml entries?

PLEASE if anybody can find a security flaw in this method, post ASAP. Remember Evil Bob is very evil

James

Are these NXTplugins jar files? We could use jar signing feature. See Oracle docs:
- signing: http://docs.oracle.com/javase/tutorial/deployment/jar/signing.html
- verification: http://docs.oracle.com/javase/tutorial/deployment/jar/verify.html