Springe zum Hauptinhalt

Ein Mini-Webserver für die linuxrc

Für das bereits erwähnte NAS möchte ich natürlich auch die Root-Partition verschlüsseln. Nur: wie geben ich beim Booten den Schlüssel ein? Ein Mini-Webserver muss her!

Falls das NAS neu gestartet werden muss -- beispielsweise nach einem Stromausfall -- darf das Eingeben den Filesystem-Passworts nicht an mir hängen. Vielleicht bin ich ja unterwegs. Also muss eine Lösung her, die einfach zu bedienen ist.

Das NAS hat keine serielle Schnittstelle, also scheidet Alles in diese Richtung aus. Den Schlüssel auf einem USB-Stick zu speichern geht nicht, denn der USB-Stick könnte in falsche Hände gelangen. Ein winziger Webserver, der das Passwort abfragt, scheint mir die sinnvollste Lösung.

Eine schöne Lösung hierzu hat das Projekt CryptoNAS (ehemals Cryptobox) entwickelt. Für meinen Einsatzzweck ist das leider (noch) nicht geeignet, da es a) noch keinen RAID unterstützt und b) den Server erst startet, wenn das System schon gebootet hat.

Da bei mir auch die Root-Partition verschlüsselt werden soll, muss das "Entsperren" geschehen, ehe diese eingebunden wird. Also muss der Webserver in der linuxrc gestartet werden, was wiederum bedeutet, dass der Webserver in die initrd muss. Und die möchte ich möglichst klein halten.

In der initrd ist bereits busybox installiert, alleine, um das Shell-Script linuxrc abzuarbeiten. Da wäre doch ein Webserver cool, der einfach als Shell-Script implementiert ist. Einen davon hat Morty Abzug geschrieben. Der macht einen guten Eindruck, ich müsste dem Server nur noch beibringen, CGI-Scripte zu verarbeiten, um das Webformular auszuwerten.

Bei der Suche, was genau die busybox shell kann, habe ich dann entdeckt: Die busybox hat einen Webserver eingebaut! Der kann auch CGI-Scripte. Sehr schön, das spart mir einen Haufen Arbeit! Und wie gesagt: busybox ist in der initrd sowieso enthalten. Jetzt muss ich "nur noch" die nötigen CGI-Scripte schreiben -- aber das sollte nicht recht aufwändig sein.

BTW: Die Anleitung für den busybox htpd findet sich im Quelltext.

Warum man die Performance von /dev/urandom kaum erhöhen kann

Ich baue momentan ein kleines NAS zum Server um. Mein Ziel ist, ein stromsparender kleinen Server für unserer Bürogemeinschaft. Natürlich müssen die Daten darauf verschlüsselt werden. Die Platte vorher mit Zufallsdaten zu beschreiben erweist sich als langwierig.

Dummerweise habe ich mir ein NAS empfehlen lassen, dass nicht von Haus aus verschlüsseln kann. Habe ich nicht aufgepasst. Dazu und zu anderen Unzulänglichkeiten des NAS ein andermal mehr. Ich hatte auch kurz die Idee, mir ein anderes zu kaufen, statt viel zeit hinein zu stecken. Aber wer weiß, ob ich da nicht vom Regen in die Traufe käme.

Das NAS ist gerootet, Debian ist installiert. Nun baue ich nach dieser Anleitung das verschlüsselte RAID. Die Anleitung ist kurz und gut, und die nötigen Befehle sind in zirka einer halben Stunde eingegeben.

Aber: Ein Schritt ist, die Platte mit Zufallsdaten zu beschreiben. Und das dauert ...
... und dauert ...
... und dauert ...
... und ich werde ungeduldig. Das muss man doch beschleunigen können?!

Zusammengefasst: Schneller geht nur mit schnellem Rechner.

Das Kommando

dd if=/dev/urandom of=/dev/md127 bs=10M

liefert auf dem NAS 1,8 MB/s, bei 2 TB macht das gute 300 Stunden also über 12 Tage. Urgs.

Also Platte ausgebaut, und per USB an den Desktop angeschlossen. Hier die Ergebnisse verschiedener Versuche (alle Messungen am Desktop):

of=/dev/md.. (also über RAID-Schicht)

3,8 MB/s

135 Stunden

5 1/2 Tage

of=/dev/md.. + Runlevel 0

4,0 MB/s

135 Stunden

5 1/2 Tage

of=/dev/md.. + timer_entropyd

3,7 MB/s

135 Stunden

5 1/2 Tage

of=/dev/sd.. (also ohne RAIS-Schicht)

3,8 MB/s

135 Stunden

5 1/2 Tage

if=/dev/zero

ca. 66 MB/s

8 Stunden

1/3 Tag


Meine Erkenntnisse daraus:
  • urandom ist der begrenzende Faktor, nicht der USB-Anschluss.

  • Die Blockgröße ist fast egal: Auch größere und kleinere Input-Blocks (ibs=...) ändern nichts Nennenswertes.

  • Mehr Entropie bringt keinen Speed: Ich dachte, dass urandom schneller wird, wenn das System mehr Entropie hat. Dazu habe ich timer_entropyd eingesetzt, um die Entropie zu bekommen. Hat nichts gebracht, ja eher geschadet: Die Performance ist leicht gesunken.

  • Nachdenken hilft: urandom liefert Psuedozufallszahlen, rechnet also und braucht dazu CPU-Power. Mehr Entropie macht die Zufallszahlen zwar "zufälliger", aber deren Erzeugen nicht schneller.

Ich habe nun also ein paar Stunden Zeit, zu entscheiden, ob es das Risiko einer Krypto-Attacke gegen meine Platte wert ist, sie vorher 5 1/2 Tage mit Zufallszahlen zu beschreiben.

Ps(i)²'s Liebling

Das freut den Programmierer: Auch die Kollegen schätzen offensichtlich meinen CVSS-Calculator:

Sebastian Klipper, Buchautor, Blogger (psi2.de) und ebenfalls CISSP, lobt in seinem Werk"Information Security Risk Management" (Wiesbaden, 2011. Seite 205): "Mein Favorit ist der Plattform-unabhängige CVSS-Calculator von Goebel Consult. [...] und er kann CVSS-Vektoren mit cut-and-paste verarbeiten."

Informatikkunst

/images/2011/informatikkunst.jpg

Die Rhäthische Bahn in der Schweiz UNESCO Kulturerbe. Wohl wegen Ihrer kühnen Trassenführung und Konstruktionen. Wenn ich unter einer der Brücken dort stehe (siehe Bild) und mir vorstelle, dass die schon 100 Jahre alt sind und mit viel, viel Körpereinsatz gebaut wurden, bekomme ich Hochachtung. Hochachtung vor den Ingenieuren, die das geplant und berechnet haben. Hochachtung vor Handwerkern und Arbeitern, die diese Konstrukte ausgeführt haben.

Das geht wohl Vielen so, sonst hätte es nicht für das Weltkulturerbe gereicht.

Ingenieurskunst zeigt sich an vielen Stellen, und auch der Nicht-Ingenieur läßt sich davon beeindrucken. Angefangen von einem sauber funktionierendem Taschenmesser bis zum Eiffelturm.

Schade, dass Informatikkunst nicht so offensichtlich ist. Die Kunstwerke meiner Zunft sieht man selten: Wer liest schon Quellcode und kann sich an dessen Eleganz erfreuen? Wer weiß schon einen schönen Algorithmus, ein gutes Protokoll oder eine saubere Implementierung zu schätzen.

Ein Trost bleibt (naja): Dieses Schicksal teilen wir mit der Mathematik: Deren Fourier-Transformationen sind in der Ingenieurskunst elementar, aber die Mathematik sieht man eben nicht.

Interview mit Hartmut Goebel im IT Freelancer Magazin

Unternehmen sollten IT Security wichtiger nehmen

IT-Security ist in den Unternehmen nach wie vor eine Disziplin mit zu geringem Stellenwert, moniert CISSP und Sicherheitsexperte Hartmut Goebel in einem Interview im IT Freelancer Magazin, Ausgabe April/Mai. Im Gespräch mit dem Magazin gibt er den Lesern eine Einschätzung, wie es über die technischen Sicherheitsvorkehrungen bei kleine, mittleren und großen Unternehmenskunden bestellt ist. Ein guter Sicherheitsberater kann und muss maßgeblich dazu beitragen, den Kunden ein Sicherheitsniveau zu vermitteln, auf das sie bauen können.

Datenschützer geben Harmtut Goebel Recht

Letztes Jahr im Mai hatte ich in meiner monatlichen Kolumne CISSP-Geflüster unter dem Titel Finger weg von Google Analytics auf die Probleme mit Googel Analytics hingewiesen und Alternativen vorgestellt. Eine davon ist piwik. Wie heute auf heise online zu lesen ist, schließt sich das Unabhängige Landeszentrum für Datenschutz Schleswig-Holstein (ULD) in Sachen Google Analytics meiner Meinung an und empfiehlt ebenfalls Piwik für die Webanalyse.

Allerdings nicht uneingeschränkt: In dem Prüfbericht werden einige Maßnahmen genannt, um piwik auch wirklich datenschutzkonform einsetzen zu können: So muss beispielsweise das Plugin „AnonymizeIP“ verwendet und eine Möglichkeit zum Widerspruch angeboten werden. Vorgeschrieben ist hierbei sogar detailliert, welcher der englischen Texte für den Einsatz im deutschsprachigen Raum in die Landessprache übersetzt werden muss. Die Beschreibung der Maßnahmen geht bis ins Detail der Konfiguration, etwa wie sich die Gültigkeitsdauer des piwik-Cookies steuern lässt.

bash-completion ergänzt remote Pfade bei scp

Eben hatte ich ein Erlebnis der dritten Art: Ich wollte mit scp eine Datei von meinem Server kopieren, tippe also

scp myserver:/tmp/abst

und drücke aus Gewohnheit und ohne nachzudenken <Tab>. Und schon steht dort:

scp myserver:/tmp/abstract_tool.pyc

Ich brauchte einen Moment, um zu realisieren: Die bash-completion hat sich tatsächlich im Hintergrund auf myserver eingeloggt, das Verzeichnis aufgelistet und meine Kommandozeile ergänzt!

Was das Paket bash-completion alles aus der bash herausholt, begeistert mich schon lange. Doch jetzt bin ich total von den Socken!

Thumbnails wie ein Stapel verschobener Blätter

Für eine Präsentation benötigte ich als visuelles Element ein "Vorschau" der verwendeten Dokumente. Es sollte aussehen wie auf dem Bild: ein Stapel verschobener Blätter. Da ich über 40 Dokumente hatte mit über 120 Seiten, wäre das manuell ein ziemlicher Aufwand geworden. Aber es geht auch automatisiert.

/images/2011/Remote_Access.png

Die Ursprungsdokumente waren MS-Word-Dateien (.doc). Daraus ein Bild pro Seite zu machen, war eine leichte Übung: openoffice-python (das übrigens von mir selbst stammt) enthält ein Skript odt2pdf.py , um aus Office-Dokumenten PDFs zu erstellen. Die einzige Voraussetzung dafür ist, dass OpenOffice bzw. LibreOffice das Dokument brauchbar lesen kann. Das war hier der Fall.

Aus den PDFs Bilder zu erzeugen, war auch meine Schwierigkeit: Das Programm "convert", das zum ImageMagick-Paket gehört, erledigt das. Hier das Kommando, um nach PDFs zu suchen und sie zu konvertieren:

find . -type f -iname \*.pdf -print0 | xargs -0 -n 1 convert '"{}"' '"{}"'.png

Dann wurde es kompliziert! Wie werden aus den Bildern die Stapel?

Meine Versuche, es mit der Python Image Library (PIL) hinzubekommen, scheiterten.

Auf der Mailingliste der Linux User Group Darmstadt erhielt ich einen entscheidenden Tipp: Guck dir die Option -compose an. Das war zwar dann nicht die Lösung, aber etwas unterhalb auf der gleichen Seite war -mosaic beschreiben. Dummerweise muss man trotzdem noch die Position für jedes Bild selbst berechnen :-( Das ist zwar aufwändig, aber nicht weiter schwierig.

So geht´s also: List der Bilder lesen, umgekehrt sortieren, damit das letzte Blatt das unterste wird, offsets berechnen und eine Schleife über alle Bilder. Der wichtige Teil des Skripts sieht dann so aus:

def process(outfilename, images):
    imagenames = images
    imagenames.sort()
    imagenames.reverse()

    # Bildbreite mit Python Image Library ermitteln
    im = Image.open(imagenames[-1])
    width, height = im.size
    offset = int(math.ceil(width*0.3 + BORDERWIDTH))

    cmd = ['convert']
    paste_offset = offset*(len(imagenames)-1) + BORDERWIDTH
    for inname in imagenames:
        cmd.extend([
            '-page', '+%i+0' % paste_offset,
            '(', '-border', '1%', '-bordercolor', 'black', inname, ')'])
        paste_offset -= offset
    cmd.extend(['-mosaic', outfilename])
    subprocess.call(cmd)

Im Endeffekt wird ein Kommando wie folgendes ausgeführt:

convert \
  -page +40+0 '(' -border 1% -bordercolor black seite3.png ')' \
  -page +20+0 '(' -border 1% -bordercolor black seite2.png ')' \
  -page +00+0 '(' -border 1% -bordercolor black seite1.png ')' \
  -mosaic zusammengesetzt.png

Das Ergebnis zeigt das Bild.

2011-02: Fleißige Datensammler für lukratives Geschäftsmodell gesucht

Der ertappte Bösewicht wollte Berichten von heise online zufolge seine beiden Hobby-Foren mit der IVW-Besucherzählung, dem Amazon-Partnerprogramm und Google-AdSense mitfinanzieren. Das störte jemand (mich stört so etwas übrigens auch) und der beklagte sich. Der Landesdatenschutzbeauftragte forderte den Betreiber daraufhin auf, die Missstände abzustellen und die besagten Tools von seiner Website zu entfernen. Auflage war auch, mit dem Hoster des Servers einen Vertrag zur Auftragsdatenverarbeitung abzuschließen.

Irgendwie lächerlich scheint es auf den ersten Blick schon, dass ausgerechnet ein Betreiber einer popeligen Hobby-Website Ärger mit dem Landesdatenschutzbeauftragten (LfD) bekommt. Der Meinung sind auch mindestens die Hälfte der über 800 Kommentare auf heise online. Doch irgendwie auch wieder nicht. Denn genau betrachtet haben die Verstöße gegen das Datenschutzgesetz mit der Größe seines "Geschäfts" gar nichts zu tun.

Viele fleißige kleine Sammler füllen den Datentopf

Jedes Portal, jede Website, die die Werbe- und Tracking-Tools der großen Dienste- und Contentanbieter wie Google, Ebay oder Amazon einbinden, ist deren Erfüllungsgehilfe. Der „Kleine“ sammelt die Daten für die „Großen“, eine Art Crowdsourcing zum Datensammeln. Erst durch diese vielen, vielen zuverlässigen und kostenlosen Messstellen bekommen Google, Amazon und wie sie alle heißen, das begehrte Wissen und den Überblick über die Websurfer und deren Verhalten.

Das Finanzierungsmodell des Betreibers der besagten kleinen Hobbyseite sieht also so aus, dass er die Daten seiner Besucher weiterverkauft. Richtig, „verkauft“ ist hier der richtige Begriff. Denn er bekommt Geld dafür, dass er in seine Seite etwas einbaut, das die Werbung des Dritten anzeigt und „nebenbei“ ein Tracking dieses Dritten ermöglicht. Aber die IVW, sagen Sie, was ist denn da dran Schlimmes? Das ist doch eine seriöse Institution und dafür zuständig, die Druckauflage von Medien zu messen?

Stimmt, aber es gibt einen kleinen Unterschied: Bei Druckerzeugnissen kann die IWV nie wissen, was der Leser alles liest, denn der hat keinen Kontakt zur IVW und seine Daten bekommt sie auch nicht. Online jedoch setzt die IVW (bzw. deren Dienstleister infOnline) ein Cookie mit einer „beliebige[n], intern vergebene[n] Zahlenfolge zur Erstellung einer Marktforschungsstudie“, Gültigkeit ein Jahr. Das bedeutet, dass infOnline von allen IVW-getrackten Seiten erfährt, die ich besuche. (Außer ich würde ein Jahr lang keine einzige davon besuchen.) Dahinter steckt das Interesse der Werbewirtschaft. Es geht also wieder um Geld.

Auch den Großen eins auf die Mütze

Was natürlich wie so oft unfair an der Sache ist: Den kleinen „Kleinen“ macht man die Hölle heiß, und die Großen lässt man laufen. Oder die Großen haben einen Datenschutzbeauftragen, der ihnen den LfD vom Halse hält. Appellieren wir also innigst an die Landesdatenschutzbeauftragten aller Bundesländer, endlich auch die großen Website-Betreiber genau unter die Lupe zu nehmen und ihnen eins auf die Mütze zu geben.

Denn erst wenn Google keine Daten mehr aus Deutschland bekommt, wird Google seine Sammelwut den deutschen Gesetzen anpassen. Und den „Partnern“ hoffentlich auch eine ordentliche Vereinbarung zur Auftragsdatenverarbeitung anbieten. Da allerdings das Geschäftsmodell von Google "Datenaggregation" heißt, würden sie sich damit selbst das Wasser abgraben.

Goebel Consult sammelt derzeit „rein statistische“ Daten, wie viele Websites in Deutschland Google Analytics, AdSense, Amazon oder IVW verwenden. Mein Tipp: über 50 Prozent.

Ein paar Anekdoten am Rande:

  • Der Forenbetreiber hat nun also einen Vertrag zur Auftragsdatenverarbeitung mit seinem Hoster, HostEurope, geschlossen. HostEurope nimmt es auf seiner eigenen Website aber nicht so ernst mit dem Datenschutz und verwendet selbst Google Analytics (steht sogar in den „Datenschutzhinweisen“). Über die Problemen mit Google Analytics habe ich in der Kolumne vor einem Jahr ausführlich berichtet.

  • IWV, bzw. deren Dienstleister infOnline, nehmen es mit dem Datenschutz auch nicht so genau: Der Vertrag enthält keine Vereinbarungen, die m.E. (juristischer Laie) den Anforderungen des DBSG bzgl. Vereinbarung zur Auftragsdatenverarbeitung genügt. Er verweist auf Website, die sich aber jederzeit ändern kann.

  • Der Forenbetreiber will mit der Werbung sein Hobby refinianzieren. InfOnline kostet pro Jahr mindestens 150 Euro, der dazu nötige IVW-Beitrag mindestens 314 Euro. Mit dem Geld könnte er schon sieben Monate einen Dedicated Server bei seinem Hoster bezahlen, also über ein halbes Jahr.

2010-12: Hintertüren allen Ortes

Im Dezember kamen Gerüchte auf, in der IPSec-Implementierung von OpenBSD könnten Hintertüten eingebaut sein. Anlass hierfür war die Mail eines der Programmierer, die diesen Teil 2000 entwickelt haben. Er habe damals auch eine FBI-Abteilung zum Einbau von Hintertüren beraten.

Das wäre tragisch, denn OpenBSD gilt als eines der sicherste Unixe. Darum, und weil die BSD-Lizenz – anders als die GPL – nicht dazu verpflichtet, dem Kunden den Quelltext zu liefern, ist es bei Herstellern sehr beliebt. So basiert beispielsweise die Firewall GenuaGate des deutschen Herstellers Genua darauf.

Nun ist OpenBSD glücklicherweise öffentlich entwickelt und alle Änderungen sind in einem Versionsverwaltung-Tool hinterlegt. Ein Softwareaudit bracht anscheinend keine Hinweise auf eine Hintertür (siehe Links).

„Da haben wir aber nochmal Glück gehabt!“ (Monty Python, Leben des Brain)

Wesentlich nachdenklicher stimmen mich die Überlegungen von Mok-Kong Shen, ob es möglich wäre Hintertüren in die Schlüsselerzeugung von RSA-Schlüsseln einzubauen. Mok-Kong Shen zeigt, dass durch geschicktes Wählen eines Faktors Schlüssel erzeugt werden könnten, von denen ein Teil bekannt ist und die sich damit wesentlich leichter brechen lassen. Das „Geheimnis“ wäre dann der Algorithmus, mit dem der Faktor berechnet wird.

Zum Problem wird das, wenn der Quelltext zum Erzeugen der Schlüssel nicht öffentlich und damit nicht für jedermann auditierbar ist. Und anscheinend verwenden (fast) alle X.509-Zertifikatsaussteller (Trustcenter) proprietäre Software. Was das für die Verlässlichkeit. Beziehungsweise eben Unzuverlässigkeit, der Trustcenter bedeutet male ich mir lieber nicht aus.

Portrait von Hartmut Goebel
Hartmut Goebel
Diplom-Informatiker, CISSP, CSSLP, ISO 27001 Lead Implementer

Haben Sie noch Fragen?
Anruf oder Mail genügt:
Telefon:   +49 871 6606-318
Mobil:   +49 175 29 78 072
E-Mail:   h.goebel@goebel-consult.de