Zum Inhalt springen

[FIAE] Update-Tool zum Akutalisieren kundenspezifischer Software


Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo zusammen.

Die Zeit ist nun reif, der Projektantrag muss gestellt werden.

Ich danke Euch vorab, dass Ihr Euch meinen Antrag zu Herzen nehmt.

Momentan hab ich Probleme mit der Formulierung, deshalb hört sich alles ein wenig knapp an. Vielleicht habt Ihr da noch "Denkanstöße":)

Projektantrag

Projektbezeichnung (Auftrag/Teilauftrag):

Erweiterung des sich bereits in der Entwicklung befindenden Service-Programmes „Programmname“.

Die Update-Erweiterung soll es den Kunden der Firma XXX ermöglichen, bereits vorhandene Softwareprodukte als auch zukünftige Neuentwicklungen zu aktualisieren.

Die Erweiterung wird wie auch das sich in der Entwicklung befindenden Programm - basierend auf dem .Net Framework 2.0 - mittels C# realisiert.

Kurze Projektbeschreibung:

Momentan wird die Software beim Kunden via Update-CDs aktualisiert. Diese werden 2 mal im Jahr versandt. Um den CD-Versand zu reduzieren, ist nun ein Tool zum Aktualisieren der kundenspezifischen Software von Nöten.

"Programmname" wird vorerst nur das Durchführen und das Zurückspielen von Datensicherungen, sowie das Reparieren / Komprimieren von Datenbanken integriert haben.

Ziel der Update-Erweiterung ist es, die beim Kunden bereits installierten Programme auszulesen und diese dem Anwender anzuzeigen. Durch Auswahl des entsprechenden Programmes, erfolgreicher Authentifizierung und der Überprüfung auf neuere Versionen, soll eine Verbindung zum Server der Fa. XXX aufgebaut und das Update heruntergeladen werden. Anschließend hat der Anwender die Möglichkeit, das Update zu installieren.

Vor der Installation muss geprüft werden, ob möglicherweise Prozesse gestartet sind, welche die Installation verhindern könnten.

Zusätzlich soll die Funktion bestehen, Lizenzen zu aktualisieren, um etwaige Sperrungen/Freischaltungen zu steuern.

Projektumfeld:

Als Entwicklungsumgebung dient Microsoft Visual Studio 2010, in dem mittels Team-Foundation-Server gearbeitet wird. Wie oben bereits erwähnt, werden die Erweiterung mittels C# realisiert.

Die Zeitplanung hab ich vorab mal weggelassen, da bin ich mir noch nicht ganz schlüssig.

Was meint Ihr? Meinungen bitte.:)

Herzliche Grüße, icke

Bearbeitet von ickebins1989
Geschrieben

Persönliche Meinung:

Vielleicht kannst du etwas kürzere Sätze bilden, schließlich ist das keine wissenschaftliche Arbeit.

Ich finde generell die Problemdarstellung in Ordnung, nur das Ziel könntest du vielleicht nicht unbedingt in einem Satz formulieren.

Dort handelst du viele Punkte doch etwas zu schnell ab. (Wie gesagt, meine Meinung :-))

Fachlich:

Unter Projektumfeld musst du noch reinschreiben, dass du das Projekt in den Räumlichkeiten deines Betriebes machst.

Geschrieben

Vielen Dank für Deine Antwort!

Das mit dem schnellen Abhandeln ist mein Problem. Ich bin mir noch nicht ganz sicher, wie ich auf die einzelnen Punkte näher eingehen soll.

Ich habe momentan nur die Befürchtung, dass sich das Alles nur bissel' zu wenig anhört, obwohl ja programmier-technisch mehr dahintersteckt.

Was meinst Du?

Geschrieben

Thema ist denke ich okay, aber wirklich bisschen sprachlich noch dran arbeiten. Ein Stichwort was mir da sehr wichtig ist: Integrität des Updates. Wie stellst Du sicher, dass das Update korrekt ist und woher kommt es. Denn wenn ich Deinem Tool ggf eine falsche URL unterschiebe, dann könnte ich somit die Tür für jegliche Art von Malware öffnen.

Geschrieben

Ich habe momentan nur die Befürchtung, dass sich das Alles nur bissel' zu wenig anhört, obwohl ja programmier-technisch mehr dahintersteckt.

flashpixx hat hier schon eine gute Antwort geliefert. Da steckt sicher mehr hinter.

Prüfen, ob Programme schon installiert sind: Da sollten evtl. Wörter wie Registry-Pflege o.ä. fallen, da auf Windows.

Wie erfolgt eine Überprüfung auf neuere Versionen? Über FTP? Oder Webservices (Gerade bei C#).

Erfolgt der Download über http oder ftp? Was ist wenn ein Proxy zwischen geschaltet ist (Wobei das auch in die Doku kann).

Lizenzmanagement alleine ist kein einfaches Thema. Wenn du Sperrung über die Ferne mit dieser Software steuern möchtest ist auch hier die Frage, wie du stetige Überprüfung der Lizenz gewährleisten kannst.

Ich hoffe ich habe damit flashpixx's Intention richtig verstanden.

Die Punkte musst du nicht bis ins kleinste Detail erläutern, aber du solltest auf jedenfall eine Sachen aufwerfen, damit die auch sehen, dass du dir über die Sachen Gedanken machst. Dann wissen die auch, dass mehr dahinter steht.

Bis jetzt scheint es halt noch oberflächlich. Wenn du das genauer hinkriegst, dann wird auch die zeitliche Einteilung nicht mehr so schwer.

Geschrieben

Ich hoffe ich habe damit flashpixx's Intention richtig verstanden.

Ja hast Du. Aber eben genau diese Fragen wäre im Rahmen der Durchführung zu klären, aber sie gehören in groben Zügen in den Antrag.

Ich denke evtl auch solltest Du überlegen, wie Du sicherstellst, wie die Software prüfen kann, ob eben die richtige Lizenz drin ist, so wie Genodi beschreibt, wenn der Kunde z.B. die Software mit Hilfe einer Seriennummer freischaltet etc. (z.B. sollte der Schlüssel nicht mehrfach verwendet werden). Ebenso könnte man darüber sogar kundenspezifische Anpassungen steuern, da man den Kunden anhand der Nummer identifizieren kann.

Also Download + Installation ist in 2min codiert, indem ich einfach via HTTP die Daten hole und dann einfach den Updatemechanismus aufrufe, z.B. Zip entpacken und Dateien kopieren. Also bitte das ganze mal unter dem Hintergrund "Lizenz" und "Sicherstellung der Integrität der Software" aufbauen. Das wäre dann nämlich wirklich ein sehr schönes und rundes Projekt. Es wird von Dir auch sicherlich nicht verlangt, dass Du es als ultimative perfekt durchdachte Releaseversion lieferst, wenn Du eine Teststellung mit einem entsprechenden Konzept lieferst und ggf noch ein bisschen Ausblick lieferst, dann ist das schon genügend.

Geschrieben

Vielen Dank für die Beteiligung Eurerseits! :)

um auf die Fragen einzugehen:

Wie stellst Du sicher, dass das Update korrekt ist und woher kommt es. Denn wenn ich Deinem Tool ggf eine falsche URL unterschiebe, dann könnte ich somit die Tür für jegliche Art von Malware öffnen.

Der Server liefert zusammen mit dem entsprechenden Update ein verschlüsseltes "Passwort" zurück. Die Entschlüsslung ist in der Software hinterlegt und prüft vor dem Download das Passwort auf Korrektheit. Nur dann können die Updates heruntergeladen und installiert werden.

CRC-Checks fallen wohl ins Wasser, da bei einer umgeleiteten URL der Server auch das richtige CRC zum falschen EXE liefern könnte und die IP des Update-Servers sich auch einmal ändern könnte. Deshalb kann keine feste IP im Programm hinterlegt werden.

Es wäre also nur möglich, falsche Updates unterzujubeln, wenn man die EXE dekompiliert, um an die Entschlüsslung zu gelangen und gleichzeitig die URL-Umleitung vornimmt.

Einfache URL-Umleitungen z.B. durch Manipulation der Host-Datei oder Proxy-Server sollten somit ausgeschlossen sein.

Wie erfolgt eine Überprüfung auf neuere Versionen? Über FTP? Oder Webservices (Gerade bei C#).

Erfolgt der Download über http oder ftp?

Per HTTP wird eine Datei gelesen, welche die aktuellen Update-Versionen beinhaltet. Der Download selbst erfolgt ebenso über HTTP. Per Post-Parameter wird ein Passwort, welches zur Prüfung der Berechtigung zum Download verwendet wird, übertragen.

Wenn du Sperrung über die Ferne mit dieser Software steuern möchtest ist auch hier die Frage, wie du stetige Überprüfung der Lizenz gewährleisten kannst.

Die Sperrungen/Freischaltungen werden durch eine DLL gesteuert. Diese befindet sich im entsprechenden Programmpfad und wird auch bei der Aktualisierung dort eingefügt. Jedes Programm prüft die Gültigkeit dieser Lizenz beim Programmstart.

Geschrieben

Es wäre also nur möglich, falsche Updates unterzujubeln, wenn man die EXE dekompiliert, um an die Entschlüsslung zu gelangen und gleichzeitig die URL-Umleitung vornimmt.

Ja und genau deswegen macht man das nicht !

Ich geb mal das Stichwort "Signatur".

Geschrieben
Ja und genau deswegen macht man das nicht !

Ich geb mal das Stichwort "Signatur".

Kannst Du da ein wenig näher drauf' eingehen?

Meinst Du damit PublicKey / PrivateKey oder das Signieren der Assembly? Letzteres würde wohl nicht brauchbares zum Thema beitragen.

Der Gedanken an Signatur (Public-Key/Private-Key) ging mir auch schon durch den Kopf, war aber beim ersten Gedankengang ein wenig zu hoch gegriffen.

Geschrieben

Meinst Du damit PublicKey / PrivateKey oder das Signieren der Assembly?

Digitale Signatur wäre das was ich benutzen würde und weiterhin wäre zu überlegen anstatt HTTP eher HTTPs zur Übertragung zu verwenden, vor allem wenn Du Lizenzschlüssel / kundenbezogene Daten ggf mit übertragen musst

Geschrieben

Ich denke mal sollte sich da jetzt nicht verrückt machen, nur weil es gelungen ist, SSL auszuhebeln. Rein real müsste man eine Riskanalyse machen, wie wahrscheinlich dieser Fall auftritt. Ich halte es für absolut falsch, wegen einer solchen Meldung auf SSL zu verzichten.

Das Argument mit den Zertifikaten ist sicherlich zu beachten, ist aber letztendlich aber ein "Konfigurationsproblem", denn theoretisch kann ich auch meine eigene PKI aufbauen.

Ich sehe somit keinen Grund, warum man auf SSL verzichten sollte bzw. was wären für Alternativen vorhanden. Wenn ich jetzt einmal SSH / SCP anführe, dann hab es vor einiger Zeit dort ebenfalls ein Problem bei Debian-Distributionen ( Schwache Krypto-Schlüssel unter Debian, Ubuntu und Co. | heise Security ). Natürlich sollte man solche Problematiken in die Planung einbeziehen, aber deswegen auf verschlüsselte Verbindungen oder Signaturen zu verzichten, halte ich für gefährlicher

Geschrieben

Hi Leute.

Anbei nochmal den überarbeiteten Antrag:

Projektantrag

Projektbezeichnung (Auftrag/Teilauftrag):

Neuentwicklung des Update-Programmes der Fa. XXX in C# .Net

Projektbeschreibung:

Die XXX ist ein Softwareunternehmen im Bereich der XXX.

Zu den Aufgabenbereichen gehört u. a. die Programmierung der Kehrbezirksverwaltung, Schornsteinquerschnittsberechnungen, Heizungschecks und einer kaufmännischen Softwarelösung.

Momentan wird diese Software beim Kunden via Update-CDs aktualisiert. Diese werden 2-mal pro Jahr versandt. Zusätzlich können die Updates via Homepage und einem vorhandenen Update-Programm heruntergeladen werden.

Grund der Neu-Programmierung des Update-Tools ist zum einen, dass sämtliche Neuentwicklungen der Fa. XXX nur noch auf .Net-Basis erstellt werden und das vorhandene Update-Programm Inkompatibilitäten mit Windows Vista und Windows 7 aufweist.

Im Gegensatz zu den Neuentwicklungen wurde das alte Update-Programm mittels C++ realisiert.

Ziel des Projektes ist es, die hauseigenen, beim Kunden bereits installierten Programme per Registry auszulesen und diese dem Anwender anzuzeigen, um diese zu aktualisieren.

Weiterhin soll die Option bestehen, das Programm auf Rechnern zu nutzen, auf denen die Programme nicht installiert sind. Dieser Fall tritt dann auf, wenn die Nutzer separate PCs (Arbeit/Internet) verwenden.

Außerdem ist eine Authentifizierung des Benutzers nötig, da die Updates nur Kunden mit einem Wartungsvertrag zur Verfügung stehen.

Zusätzlich soll das Programm eine automatische Updatefunktion in festlegbaren Intervallen (z.B. täglich) bieten. Diese Intervalle sollen frei wählbar sein und über die Einstellungen festgelegt werden können.

Wurde ein Update heruntergeladen, soll das Programm die Installation des Updates starten. Vor der Installation muss geprüft werden, ob möglicherweise Prozesse gestartet sind, welche die Installation beeinträchtigen könnten. Nach erfolgreicher Installation muss die aktuelle Versionsnummer weggeschrieben werden.

Die Funktion Lizenzen zu aktualisieren, um etwaige Sperrungen/Freischaltungen von Kunden, genauer deren Wartungsverträge zu steuern, soll ebenfalls bestehen.

Darüber hinaus soll pro.update.net einen Info-Bereich über aktuelle News / Programme / Schulungen bieten.

Projektumfeld:

Das Projekt wird in den Räumlichkeiten der Firma XXX, in der Abteilung Softwareentwicklung durchgeführt. Als Entwicklungsumgebung dient Microsoft Visual Studio 2010, in dem mittels Team-Foundation-Server gearbeitet wird. Wie oben bereits erwähnt, wird die Erweiterung mittels C# realisiert.

Es fallen keine weiteren Kosten für das Projekt an. Alle benötigten Arbeitsmittel stehen bereits schon vor dem Projekt zur Verfügung.

Projektphasen und Zeitplanung

• Ist-Analyse 2h

• Ausarbeitung Projektanforderung 2h

• Erstellen eines Feinkonzepts (8h)

• Pflichtenheft 5h

• UML-Objektdiagramm 3h

• Entwicklung Insgesamt (34h)

• Erstellen der Benutzeroberflächen 5h

• Auslesen der Programme 2h

• Benutzer Authentifizierung 3h

• Aktualitätsprüfung und Download der Updates 4h

• Automatische Update-Funktion 5h

• Prozess-Prüfung 1h

• Steuerung der Updateinstallationen 3h

• Separate Nutzung 4h

• Lizenzsteuerung 4h

• Erstellung Service-Bereich 3h

• Entwicklung Demo-Anwendung 5h

• Softwaretest (7h)

• Funktionalität 3h

• Fehlerfreiheit 3h

• Erstellen eines Testprotokolls 2h

• Projektdokumentation 12h

Gesamtstundenzahl für die Projektarbeit: 70h

Geschrieben

Das klingt schon viel besser. Evtl das Wort "weggeschrieben" ersetzen und die vielen Leerzeilen rausnehmen. Ich würde das Projekt nicht als "Neuentwicklung des Update-Programmes" nennen sondern "Neuentwicklung des Update-Mechanismus", damit hast Du etwas mehr Freiheit in der Durchführung. Es fehlt noch die Integritätsprüfung des Updates, das würde ich auf jeden Fall in den Antrag rein schreiben, d.h. ob das Paket auch inhaltlich korrekt ist und nicht z.B. dadurch eine Malware o.ä. untergeschoben wurde.

Geschrieben

Danke für Deine Meinung.

Hab den Antrag nochmals abgeändert. Werde diesen nachher auch nochmal online stellen.

Bezüglich Integritätsprüfung der Updates:

Reicht eine CRC-Prüfung?

Das mit den Signaturen ist für das Tool einfach zu hoch gegriffen, bzw. würde zu weit führen.

Geschrieben

Mal als kleine Randbemerkung: als IT-Integrator würde ich nie eine Software ausrollen, die sich irgendwann

nach Belieben mal selbst updated. Absolutes no-go ! Und erst recht nicht, wenn sie sich auch noch

von Ferne abschalten läßt.

Geschrieben
Mal als kleine Randbemerkung: als IT-Integrator würde ich nie eine Software ausrollen, die sich irgendwann

nach Belieben mal selbst updated. Absolutes no-go ! Und erst recht nicht, wenn sie sich auch noch

von Ferne abschalten läßt.

Wie darf ich das bitte verstehen?

Ich hab noch etwas anderes. Auf der IHK-Seite, beim den Online-Antrag gibt´s einen Punkt "Dokumentation". Was soll den da rein? Wenn ich sehe, dass da 3000 Zeichen frei sind, frag ich mich, was die da hören/lesen möchten.

Geschrieben
Wie darf ich das bitte verstehen?

Als absolten Show-Stopper.

Im professionelen Einsatz von Softwaresystemen will man zunächst jedes Update

_zumindest_ erstmal auf einen pre-production-System auftesten, bevor man

entscheidet, ob man es überhaupt auf ein Produktivsystem loslassen will.

Geschrieben
Hast Du den Antrag eigentlich komplett gelesen? Ich befürchte nein.

Sorry, hatte überlesen, daß das Update explizit angestartet werden muß.

Aber mal was anderes: warum nicht einfach ein generisches Paketmanagement-System verwenden ?

  • 3 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...