https:// - wie macht man eine sichere Website?

Marco7757

Mitglied
Ein Kunde von mir arbeitet im Bereich Psychiatrie und will nun mit seinen Patienten online komunizieren. Da natürlich alles der ärztlichen Schweigepflicht unterliegt, muss die Seite, über die diese Kommunikation stattfindet, gesichert sein.

Seiten, die man über https erreicht, sind ja verschlüsselt und dadurch sicher. Aber wie realisiere ich nun meinerseits, dass meine Seite über https erreichbar ist und dadurch auch sicher?
 
Also ich habe einfach einen normalen Webserver von einem professionellen Anbieter.

Ich habe schon zahlreiche Seiten programmiert, nur war es noch nie notwendig, die Seite mit mehr als einem Passwort für den Benutzer zu schützen.

Was meinst du denn mit "Was für ein Server liegt vor?"
 
Hallo!

Linux/Windows/...?
Apache/IIS/...? ;)

HTTPS ist "nur" ein Übertragungsprotokoll, hat mit Deiner Seite als solches also erstmal nichts zu tun.

Spreche mit Deinem Hoster dass Du ein Zertifikat für SSL benötigst, welches von einer zertifizierten Zertifizierungsstelle signiert wurde.
Ausserdem muss der Server für HTTPS konfiguriert werden (was leider nicht bei allen Hostern der Fall ist).
Prinzipiell könnte man für HTTPS auch ein "selbstsigniertes" Zertifikat nutzen, allerdings würde ich dazu nur in unkritischen Bereichen raten.

Wie findet denn die Kommunikation statt?
Wird diese irgendwo auf den Server (z.B. in einer Datenbank) hinterlegt?
Da dürftes Du auch Probleme mit der ärztlichen Schweigepflicht haben (zumindest der Hoster bzw. dessen Mitarbeiter haben Zugriff auf die Datenbank --> Stichwort: "root darf alles").

Gruss Dr Dau
 
Also ich arbeite auf Windows, aber das tut ja nichts zur Sache. Womit mein Anbieter arbeitet, weiss ich nicht.

Der Kunde wünscht, dass die Daten in Form einer PDF-Datei auf dem Server gespeichert werden. Mir ist allerdings nicht klar, ob er dem Kunden zumuten will, die ausgefüllten Papiere einzuscannen. Von dem her wäre ein Formular mit anschliessender Speicherung in einer Datenbank nicht die schlechteste Idee. Allerdings hast du recht, dass dann der Hoster auf alles Zugriff hat.

Von dem her sollte ich dem Kunden eher davon abraten, wegen der Sicherheit?

Wie muss ich mir das Zertifikat für SSL vorstellen? Ist das ein Papier oder irgendetwas anderes?

Den Server für HTTPS konfigurieren wäre sehr wahrscheinlich kein Problem, bisher wurde auf meine Anfragen immer prompt geantwortet und die nötigen Serverupdates o. ä. schnell ausgeführt.
 
Seiten, die über https aufgerufen werden, sind nicht automatisch verschlüsselt. Nur die Datenübertragung selbst vom Client zum Server ist verschlüsselt.

Das Zertifikat wird von verschiedenen Firmen ausgestellt. Das ist ein elektronisches Zertifikat, anhand dessen der Browser erkennt, daß der Inhaber überprüft wurde. Die Qualität dieser Prüfung bestimmt auch die Kosten des Zertifikats. Die billigsten starten schon bei ca. 40€ jährlich und gehen rauf bis über 1000 €. Es sollte aber schon ein Zertifikat sein, bei dem auch der Name des Domaininhabers genannt wird. Die kosten so ca. 100 € jährlich.
Die Speicherung in einer Datenbank ist wohl die bessere Lösung. Ich halte die Wahrscheinlichkeit, daß einer der Admins beim Hoster die Datenbank durchforstet, für relativgering, aber verschlüsseln sollte man solche Daten auf jeden Fall. Wenn die Datenübermittlung in beide Richtungen verläuft, könnte man die Verschlüsselung über ein individuelles Kennwort laufen, das beiden bekannt ist. Das darf natürlich nicht in der Datenbank gespeichert sein. Wenn die Daten nur vom Patienten zum Arzt laufen, könnte man es auch über einen Public / Private Key machen, wie z.B. auch die PGP Verschlüsselung arbeitet, oder auch die SSL Zertifikate.
 
Wenn ich mich recht erinner, kann man ein PDF auch mit einem Passwort versehen.
Hängt aber wohl auch von der verwendeten Software ab.
Allerdings ist es fraglich was man mit einem passwortgeschützten PDF z.B. noch in einem HEX-Editor anfangen könnte.

einscannen.....
Das reine einscannen dürfte nicht sooo das Problem sein (bei modernen Scannern funktioniert es oft ja schon durch einen einfachen Knopfdruck).
Allerdings könnte es sein dass die Dateien, was den Upload betrifft, eine bestimmte Dateigrösse nicht überschreiten dürfen.
Der Patient müsste die Datei also ggf. entsprechend ändern.
Damit könnten einige Patienten dann aber doch überfordert sein.

Ich halte die Wahrscheinlichkeit, daß einer der Admins beim Hoster die Datenbank durchforstet, für relativgering, [...]
Relativ gering wohl schon, aber halt auch nicht unmöglich.
Und darauf kommt es doch schliesslich an.
Wenn ein Psychologe gegen sein Schweigepflicht verstösst, kann er nicht nur eine Geldstrafe oder Haftstrafe bekommen, sondern auch ein Berufsverbot.
Die möglichen Schadenersatzansprüche möchte ich mir da lieber nicht vorstellen. ;)
Also, auf keinen Fall Patientendaten "unverschlossen" auf einem Server ablegen, denn dadurch macht man sie Dritten zugänglich und verstösst somit gegen die Schweigepflicht.

Ich würde mich mal mit einem Datenschutzbeauftragen in Verbindung setzen.
Evtl. hat er mit solchen Fällen ja schon Erfahrungen und kann entsprechende Tipps geben.

Auf jeden Fall aber würde ich mir die ganze Geschichte von einem Rechtsanwalt, welcher mit dem Datenschutz und der ärztlichen Schweigepflicht vertraut ist (welches Fachgebiet wäre hier denn hier das Richtige?), absegnen lassen.
Schliesslich geht es hier ggf. ja auch um die Haftung.
Oder hast Du eine sehr sehr sehr gute Betriebshaftpflichtversicherung, welche auch bei grober Fahrlässigkeit und ggf. auch bei Vorsatz für Dich einspringt?! ;)
 
[...] aber verschlüsseln sollte man solche Daten auf jeden Fall. Wenn die Datenübermittlung in beide Richtungen verläuft, könnte man die Verschlüsselung über ein individuelles Kennwort laufen, das beiden bekannt ist. Das darf natürlich nicht in der Datenbank gespeichert sein. [...]

Das finde ich eine gute Idee. Wenn ich die Daten in eine Datenbank schreibe und dann mit einem zuvor gewählten Passwort, welches nur dem Arzt und dem Patienten bekannt ist, verschlüssle (gibt es da Algorithmen oder sollte ich zur Sicherheit besser einen selber schreiben?), muss ich dann überhaupt noch irgendeine Verbindung sichern?

Wenn ich die Daten verschlüsselt übertrage und erst auf dem Server des Patienten / Arztes umwandle, per JavaScript oder so, dann sollte es doch eigentlich nicht möglich sein, an die Daten in unverschlüsselter Form heranzukommen. Oder sehe ich da was falsch?

Bequemer wäre es natürlich, wenn ich alles mit PHP machen könnte, aber PHP wird ja nicht auf dem Server des Anwenders ausgeführt ...
 
Du willst deine Kommunikation nicht mit JavaScript verschlüsseln. Denn die wäre nur synchron. Sprich es gebe nur einen geheimen Schlüssel, wenn den jemand in die Hände bekommt ist Ebbe.

Du bist auf dem richtigen Weg, das über HTTPS zu machen. Fangen wir noch mal von vorne an:

1. Du brauchst Informationen, welcher Webserver auf deinem Hoster läuft. Vermutlich ist das Apache aber das ist nicht sicher gestellt. Wenn du nicht weißt, wie du heraus bekommen kannst, welche Webserver-Software du hast, frage deinen Hoster. Wenn da PHP unterstützt wird, kannst du mittels phpinfo()-Script herausfinden, welche Software verwendet wird, das steht in den ersten Zeilen der Ausgabe.

2. Du brauchst, wie schon erwähnt, ein Zertifikat. Dieses Zertifikat kannst du
- selbst erstellen (Zertifikat-Anfrage => Certificate Request = CR) und anschließend
- selbst unterschreiben => dann kommt bei Verbindungsanfrage eine Warnung, dass das Zertifikat von keiner vertrauenswürden Stelle unterschrieben wurde, oder
- von einer allgemein vertrauten Zertifizierungsstelle wie Verisign (ganz gut) oder z.B. von Comodo (http://www.instantssl.com/), was dann natürlich Geld kostet.

3. Du konfigurierst den Webserver, das Zertifikat zu verwenden, dafür gibts tatsächlich sehr viele Tutorials, ein gutes deutsches findest du hier: http://www.net-cry.de/apache/apache-ssl-zertifikat-erstellen, dort wird auch gezeigt, wie du ein Zertifikat selbst erstellst und unterschreibst. Wie schon erwähnt bekommst du dann aber eine Warnung, die so https://ssl.cms.fu-berlin.de/cedis-all/cedis/cms/doc/faq/_media/zertifikatswarnung.jpg oder auch so http://www.tu-harburg.de/rzt/it-sic...ages/ie7_unbekannte_Zertifizierungsstelle.png aussehen kann.

4. Du müsstest nun den Webserver so konfigurieren, das er für bestimmte Domains nur SSL akzeptiert, das kann man mit mod_rewrite machen, ist aber nur die letzte Option und hat erstmal nichts mit dem Thema zu tun. Wollte es nur erwähnen.

Anmerkung: Die Seite wird dadurch nicht per se sicher. Lediglich die Verbindung zwischen Browser und Webserver wird verschlüsselt. Wenn du die Daten auch auf dem Server gespeichert verschlüsseln möchtest, solltest du dann eine server-seitige Script-Sprache (PHP in diesem Fall) verwenden, un die Daten verschlüsselt und mit Passwort ablegen.

All das kann NICHT mit JavaScript realisiert werden, den JavaScript kennt die Technologie Public-Private-Key nicht. Auch auf dem Server kann man die Daten übrigens mit einem PPK-Verfahren verschlüsseln. Das server-seitige Script verschlüsselt alles mit einem Öffentlichen Schlüsselteil und der Psychater hat den privaten Key und kann das dann entschlüsseln, außer ihm aber niemand anders, auch der Patient nicht mehr.
 
Zuletzt bearbeitet:
Zurück