Verschlüsslungen in Software

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: Verschlüsslungen in Software

Beitrag von cxAlex »

GPI hat geschrieben:Eine einfache Methode ist die AES-Geschichte, die man auch schon in PB integriert findet. Nachteil ist, das du irgendwie den Key austauschen musst. Da musst du dir was einfallen lassen.
Dafür gibts den Diffie-Hellman Schlüsseltausch ;)
http://de.wikipedia.org/wiki/Diffie-Hel ... laustausch

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Verschlüsslungen in Software

Beitrag von DarkDragon »

Twofish gibts mit offiziellem Sourcecode: http://www.schneier.com/twofish.html
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
pyromane
Beiträge: 276
Registriert: 09.09.2010 14:10

Re: Verschlüsslungen in Software

Beitrag von pyromane »

Danke für eure Anregungen. Ich werde mich da mal rein lesen.
PureBasic 5.21 LTS auf Windows 7 x64 (Intel i5 2500K, 8GB Ram, Nvidia GTX 780)
pyromane
Beiträge: 276
Registriert: 09.09.2010 14:10

Re: Verschlüsslungen in Software

Beitrag von pyromane »

Habe mir das Buch schon vor langer Zeit gekauft, welches hier vorgeschlagen wurde. Nun wollte ich den Thread nochmal ausgraben. Das Buch hat einem einen guten Einstieg ins Thema verholfen aber mein eigentliches Problem noch nicht gelöst.

Ich habe eine Kommunikation von C++ zu PHP. Nun sende ich per POST etwas an PHP was auch nur der Server entschlüssel soll.

Möglichkeiten stellen sich nun viele. Auf der einen Seite kann man mit dem richtigen Aufwand enorm viel knkacken. Die Frage ist immer was bruacht man. Ich würde gerne etwas nutzen was maximale Sicherheit bei minimalen Aufwand mit sich bringt. Sollte halt bei beiden Sprachen einfach zu implimentieren sein und möglichst Fehlerfrei ablaufen.
PureBasic 5.21 LTS auf Windows 7 x64 (Intel i5 2500K, 8GB Ram, Nvidia GTX 780)
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: Verschlüsslungen in Software

Beitrag von Kukulkan »

Hallo,

die Antworten sind eigentlich in den vorherigen Posts schon gegeben:

1) Entweder die Anwendungen und die PHP Seite kennen alle den Schlüssel, und du kannst dazwischen mit AES verschlüsseln. Nachteil: Wenn der Code bekannt wird (und das ist sehr wahrscheinlich), dann ist das nicht mehr sicher.

2) Du verwendet den erwähnten Diffie-Hellman Schlüsselaustausch um einen einmaligen Session-Key zu generieren (zB beim Logon). Dann den Rest der Session damit AES verschlüsseln. Nachteil: für Diffie Helman benötigst Du BigNumber. Die gibt es nativ nicht in PB (kannst das Forum D und EN mal danach durchsuchen. Gibt gute Ansätze). Oder Du nimmst eine Crypto-Library (zB Crypto++ von http://www.cryptopp.com/).

3) Oder Du verwendet das Passwort der Nutzer um einen Login mit einer Hash-Challenge durchzuführen (ähnlich CRAM MD5 -> http://de.wikipedia.org/wiki/CRAM-MD5). Danach könnte der Hash des Nutzer-Kennwortes auch als sicherer Key verwendet werden. Nachteil: Nutzer benötigen ein sicheres Kennwort.

4) gibt sicher noch andere Optionen.

Grüße,

Kukulkan
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Verschlüsslungen in Software

Beitrag von bobobo »

Warum muss der Server eigentlich was über die Ver- und Ent-schlüsselung wissen?

Auch und gerade bei einem Chat ist es nur für die Clients unabdingbar, dass sie
das, was da ankommt, auch lesen bzw. darstellen können. Der Server kann eigentlich
strunzblöd bleiben. Wenn von den Daten nix verloren geht ist das serverseitig ausreichend.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Verschlüsslungen in Software

Beitrag von NicTheQuick »

Nennt sich übrigens Ende-zu-Ende-Verschlüsselung
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: Verschlüsslungen in Software

Beitrag von Kukulkan »

Gutes Argument!

Dann macht man am besten einen Diffie-Hellman zwischen den Clients. Der Server reicht die Daten dann nur weiter (also reines Session-Management). Der Server kann dem jeweiligen Client aber immer vorspielen, er wäre die andere Seite. Also wirklich endgültig Sicher ist das nicht. Wenn es so sicher sein soll, dann sollte man mit RSA arbeiten und Identitäten austauschen. Zum Beispiel über Identity Based Encryption -> http://en.wikipedia.org/wiki/ID-based_encryption

Wenn es ausreicht, dass der Weg zwischen Clients und Server absolut sicher ist, würde ich DH machen.

Grüße,

Kukulkan
Antworten