Post by Sebastian GottschalkPost by Christian KahloPost by Sebastian GottschalkEchte BlackBox-Krypto in Software, wie du sie beschreibst, funktioniert
übrigens beweisbarerweise nicht sicher.
Ich habe in keiner Silbe von puren Software-Implementationen gesprochen.
Den Key kann man zuverlaessig durch Hardware schuetzen.
Ja, und welche? Wir reden doch hier noch über ATA/SCSI-Festplatten in
non-TCG-x86ern, wie's wohl beim OP und angesichts der benannten Software zu
erwarten ist? Auch der SmartCard-Reader ändert daran nix, daß die
Festplattenverschlüsselung selber im RAM erfolgt.
Das habe ich auch gar nicht bestritten.
Es gibt im Wesentlichen 2 Moeglichkeiten:
a) das System des OP, ich reduziere mal meine Systeme auf dasselbe
Niveau. TCG wuerde ich da aber eher als Gegenargument auf Grund
von Key Recovery werten. Man koennte die Keys in einem nicht
dokumentierten Flash ablegen welches locker 1MByte umfassen kann
ohne fuer den Laien erkennbar zu sein.
Und dazu sage ich Dir ganz klar, dass in TCG und auch SecureDigital
Cards (die Nachfolger der MMC Speicherkarten mit DRM und Crypto-
Funktionen) in den Spezifikationen blinde Flecken enthalten sind,
die nicht oder nur extrem schwer zu bekommen sind.
Wir versuchen gerade die Spec fuer einen ganz bestimmten Crypto-
Algorithmus (nicht TCG und nicht SD) zu bekommen, faszinierend wie
dumm die sich stellen - und das ist schon EU, also quasi Staat und
nichtmal privates Wirtschaftskonsortium.
b) Ein System mit PCI/PCMCIA Hardware. Wie hier mehrere Varianten
rumliegen oder ein Firewire-IDE-Controller mit Cryptofunktion
aus eigener Entwicklung.
Fuer a) moechte man Session-Keys pro Datei erzeugen und diese
verschluesseln. Dies macht Sinn da man abgeschlossene Bloecke
definierter Laenge hat zu denen man sich die passende Key-Reference
merken kann. Das funktioniert ganz gut und macht offenbar Sinn.
Aus diesem Grund finde ich Partitionsbasierte- oder Containerbasierte
Festplattenverschluesselungssoftware welche nicht auf der Ebene
von Files und Inodes ansetzen fuer gefaehrlich. Da fuer alles nur
ein Key existiert. Das liefert einerseits jede Menge Material fuer
known-plaintext Attacken (Boot record, Meta Daten, bekannte
(System-)Files) und erzwingt andererseits einen Key fuer Alles im
RAM.
Aus diesem Grund sind 15 Verschluesselungsprogramme im Wert zwischen
0 Euro und 4.500 Euro weggeflogen und ich ueberlege ob ich unser
Client-Server System fuer lokale Dateisysteme und Zielsystem Windows
einsetze. Windows deshalb, da es unter Linux Dank der evolutorischen
Instabilitaet keine Treiber fuer die Hardware gibt die ich gerne
einsetzen moechte und ich mir nicht die Muehe mache potentiell
fuer jedes Major-Release den Treiber anzupassen. Das habe ich einmal
im Falle eines PCMCIA Moduls gemacht - nie wieder. Die Maschine
rennt mit 2.0.38 bzw. jetzt 2.0.40, das muss reichen.
Fuer b) brauchst Du entweder Treiber fuer die Devices, damit der
gesamte Datenstrom vorher durch den Cryptoprozessor geleitet wird
oder das Ganze versteckt sich fertig hinter einem IEEE1394 SBP2
Device. Ersteres ist leistungsmaessig etwas eingeschraenkt, da viel
geschauffelt werden muss, damit geht auch eine merkliche Latenz
einher. Fuer den Desktop Einsatz OK, fuer den Serverbetrieb machbar
aber unangenehm.
Der Firewire-Controller hat ein paar multi-purpose I/Os mit denen
er an einen Cryptocontroller angebunden ist.
Im Wesentlichen bedeutet dies sich zu ueberlegen alle wieviel MByte
man den Key wechseln moechte und wie man die Keys generiert. Ueber
die Adressierung in den SBP2 (Vgl. zu SCSI) Kommandos bei Blocksize
512 Byte kann man dann entscheiden ob man einen neuen Key will oder
nicht.
Der Cryptocontroller leitet vom internen Master-Key den Session-Key
ab, den der ATA-Controller dann ueber seinen Sector-Buffer drueber-
laufen laesst. Die Variante ist richtig fix, da vieles in Hardware
als Coprozessoren implementiert ist.
Mit speziellen Treibern kann man auf die erweiterten Funktionen
zugreifen und dann auch Keys initialisieren, wechseln, den
Cryptocontroller blockieren, freigeben, etc.
Post by Sebastian GottschalkPost by Christian KahloWobei mir OE wie gesagt egal ist und auf meinem Rechner nichtmal mehr
existiert. Fuer den OP waere entscheidend wie die Implementation seines
Moduls aussieht und inwiefern sein OE und die moeglichen Loecher einen
Angriff auf seine Karte ermoeglichen.
Die möglichen Löcher ermöglichen das Einspielen von Malware und damit
Auslesen des RAMs des x86er, Manipulation der Verschlüsselungssoftware
Klar.
Post by Sebastian Gottschalketc... und ich bezweifle daß man mit einer SmartCard effizient jeden
einzelnen Key/IV jedes einzelnen Festplattensektors mit einer
Geschwindigkeit von >10MByte/s berechnen kann, der Master Key für die
Siehe oben. Meist bist Du auf 9600 Baud festgenagelt.
Neuere kannst Du via Protocol Type Selection auf 38400,
57600 oder 115200 hochschrauben. Oder Schlumberger
Cyberflex eGate mit USB1.1 lowspeed Interface on-chip.
Wobei die Schlumberger Hardware aus Austin/Texas stammt.
Post by Sebastian GottschalkPlattenverschlüsselung liegt also mit an Sicherheit grenzender
Wahrscheinlichkeit im RAM.
NACK. Das ist eine Theorie die nur gilt wenn man das Schlangenoel
vom Markt kauft.
Gruss,
Christian