Announcement

Collapse
No announcement yet.

Eigenes Kryptosystem in Windows einbinden - wie?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Eigenes Kryptosystem in Windows einbinden - wie?

    Hallo,

    eine etwas allgemeine und sehr vage Frage von mir Neuling:

    Ich würde gern aus Experimentierfreude einen eigenen Ver- und Entschlüsslungsalgorithmus so in Code umsetzen (Programm, DLL, Treiber, was-gibt's-noch...), dass Windows (sagen wir mal 2000 oder XP) ihn benutzen kann.

    Sorry für die ungenauen Angaben... , im Endeffekt will ich erreichen (falls das überhaupt möglich ist), dass ich z.B. mit einem beliebigen Browser oder Emailprogramm, mit einem FTP-Klienten oder einem Terminalprogramm eine Verbindung (TCP/IP) aufbauen kann, und irgendwie auswählen kann, dass für diese Verbindung "mein Krypro-Plugin" benutzt wird.

    Also ganz naiv dachte ich daran, in die Transportschicht was reinzusetzen (wie TLS); ganz so, als würde man sich das neue 256-Bit Upgrade von Microsoft herunterladen, bloß eben nicht von Microsoft, sondern mein eigenes "Upgrade".

    Ich hoffe, ich konnte mich einigermaßen verständlich machen.

    Im Grunde geht es mir darum, ein möglichst simpel und breit anwendbares Kryptosystem zu schreiben, um damit so viele Netzwerkprotokolle (alle?) wie möglich abzudecken, damit ich als Endanwender nicht für jedes Client-Programm ein eigenes Verschlüsslungs-Plugin brauche, sondern direkt im Protokollstapel was drin steckt und fertig.

    Das genaue Gegenteil bzgl. der Usability von dem, was ich mir vorstelle, wäre z.B. ein Standalone-Programm, in das man ASCII-Text reinkopiert, dann auf Verschlüsseln klickt und den Cipher-Text wieder händisch rauskopiert - das, um Gottes Willen - soll es gerade nicht werden! :-))

    Vielen Dank für's Durchlesen meines Beitrages :-)

    Ich hoffe auf vielerlei Vorschläge oder Anregungen!

    Viele Grüße,
    Caps

  • #2
    Ich ergänze mal meinen obigen Beitrag um eine konkrete Frage:

    Hat schonmal jemand sowas programmiert? Wo wäre es sinnvoll, anzusetzen?


    Viele Grüße
    Caps

    Comment


    • #3
      Kannst du mal erklären, was der Sinn der Sache ist? Wenn man zB. jemanden eine verschlüsselte Email schickt, dann kann man PGP verwenden. Wenn man eine verschlüsselte Verbindung von draussen ins Firmennetzwerk braucht, kann man VPN verwenden. Beides hat mit Verschlüsselung zu tun, man kann aber nicht eines für das andere verwenden, da die Anforderungen zu unterschiedlich sind.

      bye,
      Helmut

      Comment


      • #4
        Hi Helmut,

        danke für Deine Antwort. Also ich kenne mich nicht mit PGP aus, aber das ist ein gutes Beispiel, denn ich brauche ein Extra-Programm ("PGP"), um verschlüsselte Emails zu schreiben.
        Wenn ich das jetzt als Anwendungsbeispiel hernehme, dann will ich einfach was schreiben, was den Datenstrom ver- und entschlüsseln kann, ohne PGP dafür runterladen zu müssen. Wenn ich sicher HTTP machen will, geht das ja: der Server bietet das HTTPS-Protokoll an und ich surfe einfach drauf los. Geht das auch bei Email-Klienten?

        Wenn das zu komplex ist, dann beantworte einfach nur folgende Frage (denn das ist eigentlich der Kern):

        -> Mein Browser kann HTTPS.
        -> Ich erfinde mein Hobby-Kryptosystem HTTPHobby.
        -> Ich will, dass mein Browser jetzt auch HTTPHobby kann.

        Wie muss ich vorgehen? Wo liegt die .DLL, die HTTPS implementiert bzw. wo muss ich was hinprogrammieren?

        lg Caps

        Comment


        • #5
          Wo ist der Unterschied in der Logik,ob du etwas herunterlädst und benutzt oder selbst programmierst?

          Für den Browser kann man für so eine Anforderung einen eigenen Proxy aufsetzen der das dann macht.
          Des Weiteren willst du doch nicht ernsthaft irgendeine System-DLL austauschen...

          An Kryptosystemen brauchst nichts zu erfinden, verschiedenste Systeme sind ausprogrammiert

          EDIT

          Mit wem soll eigentlich dein Browser/Mailprogramm/?? kommunizieren, wenn du dein eigenes System einsetzt?
          Zuletzt editiert von Christian Marquardt; 19.08.2010, 19:21.
          Christian

          Comment


          • #6
            Hi,

            also wie ich im ersten Beitrag schrieb, geht es mir darum, es einfach mal zu probieren, mehr Sinn hat es nicht. Ich finde es aber außerordentlich interessant, deswegen will ich es ja auch machen.

            Was die Umsetzung angeht:

            - Klar kann ich mir was herunterladen, das ist aber nicht mein eigenes, also muss ich es selbst schreiben. qed

            - Ich wünsche mir ein Kryptosystem für alle Anwendungen, nicht für jede Anwendung ein eigenes.

            - Offensichtlich sind die "Schnittstellen" wie TLS und SSL und haste-nicht-gesehen nicht frei oder offen oder gut dokumentiert für freie Entwickler, oder?

            - Die Idee mit einem Proxy ist mir auch schon gekommen, wahrscheinlich werde ich diese Lösung anstreben... ich muss ihn nur ausreichend konfigurieren und programmieren können, aber das wird sich wohl machen lassen.

            Zitat: "Mit wem soll eigentlich dein Browser/Mailprogramm/?? kommunizieren, wenn du dein eigenes System einsetzt?"
            - Naja, wie gesagt, ich will es nur machen, weil's mir Spaß macht, also werde ich wohl mit mir selbst oder meiner Mutter kommunizieren o.ä. :-))
            Das soll nicht heißen, dass ich meine Fragen nicht ernst meine!! Ich finde das Thema enorm interessant und wichtig.

            lg Caps


            Nachtrag:

            Wie macht das eigentlich "der Kaspersky"?
            Der schnüffelt doch auch in jeden Datenstrom rein. Im Grunde könnte eine Firewall Datenströme auch manipulieren. Das ist genau das, was ich auch will. Meine Frage könnte also auch lauten: "Ich will eine eigene Firewall schreiben. Was muss ich tun?"
            Zuletzt editiert von caps; 20.08.2010, 10:47.

            Comment


            • #7
              Originally posted by caps View Post
              "Ich will eine eigene Firewall schreiben. Was muss ich tun?"

              Dann wünsche ich dir die nächsten 5 bis 10 Jahre viel Spass

              Und wenn Du nicht weist was Du machen musst und erst ander fragst, dann sind die 5 bis 10 Jahre auch umsonst

              Und im Übrigen hat eine Firewall nichts mit Verschlüsselung zu tun! Wäre dann wohl eher ein VPN-Router den Du meinst. Und IP-SEC nachzuprogramieren wird wohl auch 5 bis 10 Jahre dauern.
              AlexDgG

              Es gibt keine dummen Fragen. Nur dumme Antworten!

              Comment


              • #8
                Ich glaube, da hast Du mich missverstanden.
                Ich will ja nicht den kompletten Kaspersky nachprogrammieren (da hättest Du mit 10 Jahren Aufwand wohl recht), sondern nur das Prinzip verstehen und implementieren, mit dem der Kaspersky Datenströme liest und schreibt.

                Ich glaube, jetzt dürfte es kein Missverständnis mehr geben.

                lg Caps

                Comment


                • #9
                  Originally posted by caps View Post
                  Ich will ja nicht den kompletten Kaspersky nachprogrammieren (da hättest Du mit 10 Jahren Aufwand wohl recht), sondern nur das Prinzip verstehen und implementieren, mit dem der Kaspersky Datenströme liest und schreibt.

                  Wir reden hier über Dinge die zig Bücher füllen. Welche Antwort aus diesen Bücher erwartest Du hier.

                  Um die komplexität zu verstehen.
                  1. http://de.wikipedia.org/wiki/OSI-Modell
                  2. Must Du dich in Windows auf unterster Systemebene (Treiber, Dienste, System-DLLs, etc..) auskenne wie ein Entwickler von MS oder mit BillyBoy befreundet sein
                  ...
                  ...
                  ...
                  1123. Wenn Du alle 1122 Punkte befollgt hats kannst Du kompilieren

                  Bleibt trotzdem bei 5 bis 10 Jahre
                  AlexDgG

                  Es gibt keine dummen Fragen. Nur dumme Antworten!

                  Comment


                  • #10
                    Danke für Deine Antwort, aber mich hätte schon der Inhalt der 1120 restlichen Punkte interessiert, denn darauf bezieht sich ja meine Frage.
                    Das OSI-Modell kenne ich, aber es gibt keine "OSI.conf" bei Windows, sondern ein paar (hundert) DLLs, das ist schon richtig.

                    Leider hilft mir das nicht weiter auf dem Lösungsweg, wenn Du schreibst, dass alles sehr kompliziert ist. Trotzdem danke für's Bemühen.

                    lg Caps

                    Comment


                    • #11
                      Originally posted by caps View Post
                      Leider hilft mir das nicht weiter auf dem Lösungsweg, wenn Du schreibst, dass alles sehr kompliziert ist. Trotzdem danke für's Bemühen.
                      Das ist keine Frage für ein Entwicklerforum. Die Antwort auf diese Frage würde ich eher in einer Diplom- oder Doktorarbeit der Informatik erwaten. Allerdings nur theoretisch und noch nicht implementiert.
                      Zuletzt editiert von alexdgg; 20.08.2010, 12:29.
                      AlexDgG

                      Es gibt keine dummen Fragen. Nur dumme Antworten!

                      Comment


                      • #12
                        Ich denke, die Idee mit dem Proxy ist am vielversprechendsten.
                        Wie ist das... ein Proxy kann für verschiedenste Netzwerkprotokolle konfiguriert werden, oder? Also nicht nur HTTP sondern bspw. auch Telnet (ich weiß: unsicher), oder POP3, SMTP, etc. ?
                        Dann wäre, glaube ich, ein Proxy das Mittel der Wahl, falls er das System nicht zu sehr belastet, was wiederum doof wäre.

                        lg Caps

                        Comment


                        • #13
                          Originally posted by caps View Post
                          Wie ist das... ein Proxy kann für verschiedenste Netzwerkprotokolle konfiguriert werden, oder? Also nicht nur HTTP sondern bspw. auch Telnet (ich weiß: unsicher), oder POP3, SMTP, etc. ?
                          Alle Port-Basierenden Protokolle können approxima geleitet werden. Wenn Du einen Virtuellen NIC Programmierst, kannst Du über das Default Gateway sogar allen IP Traffic abfangen und Verarbeiten. Und das auf allen Layern.

                          Dadurch wird es aber nicht leichter Ein Studium der Informatik ist (glaube ich) erstmal ein guter Anfang . Und wenn Du dann studiert hast wirst Du erkennen, das Du Dir so 10 bis 15 dipl. Informatiker ins Team holen solltest, um eine Firewall zu realisieren.
                          AlexDgG

                          Es gibt keine dummen Fragen. Nur dumme Antworten!

                          Comment


                          • #14
                            Danke für die vielen Fremdwörter. Jetzt kann ich damit weitergoogeln.

                            Ich möchte allerdings nochmals betonen, dass ich keine Firewall nachprogrammieren will, sondern nur (sehr wahrscheinlich auf einer Layer) Netzwerkverkehr manipulieren will. Ich denke doch, dass sich das machen lässt.

                            lg Caps

                            Comment


                            • #15
                              Also die Sache ist folgende. Es gibt unechte Proxy (NAT-Proxy), die nur anhand von Herkunft, Ziel evtl. Herkunft-Port und Ziel-Port eine Veränderung der Pakete auf Layer 3 machen und damit die Herkunft auf ein Zentrales GW Maskieren. Die Daten an sich bleiben unverändert.

                              Ein echter Proxy (Layer-7-Proxy) verändert nicht nur Layer 3 (Vermittlung-Schicht) sondern arbeitet auch Layer 7 (Applikation-Schicht). Ein echter Proxy funktioniert in zwei Richtungen zum Client hin fungiert er als Server und zum Server hin als Client. Das macht die Sache aber sehr kompliziert, den Du musst den Layer 6 und Layer 7 untersuchen und dich mit den Protokollen sehr gut auskennen. D.h. Du müsstest für jedes Protokoll einen Parser bauen und den Inhalt dann verschlüsseln. Das käme einer SSL oder TLS Verschlüsselung nahe, die auf Layer 6 arbeiten. Viel einfacher wäre eine Verschlüsselung auf Layer 3 wie z.B. IPsec, da diese nicht das Protokoll betrachtet sonder nur die einzelnen Pakete. Du würdes einfach alles verschlüsseln was rein und raus geht. Da hast du aber das Problem, dass von Windows schlecht an den Layer 3 rankommst nur mittels eingriff auf unterer Systemebene oder über eine Virtuelle Netzwerkarte (NIC), die das Routing zu deiner Applikation übernimmt.

                              All das kann ich mir aber nicht vorstellen, dass Du das machen kannst. Da fehlt glaube ich ein wenig Grundlagenwissen.
                              Zuletzt editiert von alexdgg; 20.08.2010, 16:58.
                              AlexDgG

                              Es gibt keine dummen Fragen. Nur dumme Antworten!

                              Comment

                              Working...
                              X