ickebins1989 Geschrieben 17. Januar 2012 Teilen Geschrieben 17. Januar 2012 (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 17. Januar 2012 von ickebins1989 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Genodi Geschrieben 17. Januar 2012 Teilen Geschrieben 17. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ickebins1989 Geschrieben 17. Januar 2012 Autor Teilen Geschrieben 17. Januar 2012 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 17. Januar 2012 Teilen Geschrieben 17. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Genodi Geschrieben 17. Januar 2012 Teilen Geschrieben 17. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 17. Januar 2012 Teilen Geschrieben 17. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ickebins1989 Geschrieben 19. Januar 2012 Autor Teilen Geschrieben 19. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 19. Januar 2012 Teilen Geschrieben 19. Januar 2012 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". Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ickebins1989 Geschrieben 19. Januar 2012 Autor Teilen Geschrieben 19. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 19. Januar 2012 Teilen Geschrieben 19. Januar 2012 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bastelfreak Geschrieben 19. Januar 2012 Teilen Geschrieben 19. Januar 2012 eventuell bietet sich auch ssh oder ähnliches an, SSL hat aktuell einen schlechten Ruf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 19. Januar 2012 Teilen Geschrieben 19. Januar 2012 eventuell bietet sich auch ssh oder ähnliches an, SSL hat aktuell einen schlechten Ruf Belege einmal diese Aussage. Ich sehe beil SSL kein Problem, warum man auf den Einsatz verzichten sollte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bastelfreak Geschrieben 19. Januar 2012 Teilen Geschrieben 19. Januar 2012 Bei den großen Zertifizierungsstellen würde ich kein Zertifikat mehr kaufen, die fallen ja regelmäßig um. Siehe Comodo, KPN, Diginotar, Digicert und irgendwelche Italiener die mir nicht einfallen. Dann gibts noch das Programm BEAST zum knacken von HTTPS Verbindungen. Tool soll SSL-Cookies in zehn Minuten knacken | heise Security Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 19. Januar 2012 Teilen Geschrieben 19. Januar 2012 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bastelfreak Geschrieben 19. Januar 2012 Teilen Geschrieben 19. Januar 2012 Komplett auf Verschlüsselung zu verzichten halte ich ebenfalls für fahrlässig. SSL mit eigener PKI wäre wohl vertretbar. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ickebins1989 Geschrieben 23. Januar 2012 Autor Teilen Geschrieben 23. Januar 2012 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 23. Januar 2012 Teilen Geschrieben 23. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ickebins1989 Geschrieben 26. Januar 2012 Autor Teilen Geschrieben 26. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 26. Januar 2012 Teilen Geschrieben 26. Januar 2012 Reicht eine CRC-Prüfung? Zyklische Redundanzprüfung Nein, die CRC-Prüfung liefert nur eine Möglichkeit ob etwas korrekt übertragen wurde, nicht ob der Inhalt stimmt, für die inhaltliche Prüfung brauchst Du eine Digitale Signatur Rein formal brauchst Du beide Prüfungen, wobei Du Dich fragen solltest, welche Protokolle eine CRC-Prüfung mitbringen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
metux Geschrieben 26. Januar 2012 Teilen Geschrieben 26. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ickebins1989 Geschrieben 27. Januar 2012 Autor Teilen Geschrieben 27. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
metux Geschrieben 30. Januar 2012 Teilen Geschrieben 30. Januar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ickebins1989 Geschrieben 30. Januar 2012 Autor Teilen Geschrieben 30. Januar 2012 Hast Du den Antrag eigentlich komplett gelesen? Ich befürchte nein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
metux Geschrieben 3. Februar 2012 Teilen Geschrieben 3. Februar 2012 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 ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ickebins1989 Geschrieben 19. Februar 2012 Autor Teilen Geschrieben 19. Februar 2012 Antrag wurde genehmigt. VÃelen Dank für Eure Hilfe! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.