Internal security of Rev? Hardware for storing passphrases or keys?
John Tregea
john at debraneys.com
Tue Jul 18 04:35:23 EDT 2006
Hi Chipp,
Thanks for your extensive reply. My apologies if my questions have not
been clear. I am grappling with both security questions relating to the
protection of our clients information as well as methods and strategies
best suited to deliver what will be our first "commercial-off-the-shelf"
software offering. We are aiming to structure the software in a way that
protects our investment (necessary in this world at this time) without
driving our clients nuts (our corporate mission) :-) .
There is a whole bunch of other stuff I didn't say that might put some
of my questions in perspective.
We have always built easy to maintain, practical solutions for our
clients. We charge an honest amount of money for our work, always exceed
our clients expectations and in ten years have never not delivered what
we have promised on budget and within the time frame allowed. That is
why I work where I do, because my boss is someone I respect and she
always gives us the time to achieve these things. Our software this time
is an architecture that distils the best of what we know and implements
it in an entirely new way. We have built "purpose specific" solutions
for clients for many years but this is our first commercial offering.
I am aware though that there is much that I don't know and that other
organisations have strengths in complimentary areas. That is why I am
investigating a whole range of current technologies (Revolution, U3,
iButtons, JVM, RFID, encryption, hardware VPN devices etc) to see what
will achieve what is needed with simplicity for us and our clients. I
expect in the end that one or two devices and a small selection of
software development environments will be able to be combined to achieve
security for our clients along with respectful protection of our investment.
So I appreciate your reply along with the many other inputs from this
community. It has all helped me to understand more of pieces of the puzzle.
Chipp Walters wrote:
> Perhaps I'm not understanding you correctly, but as I read this, you
> want to burden your users with a dongle, because you don't want to
> learn a bit of
> PHP? I think if you consider using a 3-tier approach, you would find
> it is more secure, and more extensible as well. If you are ever
> inclined to
> provide a web browser interface for your product, having the
> middle-tier already built in PHP can be a huge benefit.
I agree entirely that dongles are not a good idea. I have never required
one for any software I have written and am not likely to start now.
The hardware based key isn't so much used as a dongle, but to provide
another factor for user authentication to ensure their data is
protected. The information is to do with risk assessment, security plans
and the counter measures being put in place in worldwide supply chains
to deter or prevent terrorist activities.
I don't want to rely only on a user maintained password for
authentication because not only can the password be discovered by an
unauthorised person, but I am only able to get limited audit information
until a valid connection is established. So repeated attacks on the
database system that fail because of incorrect username/password
combinations do not get recorded in the main audit trail. They do get
entered in the database error log, but our own audit trail is system
wide and stores much more detailed information. Hence my desire to have
a database account that is used to allow more extensive validation
against multiple factors. It was the login details of that that single
account that I wanted to store in an encrypted format in the stand alone
environment and originally asked how secure would that be.
> Furthermore, having the database login info on your server makes it
> MUCH MORE DIFFICULT for someone to crack it, because they have to have
> access to
> your server. Putting the code in a dongle, or any client app makes it
> available at all times to any hacker.
Part of the attraction of Rev is that it can establish connections to
many types of databases at the same time. Our product architecture
allows organisations to overlay information from many sources of
information (multiple databases, content management systems, web based,
GIS, public data sources, XLS data, CCTV, etc).
While certain data sources are definitely going to be accessed via
CGI's the core pairing of Rev and PostgreSQL seems a clean, mature and
stable one.
> Finally, if I really HAD to embed a user/pass into a stack, I could
> store it with using my own encoding scheme in an already password
> protected stack as
> part of a script which I would not use. Because all scripts are
> encrypted, then I would have the benefit of double protection in a
> place difficult to
> find (some script).
It seems that our best bet for providing practical security for our
users are to:
A. Always use 128bit SSL connections over the network with private and
public key infrastructure
B. Provide mirrored hot swappable drives with encrypted data storage
(hardware encryption if economical)
C. Provide a second authentication method in addition to the password
(e.g., the iButton or a USB thumb print reader)
D. Store the users classified information on a server that is configured
to prevent access at the operating system level.
> Of course, I imagine if someone takes the time to crack it, then they
> could also crack a USB key without much more trouble. In fact,
> somewhere in your
> code, you'll need to define a global or function which 'checks the
> serial' and if someone can hack your stack, then they can overide that
> function as well.
The solution provides many easy to use tools but is an industry specific
implementation this time. So in a way, I don't expect people to rush out
and build an intermodal container port or supply chain infrastructure
just so they can mess about with our software. :-)
> As many others have already said, I would spend my time adding some
> decent copy protection, and then work on features which help sell my
> product.
I hear you...
Kind regards
John T
More information about the use-livecode
mailing list