|
|||||||||||
|
Re: protecting perl script source
From: Jim McGarvey <mcga0031(at)umn.edu>
Date: Thu Jan 30 2003 - 11:35:06 EST I'm not sure what solutions were already proposed but here's my take on the question. You want to protect a script running on a server from being stolen, and that script needs to access the Internet when running. You specify that the server running the script needs to boot unattended, which is problematic, because that eliminates a common option for a useful cryptographic solution. If you cannot accept a solution that requires an operator to manually enter a decryption key or passphrase (at the console or remotely), should a reboot of the server be required, then all that can be done is security vigilance, as you mentioned, and possibly network/application architecture and computer architecture enhancements, which I'll describe below. Any other cryptographic solutions would be "security through obscurity" as others have mentioned. But if you are willing to have your script stop running briefly after the server boots, while waiting for an operator to locally or remotely provide a passphrase, then you can limit your exposure by only having the decrypted script in memory. So here are the best (theoretical) solutions you have available to you:
Protects Against:
Fails Against:
Rating: 5/10 for effectiveness of security, 5/10 for ease of implementation 2. *Modify Network/Application Architecture.* Instead of one firewall and one server, break the application into two parts, and have two firewalls and two servers, connected in this order: Internet = external-firewall = dmz-server = internal-firewall = internal-server. This assumes that it is possible to modify the architecture of your application such that the secret parts of it reside on the better-protected internal-server, which accesses data gathered by the dmz-server through the internal-firewall. The internal-firewall would only allow connections through a sanitized protocol originating from the internal server. The external-firewall would be more lenient to accommodate whatever connectivity to the Internet is necessary for the application to function. The internal-application would tell the dmz-application what to do and what data to get, while keeping the secrets of the application on the better-protected internal server.
Protects Against:
Fails Against:
Rating: 6/10 for effectiveness of security, 4/10 for ease of implementation 3. *Modify Computer Architecture.* If indeed this imaginary script is worth millions of dollars, then perhaps it would be worth the time and expense to move the sensitive code into some kind of tamper-proof package that integrates with the server and performs any sensitive computations. Like a smart card, but tamper-proof in that the code stored inside cannot be accessed physically or programmatically, it can only be written and run on an internal processor. This sounds theoretical to me, but I've heard that there are such commercially available "tamper-proof" packages available, though I'm told the engineers who make them usually devise some way of bypassing the tamper-proofing while testing the products. If anyone can tell me if there is such a product available, and point me toward further information, that would be interesting to read about.
Protects Against:
Fails Against:
Rating: 8/10 for effectiveness, 0.1/10 for ease of implementation
ready for criticism... fire away!
At 11:58 AM 1/24/2003 -0700, you wrote:
This archive was generated by hypermail 2.1.8 : Wed Aug 23 2006 - 14:07:48 EDT |
||||||||||
|
|||||||||||