Verschlüsselung (AES etc.) für PB 4
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@Kaeru Gaman:
> die erreiche ich aber auch, indem ich eine eigene verschlüsselung progge.
> es gibt so viele variationsmöglichkeiten, da muss dann erstmal einer
> hinter den algorithmus steigen, wenn das kein überall verwendeter ist,
> und dann überlegt sich einer schon, ob sich das überhaupt lohnt.
Sicherlich wird ein potentieller Angreifer sich den Kosten-Nutzen Effekt überlegen. Sollte der Nutzen jedoch überwiegen wird "Security by Obscurity" keinem ernsthaften Angriff stand halten.
Ein sicheres Verfahren benötigt keine Geheimhaltung des Algorithmus
> das würde mich mal näher interessieren.
> wie funktioniert das? gibts da beispiele/abhandlungen drüber?
Auf verschlüsselte Inhalte:
http://de.wikipedia.org/wiki/Kryptoanalyse
Reverse Engineering von Anwendungen:
http://de.wikipedia.org/wiki/Reverse_Engineering
> die erreiche ich aber auch, indem ich eine eigene verschlüsselung progge.
> es gibt so viele variationsmöglichkeiten, da muss dann erstmal einer
> hinter den algorithmus steigen, wenn das kein überall verwendeter ist,
> und dann überlegt sich einer schon, ob sich das überhaupt lohnt.
Sicherlich wird ein potentieller Angreifer sich den Kosten-Nutzen Effekt überlegen. Sollte der Nutzen jedoch überwiegen wird "Security by Obscurity" keinem ernsthaften Angriff stand halten.
Ein sicheres Verfahren benötigt keine Geheimhaltung des Algorithmus
> das würde mich mal näher interessieren.
> wie funktioniert das? gibts da beispiele/abhandlungen drüber?
Auf verschlüsselte Inhalte:
http://de.wikipedia.org/wiki/Kryptoanalyse
Reverse Engineering von Anwendungen:
http://de.wikipedia.org/wiki/Reverse_Engineering
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> Ein sicheres Verfahren benötigt keine Geheimhaltung des Algorithmus
das leuchtet mir ein.
nungut.
wenn ich mir ein standard-verfahren ausdenke, dann würde nach offenlegung des algorithmus nur noch der schlüssel alleine zwischen den cracker und der entschlüsselung stehen.
selbst wenn der schlüssel 32bit hat, wäre dies eine endliche anzahl an crack-versuchen.
aber:
da ich ja zusätzlich die möglichkeit habe, den algorithmus geheimzuhalten,
auch in dem ich die decrypt-sequenz im programmcode selber kryptisiere...
sollte das nicht für die meisten belange mehr als ausreichend sein?
das leuchtet mir ein.
nungut.
wenn ich mir ein standard-verfahren ausdenke, dann würde nach offenlegung des algorithmus nur noch der schlüssel alleine zwischen den cracker und der entschlüsselung stehen.
selbst wenn der schlüssel 32bit hat, wäre dies eine endliche anzahl an crack-versuchen.
aber:
da ich ja zusätzlich die möglichkeit habe, den algorithmus geheimzuhalten,
auch in dem ich die decrypt-sequenz im programmcode selber kryptisiere...
sollte das nicht für die meisten belange mehr als ausreichend sein?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Ja, die bekannten kryptographische Funktionen wie z.B. FIPS 46-2 (AES) sind dokumentiert und öffentlich verfügbar. Nur der (unbekannte) geheime Schlüssel fehlt dem potentiellen Angreifer zur entschlüsselung der verschlüsselten Information.wenn ich mir ein standard-verfahren ausdenke, dann würde nach offenlegung des algorithmus nur noch der schlüssel alleine zwischen den cracker und der entschlüsselung stehen.
Kryptologen orientieren sich meist am Kerckhoffs-Prinzip (siehe http://de.wikipedia.org/wiki/Kerckhoffs-Prinzip), das lautet:
„Die Sicherheit eines Kryptosystems darf nicht von der Geheimhaltung des Algorithmus abhängen. Die Sicherheit gründet sich nur auf die Geheimhaltung des Schlüssels.“
Implementierst du in deiner Software einen eigenen Algorythmus, stehen einem potentiellen Angreifer zwei Angriffsverfahren zur Verfügung:da ich ja zusätzlich die möglichkeit habe, den algorithmus geheimzuhalten,
auch in dem ich die decrypt-sequenz im programmcode selber kryptisiere...
sollte das nicht für die meisten belange mehr als ausreichend sein?
- Mathematischer Angriff auf die verschlüsselte Information
- Analyse deiner Software
Implementierst du beispielsweise eine simple XOR oder Atbash (siehe http://de.wikipedia.org/wiki/Atbash) Verschlüsselung von Klartext, wird ein sich bereits bei einer groesseren Textmenge über rein statistische Verteilung (z.B. Stärkere Verbreitung des Buchstabens "e" im Sprachraum denn "ö") ein Grossteil der Substitutionen ermitteln lassen. Selbst aufwändigere Methoden bieten einem gestandenem Kryptologen eine grosse Angriffsfläche.
Da Software die Ver-/Entschlüsselung implementieren muss, genügt eine Analyse der Software um den Algo zu verstehen. Selbst wenn der Prozess wiederum verschlüsselt wird, ist er zu irgendeinem Zeitpunkt im Speicher und kann durch einen Debugger ausgelesen werden. Ein Cracker geht auch nicht anders vor.
Selbstverständlich hast du recht, das alles in einer Relation zueinander steht. Niemand wird sich die Mühe machen den Algo softwareverschlüsselter Bookmarks zu knacken. Wenn es jedoch um die Übermittlung sensibler Informationen (PINs / Accounts / Kreditkartennummer und ähnliches) über das Internet geht, wie sieht es dann aus? Ganz zu schweigen von professionellen Anwendungen, die z.B. elektronische Tickets zum selbstausdrucken generieren sollen.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ich stimme dir voll zu.
für extrem sensible daten würde ich mich auch monatelang mit der materie auseinandersetzen,
und nicht einfach irgendwelche libs/includes verwenden, die ich nicht wie meine westentasche kenne.
denn zumindest müsste ich sie analysieren und verstehen, und sagen können:
ja, das verfahren ist sauber umgesetzt, jetzt kann ich die sicherheit unterschreiben.
in meinen augen stehen das bedürfnis nach hoher sicherheit und
die verwendung einer unbekannten hobby-lib im krassen gegensatz.
ich wage es auch zu bezweifeln, dass mehr als einzelne ausnahmen hier in der hobby-progger-szene
überhaupt den BEDARF für eine derart hohe datensicherheit haben.
für extrem sensible daten würde ich mich auch monatelang mit der materie auseinandersetzen,
und nicht einfach irgendwelche libs/includes verwenden, die ich nicht wie meine westentasche kenne.
denn zumindest müsste ich sie analysieren und verstehen, und sagen können:
ja, das verfahren ist sauber umgesetzt, jetzt kann ich die sicherheit unterschreiben.
in meinen augen stehen das bedürfnis nach hoher sicherheit und
die verwendung einer unbekannten hobby-lib im krassen gegensatz.
ich wage es auch zu bezweifeln, dass mehr als einzelne ausnahmen hier in der hobby-progger-szene
überhaupt den BEDARF für eine derart hohe datensicherheit haben.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Habe mal ne dll aus der aes-lib erstellt weil die lib die ich gefunden habe nur unter 3.94 funktionierte vielleicht kanns jemand gebrauchen.
http://www.leolasoft-herter.de/aes.dll
der code dazu:
http://www.leolasoft-herter.de/aes.dll
der code dazu:
Code: Alles auswählen
If OpenLibrary(0,"aes.dll")
Erge.l = GetFunction(0, "AES_Crypt_File")
start = GetTickCount_()
te.s="toto"
key.s = MD5Fingerprint(@te, 4)
InFile.s = "e:\wc3.rar"
EncryptFile.s = "e:\wc3.enc"
DecryptFile.s = "e:\wc3.dec.rar"
CallFunctionFast(Erge, 0, InFile, EncryptFile, key, 8192*2)
CallFunctionFast(Erge,1, EncryptFile, DecryptFile, key, 8192*2)
DeleteFile(DecryptFile)
RenameFile(DecryptFile + ".dec", DecryptFile)
Debug "Milliseconds: "+Str(GetTickCount_()-start)
If MD5FileFingerprint(InFile) = MD5FileFingerprint(DecryptFile)
Debug "ok"
Else
Debug "error"
EndIf
Debug Ergebnis
CloseLibrary(0)
EndIf
Zuletzt geändert von roherter am 04.08.2006 18:13, insgesamt 1-mal geändert.
Purebasic 5.0 32bit und 64 bit
I'm back from hell
I'm back from hell
@roherter: Verdammt, dass ich darauf nicht gekommen bin. Danke!
Grds. dauert es mir persönlich einfach zu lange, mir einen Kryptoalgo auszudenken und den zu proggen. Da ich wusste, dass es für PB3.94 eine Userlib für AES gab wollte ich in diesem Thread einfach nur wissen, ob sich schon jemand an eine solche für PB4 gewagt hat. Also hab ich schon ziemlich genau formuliert, wonach ich suche.
Grds. dauert es mir persönlich einfach zu lange, mir einen Kryptoalgo auszudenken und den zu proggen. Da ich wusste, dass es für PB3.94 eine Userlib für AES gab wollte ich in diesem Thread einfach nur wissen, ob sich schon jemand an eine solche für PB4 gewagt hat. Also hab ich schon ziemlich genau formuliert, wonach ich suche.
In dem Code ist ein kleiner Fehler:
*te und @te geben was verschiedenes aus
So isses besser:
Code: Alles auswählen
*te.s="toto"
key.s = MD5Fingerprint(@te, 4)
So isses besser:
Code: Alles auswählen
te.s="toto"
key.s = MD5Fingerprint(@te, 4)
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]