Entwickler-Ecke

Freeware Projekte - Data Security - optimale Sicherheit für Daten aller Art


ckurz - Do 01.01.04 15:08
Titel: Data Security - optimale Sicherheit für Daten aller Art
Title: Data Security - optimale Sicherheit für Daten aller Art

Hallo Leute,
ich habe ein Programm namens Data Security geschrieben, das ich hier vorstellen möchte.

Das Programm besteht aus zwei wesentlichen Teilen:
- Verschlüsselung der Daten über Passwort oder Sicherheitsdatei
- Entschlüsselung der Daten

Bei der Verschlüsselung können beliebig viele Dateien ausgewählt werden, die dann wahlweise über ein Passwort oder eine Sicherheitsdatei verschlüsselt werden. Es entsteht eine Art Dateiarchiv, das alle selektierten Dateien in verschlüsselter Form enthält.
Der Vorteil einer Sicherheitsdatei ist, dass sie ein beliebig langes Passwort darstellt, der Vorteil eines Passwortes, dass es nirgends gespeichert werden muss.

Die Entschlüsselung erfolgt über die Eingabe des Passwortes bzw. dem Auswählen der Sicherheitsdatei. Danach werden die verschlüsselten Dateien angezeigt und können einzeln extrahiert werden.

Die Sicherheit dieser Art der Verschlüsselung beruht auf einem von mir entwickelten Algorithmus, der mittels des Passwortes bzw. der Sicherheitsdatei jedes Byte der gewählten Dateien über eine Matrix einzeln verschlüsselt, das Passwort bzw. die Sicherheitsdatei aber nicht mitspeichert.

Außerdem enthält das Programm ein komplettes Hilfesystem, das auch kontextsensitive Hilfe unterstützt (z.B. bei Fehlermeldungen).

Letztes Update: 01.01.2004

Hier geht's zum Download [http://home.arcor.de/ckurz/download/DataSecurity.zip] (221 KB).

Der Verschlüsselungsalgorithmus ist öffentlich verfügbar
- im Hilfesystem von Data Security.
- auf meiner Homepage [http://www.ckurz.de/dsalgo.html].

Es wird keine Installation benötigt weshalb kein Uninstaller enthalten ist. Lediglich zwei Dateien mit den Einstellungen des Benutzers (datasecurity.dat und DataSecurity.GID) werden im Programmverzeichnis erstellt.

Ich bitte um Rückmeldung bzgl. Sicherheit, Benutzerfreundlichkeit, Design und Nutzen.


Hawkinx - Di 06.01.04 15:59

:D
das programm ist richtig geil
wollte ich schon immer haben, um auf dateien ein passwort zu setzen

-Hawkinx


Christian S. - Di 06.01.04 16:22

Hallo!

Dein Programm gefällt mir richtig gut. Aber da ich ja ein verwöhnter Windows-User bin, noch ein paar Anregungen:

(1) Evtl. eine Symbolleiste mit Symbolen für Ver- und Entschlüsseln
(2) Ein Assistent, der einen durch das Ver- und Entschlüsseln leitet
(3) Ich habe erst gedacht, dass man bei "Decryption" im Programmfenster die zu entschlüsselnde Datei auswählt. Ich bin erst später auf den Trichter gekommen, dass man die über das Menü bestimmt. Vielleicht da ein Label, dass einem sagt, dass noch keine Datei ausgewählt wurde, oder so.

Außerdem solltest Du Deinen Verschlüsselungsalgorithmus veröffentlichen, denn ich denke nicht, dass jemand das Risiko eingehen und einen nicht-veröffentlichten Algorithmus verwenden wird!

MfG
Peter


ckurz - Mi 07.01.04 19:55
Titel: Veröffentlichung des Algorithmus
@Peter Lustig: du hast recht, ich habe den Verschlüsselungsalgorithmus veröffentlicht, und zwar
- im Hilfesystem von Data Security.
- auf meiner Homepage [http://www.ckurz.de/dsalgo.html].


Chatfix - Mi 07.01.04 21:06

@Peter
Woher will man wissen ob der veröffentliche auch gleich der Algorithmus ist der im Programm wirklich verwendet wird...

Von daher ist es eigentlich unrelevant ob der Algorithmus öffentlich ist, vielleicht kann den dann sogar einer knacken...


Christian S. - Mi 07.01.04 21:22

@Chatfix: im Alllgemeinen geht man davon aus, dass man dem Schreiber der Software vertrauen kann. Wenn man dies nicht tut, braucht man die Software gar nicht erst anwenden ...

Zitat:
Von daher ist es eigentlich unrelevant ob der Algorithmus öffentlich ist, vielleicht kann den dann sogar einer knacken...
Wenn die Sicherheit eines Verschlüsselungsalgorithmus davon abhängt, ob dieser öffentlich ist oder nicht, ist dieser Algorithmus Müll.

MfG
Peter


Christian S. - Mi 07.01.04 21:40

Hallo!

Ich habe mir den Algorithmus angesehen. Wenn ich die Länge des Schlüssels kenne, kann ich über eine Häufigkeitsanalyse den Code knacken. (Unter der Voraussetzung, dass es sich bei dem Verschlüsselten um einen Text handelt). Und wenn mir als jemand, der sich mit Verschlüsselung kaum auskennt, schon so etwas einfällt, wird jemand Erfahrenem wohl noch besseres einfallen. Du solltest Dir ganz schnell einen anderen Algorithmus suchen.

MfG
Peter


ckurz - Mi 07.01.04 22:08

Also ich glaube, ich muss hier mal einiges klarstellen, denn das allgemeine Wissen um Verschlüsselungen scheint hier nicht berauschend zu sein.

Prinzip von Kerkhoff: Die Sicherheit einer Verschlüsselung darf nicht von der Geheimhaltung des Algorithmus sondern nur von der Geheimhaltung des Schlüssels abhängen.
Genau dies ist gewährleistet. Mit dem Algorithmus kann kein Hacker der Welt etwas anfangen wenn er versucht, eine verschlüsselte Datei ohne das Passwort zu knacken.

@Peter Lustig zum Thema Häufigkeitsanalyse bei Texten: so ganz kannst du meinen Algorithmus nicht verstanden haben, denn wenn man immer denselben Buchstaben verschlüsselt kommt immer ein anderes verschlüsseltes Zeichen dabei raus, jenachdem, welches Zeichen des Passwortes bzw. der Sicherheitsdatei gerade dran ist. Keine Chance!
Deshalb eine Bitte: sei etwas vorsichtiger mit Äußerungen wie dass ich mir schnell einen anderen Algorithmus ausdenken solle, vorallem wenn du selbst sagst, dass du dich kaum mit Verschlüsselungen auskennst.


Christian S. - Mi 07.01.04 22:35

Zitat:
Prinzip von Kerkhoff: Die Sicherheit einer Verschlüsselung darf nicht von der Geheimhaltung des Algorithmus sondern nur von der Geheimhaltung des Schlüssels abhängen.
Habe ich was anderes gesagt? Das war genau meine Aussage. Scheint also mit dem Wissen doch nicht so schlimm zu sein, oder?

Zitat:
@Peter Lustig zum Thema Häufigkeitsanalyse bei Texten: so ganz kannst du meinen Algorithmus nicht verstanden haben, denn wenn man immer denselben Buchstaben verschlüsselt kommt immer ein anderes verschlüsseltes Zeichen dabei raus, jenachdem, welches Zeichen des Passwortes bzw. der Sicherheitsdatei gerade dran ist. Keine Chance!
Deshalb eine Bitte: sei etwas vorsichtiger mit Äußerungen wie dass ich mir schnell einen anderen Algorithmus ausdenken solle, vorallem wenn du selbst sagst, dass du dich kaum mit Verschlüsselungen auskennst.
Ich habe gesagt, wenn ich die Länge des Passworts kenne. Wenn die Länge x ist, dann wird jedes x-te Zeichen immer mit dem selben Zeichen verschlüsselt und auf diese Zeichen kann ich dann sehr wohl eine Häufigkeitsanalyse anwenden.
Deshalb meine Bitte: lese Dir die Aussagen anderer sorgfältiger durch, bevor Du Dich mit Deinen Bitten so weit aus dem Fenster lehnst.


ckurz - Do 08.01.04 12:48

Ok, legen wir jetzt mal nicht jedes Wort auf die Goldwaage.
Selbst wenn jemand die Länge des Passwortes kennt: dann weiß er zwar, in welchem Abstand die Zeichen immer mit demselben Byte verschlüsselt wurden, aber eine Häufigkeitsanalyse wäre dennoch kaum möglich. Besonders will ich mal sehen, wie du etwas analysierst, bei dem nur jedes dreihunderttausendste Zeichen (bei einer Sicherheitsdatei von 300 KB) gleich verschlüsselt wurde.
Außerdem ist es nicht unbedingt ein Text, und vorallem: die Passwortlänge bzw. die Größe der Sicherheitsdatei weiß kein Hacker.


BungeeBug - Do 08.01.04 16:41

Nö das nicht aber du musst immer mit der Dummheit der andern rechnen. Was bedeutet das die meisten Leute zueinfache Passwörter nehmen weis einfach bequem ist. Nun kann man sich als Softwareentwickler hinstellen und sagen "Ok dann sind sie selbst schuld" (solltest du zu diesen Leuten gehören ist das Heise Forum die richtige Anlaufstelle) andernfalls überlegt man sich wie man auch diesen Leuten helfen kann und die Passwörter samt Algo so kombiniert das trotzdem eine annehmbare Sicherheitsstufe erreicht wird. Die meisten Leute werden nun mal als PW einen Text nehmen und keine Datei (Text kann man behalten und muss nich immer eine extra Diskette oder CD dabei haben) und niemand merkt sich ein PW was länger ist als 15 Zeichen :) Nun wären wir wieder bei Peters Häufigkeitsanalyse ... die nun auch leider Gottes sehr gut ankommt ...


ckurz - Do 08.01.04 22:19

So wie ihr das sagt geht das einfach nicht mit der Häufigkeitsanalyse: selbst wenn die Länge des Passwortes bekannt ist muss es ein längerer Text sein (ok, kann man ja machen), aber niemand teilt anderen die Länge seines Passwortes mit, und es ist nicht möglich, diese aus der verschlüsselten Nachricht zu extrahieren.
Glaubt mir, wenn man nichts vom Passwort weiß ist es selbst bei Plaintext unmöglich, die Verschlüsselung zu knacken, geschweige denn bei Word-Dokumenten, Videos, usw.


Christian S. - Do 08.01.04 22:23

Hallo!

Ich denke, wie BungeeBug, dass die Passwörter der meisten Leute nicht länger als 15 Zeichen sein werden. Und für die Längen 1..15 kann man einfach mal eine Analyse machen.

Aber Du hast Recht: es funktioniert selbstverständlich, wie ich auch oben schrieb, nur bei Textdateien. Aber Dein Programm soll ja alle Dateitypen schützen.

MfG
Peter


Raphael O. - Do 08.01.04 22:25

aber die meisten User werden doch wohl relativ kurze Passwörter haben und wenn man schon weiß, das das Passwort 1-maximal 15 Stellen hat, dann probiert man diese Möglichkeiten aus :/
ich weiß nciht wie und ob das funktioniert, da ich davon keine Ahnung habe, aber WENN man anhanfd der LÄNGE des PW an die Daten rankommt, dann muss man halt nur ein die Möglichkeiten der Länge durchgehen und dann hat mans :)

EDIT: @Peter-Lustig: wenn da mal keine Punktlandung war... leider war ich später dran ;)


BungeeBug - Do 08.01.04 22:54

und sooo viele Möglichkeiten gibt es auch nicht ... ziemlich genau 15*26. Was zwar ne Menge Text ist aber durch aus zubewältigen ist.


Christian S. - Do 08.01.04 23:03

Vorsicht, BungeeBug, das sind doch deutlich mehr. 26^15, wenn man nur Buchstaben zulässt, aber ein paar Zahlen sollen ja auch noch zugelassen sein. Eine Attacke mit "ich probiere alle Passwörter durch" wird wohl kaum Erfolg haben.


ckurz - Fr 09.01.04 07:41

Peter hat recht, da jedes Zeichen mit dem ASCII-Code von 0 bis 255 zugelassen ist sind es deutlich mehr Möglichkeiten.
Nehmen wir nur die Klein-/Großbuchstaben und Ziffern, haben wir 62^15 + 62^14 + 62^13 + ..., das sind ca. 7,82 * 10^26. Veranschlagt man 1 ms pro Ausprobieren (BruteForce-Programme und so), so dauert es 2,48 * 10^16 Jahre, um alle Durchzuprobieren.
Mit allen Zeichen von 0 bis 255 muss man jetzt gar nicht mehr rechnen.

Aber selbst wenn wir Rechner mit zig Gigahertz hätten würde das alles nichts nützen, denn solche BruteForce-Programme können nicht wissen, wann sie das richtige Passwort probiert haben, mein Programm erkennt das zwar, aber selbst wenn man dessen Quellcode hat und an BruteForce gibt, so ergäben sich immer noch viel zu viel mögliche Passwörter, die der Benutzer selbst durchprobieren müsste, um zu sehen, ob die Dateien sinnvoll entschlüsselt werden.


BungeeBug - Fr 09.01.04 15:54

Ups ja ... habt ja recht ... bin nur grad in Gedanken bei einer Aufgabe aus dem Info-Unterreicht die so ählich aussieht. Nun eben mit der Einschränkung das es bei uns nur GROSS - Buchstaben gibt. Daher mein Denkfehler ... ich bitte dies zuentschuldigen.


Delete - Do 22.01.04 21:52
Titel: Vigenere
Also mal ehrlich. Dein Proggy ist ja ganz witzig. Aber such mal im Internet nach dem Vigenere-Code. Genau den implementierst du nämlich. Nix für ungut, aber mit fremden Lorbeeren sollte man sich nicht schmücken.


O'rallY - Sa 24.01.04 12:31

@ ckurz Du solltest dich mal mit Motzi oder mit negaH über die Sicherheit deines Programms unterhalten. Die können dir zu diesem Thema was erzählen ;).

Wenn ich das richtig verstanden habe zielst du auf ein OneTimePad ab. Doch dies setzt voraus, dass der Schlüssel mindestens so lang ist, wie die zu verschlüsselnden Daten und dabei noch völlig zufällig. Sobald kein OneTimePad vorliegt ist der Vigenère-Algorithmus sehr unsicher. Sobald der Schlüssel kleiner ist, ist der Algorithmus anfällig für eine Koinzidenzerfassung (stellt mich richtig, wenn ich mich irre). Dabei kann die Schlüssellänge ermittelt werden. Darauf lassen sich mit einer Redundanzanalyse bestimmte Muster erfassen, die dann letztlich zur Entschlüsselung des Textes führen.

Ich empfehle dir wärmstens Algorithmen wie Rijndael oder Blowfish bzw. Twofish zu verwenden! Eine sehr schnelle und gute implementierung findest du in Hagen Reddmanns DEC.


JayEff - Mi 02.06.04 21:30

Die Entschlüsselung(ohne schlüssel) bei einem Schlüssel der genauso lang ist oder etwa 1/30 der länge des Textes hat, ist nahezu völlig unmöglich. das Entschlüsseln ohne den schlüssel funktioniert so, dass man nach sich wiederholenden Zeichen ketten sucht, und aus deren abstand kann man die länger des schlüssels erhalten. danach kann man aus deiner Polyalphabethischen Verschlüsselung eine monoalphabethische machen. Das entschlüsseln wird dadurch zum Kinderspiel, jedenfalls bei Deutschen Texten. ob es auch bei dateien geht weis ich nicht. Versuch doch zum steigern der Sicherheit, bestimmte häufige Zeichenketten mit ÖSDCVH429wtrwASDFPO2ßp39u5"$TWHefpawdc0j2ß23ß5ß oder so zu ersetzen. dann wärs vielleciht noch ein stück sicherer.

Um auf o'Rally zurück zu kommen, wie ich oben schon gesagt hab, muss es nicht sein, dass die dateien entschlüsselbar sind, wenn kein OneTimePad vorliegt. denn um sie zu Entschlüsseln, ist die Häufigkeits analyse nötig, welche aber nur bei Texten klappt, die in einer Sprache verfasst sind.

@Knox: da Vigenère seit laaaaaaaanger Zeit tot ist, ist das wohl kaum so schlimm...

Last but not Least gibt es bereits ein (komfortables) Programm, welches Freeware ist, TwoFish, Vigenère, Caesar, RSA, und ein Programm beinhaltet, das Komplette dateien, aucuh zip undsoweiter.. Verschlüsselt.
Man kann damit SEEHR viel machen, und wer sich für Verschlüsselung interessiert, der MUSS es sich anschauen! hat leider 8,6 MB... Wer das Prog haben will bekommt von mir per PN die seite, und wenns den Verfasser dieses Threads nicht stört, poste ich sie.

Deine Vigenère-artige Verschlüsselung hab ich übreigens auch mal erdacht und in mein Verschlüsselungsproggy eingebaut. das ist aber nur zum Verschlüsseln von Texten.

Aber eine tolle idee ist es wirklich!! Gratuliere!

[edit]Das Prog kann noch mehr: Serpend, DES, Triple DES, MARS, IDEA, RC2, RC4 ,RC6, Rijndael (AES), AES mit Selbst extrahierung(Das tut das von mir beschriebene Externe proggy, das mit dabei ist), und sogar die SUPERGEILE Hybrid Verschlüsselung(!!!!)
Weiter kann es Hill, PlayFair, Substitution, Byteweise Addition, XOR( das ist ein Operator in Delphi!!) Vernam, Homophone, Permutation;
Es hat auch AnalyseAlgorithmen!! (hab mal versucht was zu entschlüsseln: hätte 2 Jahre oder so gedauert...^^) Seid froh und frohlocked, oh ihr alle die ihr das Programm geladen habt!!!!!!!!!!!! ES IST SOO GEIL! Tschuldigung, das ich schwärme.. :roll: [/edit]