O'Reilly logo

Rails Kochbuch by Rob Orsini

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

First
|
387
Max.
Linie
Max.
Linie
Kapitel 11
KAPITEL 11
Sicherheit
11.0 Einführung
Bis zu einem gewissen Grad ist Sicherheit in jeder Software ein Thema, aber bei Weban-
wendungen ist sie aufgrund der offenen Natur des Internet besonders wichtig. In vielen
Fällen ist irgendein Teil Ihrer Anwendung für jedermann (oder für jedes Skript) zugäng-
lich, der einen Angriff versuchen möchte. Die Motivation des Angriffs ist üblicherweise
nicht persönlicher Natur. Viele Skripten suchen das Web automatisch nach bekannten
Sicherheitslücken ab. In manchen Fällen kann Ihre Anwendung durchaus Informationen
enthalten, die zu stehlen sich lohnt, etwa Kreditkarten-Nummern oder persönliche Infor-
mationen über die Nutzer Ihrer Anwendung.
Am besten sind Sie bei allen Anwendungen besonders sorgfältig, wenn es um den Schutz
vor Angreifern geht. Auf diese Weise werden Ihr Wissen und die verwendeten Praktiken
zu einer Gewohnheit, die Sie auf alle Projekte anwenden können.
Die beiden großen Sicherheits-Kategorien für Webanwendungen sind SQL-Injection und
Cross-Site Scripting (XSS). Weitere Angriffe können von Ihrem Server kommen, der durch
einen anderen Netzwerkangriff geknackt wurde, oder von geknackten Benutzer-
Accounts.
Behalten Sie die folgende Grundregel im Kopf: Eingaben filtern, Ausgaben mit Escape-
Zeichen versehen.
11.1 Ihre Systeme mit starken Passwörtern
sicherer machen
Problem
Kurze, leicht zu erratende Passwörter stellen ein ernsthaftes Sicherheitsrisiko für Ihre Ser-
ver und die darauf laufenden Dienste dar. Sie wünschen sich ein zuverlässiges System zur
00____RailsKochbuch.book Seite 387 Dienstag, 3. Juli 2007 8:13 08
Max.
Linie
Max.
Linie
388
|
Kapitel 11: Sicherheit
Links
Generierung ausreichend starker Passwörter oder Passphrases und eine Möglichkeit, diese
zu verwalten.
Lösung
Die Generierung starker Passwörter oder Passphrases ist eines der wichtigsten Dinge, die
Sie zum Schutz Ihrer Server und Daten tun können. Hier einige grundlegende Eigenschaf-
ten einer guten Passphrase:
Nur Sie sollten die Passphrase kennen.
Sie sollte lang genug sein.
Sie sollte schwer zu erraten sein, selbst für Personen, die Sie gut kennen.
Es ist besonders wichtig, dass Sie sich die Passphrase gut merken können.
Es sollte leicht für Sie sein, sie richtig zu schreiben.
Um ausreichend starke Passwörter zu generieren, können Sie die Diceware-Methode nut-
zen, die die Komponenten einer Passphrase zufällig mit Hilfe eines Würfels auswählt. Und
das funktioniert so:
1. Besorgen Sie sich eine Kopie der Diceware-Wortliste (http://world.std.com/~reinhold/
diceware.wordlist.asc). Diese Liste enthält zwei Spalten: die erste mit fünfstelligen
Ziffern und die zweite mit kurzen, leicht zu merkenden Wörtern oder Silben. Hier
ein kurzer Ausschnitt aus dieser Wortliste:
63461 whale
63462 wham
63463 wharf
63464 what
63465 wheat
63466 whee
63511 wheel
2. Werfen Sie nun fünfmal den Würfel, was zu einer fünfstelligen Zahl mit Ziffern zwi-
schen 1 und 6 führt. Verwenden Sie diese Zahl als Index für die Wortliste und fügen
Sie das entsprechende Wort in Ihre Passphrase ein. Nehmen wir beispielsweise an,
Sie werfen fünfmal den Würfel und erhalten dabei die Werte 6, 3, 4, 6 und 5. Diese
Ziffern bilden zusammen die Zahl 63465, die Sie nutzen, um das Wort »wheat« in
der Wortliste abzulesen. Das wird der erste Teil Ihrer Passphrase. Wiederholen Sie
diesen Vorgang fünf- oder sechsmal und Sie erhalten eine Passphrase wie:
wheat $$ leer drab 88th
Beachten Sie, dass diese Passphrase 23 Zeichen lang und doch vergleichsweise leicht zu
merken ist. Sie können diesen Prozess für die verschiedenen Systeme wiederholen, die
starke Passwörter benötigen.
Der tiefere Sinn einfach zu merkender Passphrases besteht darin, dass Sie sie nicht auf-
schreiben sollen. Andererseits haben die meisten Entwickler Dutzende von Passwörtern,
00____RailsKochbuch.book Seite 388 Dienstag, 3. Juli 2007 8:13 08
Max.
Linie
Max.
Linie
11.1 Ihre Systeme mit starken Passwörtern sicherer machen
|
389
Rechts
die sie sich merken müssen. Diese Tatsache zwingt die Leute dazu, für mehrere Systeme
das gleiche Passwort zu verwenden, oder aber das Passwort jedes Systems aufzuschreiben.
Eine Lösung besteht darin, ein Programm zur Passwortverwaltung zu nutzen, das alle
Passwörter in einem verschlüsselten Format vorhält. Diese Programme verlangen ein ein-
zelnes Master-Passwort für den Zugriff und erlauben es häufig, Benutzernamen und Pass-
wörter in Gruppen zusammenzufassen. Ein exzellentes Beispiel für ein solches Programm
ist KeePass (Windows) oder KeePassX (eine Cross-Plattform-Portierung von KeePass).
Abbildung 11-1 zeigt, wie KeePassX Ihnen helfen kann, große Mengen an Authentifizie-
rungsinformationen an einem sicheren Ort vorzuhalten.
Wenn Sie sich für den Einsatz eines Passwort-Managers entscheiden, ist die Stärke des
Master-Passworts von kritischer Bedeutung für die Sicherheit aller Systeme, zu denen Sie
Informationen abspeichern. Sie sollten dabei besondere Sorgfalt walten lassen, um dafür
zu sorgen, dass dieses Passwort sicher bleibt. Darüber hinaus sollten Sie immer Siche-
rungskopien der vom Passwort-Manager verwendeten Datenbank anlegen, falls die Fest-
platte streikt oder ein Datenverlust eintritt.
Diskussion
Eine Passphrase ist von der Anwendung her mit einem Passwort vergleichbar, ist aber der
erhöhten Sicherheit halber viel länger. Es besteht die natürliche Neigung, Passwörter kurz-
zuhalten, so dass sie leichter zu merken und zu verwenden sind. Vielen Leuten sind die
Abbildung 11-1: Der Passwort-Manager KeePassX
00____RailsKochbuch.book Seite 389 Dienstag, 3. Juli 2007 8:13 08

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required