![]() |
Sicherer Updater
Hallo an die Programmierer da Draußen,
Ich stelle mir die Frage wie man einen Updater "sicher" machen kann, komme aber zu keinem Ergebnis. Hättet ihr irgendwelche Tipps für einen guten, also sicheren, Updater? Vielleicht etwas, an das ich mich orientieren kann oder an das ich mich unbedingt halten sollte? Ich danke euch schonmal. :dp: |
Re: Sicherer Updater
Was bezeichnest du denn als "sicher" ?
Dass er idiotensicher in der Verwendung ist? Dass die Datenübertragung kryptografisch sicher ist? Dass er auch sicher alles updated? |
Re: Sicherer Updater
Sicher vor Manipulation der zu aktualisierenden Dateien.
|
Re: Sicherer Updater
Achso, ok :)
Aaaaalso: 1) Dass jemand seine eigenen, lokalen Dateien manipuliert, kannst du nicht verhindern. root hat die Macht, bzw. unter Windows der Administrator. Du kannst aber verhindern, dass du diese manipulierten Daten im Programm auch annimmst, indem du z.B. in deiner Exe eine Hash-Liste der Dateien mit einkompilierst und dann jede Datei vor Öffnung mit dieser abgleichst. Ist etwas manipuliert worden, dann terminiere das Programm nach einer Fehlermeldung wieder. Die exe selbst könntest du selbst mit einem AntiCrack-Tool grundlegend vor Manipulation schützen. Generell gilt aber, dass es immer Leute geben kann, die diese Maßnahmen umgehen können, solange das ganze lokal auf einem fremden Rechner passiert. 2) Willst du nur die Daten, die vom Server zum Client und vice versa übertragen werden, "sicher" machen, kannst du eine Verschlüsselung der Daten verwenden. Stichwörter sind hier z.B. das DEC, dessen Algorithmen du verwenden kannst, um die Daten zu übertragen. ... Oder habe ich das jetzt wieder falsch verstanden? |
Re: Sicherer Updater
Zu Beginn würde ich auch überlegen, *wer* diese Software bekommt und *ob* es sich überhaupt lohnt, das ganze sicher zu machen, egal wie man dieses Wort nun verstehen mag. Denn 50 Stunden Arbeit in etwas zu investieren, was eh nur die eigene Familie und ein paar Freunde nutzen werden ist eher übertrieben. :zwinker:
Wenn du Dateien via HTTP/FTP herunterlädst kannst du das Ganz via SSL ja verschlüsseln lassen. |
Re: Sicherer Updater
@blackfin
Ja, du hast mich falsch verstanden. Soviel ist mir auch klar, Hashs etc sind mir alle geläufig auch die Kompo DEC :-D Liegt aber auch an meiner Erklärung bzw. Frage. Ich dachte da eher in die Richtung Timestamp. @s.h.a.r.k Ich weiss nicht wie groß deine Familie ist, aber Familie kann man es nicht mehr nennen 8-) |
Re: Sicherer Updater
Nun ja, lokal kannst einfach alles passend manipulieren. Interessant wäre es eben für den Updates die Hashes der Dateien, die er zu updaten hat, zu wissen und zu prüfen. MD5 bietet sich hierbei an. In die Exe selbst würde ich nichts speichern, da diese Hashes ja auch manipulierbar sind.
|
Re: Sicherer Updater
Ja, soweit mach ich das auch alles, wie gesagt der ganze Hash kram ist optimiert.
Meine Frage bezieht sich auf andere Ansätze, also was gibt es außerdem? Ich rede jetzt nicht von sicher im Sinne von Manipulation des Programmes durch den User, sondern vor "falschen" Updates, die nicht von mir kommen. Ich meine etwas von Zeitstempeln gelesen zu haben. Von MD5 halte ich allerdings nicht viel SHA512 oder Whirlpool sehe ich als besser an. |
Re: Sicherer Updater
Achso... So habe ich das noch nicht gesehen. Das könntest du auch über Hashes lösen, der dann alle Dateien deiner Installation beim Ausführen der Anwendung prüft. Wenn das Ganze aber so einfach wäre, dann würde das wohl jede Spieleschmiede kurz mal einprogrammieren und gut wäre es. Aber es gitb eben immer Wege sowas auszuhebeln.
Oder du kannst auch so einen geilen Kopierschutz wie Ubisoft bauen :mrgreen: Über Zeitstempel würde ich aber auf keinen Fall fahren. //edit Was soll an MD5 so "schlecht" sein? Diese Verfahren ist definitiv ausreichend, selbst wenn du eine Kollision bekommst, zumal diese dezent unwahrscheinlich auftritt. |
Re: Sicherer Updater
Zitat:
Aber egal, ich sag jetzt einfach mal, wie ich sowas schonmal gemacht habe. Um herauszufinden, ob und was überhaupt geupdated werden soll, lese ich mit dem Updater die Versionsnummer der Exe des Hauptprogramms aus und sende diese (verschlüsselt) an das Script auf dem Server. Dieses schaut in der Update-Datenbank nach, ob es ein Paket für diese Version gibt und sagt entweder "nein, es gibt nichts" oder stösst den Updater an, ein bestimmtes Paket herunterzuladen. Dieses wird dann nach dem Update ausgeführt und installiert die Dateien, wobei sich dann auch wieder die Versionsnummer des Hauptprogramms ändert. Die exe'n selbst schütze ich, wenns denn unbedingt sein muss, per EurekaLog's "AntiCrack"-Feature. Damit sind schonmal die meisten Normal-User aussen vor und es wird ziemlich schwierig, das zu knacken. Eine Unmöglichkeit, das zu knacken, gibt es ja aber nie :) Zitat:
Das wirst du nicht verhindern können. Wenn ich mir einen Selbst-Installer baue, der die Microsoftsche Word.exe überschreibt, dann wird der installer das auch tun, ohne dass Word das merkt. |
Re: Sicherer Updater
Ich schrieb doch, dass mit Hashs + Verschlüsslung funktioniert alles wunderbar. Mir geht es um weitere zusätzliche Sicherheit, da die Daten verstreut auf Serveren liegen und mehrere Leute darauf Zugriff haben.
Ja, Timestamps sind natürlich leicht zu manipulieren, ich rede ja von zusätzlichem Schutz. Ich würde halt gern etwas über weitere Schutzmechanismen wissen. zu MD5: Kollision = unsicher auch wenn es unwahrscheinlich ist. Naja ich lass es, man scheint mich falsch zu verstehen, trotzdem danke für die Hilfe :) |
Re: Sicherer Updater
Zitat:
Edit: Zitat:
Vielleicht würde ja schon eine Beschreibung der Ausgangs-Situation helfen. Das Thema an sich ist nämlich alles andere als uninteressant. |
Re: Sicherer Updater
Zitat:
Zitat:
Zitat:
Gruß, Christoph |
Re: Sicherer Updater
Zitat:
Zitat:
|
Re: Sicherer Updater
Also ich versuche Updatefiles, welche auf mehreren Updateservern liegen, auf die auch mehrere Personen zugriff haben, vor Manipulation zu schützen.
Ein Update würde so ablaufen: 1. Updater erkennt Updates 2. Neue Datei wurde heruntergeladen und wird einem Hash Check unterzogen 2.1 Nicht identisch mit dem Hash aus der vom Server verschlüsselten Liste => Manipulation erkannt 2.2 Ist identisch => Update beendet. 2.1 würde bedeuten, dass jemand die Datei ausgetauscht hat, aber was ist wenn er die Verschlüsslung der Hashliste zustätzlich entschlüsselt hat und diese auch manipuliert hat? Das würde 2.2 bedeuten und genau hier möchte ich mit anderen Schutzmechanismen ansätzen, also was kann man zudem noch tun? Edit: Zitat:
|
Re: Sicherer Updater
Den Leuten den schreibenden Zugriff zu diesen Files verbieten wäre wohl ein erster Ansatz. Es werden wohl nicht mehrere Junge auf dem Server als Dauer-Admin rumspringen?
Aber wenn doch, dann gilt auch hier: Die Damen und Herren können lokal alles ändern, egal was du machst. Selbst wenn du eine Datenbank mit Zugangsdaten aufziehst, die verschlüsselt ist. Du brauchst mindestens eine sichere Quelle. Du hast gerade mehrere Server erwähnt... Eine Idee wäre es, eine Datei zu splitten und auf jeden Server einen Teil zu legen. Dann lädt der Updater diese herunter und fügt sie wieder zusammen. Wenn was geändert wurde kommt eigentlich nur Müll dabei raus. Kommt halt wieder darauf an, wer wie weit Zugriff auf die Dateien hat. Das wäre noch interessant zu wissen. |
Re: Sicherer Updater
Keiner außer mir hat zugriff auf allen Servern.
Das mit den splitten der Dateien ist eine gute Idee. Danke, genau sowelche Ideen suche ich. Jetzt leuchtet die Glühbirne überm Kopf :thumb: |
Re: Sicherer Updater
Aber erklär mir doch mal, wer denn die Dateien ändern will, wenn keiner Zugriff auf die Server hat? Verstehe hier deine Angst nicht wirklich.
// edit Eventuell könntest du dir auch noch Gedanken über Authentifizierung machen, sodass der Client weiß, dass er beim richtigen Server gelandet ist. |
Re: Sicherer Updater
Ich schrieb doch "auf allen" keiner, außer mir. Aber Admin1 von Server1 kann die Dateien sehr wohl ändern.
Ich werde die Dateien einfach durch die Anzahl der Server teilen und dann streuen, sodass nur ich die Verfügungsgewalt bin. Das wars auch schon, danke noch mal für euren Einsatz. Alles Weitere wird kein Problem darstellen. |
Re: Sicherer Updater
Sorry, hab das so verstanden, dass keiner Zugriff auf einen Server hat. :oops:
// edit Noch eine Idee: Was, wenn du die zu verteilende Datei packst (="Verschlüsselung" und Komprimierung), und dann zusätzlich verschlüsselst (von mir aus mit dem MD5-Hash der vorherigen Datei). Den Schlüssel kennst du ja automatisch auf der Client-Seite, eben der aus der Hash-Datei. Inkl. der Entschlüsselung dürfte das kein Problem mehr darstellen, denn wenn eine Datei nicht einfach so auf dem Server liegt, so muss Admin1 erst mal herausfinden, was mit der Datei passiert ist. Und den Updates zu deassemblieren dauert wohl auch seine Zeit. |
Re: Sicherer Updater
Ach brauchst dich doch nicht entschuldigen, ich muss dir schließlich für deine Idee danken.
Die Verschlüsslungs- und Komprimierungsschritte werden so ähnlich, wie von dir erwähnt, bereits erledigt. Gute Nacht, bin weg :lol: |
Re: Sicherer Updater
Bei mir leuchtet nun auch die Glühbirne! :D
Jetzt hab ichs verstanden, was du erreichen willst. Nun, wenn du dieses Datei-Splitten aufnehmen willst und ganz sicher gehen willst, würde ich die einzelnen Datenblöcke nicht zu gross zusammenhängend machen, sondern sie bei den Dateien ineinander verschachteln. Je grösser ein zusammenhängender Datenblock, desto leichter lässt dieser sich manipulieren, so dass am Ende doch kein Müll mehr rauskommt, wenn man es wieder zusammenfügt :) Ganz krank gedacht könnte man so etwas wie den "Cross Interleaved Reed-Solomon-Code" auf einer CD in diese Datei-Architektur reinbauen, dann hast du auch noch zusätzlich eine Fehlerkorrektur. |
Re: Sicherer Updater
Ahhhhhhhhhhhh... langsam wirds echt zu krank :mrgreen:
|
Re: Sicherer Updater
Ein weiterer schöner Ansatz.
"Cross Interleaved Reed-Solomon-Code" Wenn der Name schon so lange ist, möcht ich nicht wissen wie lang der Code ist :) So ich mach jetzt endgültig die Glühbirne :idea: aus und leg mich ins Bett. Danke nochmal. |
Re: Sicherer Updater
Wie wärs den mit Signierten updates?
mfG newbe |
Re: Sicherer Updater
Zitat:
Das habt aber nichts mit Updaten zu tun. Der Updater muss doch die Dateien verändern können, damit diese aktualisiert werden können. Ich verstehe unter "sicher Updaten" das der Updateprozess stabil durchläuft. Wenn eine Fehler auftritt, dann soll nicht kaputt sein. Wenn du so etwas willst, nimm den Windows Installer. Dieser arbeitet transaktionsbasiert. Wenn du nur Manipulationen von Dateien ermitteln willst um z.b. Cheaten zu verhindern, dann signiere die Dateien und prüfe die Signaturen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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