AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Updater funktion im Thread

Ein Thema von Jappa · begonnen am 21. Sep 2017 · letzter Beitrag vom 24. Sep 2017
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: Updater funktion im Thread

  Alt 22. Sep 2017, 09:54
Also ich speichere meine Daten generell in einer Ini- bzw. XML-Datei verschlüsselt ab und weiß was es für Probleme geben kann wenn man sie im SourceCode ablegt.
Die Gleichen, die du mit deiner verschlüsselten Datei hast Es muss sich ja dann konsequenterweise dein Crypto-Key im Kompilat befinden, damit das Programm die Daten entschlüsseln kann. Im Grunde hast du damit lediglich dein Geld in einen unverschlossenen Tresor gelegt. Der Aufwand an die Daten zu gelangen ist geringfügig höher, aber weit weg entfernt von aufwändig oder gar sicher. Sicher wird es erst, wenn Logins ausschließlich vom Benutzer selbst eingegeben werden - ohne dass sie standardmäßig irgendwie im Programm hinterlegt sind. Einen Update-Server sollte man demnach optimalerweise auch komplett ohne Login verwenden können (bzw. evtl. per Authentifizierung über ein Benutzerkonto was man beim Erwerb der Software erstellt hat, etc.).
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#2

AW: Updater funktion im Thread

  Alt 22. Sep 2017, 22:09
ihr mach euch um Dinge Gedanken, wo TMS für wenig Euros das seit Jahren incl. UpdateBuilder recht stabil incl. UAC gelöst hat.

http://tmssoftware.com/site/wupdate.asp

Bei der "eigenen Updateprüfung" empfehle ich ein asymetrisches Verschlüsselungs Verfahren (z.B. RSA), da kann man im Programm den PublicKey ruhig mit rein linken.
Nur man selbst kann per PrivateKey die UpdateFiles so verschlüsseln, das es das eigene Programm dann auch dekodieren kann... Das ist dann quasi zugleich eine sehr sichere Authentifizierung der Herkunft, weil auch böse Hacker mit dem PublicKey aus der EXE noch lange keinen PrivateKey zur Erstellung eines modifizierten/bösen Updates haben.

Klar kann man alles selbst machen, aber es gibt wohl niemanden der das incl UpdateBuilder und Support in weniger Zeit wie ihm 50Eur wert sind mindestens so gut hin bekommen kann
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#3

AW: Updater funktion im Thread

  Alt 23. Sep 2017, 09:39
Zitat:
Bei der "eigenen Updateprüfung" empfehle ich ein asymetrisches Verschlüsselungs Verfahren (z.B. RSA), da kann man im Programm den PublicKey ruhig mit rein linken.
Nur man selbst kann per PrivateKey die UpdateFiles so verschlüsseln, das es das eigene Programm dann auch dekodieren kann... Das ist dann quasi zugleich eine sehr sichere Authentifizierung der Herkunft, weil auch böse Hacker mit dem PublicKey aus der EXE noch lange keinen PrivateKey zur Erstellung eines modifizierten/bösen Updates haben.
Wie würde ein solcher Mechanismus schematisch gesehen ablaufen?

Wäre das hier nicht auch eine Idee oder ist das zu unsicher?

- Client fragt Updatedateien vom Server an
- ein Script auf dem Server antwortet, dass Updates vorhanden sind oder nicht
- sind welche vorhanden, entschlüsselt das Script, welches auf dem Server liegt, die Dateien die auch auf dem Server liegen und schickt sie dann los

Oder habe ich gerade einen Knoten im Hirn?

Geändert von Glados (23. Sep 2017 um 09:48 Uhr)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#4

AW: Updater funktion im Thread

  Alt 23. Sep 2017, 10:50
Du hast Konten im Hirn

..."sind welche vorhanden, entschlüsselt das Script, welches auf dem Server liegt, die Dateien die auch auf dem Server liegen und schickt sie dann los"..
=> NIEMALS entschlüsselt der Server etwas vor der Übertragung!!!

-> Eventuell verschlüsselt es der Server mit dem Key des Systems und übeträgt die Daten dann so, das NUR der Client sie entschlüsseln kann, würde ich aber NICHT so machen, denn dann lägen SystemKeys auf dem Server... NÖ, man verschlüsselt die ClientUpdates in eigener sicherer Umgebung selbst und lädt die verschlüsselten Dateien auf den Server hoch.
-> Anfragende Clients bekommen so der so stets nur verschlüsselte Dateien per Download, welche auch nur sie selbst entschlüsseln können. Hacker nützt es hier nix bei Server oder Client das Programm, den Speicher oder die Datenübertragung zu analysieren/manipulieren.
->eine "Verschlüsselung" mit dem privaten Schlüssel stellt eine Signatur dar, da jeder(Client), der im Besitz des öffentlichen Schlüssels ist(im Programcode oder gehackt), die Nachricht entschlüsseln kann.
Somit schützt man so nicht direkt die Daten gegen fremdes dekodieren, sondern man beweist dem Empfänger(also dem ClientProgramm), dass man selbst sie herausgegeben hat und es ein echtes Update ist(s. Authentitzität und Integrität).

Geändert von mensch72 (23. Sep 2017 um 11:02 Uhr)
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#5

AW: Updater funktion im Thread

  Alt 23. Sep 2017, 11:07
Das mit dem privaten und öffentlichen Schlüssel kapiere ich nicht.

Wenn der private sowie der öffentliche Schlüssel entschlüsseln können kann man doch auch gleich einen einzigen Schlüssel nehmen.
Am Ende liegt ja trotzdem ein Schlüssel in der Exe.
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#6

AW: Updater funktion im Thread

  Alt 23. Sep 2017, 11:31
Bei asymetrischen Verfahren wie RSA gibt es immer ein SchlüsselPaar...
- einen PrivateKEY und einen zugehörigen PublicKEY
- der PublicKey ist öffentlich, DARF UND SOLL also verteilt werden... wie z.B. hier in die EXE einkompiliert werden
- es gilt erstens, mit dem Key welchen man zu Verschlüsselung benutzt hat, kann man die Daten nicht mehr dekodieren (=> ASYMETRISCHES VERFAHREN)
- es gilt zweitens: was mit dem PublicKEY "verschlüsselt" wird, kann nur mit dem "PrivateKEY" entschlüsselt werden
- es gilt dritens: was mit dem PrivateKEY "verschlüsselt" wird, kann man mit dem "PublicKEY" dekodieren und so die Herkunft prüfen, denn nur der Besitzer des PrivateKEY konnte das so erstellen... deshalb nennt sich dieser Weg auch "signieren" und nicht verschlüsseln


Der Trick an RSA ist ja, das man im unsicherem Gebiet, also im ClientBereich oder bei der Übertragung (Server,INET,..) NIEMALS den PrivateKey herausgeben muss und trotzdem per PublicKey sowohl sichere Verschlüsselung aus auch sichere Herkunftsprüfung(im Sinne von Identifikation und Authentifizierung) möglich ist.

Die Besonderheiten Asym. Cryptoverfahren und die sich daraus ergebende jeweils sinnvolle Anwendung der Keys bzw. Methoden zum PrivatKeyManagement sprengen den Rahmen dieses Threads, hier geht es um eine sinnvoll Absicherung von Updates, und da bietet es sich an NICHTS mit geheimen Schlüsseln oder Passwörtern im Clientprogramm zu machen. Genau da ist der PublicKey der Ideale KEY.
So kann sogar wenn der Client zum Server damit echt verschlüsselte Daten schicken, die dann im Server undekodierbar lagern, bis man sie selbst von dort abholt und in eigener sicherer Umgebung dann mit dem PrivateKey dekodiert... so gibt es nie Datenschutzprobleme auf dem Server, denn dort liegen stets nur wertlose verschlüsselte Binärdateien und keinerlei Keys.

Geändert von mensch72 (23. Sep 2017 um 11:36 Uhr)
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#7

AW: Updater funktion im Thread

  Alt 23. Sep 2017, 11:34
Also kurz gefasst:
Dateien auf dem Server mit dem privateKey kodieren und den publicKey in die Exe aufnehmen, damit diese die runtergeladenen Dateien dekodieren kann?

Wo bekommt man irgendwas mit RSA denn her? DEC scheint ja keine zwei Keys zu unterstützen http://www.delphipraxis.net/75286-rs...b-und-wie.html
Ich hätte hier zwar was, aber das ist glaube ich nur für Strings http://delphiforfun.org/programs/Mat...SA_KeyDemo.htm

Geändert von Glados (23. Sep 2017 um 11:40 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz