[Aufwand = Studienprojekt]
[…]Die Aufgabe lautet
eben, eine Verschlüsselung zu implementieren. Das dies in
erster Linie mal SSL ist, ist klar. Dies ist ja auch sehr
praktisch, weil browserseitig schon implementiert. Der Client
muss sich also keine extra Software runterladen.
Insofern ist es uns schon einigen Aufwand wert, eine gute Note
zu bekommen
Und wenn wir dafür mehrere viell. sogar
zusammenfunktionierende Verschlüsselungstechniken anbieten
können, dann ist das schon nicht schlecht
Deshalb suche
ich noch andere Möglichkeiten ausser der SSL-Verschlüsselung,
die, soweit ich das verstanden habe, die Übertragung
verschlüsselt, aber nicht die Daten während der Übertragung
selbst.
Also das mit der Note verstehe ich nur zu gut 
Nun gut, dann mal los…
Also bei SSL wird der Datenstrom verschlüsselt, so wie ich es verstanden habe.
Logischerweise hängt die Sicherheit auch dann damit zusammen,
wie sicher die Daten auf dem Webserver liegen, wie gut dieser
gegen Angriffe geschützt ist etc… Nur dies sind im allg.
Dinge, die wir nicht beeinflussen können, wenn wir nicht
gerade zufällig Zugriff auf den Webserver haben. Deshalb geht
es also um die möglichst sichere Übertragung von zB
Kontodaten, persönliche Daten, die nicht jemand bei der
Übertragung abfangen können soll…
Da hast Du Recht und das wird auch immer eines der schwierigsten Probleme bleiben!
Daher ist der Ansatz, die Daten verschlüsselt zu speichern gar nicht so abwägig! Nur schwierig zu bewerkstelligen. Denn die Daten gesichert abzulegen ist schon wichtig - aber ein Problem kommt hinzu. Selbst, wenn Ihr die Daten per asynchronem Verschlüsselungsprinzip (wie PGP es einsetzt - also public und private Key) absichert habt Ihr ein Problem: Ihr müsst mit den Daten dynamisch hantieren - also mal angenommen der Kunde ist so dumm (*zwinker*), das er was bestellt und dann kommt die Shopsoftware doch tatsächlich auf den Trichter, die Buchung vorzunehmen, die Rechnung zu erzeugen etc. Nun, grundsätzlich kein Problem, aber dafür benötigt sie den heiligen, privaten Schlüssel. Sobald der irgendwo im Netz liegt habt Ihr ein grosses Sicherheitsproblem. Gut, den Schlüssel kann man sichern (z.B. in einem Verzeichnis ausserhalb von Eurem webzugänglichen Verzeichnissen auf dem Server, aber auch da müsst Ihr höllisch auf die Implementierung aufpassen!
Eine andere Möglichkeit in der Richtung könnte doch auch die
Versendung per Email sein (mit PGP oder ähnlichem), bei dem
halt dann ein Schlüsselaustausch stattfinden muss. Für User,
die PGP in ihrem Emailclient am Laufen haben, doch auch keine
schlechte Möglichkeit, oder?!
Nun, die Idee ist gut - die Praxis zeigt aber folgendes: Ein kleiner Schwenk aus meiner „Du ich habe eine PC Problem, komm mal schnell vorbei“ Rubrik: Es gibt immer wieder Bekannte, Freunde und wer weiss noch wer, die entweder wollen, das ich mich mal auf Ihrem Server umschaue, das ich Ihren PC mal auf Sicherheitslecks checke etc. Nun, dafür wird im allgemeinen ja ein Login benötigt, die IP muss mir bekannt gegeben werden etc. Also sicherheitsrelevante Daten. Nun, die werden natürlich unverschlüsselt und mit dem passenden Betreff (so in der Art: „Hier meine Zugangsdaten für die Webpräsenz xyz.de“ an mein GMX Postfach geschickt! Den schärfsten Fall, den ich mal hatte: Der hatte seine E-Mail gelöscht, wo die Daten drin waren für seinen Webauftritt. Also habe ich sie ihm zugesandt, natürlich unverschlüsselt, weil er ja kein PGP oder ähnliches hat, und weil er danach noch was von mir per Mail wollte hat er halt einfach den Reply-Button als nützlich empfunden und die Daten gleich wieder mitgeschickt.
Nun, worauf ich hinaus will: Ich habe probiert, den Leuten eine Mailverschlüsselung nahe zu legen. Grundsätzlich finden alle die Idee gut, aber irgendwie rafft es keiner. Die wollen Ihre Mails tippen und abschicken. Von Schlüsseln und Sicherheit - nun, da kommt meist „Ist mir zu umständlich“, „Das geht nicht“ etc.
Das gleiche im Chat. Wenn ich mit Leuten in Kontakt trete und diese mich dann persönlich kontaktieren wollen, dann frage ich nach ihren public Keys - oder ob sie PGP oder winPT oder was auch immer benutzen. Da kommt immer: Kenn ich nicht.
Also bis es sich nicht weiter verbreitet hat würde ich die Funktion zwar anbieten, aber nicht um Kontodaten oder ähnliches erstmalig zu erfassen, sondern um wichtige, vertrauliche Daten zu versenden.
Nach dem Thema mit der Übergabeverschlüsselung mit
Javascripten werde ich mich auch mal erkundigen…
Nun, es gibt bestimmt die Möglichkeit eine 128bit Verschlüsselung zu implementieren, das ist bestimmt auch die wohl tragfähigste Variante.
Aber den Ansatz mit der asynchronen Datenverschlüsselung für dynamische Datenverarbeitung würde ich nich aus den Augen verlieren.
Ich selber brüte z.B. über einer Idee, wie ich es schaffe, von überall mit möglichst wenig Aufwand verschlüsselte Mails abzurufen und zu versenden. Bis jetzt drehen sich meine Gedanken noch um ein Java-Applet oder ein ActiveX Control, wobei letzteres mich wieder an Windows und hauptsächlich an den IE kettet.
Der Vorteil dabei ist allerdings, das ich meine privaten Schlüssel nicht zentral lagern muss. Ich will es z.B. so implementieren, das man seine Schlüssel auf einem USB Stick, Disk oder wo auch immer mit sich trägt und sich so auch nachhaltig authentifiziert. Diesen Vorteil könnt Ihr leider nicht nutzen, da der Schlüssel ja von der Shopsoftware regelmäßig gebraucht wird!