Zitat:
Ich habe Hangens klaren Aussagen entnommen, dass es überhaupt keine Möglichkeit gibt, das ganze sicher zu verstecken. Ich muss sagen, mir geistert immer noch dieses Umlenken von "Sprungbefehlen" im Kopf rum Wenn man das ja immer machen kann, wie könnte man denn sowas verhindern/extrem verkomplizieren? Nur mal so ansatzweise. Ich meine, dann wäre es ja sogar sinnlos, verschlüsselungskomponenten zu benutzen, weil die ja auch einen Code/Passwort haben wollen, das man Ihnen übergeben muß.
Verwechsele bitte nicht einen Softwareschutz mit Verschlüsselungen. Man kann sehr wohl absolut sichere Systeme konstruieren. Meine Aussage war: ein Softwareschutz der auf reiner Software basiert KANN NICHT sicher sein.
D.h. aber NICHT das z.B. eine von mir verschlüsselte Datei unsicher vor dem entschlüsseln durch einen Hacker ist auch wenn er die Sourcen meiner Verschlüsselungs-Software besitzt. Der Unterschied ist nämlich das das benutzte Passwort zur Verschlüsslung in einem Kopf gespeichert ist. Sozusagen ist das wichtige Geheimniss zur Entschlüssung in einer einbruchsicheren Hardware gespeichert.
Als Softwareschutzt taugt dieser Weg aber nichts. Denn das benutzte Passwort zum Schutz der Software MUSS durch die Software selber zugreifbar sein. Es müsste im Falle eines Softwareschutzes irgendwo gespeichert werden, an einer Stelle wo der Hacker auch Zugriff hat. Somit macht die Grund-Thematik eines Softwareschutzes die Anwendung von sicherer Kryptgraphie sinnlos/überflüssig. Es sei denn man baut diese Kryptographie in Zusammenhang mit einbruchsicherer Hardware ein.
Es gibt nun verschiedene Ansätze für einen Softwareschutz:
1.) die Benutzer-Einstellung zum Produkt und Firma wird geändert. D.h. der Support, Preis und Vertriebsweg der Software wird durch den Hersteller so abgeändert das der Benutzer KEIN Interesse daran hat die Software zu knacken. Z.b. OpenSource + Internet + 0 Euro Preis.
2.) die Softwareindustrie nimmt Einfluß auf die Politik und schafft Gesetze die das Hacken ansich verbieten. D.h. der totale Überwachungsstaat damit die Softwareindustrie auch überprüfen kann ob geknackt wird. Patente, der National Security Act der USA, DRM = Digital Rights Management, Regional Codes der DVD, Trustcenter usw. usw. sind solche Maßnahmen.
3.) Man benutzt zusätzliche Techniken und bringt einbruchsichere Hardware ins Spiel. Bei diesem Weg ist es aber WICHTIG das zu keinem einzigsten Zeitpunkt die Software vollständig entschlüsselt bzw. ungesichert ist. D.h. wenn man solche Hardwaresysteme zum Schutz benutzen will so muß diese zu jedem Zeitpunkt des Softwarevertriebes, Speicherung und auch während der Anwendungsphase mit dieser Hardware verbunden sein. Somit MUSS möglichst jede Information erstmal digital vorliegen (globale Digitalisierung der Informationen), die Vertiebskanäle und die Speicherung der Daten muß zu jedem Zeitpunkt verschlüsselt werden und immer auf Hardware erfolgen die einbruchsicher ist. Der Fritz-Chip innerhalb der CPU von PC's + das CPRM=Contens Protection Management innerhalb von Speicherkarten wie SD-/xD Cards oder
IDE Festplatten + der MedialPlayer 9 mit der Einweg-Dekodierung von WMV Dateien (d.h. die Windows-Software ermöglicht KEINELEI Umkodieren von WMV Dateien) + die Schaffung von komerziellen Trustentern zur Verwaltung der nötigen Schlüssel=Identitäten sind solche Lösungen. NUR alle zusammen + entsprechhende Gesetze lösen das Problem. Dadurch wird Information=Wissen unfrei und kontrollierbar.
Die Maßnahmen 2. und 3. kann man als derzeitigem Trend in der Welt beobachten. Denn den Einfluß und die finanzielle Macht der großen Konzerne ermöglicht diesen exakt diese Wege.
Der Weg 1.) sprich der Trend zu OpenSource ist der derzeitige Anti-Weg zu 2) und 3) der freiheitsliebenden Menschen, entscheide dich.
4.) der Wettlauf mit dem Hacker ! Hier versucht der Programmerer mit allen Tricks zu verhindern das ein Hacker/Cracker die Software analysieren kann. Z.b. Anti-Disassembling um durch passives Disassembling den Hacker in die Irre zu leiten. Dabei nutzt der Programmierer sehr häufig Schwachstellen der durch die Cracker benutzten Disassembler aus. Das fatale daran !? Beginnt der Cracker zu cracken und schafft es auch, so knackt er NICHT nur die Software, sondern lernt nebenbei auch noch die Tricks des Programmieres. Bei der nächsten Software MUSS der Programmierer sich also absolut neue Maßnahmen einfallen lassen.
Desweiteren werden häufig "polymorphe" Systeme verwendet. D.h. selbst-entpackender und verschlüsselter Programcode. Die Software verändert sich durch die Registration, sie ist polymorph. Hier in der
DP gab es mal ein Thread der sich damit befasste. Mein Program das auf Verschlüsseltem-Programcode basierte der durch einen Polymorphen-Verschlüsselungsalgo beruht (sprich der Ver/entschlüsselungscode compiliert sich selber auf Grund des Registrationskey) wurde bis heute nicht geknackt. Aber! nur weil ICH der einzigste BIN der bis heute den richtigen Registrationscode in meinem KOPF gespeichert hat. Dies widerspricht aber der Softwaredistribution. Denn irgendwann muß ich dem Benutzter seinen RegCode senden. Dieser Benutzer kann aber nun die Software sich vollständig von selbst entschlüsseln lassen. IST der Benutzer ein Cracker so kann er damit also eine ungeschützte Softwarekopie herstellen. D.h. der reine Softwarebasierte Schutz einer Software WIDERSPRICHT immer der logischen Argumentation der heutigen Kryptographischen Systeme.
Softwareschutz ist also gleichbedeutent mit Profitsicherung und Profitsicherung wird durch Politische Maßnahmen für entsprechende Gesetze zum Schutz des Privateigentumes erfolgen. Damit könnte man übertrieben behaupten das ein Cracker/Hacker immer gegen das heutige bestehende Gesellschaftliche System verstößt.
Dir als Programmierer wird entweder der 1. oder 4. Weg übrigbleiben. Im 4. Weg verlierst du mit 99%'tiger Wahrscheinlchkeit immer gegen die Cracker/Hacker. Im 1. Weg schaffst du dir dagegen 99% der Menschheit zum Freund
Softareschutz, Kryptographie usw. sind also UNSERE Berührungspunkte als Programmierer mit der Welt der Politik.
Gruß Hagen