Entwickler-Ecke
Freeware Projekte - Updater inkl. Online-Speicher ... für eure Projekte!
Matthieu - So 26.04.09 12:54
Titel: Updater inkl. Online-Speicher ... für eure Projekte!
Liebes Forum,
Erst einmal möchte ich mich wieder zurück melden, nachdem sich bei mir mittlerweile 2 Geburtstags-Nachrichten angesammelt hatten :lol:
Ich arbeite momentan an einem externen Updater, welchen ich hoffentlich in den nächsten Tagen vollenden werde.
Den Vorgänger habe ich bereits in verschiedenen eigenen Programmen eingesetzt. Nun habe ich mich daran gesetzt, ihn noch ein wenig zu erweitern. Mein Ziel: Klein (>1MB) und einfach zu bedienen.
Das besondere daran: Ich sehe häufig dass Leute nach einer guten Update-Möglichkeit für eigene Programme suchen, daher möchte ich meinen Updater zur Verfügung stellen um euch Arbeit zu ersparen.
Doch bis hierhin ist mein Projekt noch nichts sehr besonderes. Nun besitze ich aber seit gut einem Jahr einen eigenes NAS, welchen ich primär als Webserver nutze. Daher biete ich zusätzlich den Speicherplatz auf meinem NAS.
:arrow: Also: Updater und Speicherplatz aus einer Hand!
Einzige Bedingungen:
- Es sollte nicht unbedingt ein 100MB-Programm sein und
- Ich unterstütze nur Freeware/Open-Source!
Wer Interesse hat, sollte sich bitte bei mir melden:
matthieu-ds@hotmail.de
Oder einfach hier posten. Auch an euren Meinungen bin ich natürlich immer interessiert.
Einige meiner bisherigen Arbeiten:
http://matthieu-ds.dyndns.org
MfG Matthieu
BenBE - So 26.04.09 14:14
Matthieu hat folgendes geschrieben : |
Mein Ziel: Klein (>1MB) |
Klein oder größer als 1 MB? Was denn nun?
Matthieu hat folgendes geschrieben : |
Das besondere daran: Ich sehe häufig dass Leute nach einer guten Update-Möglichkeit für eigene Programme suchen, daher möchte ich meinen Updater zur Verfügung stellen um euch Arbeit zu ersparen. |
Als Komponente wäre das IMHO wesentlich praktischer ...
Matthieu hat folgendes geschrieben : |
Doch bis hierhin ist mein Projekt noch nichts sehr besonderes. Nun besitze ich aber seit gut einem Jahr einen eigenes NAS, welchen ich primär als Webserver nutze. Daher biete ich zusätzlich den Speicherplatz auf meinem NAS.
:arrow: Also: Updater und Speicherplatz aus einer Hand! |
Hab selber Speicher, und grad bei sowas wie einem Updater bin ich paranoid :P
Matthieu hat folgendes geschrieben : |
Einzige Bedingungen:
- Es sollte nicht unbedingt ein 100MB-Programm sein und
- Ich unterstütze nur Freeware/Open-Source! |
:P
Matthieu hat folgendes geschrieben : |
Auch an euren Meinungen bin ich natürlich immer interessiert. |
Wie erfolgt der Schutz der Updates gegen Veränderungen? Sind Patches möglich? Ist verschlüsselte Übertragung möglich. Wird CodeSigning unterstützt?
MfG,
BenBE.
delphi10 - So 26.04.09 17:39
Für ein einfachst UpDate brauch ich kein Programm. Ich zitiere mal mein Posting aus
http://www.delphi-forum.de/viewtopic.php?t=89307 Seite 2
1. Download der neuen Version vom Server
2. In der laufenden Version:
Delphi-Quelltext
1: 2:
| 1:Application.Terminate; 2:ShellExecute(Application.Handle, 'open',PChar(Neue Version), nil, nil,SW_Normal); |
Alte Version wird sauber beendet und kann gelöscht werden, neu Version startet.
Funktioniert tadellos, Batch-Dateien oder andere Klimmzüge sind nicht erforderlich. Aber wie gesagt, alle Dinge die z. Bsp.
BenBE fordert, sind damit nicht erfasst, könnte man drumherum schreiben - aber ohne Update-Programm. Vielleicht als Komponente in allen eigenen Programmen implantieren.
cu delphi10
Matthieu - So 26.04.09 19:54
Eine externe Datei ist meist besser und einfache zu handhaben. Die Dateien wollte ich zunächst in einen temporären Ordner kopieren und erst am Ende bei Erfolg (inkl. Prüfung mit Checksumme) die älteren ersetzen.
Mein Ziel war natürlich weniger als 1MB (<). Entschuldige meinen Schreibfehler.
Worauf du genau mit "CodeSigning" hinaus willst, weiß ich jetzt nicht. Werde mal danach googeln.
Verschlüsselt geht. Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen.
Updates im Sinne von einzelnen Zeilen Code wären eventuell eine Idee für spätere Versionen, da so etwas momentan noch etwas ausführlich aussieht.
Ich bin mir auch im klaren darüber, dass viele eigenen Speicher besitzen. Ich würde aber halt auch dem Rest eine Möglichkeit geben.
MfG Matthieu
jaenicke - So 26.04.09 20:05
Beachtest du eigentlich auch die nötigen Adminrechte? (Ich habe mir das Programm nicht angeschaut.)
Matthieu hat folgendes geschrieben : |
Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. |
Man kann aber einen Zugriff auf eine Datei mittels eines Virus oder Man-in-the-middle-Angriff z.B. umleiten.
Ob das sinnvoll ist, einen Schutz dagegen einzubauen bei dir lasse ich einmal dahingestellt. ;-)
BenBE - So 26.04.09 22:26
Matthieu hat folgendes geschrieben : |
Eine externe Datei ist meist besser und einfache zu handhaben. Die Dateien wollte ich zunächst in einen temporären Ordner kopieren und erst am Ende bei Erfolg (inkl. Prüfung mit Checksumme) die älteren ersetzen. |
Spricht ja nix dagegen. Macht u.a. auch Microsoft mit seinen MSI-Files so.
Matthieu hat folgendes geschrieben : |
Mein Ziel war natürlich weniger als 1MB (<). Entschuldige meinen Schreibfehler. |
Fand's nur lustig, widersprüchliche Angaben zu haben ;-)
Matthieu hat folgendes geschrieben : |
Worauf du genau mit "CodeSigning" hinaus willst, weiß ich jetzt nicht. Werde mal danach googeln. |
CodeSigning heißt, dass die erstellte Anwendung eine digitale Signatur trägt, mit der ich die Integrität kryptografisch vom OS prüfen lassen kann. Sprich in der Anwendung steht nicht nur normal ne Versionsinfo, sondern auch ein Fingerabdruck, und der Herausgeber der EXE. Sowas ähnliches wird bei Java-Applets eingesetzt, um denen mehr Rechte geben zu können. Nähere Details dürfte dir die Wiki dazu geben.
Matthieu hat folgendes geschrieben : |
Verschlüsselt geht. |
Löblich ;-)
Matthieu hat folgendes geschrieben : |
Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. |
Naja ... Nicht nur dein Update-Client sollte veränderte Updates erkennen können, sondern auch der Server, da man sonst nen netten DDoS mit Update-Clients fahren könnte ;-)
Matthieu hat folgendes geschrieben : |
Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. |
Also mir gefällt SCP da viel besser ;-)
Matthieu hat folgendes geschrieben : |
Updates im Sinne von einzelnen Zeilen Code wären eventuell eine Idee für spätere Versionen, da so etwas momentan noch etwas ausführlich aussieht. |
Nope, meine mit Patches dort Änderungen, dass nicht die gesamte EXE neu übertragen wird, sondern nur ein Delta zwischen den beiden EXE-Versionen. Macht der FF z.B.
Matthieu hat folgendes geschrieben : |
Ich bin mir auch im klaren darüber, dass viele eigenen Speicher besitzen. Ich würde aber halt auch dem Rest eine Möglichkeit geben.
MfG Matthieu |
Schon klar ;-)
jaenicke hat folgendes geschrieben : |
Beachtest du eigentlich auch die nötigen Adminrechte? (Ich habe mir das Programm nicht angeschaut.) |
Habe nichts von Vista-konform gelesen :P
jaenicke hat folgendes geschrieben : |
Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. | Man kann aber einen Zugriff auf eine Datei mittels eines Virus oder Man-in-the-middle-Angriff z.B. umleiten. |
Soweit brauch man das nicht mal treiben. Es reicht schon, wenn durch einen Einbruch auf dem Server die vorhandenen Updates manipuliert werden ... Hab in der Hinsicht schon mehrfach aufräumen dürfen (bei anderen). 80 GB System Volume Information und 50MBit\s Outbound-Traffic sprechen da ne recht eindeutige Sprache ;-)
jaenicke hat folgendes geschrieben : |
Ob das sinnvoll ist, einen Schutz dagegen einzubauen bei dir lasse ich einmal dahingestellt. ;-) |
Naja, wichtig ist ja eigentlich eher, dass der Server regelmäßig prüft, ob alle Updates, die er ggf. rausgeben würde auch noch intakt sind und nicht verändern würde. Spart im Endeffekt ja auch eigenen Traffic. Weil wenn ein Client ein Update eh nicht anbieten würde, brauch man es auch nicht erst anbieten.
Matthieu - Mo 27.04.09 21:22
BenBE hat folgendes geschrieben : |
Matthieu hat folgendes geschrieben : | Eine externe Datei ist meist besser und einfache zu handhaben. Die Dateien wollte ich zunächst in einen temporären Ordner kopieren und erst am Ende bei Erfolg (inkl. Prüfung mit Checksumme) die älteren ersetzen. |
Spricht ja nix dagegen. Macht u.a. auch Microsoft mit seinen MSI-Files so.
Bin ich erst einmal beruhigt^^
Matthieu hat folgendes geschrieben : | Mein Ziel war natürlich weniger als 1MB (<). Entschuldige meinen Schreibfehler. |
Fand's nur lustig, widersprüchliche Angaben zu haben ;-)
Passiert jedem mal...
Matthieu hat folgendes geschrieben : | Worauf du genau mit "CodeSigning" hinaus willst, weiß ich jetzt nicht. Werde mal danach googeln. |
CodeSigning heißt, dass die erstellte Anwendung eine digitale Signatur trägt, mit der ich die Integrität kryptografisch vom OS prüfen lassen kann. Sprich in der Anwendung steht nicht nur normal ne Versionsinfo, sondern auch ein Fingerabdruck, und der Herausgeber der EXE. Sowas ähnliches wird bei Java-Applets eingesetzt, um denen mehr Rechte geben zu können. Nähere Details dürfte dir die Wiki dazu geben.
Ich seh mir das mal an und schau bei Bedarf mal nach einer Lösung.
Matthieu hat folgendes geschrieben : | Verschlüsselt geht. |
Löblich ;-)
Was würdet ihr diesbezüglich empfehlen?
Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. |
Naja ... Nicht nur dein Update-Client sollte veränderte Updates erkennen können, sondern auch der Server, da man sonst nen netten DDoS mit Update-Clients fahren könnte ;-)
Diesbezüglich muss ich mal sehen was man da machen kann O.O
Matthieu hat folgendes geschrieben : | Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. |
Also mir gefällt SCP da viel besser ;-)
Genau genommen ist es FTP via SSL/TLS.
Matthieu hat folgendes geschrieben : | Updates im Sinne von einzelnen Zeilen Code wären eventuell eine Idee für spätere Versionen, da so etwas momentan noch etwas ausführlich aussieht. |
Nope, meine mit Patches dort Änderungen, dass nicht die gesamte EXE neu übertragen wird, sondern nur ein Delta zwischen den beiden EXE-Versionen. Macht der FF z.B.
Bei Wikipedia habe ich da dies gefunden: "Delta-Kodierung, Differenzspeicherung, eine Möglichkeit der Datenkompression"
. Gibts dazu auch irgendwo Informationen wie das zu realisieren ist?
Matthieu hat folgendes geschrieben : | Ich bin mir auch im klaren darüber, dass viele eigenen Speicher besitzen. Ich würde aber halt auch dem Rest eine Möglichkeit geben.
MfG Matthieu |
Schon klar ;-)
jaenicke hat folgendes geschrieben : | Beachtest du eigentlich auch die nötigen Adminrechte? (Ich habe mir das Programm nicht angeschaut.) |
Habe nichts von Vista-konform gelesen :P
"updater.exe" wird von Vista erkannt und erzwingt automatisch Admin-Rechte (soweit ich weiß und es gesehen habe).
jaenicke hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. | Man kann aber einen Zugriff auf eine Datei mittels eines Virus oder Man-in-the-middle-Angriff z.B. umleiten. |
Soweit brauch man das nicht mal treiben. Es reicht schon, wenn durch einen Einbruch auf dem Server die vorhandenen Updates manipuliert werden ... Hab in der Hinsicht schon mehrfach aufräumen dürfen (bei anderen). 80 GB System Volume Information und 50MBit\s Outbound-Traffic sprechen da ne recht eindeutige Sprache ;-)
Vertraue da mal auf Linux, meinen NAS-Anbieter und meine Erfahrung...
jaenicke hat folgendes geschrieben : | Ob das sinnvoll ist, einen Schutz dagegen einzubauen bei dir lasse ich einmal dahingestellt. ;-) |
Naja, wichtig ist ja eigentlich eher, dass der Server regelmäßig prüft, ob alle Updates, die er ggf. rausgeben würde auch noch intakt sind und nicht verändern würde. Spart im Endeffekt ja auch eigenen Traffic. Weil wenn ein Client ein Update eh nicht anbieten würde, brauch man es auch nicht erst anbieten.
Daher die Checksummen!
|
MfG Matthieu
BenBE - Mo 27.04.09 23:44
Es wäre wesentlich effizienter zitierbar gewesen, wenn Du die Zitat aufspalten-Funktion des Beitragseditors genutzt hättest ... Dafür hab ich Dir mir nämlich von Christian mal einbauen lassen ;-) Aber gut ;-)
Matthieu hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Eine externe Datei ist meist besser und einfache zu handhaben. Die Dateien wollte ich zunächst in einen temporären Ordner kopieren und erst am Ende bei Erfolg (inkl. Prüfung mit Checksumme) die älteren ersetzen. |
Spricht ja nix dagegen. Macht u.a. auch Microsoft mit seinen MSI-Files so.
Bin ich erst einmal beruhigt^^ |
|
Wobei das bei MSI- und MSP-Files CodeSigning, d.h. kryptografische Fingerabdrücke sind, keine einfachen Hashes. Einfache Hashes werden da IIRC nur für die Datei-Archive ansich verwendet, also innerhalb des bereits gesichteren Bereiches.
Matthieu hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Mein Ziel war natürlich weniger als 1MB (<). Entschuldige meinen Schreibfehler. |
Fand's nur lustig, widersprüchliche Angaben zu haben ;-)
Passiert jedem mal...
Matthieu hat folgendes geschrieben : | Worauf du genau mit "CodeSigning" hinaus willst, weiß ich jetzt nicht. Werde mal danach googeln. |
CodeSigning heißt, dass die erstellte Anwendung eine digitale Signatur trägt, mit der ich die Integrität kryptografisch vom OS prüfen lassen kann. Sprich in der Anwendung steht nicht nur normal ne Versionsinfo, sondern auch ein Fingerabdruck, und der Herausgeber der EXE. Sowas ähnliches wird bei Java-Applets eingesetzt, um denen mehr Rechte geben zu können. Nähere Details dürfte dir die Wiki dazu geben.
Ich seh mir das mal an und schau bei Bedarf mal nach einer Lösung. |
|
Schau da auf jeden Fall auch mal bei CAcert vorbei, die haben entsprechende Zertifikate im Angebot (entsprechendes Vertrauenslevel in der Community vorausgesetzt).
Matthieu hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Verschlüsselt geht. |
Löblich ;-)
Was würdet ihr diesbezüglich empfehlen? |
|
SSL von CAcert, mit RSA ab 8192 Bit oder ECC (Eclyptic Curve Cryptography) ab 1024 Bit. :mrgreen: Mit SHA256 oder SHA512 für Fingerprints. Zur Not geht auch SHA1 (MD5 keinesfalls ;-))
Matthieu hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. |
Naja ... Nicht nur dein Update-Client sollte veränderte Updates erkennen können, sondern auch der Server, da man sonst nen netten DDoS mit Update-Clients fahren könnte ;-)
Diesbezüglich muss ich mal sehen was man da machen kann O.O |
|
Dein Server sollte MINDESTENS mit Tripwire, SElinux, Suhosin und den anderen einschlägigen Extensions ausgerüstet sein. Auch Chkrootkit schadet nicht ;-)
Matthieu hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. |
Also mir gefällt SCP da viel besser ;-)
Genau genommen ist es FTP via SSL/TLS.
|
|
Hab ich auf meinem Server nur noch, weil ich den Usern auf meinem Server keinen Shellzugang geben will ;-) Verschlüsslung ist für Logins aber Pflicht bei mir ;-)
Matthieu hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Updates im Sinne von einzelnen Zeilen Code wären eventuell eine Idee für spätere Versionen, da so etwas momentan noch etwas ausführlich aussieht. |
Nope, meine mit Patches dort Änderungen, dass nicht die gesamte EXE neu übertragen wird, sondern nur ein Delta zwischen den beiden EXE-Versionen. Macht der FF z.B.
Bei Wikipedia habe ich da dies gefunden: "Delta-Kodierung, Differenzspeicherung, eine Möglichkeit der Datenkompression"
. Gibts dazu auch irgendwo Informationen wie das zu realisieren ist? |
|
Gibt da ne Reihe von Algorithmen, die man nutzen kann, um sowas zu erzeugen ... Müsst aber nachgucken, wie die gleich hießen. Ggf. hat da aber auch jemand hier im Forum gleich ne Idee.
Matthieu hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Ich bin mir auch im klaren darüber, dass viele eigenen Speicher besitzen. Ich würde aber halt auch dem Rest eine Möglichkeit geben.
MfG Matthieu |
Schon klar ;-)
jaenicke hat folgendes geschrieben : | Beachtest du eigentlich auch die nötigen Adminrechte? (Ich habe mir das Programm nicht angeschaut.) |
Habe nichts von Vista-konform gelesen :P
"updater.exe" wird von Vista erkannt und erzwingt automatisch Admin-Rechte (soweit ich weiß und es gesehen habe).
jaenicke hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. | Man kann aber einen Zugriff auf eine Datei mittels eines Virus oder Man-in-the-middle-Angriff z.B. umleiten. |
Soweit brauch man das nicht mal treiben. Es reicht schon, wenn durch einen Einbruch auf dem Server die vorhandenen Updates manipuliert werden ... Hab in der Hinsicht schon mehrfach aufräumen dürfen (bei anderen). 80 GB System Volume Information und 50MBit\s Outbound-Traffic sprechen da ne recht eindeutige Sprache ;-)
Vertraue da mal auf Linux, meinen NAS-Anbieter und meine Erfahrung... |
|
Ich verzichte jetzt mal auf die Heise-Links zu Local Root-Exploits, Privilegde Escalations und den Hinweis auf Secunia :mrgreen: Wobei ... PHP ist da auch immer ganz beliebt :P
Matthieu hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | jaenicke hat folgendes geschrieben : | Ob das sinnvoll ist, einen Schutz dagegen einzubauen bei dir lasse ich einmal dahingestellt. ;-) |
Naja, wichtig ist ja eigentlich eher, dass der Server regelmäßig prüft, ob alle Updates, die er ggf. rausgeben würde auch noch intakt sind und nicht verändern würde. Spart im Endeffekt ja auch eigenen Traffic. Weil wenn ein Client ein Update eh nicht anbieten würde, brauch man es auch nicht erst anbieten.
Daher die Checksummen!
|
|
Prüfsummen alleine bringen nichts, wenn sie auch der Angreifer neu berechnen kann. Hier muss eine kryptographische Sicherung her ;-)
Narses - Di 28.04.09 09:50
Moin!
So langsam wird´s unübersichtlich :? könntet ihr euch bitte auf die notwendigen (=letzten Aussagen) beim Zitieren beschränken? :roll: Danke. :)
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!