07-11-2005 01:27 PM
Hello,
" my security does not have to be super high...just
high enough so an average joe can't mess it up =)"
I believe everyone here has made some excellent suggestions
so this post is going to be pretty redundant, but it sounds like you have a couple
choices in your implementation here:
1) Store the actual password to the file -- to do this you would
need to encrypt it before writing, store the cyphertext, and decrypt it in your
program. Those links to LabVIEW cryptosystems seem pretty good. The open
source blowfish algorithm looks like you could just use the top level VI and
store the result of the encryption.
2) Store the result of a cryptographic one-way
hashing
function to the file and rehash/check the value every time Average Joe
enters
his password. The probability of hash collisions and the more
one-way the function is dictates the security level of the
system. Even a basic hash function seem sufficient for minimum security -- you could
even write your own basic function if you did not want to mess with MD5 or
some of the other algorithms out there.
A seemingly obvious solution would be to create an
invisible control to represent the password, set the display to encrypted and
make those values default. However, the problem with this is
programmatically making a control value default (i.e. this cannot be done) so
it sounds like you are going to have to write to a file regardless.
Hope this helps a little, and I have attached an
extremely basic string hashing function which will hash a string to a
number within a ceartin range.
Regards,
Travis M
Applications Engineer
National Instruments
07-11-2005 01:59 PM
08-28-2005 04:52 AM
08-29-2005 07:50 AM
Here it is in 7.0...
Mike...
11-16-2005 07:44 AM
I would like to address this to NI:
there is a number of quesitons related to encryption in the forum. If encryption/decryption is implemented in labview level, so that any stream of data (data flow, variable, communication link) could be encrypted/decrypted by simply passing the data through a VI or/or setting an attribute (level/type of eencryption) to VISA/file ref/shared variable, most of the users would be very happy. The idea is to SIMPLIFY and to avoid usage of 3rd party software.
There is a number of applications that REQUIRE encryption. For example, a lab experiment does not need it, but an industrial application would really apreciate that. In academia, a lab experiment can be conducted, but encryption is highly desirable, if an automated system for marking the results or remote education is to be implemented.
Sincerely,
Albert
11-16-2005 08:20 AM
There is a larger issue here than convenience and that is security. The foundation of good crypto is the concept of peer review--the ability to have people that know crypto review implementations and insure that there are no security compromises (inadvertent or deliberate). if NI did something "built-in" you can bet your life that they would consider it "proprietary" and it would not be subject to peer-review. In the end we would have to take it on faith that there were no bugs or "backdoors". Over the years I have spent too much time fixing bugs in NI's toolboxes to feel comfortable with that idea.
A second point is that crypto is a discipline in and of itself. It seems unlikely that there is anyone at NI who is a crypto expert and anytime a company gets outside its area of core competency, there are problems. For example, database access is a lot easier that crypto and look at the mess that NI's toolkit makes of it...
Bottom line is that if the idea of encryption is privacy, then you need to be sure that information you encrypt really is secure.
Mike...
11-16-2005 02:55 PM
Mike already addressed the main issue about encryption and that is implementing encryption in a closed source app is almost always a bad idea. There is no peer review of any significance and the main security of such apps is not the encryption but in fact the closedness of it, and you can see where that leads with all the leaks and security issues the biggest closed source (eventhough it is sold as shared source) project on earth has.
@alysko wrote:
I would like to address this to NI:
there is a number of quesitons related to encryption in the forum. If encryption/decryption is implemented in labview level, so that any stream of data (data flow, variable, communication link) could be encrypted/decrypted by simply passing the data through a VI or/or setting an attribute (level/type of eencryption) to VISA/file ref/shared variable, most of the users would be very happy. The idea is to SIMPLIFY and to avoid usage of 3rd party software.
There is a number of applications that REQUIRE encryption. For example, a lab experiment does not need it, but an industrial application would really apreciate that. In academia, a lab experiment can be conducted, but encryption is highly desirable, if an automated system for marking the results or remote education is to be implemented.
Sincerely,
Albert
11-16-2005 10:49 PM
11-16-2005 10:50 PM
@esa_paranoid wrote:Thanks for all of the responses.I chose to go the route of just writing the actual password to the registry. This is not really a "security" issue, more of a "I want to keep employees that do not know what they are doing" from changing anything...thanks again
11-17-2005 12:56 AM