Danke
Das sieht zwar nicht sooo schnell aus, ist für meine Zwecke aber genau richtig.
Weitere Vorschläge sind natürlich trotzdem willkommen.
Wofür ich das brauche? Also: Das Upload-Projekt, an dem ich gerade arbeite lädt in kurzen Zeitabständen kleinere Datenpakete (Messdaten) per HTTP auf einen Server hoch. Ich habe sozusagen ein eigenes Protokoll auf Basis von HTTP erstellt, das alle nötigen Funktionen anbietet. Dass ich das auch über HTTPS hätte laufen lassen können, ist mir erst eingefallen, nachdem ich das schon soweit fertig hatte. Der Vorteil jetzt besteht zumindest darin, dass ich HTTPS nur zum Verbindungsaufbau brauche (dabei werden unterschiedliche Schlüssel übergeben) und später arbeite ich nur mit Prüfsummen (Was etwas Rechenzeit sparen dürfte). Das Upload muss nicht verschlüsselt sein. Also gebe ich jedem Request eine Zufallszahl mit, deren Sequenz auf Server und Client gleich ist. Ein potentieller Angreifer sollte aufgrund des Zufalls-Algorithmus nicht in der Lage sein, die nächste Zufallszahl zu berechnen. Er könnte höchstens das gesendete Request auf dem Weg verändern. Deswegen gibt es da noch eine Prüfsumme, bei welcher die gesendeten Zeichen in die Zufallszahl mit einfließen (Schema:
Code: Alles auswählen
var s : AnsiString = 'Das Request';
Sequenz = Startwert;
for i := 1 to length(s) do Sequenz = ((Sequenz + Byte(s[i]) * (Sequenz + Byte(s[i])) mod (p * q);
) Ich hoffe mal, dass das so sicher ist...
Sollte ein Angreifer die Daten auf dem Weg manipulieren, so hat die Manipulation nur Bestand, solange die Verbindung unterbrochen ist, danach würden diese Daten überschrieben werden...
Jetzt muss ich den Verbindungsaufbau noch mit HTTPS abwickeln. Ich hoffe mal, ich finde dafür Beispielcode; sonst muss ich am Ende RSA noch selber einbauen
