Dateiverschlüsselung OHNE PW

moin moin

ich habe folgendes problem:

ich versuche seit einiger zeit vergeblich ein programm (executable und dlls) unlesbar, aber dennoch ausführbar zu machen.

gute erfolge erzielte ich mit fileghost, wobei ich jedoch bemerkte dass diese änderungen nur lokal am eigenen pc erfolgten, nicht aber auf die datei selbst


deswegen ist meine frage an dieser stelle:

ist es möglich, wenn ja wie, eine datei für andere (hexacodes, etc) unlesbar zu machen, ohne dabei das programm soweit zu beschädigen dass es nicht mehr läuft?

dasselbe sollte für jede art von datein möglich sein.


noch als anmerkung: die verschlüsselung sollte kein passwort erfordern, sondern einfach einen simplen leseschutz darstellen
 
Einen simplen Lese-Schutz (dass nur du die Anwendungen ausführen kannst bzw. auf die Datei zugreifen kannst und kein anderer User) erreicht man auf einem lokalen System doch ganz gut über die Rechte-Verwaltung des Dateisystems ?!

(jedenfalls solange, bis man mal mit ner Live-Linux-Distri bootet ;-) )

Oder was genau hast du vor?!
 
Original von Thyrador
ich versuche seit einiger zeit vergeblich ein programm (executable und dlls) unlesbar, aber dennoch ausführbar zu machen.

Kannst du eine Nachricht auf einen Zettel schreiben, die jemand anderes zwar nicht lesen kann, die Anweisungen aber trotzdem ausführen kann? Genau das ist es, was du versuchst zu tun.
 
du kannst auch eigene befehler erstellen; so kryptisch wie möglich. aber das grenzt schon fast an eine neue programmiersprache
 
Original von valenterry
Kannst du eine Nachricht auf einen Zettel schreiben, die jemand anderes zwar nicht lesen kann, die Anweisungen aber trotzdem ausführen kann? Genau das ist es, was du versuchst zu tun.

indirekt...denn wenn der text auf dem zettel verschlüsselt, somit für andere nahezu unlesbarwird,es sei denn sie knacken die verschlüsselung, ist, ist die datei, was ich erreichen will, ja sogesehn unlesbar

jedoch sollte wie gesagt das programm ohne probleme weiter ausgeführt werden können
 
Wie soll denn dein System wissen was es mit der Datei machen soll? Irgendwie musst du ja den Schlüssel zum entschlüsseln übergeben (Passworteingabe, Smartcard, auf der HDD gespeichert...)
 
Also, mal ganz philosophisch gesehen sieht das analog einer "Dienstleistung" aus. Wir hatten übrigens das Thema schon mal. Für Batch-Dateien.

Das Funktionsprinzip ist aber entweder relativ aufwendig oder nicht wirklich sicher.

Das Grundprinzip: Du läßt die Anwendung NICHT im Verantwortungsbereich (sprich: unter dem Konto) des benutzenden Anwenders ausführen, sondern in einem von diesem getrennten Anwendungsbereich (sprich: Konto).

DAMIT das Programm dort ausgeführt werden kann, OHNE daß es vom Anwender eingesehen werden kann, MUSS das Progamm in jenem Bereich von einem Administrator unter einem extra Konto eingerichtet und gestartet werden und auf das Benutztwerden warten. So wie es Millionen von Servern auf dieser Welt im Internet tun, deren Dienste man nutzen kann, ohne deren programmtechnische Inhalte lesen zu können (WENN die korrekt eingerichtet sind).

In jedem anderen Fall MUSS zwingend eine Technik verwendet werden, die relativ trivial umgehbar ist - sobald der auf Abstand zu haltende Anwender ihr Funktionsprinzip verstanden hat. Das hat dann nur noch eine Verschleierungsfunktion. Die ja aber abhängig vom Anwendungsfall durchaus ausreichend sein kann.
Denn wenn das Programm unter dem Konto des Anwenders ausführbar sein soll, MUSS es zwingend auch lesbar sein. Was sollte der Betriebssystemkern denn sonst im Namen des Anwenders ausführen?

Wenn außerdem verhindert werden soll, daß nach einem Reboot von einem beliebigen alternativen Betriebssystem das Zeug gelesen werden kann, muß es zwingend verschlüsselt abgelegt werden, wobei der Schlüssel nicht auf dem zu schützenden System liegen darf. Das Programm muss also auch zwingend aus einem wie auch immer verschlüsselten Zustand von einem Administrator gestartet werden und entschlüsselt nur im RAM liegen, solange es unter dem entsprechend eingerichteten Betriebssystem läuft.

Zum Schutz gegen Geheimdienste ist mitunter noch viel mehr erforderlich. Aber das sprengt den Rahmen...

Sofern wir mal nicht von bösen Buben ausgehen, sollte es ausreichen, einen Rechner anständig mit Konten einzurichten und Programme als Dienste zu organisieren.
 
Original von Harry Boeck
DAMIT das Programm dort ausgeführt werden kann, OHNE daß es vom Anwender eingesehen werden kann, MUSS das Progamm in jenem Bereich von einem Administrator unter einem extra Konto eingerichtet und gestartet werden und auf das Benutztwerden warten. So wie es Millionen von Servern auf dieser Welt im Internet tun, deren Dienste man nutzen kann, ohne deren programmtechnische Inhalte lesen zu können (WENN die korrekt eingerichtet sind).

genau so soll das eben nicht laufen müssen, da dieses programm ja auch weiterverteilt wird (deswegen die verschlüsselung), möchte somit also dem datenklau vorbeugen

Original von Harry Boeck
In jedem anderen Fall MUSS zwingend eine Technik verwendet werden, die relativ trivial umgehbar ist - sobald der auf Abstand zu haltende Anwender ihr Funktionsprinzip verstanden hat. Das hat dann nur noch eine Verschleierungsfunktion. Die ja aber abhängig vom Anwendungsfall durchaus ausreichend sein kann.

das würde schon reichen, da die meisten derer, die dieses programm nutzen werden, weder in der lage sind noch sich die mühe machen würden die verschlüsselung zu knacken.

Original von Harry Boeck
Denn wenn das Programm unter dem Konto des Anwenders ausführbar sein soll, MUSS es zwingend auch lesbar sein. Was sollte der Betriebssystemkern denn sonst im Namen des Anwenders ausführen?

es ergibt sich daraus ja eben nur eine offensichtliche frage: wie deklariere ich dem system das entschlüsselungsprinzip? (direkt nach der frage wie ich diese verschlüsselung am besten löse)

Original von Harry Boeck
Wenn außerdem verhindert werden soll, daß nach einem Reboot von einem beliebigen alternativen Betriebssystem das Zeug gelesen werden kann, muß es zwingend verschlüsselt abgelegt werden, wobei der Schlüssel nicht auf dem zu schützenden System liegen darf. Das Programm muss also auch zwingend aus einem wie auch immer verschlüsselten Zustand von einem Administrator gestartet werden und entschlüsselt nur im RAM liegen, solange es unter dem entsprechend eingerichteten Betriebssystem läuft.

bestünde hier nicht die möglichkeit den schlüssel aus dem netz zu beziehen?ansonsten könnte man dieses keyfile ja per attrib +h +s datei.endung für den normalen nutzer verstecken, bzw per installer an einem ort verschwinden lassen der dem normalen nutzer nicht so geläufig ist

Original von Harry Boeck
Zum Schutz gegen Geheimdienste ist mitunter noch viel mehr erforderlich. Aber das sprengt den Rahmen...

soweit sollte das nun auch nicht gehen müssen, habe ja nichts zu verstecken ;)
mir geht es prinzipiell einfach um datenklau-vorbeuge

Original von Harry Boeck
Sofern wir mal nicht von bösen Buben ausgehen, sollte es ausreichen, einen Rechner anständig mit Konten einzurichten und Programme als Dienste zu organisieren.

wie oben schon erwähnt wird dieses programm per internet, bekannte und freunde weiterverteilt, was es mir also unmöglich machen würde jeden benutzerrechner administrativ fern zu verwalten, sonst wäre das ja kein problem mit der (wenn auch minderen) sicherheit, folglich muss also eine verschlüsselung her, mit der ich so ziemlich denselben effekt erziehle
 
ansonsten könnte man dieses keyfile ja per attrib +h +s datei.endung für den normalen nutzer verstecken, bzw per installer an einem ort verschwinden lassen der dem normalen nutzer nicht so geläufig ist

Na, wenn's weiter nichts ist UND Du selbst der Auffassung bist, DASS Dir das ausreicht: Laß die zu versteckende Datei doch genau DAMIT verschwinden! Ausführbar und auch sonst benutzbar ist sie deshalb dann immer noch.

Weil: WENN Du damit zufrieden bist, Cryptographie mit DIESER Methode zu verstecken, warum dann überhaupt so ein Aufstand über den Umweg der Cryptographie? Die wäre dafür totaler Overkill. Es wäre nicht nur scheinbar, sondern ganz elementar und vollständig nutzlos.

Allerdings mußt Du damit rechnen, daß JEDER, der an sowas wie Binärcode oder auch nur dem Kopieren von Programmen interessiert ist, sich davon nicht mal ansatzweise beeindrucken läßt. Eine der GRUNDLEGENDSTEN Empfehlungen für Benutzer, die die Kontrolle über ihren Computer haben wollen, ist, das Verstecken solcher "versteckten" Dateien abzustellen:

http://www.google.com/search?hl=en&q=versteckte+dateien+anzeigen&btnG=Search

> 100'000 Treffer (mal als Denkanstoß)...
 
Für ausführbare Programme gibt es zu diesem Zweck Protectoren. Bekannte sind z.B
ASProtect, ExeCrypter, Armadillo, die von http://www.oreans.com/

Das gibt keinen sicheren Schutz, macht allerdings einen erheblichen Aufwand.
Wenn Du google befragst, findest Du auch freie Protectoren (damit gepackte Executables werden von AV Software allerdings oft als Malware erkannt, da diese Protectoren von den lieben Script Kids zum Tarnen ihrer Malware missbraucht werden.). Vielleicht reicht das schon für Deine Zwecke aus.

Sonst hat man das Henne-Ei Problem: solange der Code auf dem Zielrechner ausgeführt wird, muss er entschlüsselt vorliegen (oder man unterhält sich vorher mit Intel/AMD, so dass sie noch einen zusätzlchen Opcodedecoder für die Eigenkreation in ihre CPUs integrieren ;) ). Alternativ gibt es angeblich ziemlich sichere (aber exotische) Dongle Lösungen - dabei werden kritische Codestellen in den Dongle ausgelagert und auf dem im Dongle integrierten Prozessor ausgeführt und nur Ergebnisse zurückgegeben. Der Aufwand, um an den Code zu kommen, steigt hier doch noch mal (angeblich) beträchtig - nur ist das Ganze doch etwas teuer und je nach Anwendungszeck auch noch lahm (wegen dem Dongle Prozessor). Ich würde aber sagen, die meisten Programmierer haben eine zu übertriebene Angst vor Codeklau - so einfach ist das auch wieder nicht. Einfache "cracks" und Algorithmenklau sind zwei verschiedene Paar Schuhe und das zweite erheblich aufwendiger, sobald es sich nicht mehr um triviale Algorithmen handelt.
 
Zurück
Oben