Schutz vor Decompilung

  • Allgemein

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von BiedermannS.

    Brauchst du nicht. Wetten, dein Programm enthält nicht eine schützenswerte Sache / Zeile Code?

    Glaube auch nicht, dass es hilft, dein Programm zu obfuscaten, um z.B. FTP Zugangsdaten zu "verschlüsseln".
    Dann ergeht es dir so wie dem DingDong heut Nachmittag....

    Gruß,
    Manawyrm

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manawyrm“ ()

    Was habt Ihr andauernd mit eurem PHP? PHP an sich bringt keine Sicherheit, sondern eher noch eine weitere Sicherheitslücke, falls man nicht 100% richtig programmiert. Und überhaupt bringt das beste PHP Script nichts, wenn die Daten dann erst unverschlüsselt übertragen werden.

    @Leonalter
    Zum Thema:

    Wissen die Peronen die das Programm benutzen die Benutzernamen und Passwörter? Also könnten sie sich ohne dein Programm auch auf den Server verbinden?

    Wenn ja, gibt es ja keinen Grund diese Daten ins Programm zu packen, da diese sowieso den Personen bekannt sind.

    Wenn nicht, schreib dein Programm in C++, pack ne gute Verschlüsselung mit rein und speicher alles in Verschlüsselten Dateien ab. Verwende nur SSL für die Übertragung, alles andere ist Sicherheitstechnisch Kontraproduktiv, da die Daten sonst erst wieder ausgelesen werden können.

    Zum Thema FTP, wenn du schon sicher unterwegs sein willst, verwende einen SFTP Server, da bei normalem FTP ALLES in Klartext übertragen wird.

    Wenn du doch PHP nutzen willst, stell sicher das sich jeder user mit einem Benutzernamen und Passwort gegenüber dem PHP Script authentifizieren muss, erst dann Verbindet sich das PHP Script mit dem MySQL Server.

    Wieder gilt, SSL ist dein Freund, da das ganze Sicherheitsgetue nichts bringt, wenn man im Endeffekt alles über eine nicht gesicherte Verbindung überträgt.

    Noch was zum Nachlesen:
    Google mal nach: Verschlüsselung Zertifikate
    oder
    it-academy.cc/article/588/Vers…Digitale+Zertifikate.html

    Mfg
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D

    BiedermannS schrieb:


    Was habt Ihr andauernd mit eurem PHP? PHP an sich bringt keine Sicherheit, sondern eher noch eine weitere Sicherheitslücke, falls man nicht 100% richtig programmiert. Und überhaupt bringt das beste PHP Script nichts, wenn die Daten dann erst unverschlüsselt übertragen werden.


    Mh was ist wohl sicherer, ein PHP Script oder die FTP Daten im Programm ?
    Zudem, wenn man sowas macht, sollte man generell die daten via PHP Uploaden und nicht auf FTP zurückgreifen.

    Das spiegelt grade deine Programmier erfahrung sehr gut wieder.
    Wenn du es drauf hast zu programmieren, verzichtest du sogar auf FTP/PHP und greifst auf ne eigene Serverapplikation zurück die das macht.

    BiedermannS schrieb:

    Und überhaupt bringt das beste PHP Script nichts, wenn die Daten dann erst unverschlüsselt übertragen werden.


    SSL Zertifikate sind ja auch so teuer ^^
    zudem reicht fürs uploaden sogar nen eigenes SSL Zertifikat, hauptsache verschlüsselt!!

    BiedermannS schrieb:

    Wieder gilt, SSL ist dein Freund, da das ganze Sicherheitsgetue nichts bringt, wenn man im Endeffekt alles über eine nicht gesicherte Verbindung überträgt.



    Ob die Verbindung Verschlüsselt ist oder nicht is sowas von rille, denn beim normalen Surfen wird auch alles unverschlüsselt übertragen (es sei den man hat die Option über https zu surfen). Primär gehts darum Berechtigungen einzuschränken. Via FTP könnte ein User erstmal alles Auslesen, Löschen und Verändern. Also besser ist PHP an die eine Datei geschickt wird und PHP Speichert diese Datei dann in einem bestimmten Verzeichnis. Zwar könnte ein User nun allmöglichen Dateien und Crap hochladen, aber ansonsten NICHTS anderes. Man könnte sogar noch eine IP Sperre o.ä. einbauen damit man sowas eleminiert. Ebenso das Downloaden, is über ein PHP Script ebenfalls besser als FTP weil mit PHP die Möglichkeit hast den Download vernünftig zu managen.

    Wenn es um SQL geht ists genauso, mittels einer Datenbank die externen Zugriff zulässt könnte man allmöglichen Unfug anstellen, besser is hier wieder PHP wo die Queries FEST einprogrammiert sind und nur Variablen empfangen (natürlich SQL Injection verhindern).

    Desswegen haben wir ständig das PHP (und weil es auf sogut wie jedem Webserver funktioniert). Das man die Daten abhören kann is völlig irrelevant.
    @Annoxoli: Keines von beiden, weil es egal ist ob ich entweder die Daten aus dem Programm raus ziehe oder ob ich ohne Authentifizierung Dateien an das PHP Script schicke und dieses dann hochlädt.

    Darum ist es schlecht, jedem zu sagen PHP sei sicherer. Weil es das von sich aus nicht ist.

    Weil wenn ich das PHP-Script lokal habe, kann ich mir die Daten direkt aus dem Script ziehen.

    Ist das PHP-Script auf anderen Gerät, stehe ich wieder vor dem Grundproblem, das ich (Wenn ich mich dem PHP-Script gegenüber authentifizieren muss) die Passwörter nicht sicher speichern kann und ohne Authentifizierung ist es fast so wie wenn du auf dem MySQL Server einen Root-Account ohne Passwort hast, der sich von jeder IP verbinden darf.

    Am besten wäre eine eigene Client-Server Anwendung zu erstellen.

    Da die Speditionsfirma ziemlich sicher in einer Domäne ist, kann man den Zugriff auf den Serverdienst mittels Integrierter Sicherheit regeln, sodass nur User das Programm verwenden können, die die Berechtigung dazu haben.

    Zum Server selbst haben normalerweise nur die Admins Zugang, also wäre es auch kein großes Problem die Login-Daten in der Serverapplikation zu speichern, bzw kann man dort die Daten in einer Konfigurationsdatei speichern auf die nur Admins zugriffsrecht haben. So kann der Admin der Firma auch die Logindaten ändern, falls mal etwas umgestellt wird.

    Vl lässt sich ein passendes (bereits erstelltes) Pattern für genau diesen Problemfall finden (entlib.codeplex.com/, Patterns)

    Sonst bleibt nur noch die Verwendung einer Programmiersprache, welche die Decompilierung fast unmöglich macht (für alle nicht Professionals)

    Zu SSL: wie du bereits gesagt hast, kann man diese weitgehend selbst erstellen, solange es nur Firmenintern verwendet wird.


    @Quadsoft: Das behebt aber nicht das grundlegende Problem der Schlüsselspeicherung bzw. der sicheren Datenübertragung

    Dodo schrieb:

    Desswegen haben wir ständig das PHP (und weil es auf sogut wie jedem Webserver funktioniert). Das man die Daten abhören kann is völlig irrelevant.


    Also das ist ja mal was neues, dass das abhören der Daten irrelevant ist.

    Was bringt es, alles zu schützen und dann ungesichert zu übertragen.

    Bei den Geldtransporten der Bank wird das geld auch nich in einem gesicherten Koffer zu einem Radkurier gebracht, in Säcke verladen und dann für jeden ersichtlich transportiert :!:
    Warum sollte man also mit seinen Daten anders umgehen?

    Btw: Wieviele größere Softwarehersteller kennst du, die dir sagen: Bevor du unser Produkt benutzt, musst du aber noch unser PHP-Script auf deinen Webserver hochladen, damit alles sicher ist??

    Das Ganze über ein PHP-Script zu leiten bringt genau einen Vorteil, man kann die Daten nicht von aussen abfragen. Dann muss man das Ganze noch vor SQL-injection, Cross-Site-Scripting (XSS) usw. schützen, wo fast täglich neue Methoden erarbeitet werden um diesen Schutz zu umgehen.

    Und in letzter Zeit hat man wieder mal gesehen, wie einfach es ist Internetverkehr umzuleiten (siehe DNS-CHanger), also traue ich mich mal zu behaupten, dass das Abhören von Daten keineswegs vernachlässigbar ist.
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D
    Hier nochmal die Downloadseite der Enterprise Library:

    Enterprise Library Current Release

    Die Enterprise Library ist im Großen und Ganzen eine Sammlung an Best Practice Beispielen und wiederverwendbaren Codes für Enterprise Applikationen

    The Microsoft Enterprise Library is a collection of reusable software components (application blocks) designed to assist software developers with common enterprise development challenges. Application blocks are provided as source code plus documentation that can be used "as is," extended, or modified by developers to use on complex, enterprise-level line-of-business development projects.
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D
    Und wenn ich wie schon gesagt wurde mir eine eigene Verschlüsselung ausdenke, die Daten im Programm verschlüssel und sie wenn sie dann gebraucht werden entschlüssele, ...

    Das Programm ist auch ein "Firmen"internes, also ich denke nicht das es Leute gibt die sich da einhäcken würden, außerdem auf dem FTP-Server liegen nur Bilddateien die von Mitarbeiter hochgeladen wurden, auf der MySQL Datenbank liegen viele Infos zum Programm, "Firmen"interne Daten liegen schon auf einer anderen Datenbank.