Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

ASP Scripts verschlüsseln

Geschrieben von: Christoph Wille
Kategorie: Sicherheit

This printed page brought to you by AlphaSierraPapa

Der Schutz geistigen Eigentums (Urheberrecht) ist besonders am Internet ein sehr heißes Thema. Und wir als ASP Programmierer sind mitbetroffen - unsere Scripts sind für jedermann lesbar, der Zugriff auf die lokale Festplatte hat. Dies ist umsomehr problematisch, als wir meistens nur Nutzungsrechte an von uns erstellten Programmen verkaufen.

Wie kann ich mein geistiges Eigentum - den Sourcecode des ASP Scripts - vor dem Zugriff Dritter schützen? Dafür gibt es verschiedene Varianten, und zwei sehr beliebte sind:

In diesem Artikel beschäftigen wir uns ausführlich mit der ersten Variante, nämlich das fertige Script zu verschlüsseln.

Zum Verschlüsseln von Scripts (ASP, WSH, HTML) gibt es ein Gratis-Tool von Microsoft, und zwar den Script Encoder (siehe Downloadlinks). Dieser verschlüsselt alle Codeteile eines Scripts, zB wird aus

<%
Response.Write "Testscript, © AspHeute.com"
%>
nach dem Aufruf des Script Encoders
<%@ LANGUAGE = VBScript.Encode %>
<%#@~^OAAAAA==@#@&InkwKx/Rq.kD+~J:+dOkmDb2YBP[
	1G2XpPz/2Cn;D+ mKhJ@#@&YxEAAA==^#~@%>
Der Befehl, der diese Verschlüsselung bewirkt hat, ist relativ simpel:
screnc non-enc.asp enc.asp
Bevor ich nun die Details der Verschlüsselung bespreche, ein kurzer Ausflug zur Installation des Script Encoders sowie zum Deployment der verschlüsselten Scripts bei Kunden.

Installation

Der Scriptencoder ist nicht Teil der Scripting Engines, die mit IIS4 oder IE5 installiert werden. Allerdings enthalten alle MS Script Engines Versionen 5.x und höher bereits die Funktionalität, die mit dem Script Encoder verschlüsselten Scripts laufen lassen zu können. Man muß beim Kunden also nur sicherstellen, daß VBScript oder JScript Version 5 oder höher installiert ist.

Auf der Maschine, auf der man die Scripts verschlüsseln will, muß man zuerst den Script Encoder installieren. Dies ist auch sehr einfach, allerdings gibt es eine Fußangel: die Datei screnc.exe ist nicht im Pfad, das heißt, man muß sie aus \Program Files\Windows Script Encoder\ in das Windows 2000 Verzeichnis kopieren, um sie von überall aus verwenden zu können.

Verschlüsseln

Wir haben ja bereits ein Script verschlüsselt:

<%@ LANGUAGE = VBScript.Encode %>
<%#@~^OAAAAA==@#@&InkwKx/Rq.kD+~J:+dOkmDb2YBP[
	1G2XpPz/2Cn;D+ mKhJ@#@&YxEAAA==^#~@%>
Wie man sehen kann, hat der Scriptencoder eine @LANGUAGE Anweisung eingebaut. Diese weist ASP an, zur Laufzeit diejenige Script Engine auszuwählen, die das verschlüsselte Script ablaufen lassen kann.

Für .asp Dateien nimmt srcenc.exe standardmäßig an, daß die verwendete Default Scriptsprache VBscript war. Wäre es JScript gewesen, würde der Befehl zum Verschlüsseln so aussehen:

screnc.exe /l JScript non-enc.asp enc.asp

Bei <SCRIPT> Blöcken verhält sich der Scriptencoder analog. Wenn ich folgenden Block verschlüssele

<SCRIPT LANGUAGE="VBScript" RUNAT="SERVER">
Function DoSomething()
  nVal = 100
  nVal = nVal + 1
End Function
</SCRIPT>
dann erhalte ich
<%@ LANGUAGE = VBScript.Encode %>
<SCRIPT LANGUAGE="VBScript.Encode" RUNAT="SERVER">
#@~^VwAAAA==@#@&@#@&wE	mYbW	~fK?G:Y4r	o`*@#@&,
	PxjCsP{P8!T@#@&~,x#l^~'
	,x#C^P_~q@#@&3x9~wEU1YbWx@#@&eRQAAA==^#~@
</SCRIPT>
Ein sehr nettes Zusatzfeature bietet der Scriptencoder dann, wenn man bestimmte Teile nicht verschlüsseln möchte:
' © Some Organization
'**Start Encode**
myVar = "foo"
Mit der Kommentarzeile '**Start Encode** teilt man dem Scriptencoder mit, ab welcher Zeile der Sourcecode verschlüsselt werden soll:
<%@ LANGUAGE = VBScript.Encode %>
<%
' © Some Organization
'**Start Encode**#@~^FQAAAA==@#@&:zjlMP',J6GWr@#@&QgQAAA==^#~@%>
Wichtig ist, daß ab dieser Zeile sämtlicher Code verschlüsselt wird - inklusive der, der in <SCRIPT> Blöcken eingeschlossen ist.

Schlußbemerkung

Eine 100%ige Sicherheit für seinen Sourcecode bekommt man mit dem Scriptencoder definitiv nicht, allerdings dürfte er den Großteil der Personen abhalten, sich an Ihrem geistigen Eigentum zu vergreifen. Will man mehr, dann bleibt einem der Weg zur Komponentenprogrammierung nicht erspart.

This printed page brought to you by AlphaSierraPapa

Verwandte Artikel

Kopieren verboten - Lizenzsicherung bei ASP Scripts
http:/www.aspheute.com/artikel/20020411.htm
MS Script Encoder dekodiert
http:/www.aspheute.com/artikel/20011123.htm

Links zu anderen Sites

MS Script Encoder
http://msdn.microsoft.com/scripting/default.htm?/scripting/vbscript/download/vbsdown.htm

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.