Unsere Philosophie

Sicherheit hat viele verschiedene Aspekte in der IT. Wir haben uns im speziellen über folgende Elemente Gedanken gemacht: Verfügbarkeit, Datenintegrität, Vertraulichkeit, Authentizität und Verbindlichkeit.

Verfügbarkeit ist einfach erklärt, wir möchten, dass ihr rund um die Uhr ohne Ausfall von Teilfunktionen oder Einschränkungen das Casino benutzten könnt. Datenintegrität beschäftigt sich damit, dass die gespeicherten Daten nicht ungewollt verändert werden. Vertraulichkeit beschreibt, dass beispielsweise niemand Euer Passwort abfängt. Im Umfeld der Authentizität sollt Ihr Euch sicher sein können, dass Ihr bei uns gelandet seid und nicht auf einem Phishing-Server. Der letzte Punkt, die Verbindlichkeit, soll sicherstellen, wenn ein Gewinn angezeigt wird, Ihr auch einen Gewinn erhaltet.

Um all diese Punkte umzusetzen, haben wir uns einige Sachen überlegt von denen wir einige vorstellen wollen:

1. SSL
Wir sind über eine gesicherte Verbindung, genauso wie das Online-Banking eurer Bank, verfügbar. Durch die SSL-verschlüsselte Verbindung könnt Ihr auch in einem offenen WLAN sicher sein, dass euer Passwort für unser Projekt nicht abgefangen werden kann. Zusätzlich könnt Ihr sicher sein, dass Ihr mit unserem Serververbund kommuniziert.


2. Firewall
Auch ein Klassiker in der IT-Sicherheit: Firewalls. Unsere Server sind durch verschiedene Firewalls abgesichert. Der Server, der Eure Anfrage entgegen nimmt ist nur über den Port 80 (HTTP) und 443 (HTTPS) erreichbar, da keine weiteren Ports notwendig sind, sind alle anderen geschlossen. Die interne Kommunikation mit dem Applikations und Datenbankserver erfolgt abgeschottet, sodass ein direkter Zugriff auf diese Server nicht möglich ist.


3. Webapplication-Firewall
Zusätzlich zu unserer Portfirewall als erstes Bollwerk zum Internet wird sämtlicher ankommender Traffic von einer Webapplicationfirewall geprüft. Viele Angriffe werden so schon vor dem Erreichen des Applikationsservers durch den Webserver verworfen.


4. Hashwerte gesalzen und gepfeffert
Passwörter werden bei uns nicht im Klartext gespeichert, sondern in Form eines Hashwertes. Um Rainbow-Tables unmöglich zu machen, wird jedes Passwort mit einem individuellen und zufälligem Salt-Wert vor dem Hashen verlängert. Zusätzlich zu dem in der Datenbank gespeichertem Salt wird noch ein für alle Passwörter identischer Pepper-Wert angehängt, der im Quellcode der Applikationsservers steht. Möchte man also die Passwörter knacken müsste ein Angreifer es schaffen an den Quellcode des Anwendungsservers zu gelangen, dann die Datenbank auslesen können und obendrauf sehr sehr sehr viel Rechenleistung haben.


5. Auszahlungen sind nur auf das Einzahlungskonto möglich
Um sicher zu sein, dass Euer Guthaben nur wieder bei Euch landet, ist es nur mit direktem Zugriff auf die Datenbank möglich das Auszahlungskonto zu ändern, selbst das Admin-Menü bietet hierfür keine Option.


6. Sessions beendbar
Falls Ihr vergessen habt Euch an einem fremden Rechner auszuloggen, dann könnt Ihr das schnell nachholen, somit verliert dieser Rechner die Berechtigung und wird beim nächsten Aufruf automatisch ausgeloggt. So verhindert Ihr sicher, dass ein Fremder auf den FC Bayern als Sympathiemeister setzt.


7. Dauerhaft mitlaufendes Backupsystem
Das wichtigste an einem Backup im Katastrophenfall ist nebendem Fakt, dass es funktioniert, dass es möglichst aktuell ist. Natürlich könnten wir einmal nachts unseren Hoster ein Backup machen lassen in der Hoffnung, dass es funktioniert. Das ist aber nicht unser Anspruch, deshalb haben wir nicht nur einen Datenbankserver, sondern mindestens zwei Stück. Während der eine alle Anfragen des Applikationsservers verwaltet, hält der zweite den Datenbestand synchron.
Sollte es nun zu einem Ausfall eines Datenbankservers kommen, so stehen die Daten vollständig auf dem zweiten Server zur Verfügung. Ziel ist es, dass kein Gewinn verloren geht. Weiterer Vorteil dieses Aufbaus ist es, dass wir zu jederzeit eine Datenbank herunterfahren können für konsistente Backups ohne, dass Ihr davon etwas mitbekommt.


8. Prepared Statements
Um SQL-Injektion-Angriffe zu verhindern wurde bei der Entwicklung des Applikationsservers konsequent darauf geachtet Prepared Statements zu verwenden. Falls SQL-Injektion-Angriffe von unserer Webapplication-Firewall nicht erkannt werden, so werden wirkungslos beim Applikationserver verpuffen.


9. Referenzielle Integrität
Um die Integrität unserer Datenbank sicherzustellen, wurden verschiedenste Bedingungen definiert, die erfüllt sein müssen, bevor eine Transaktion comitten kann. Sollten die Daten nicht konsistent sein, so lehnt die Datenbank diese ab und führt automatisch ein Rollback durch. Dies würde als entsprechender Fehler in den Log-Files auftreten.


Schlusswort: Wir haben einiges an Gehirnschmalz in das Sicherheitskonzept gesteckt. Die oben beschriebenen Konzepte sind nur ein Teil des Ganzen, geben jedoch hoffentlich einen Einblick in unsere Denk- und Arbeitsweise.

Auch wenn das Casino sicher ist, so ist trotzdem der User auch weiterhin in der Pflicht seinen Teil zur Sicherheit seines Accounts beizutragen. Ihr müsst selber darauf achten, dass Ihr ein sicheres Passwort verwendet (mindestens 11 unterschiedliche Ziffern, 3 Buchstaben aus dem klingonischem Alphabet sowie 5 Tropfen des Blutes einer Jungfrau). Gleichzeitig bringt ein sicheres Passwort keinen Vorteil, wenn Euer Client mit Maleware verseucht ist und einen Keylogger enthält. Aktualisiert eure Software regelmäßig, achtet auf sichere Netzwerke und Passwörter, schaltet Brain.exe nicht ab und lasst uns zusammen für sicheren Spielspaß sorgen.