Geek: Gemeinsam mit Felix Schuster spreche ich über Confidential Computing.
Geek: Hallo und herzlich willkommen zu Ein Geek kommt selten allein,
Geek: dem Podcast für mehr Konkretheit in der Digitalisierung.
Geek: Mein Name ist Stephan und gemeinsam mit meinen Gästen mache ich eine Bestandsaufnahme,
Geek: wohin uns die letzten 40 Jahre Digitalisierung in Deutschland gebracht haben.
Geek: Und wie es von hier aus weitergehen kann.
Felix: In dieser Folge spricht der Geek mit Felix Schuster.
Felix: Ich bin Geschäftsführer und Gründer von Edgeless Systems, einem Cyber Security
Felix: Unternehmen aus Bochum.
Geek: Wie bist du dazu gekommen?
Felix: Ich mache das schon sehr lange. Ich bin jetzt 38 Jahre alt, knapp 38.
Felix: Und ich mache das schon seit, ich würde sagen, 25 Jahren. Also seit Teenagerjahren
Felix: mache ich Cyber Security.
Geek: Wie ist das damals schon so überhaupt?
Felix: Also ich glaube, in Deutschland sagt man eh eher IT-Security oder IT-Sicherheit.
Geek: Weil das dann Freaking mit so Rainbow-Boxen und so und so ist.
Felix: Ich glaube, über so eine Ecke kommen
Felix: viele Leute. Ich bin damals über die Spiele-Kopier-Szene da reingerutscht.
Felix: Also bin ich natürlich nicht stolz drauf, aber kennt vielleicht jeder.
Felix: Man hat früher auch mal ein Spiel gekopiert.
Geek: So wie Tristan in The Red Sector.
Felix: So ähnlich. Klar, irgendwer muss da den Kopierschutz umgehen und mit Kumpels
Felix: aus dem Internet haben wir damals Kopierschützer uns angeschaut,
Felix: haben die umgangen und so bin ich dann wie viele andere auch tatsächlich in
Felix: der Cybersecurity oder IT-Security-Ecke gelandet.
Felix: Der direkte Weg ist eigentlich üblicherweise von Kopierschutzanalysieren zu Virenanalysieren.
Felix: Viren sind ein super heißes Thema immer noch, waren damals relevanter als heute.
Felix: Und ja, viele von den Virenanalysten haben sich früher mit Kopierschutzmaßnahmen
Felix: beschäftigt und die Technik niemals brauchte, um sich einen Kopierschutz anzuschauen und auszuhebeln.
Felix: Sind sehr ähnlich zu den Techniken oder fast identisch, die man braucht,
Felix: um sich ein Virus anzuschauen und entsprechend Signaturen zu schreiben und das zu verhindern.
Felix: Und das ist so die Einflugschneise von mir gewesen, wie vielen anderen auch
Felix: in die Cyber Security oder IT Security Szene.
Geek: Ja, sehr spannend, sehr spannend. Ja, die alte Hexeditor-Zeit mit Signaturen gucken.
Felix: Genau, genau. Hexeditor, Disassembler, das sind die Tools, die wir damals benutzt
Felix: haben, die ich schon lange nicht mehr benutzt habe, aber die,
Felix: wenn man jetzt zum Beispiel Beispiel in Bochum haben wir auch G-Data-Antivirus.
Felix: Wenn man da die Analysten fragt, dann nutzen die die Tools, ja,
Felix: Hexeditor, Disassembler, die man auch für Kopierschutz etc.
Felix: Analyse damals benutzt hat.
Geek: Kommen wir zum Thema des Tages. Der Begriff Confidential Computing begegnet einem immer wieder.
Geek: Mir persönlich ist er jetzt ein paar Mal in letzter Zeit über den Weg gelaufen.
Geek: Ich glaube, die wenigsten Leute können tatsächlich was damit anfangen.
Geek: Die meisten erschließen sich das sehr wahrscheinlich darüber,
Geek: dass sie sagen, ja gut, Confidential ist irgendwie vertraulich,
Geek: Computing verstehe ich auch noch irgendwie.
Geek: Aber dass das ein feststehender Begriff ist oder dass das ein Themenbereich
Geek: ist, der langsam immer mehr im Kommen ist, korrigiere mich, wenn ich falsch
Geek: bin, aber der ist, glaube ich, noch nicht so alt, Confidential Computing.
Felix: Ja, der Begriff ist, würde ich sagen, relativ genau zehn Jahre alt.
Felix: Ich weiß das gut, weil ich habe vor zehn Jahren ein Praktikum an Microsoft Research gemacht.
Felix: Microsoft Research ist die Forschungsabteilung von Microsoft.
Felix: Das war damals dann das Lab in Cambridge in England. Und da haben wir uns mit
Felix: der Technologie beschäftigt, die man heute als Confidential Computing bezeichnet.
Felix: Und wir haben damals ein Paper geschrieben, ein wissenschaftliches Papier,
Felix: betitelt Verifiable Confidential Cloud Computing.
Felix: Meines Wissens nach hat das Paper den Namen Confidential Computing geprägt.
Felix: Aber du hast recht, ja, der Begriff ist mittlerweile nicht mehr ganz so nischig, wie er mal war.
Felix: Und man begegnet ihm auch immer mehr eher im Mainstream-Bereich,
Felix: zumindest was Cloud-Thema betrifft.
Geek: Hat der nur mit Cloud zu tun? Also wenn wir über Confidential Computing sprechen,
Geek: sind wir dann immer bei der Cloud auch oder ist Confidential Computing auch
Geek: weiterzufassen, dass es auch um Dinge geht, die nicht in einem fremden Rechenzentrum stehen.
Felix: Confidential Computing ist nicht beschränkt auf die Cloud tatsächlich.
Felix: Ursprünglich ging es bei Confidential Computing auch eher um Consumer-Geräte und Edge-Devices.
Felix: Und vielleicht einmal erklärt, was Confidential Computing macht.
Felix: Dabei geht es darum, dass man Daten auch während der Verarbeitung verschlüsselt hält.
Felix: Das wird möglich gemacht durch die Hardware, nämlich den Intel-Prozessor oder
Felix: den AMD-Prozessor oder auch seit kurzem die NVIDIA-GPU.
Felix: Da kann ich als Anwendung sagen, Prozessor, bitte verschlüssel mich jetzt und
Felix: dann macht der Prozessor das,
Felix: nimmt die Anwendung, packt die in einen besonders sicheren Ausführungskontext
Felix: und hält dann Programmcode und Daten während der Ausführung verschlüsselt im Arbeitsspeicher.
Felix: Die Daten und der Programmcode werden dann nicht verschlüsselt ausgeführt,
Felix: das geht natürlich nicht.
Felix: Der Prozessor entschlüsselt die Daten intern, seine internen Strukturen wieder während der Laufzeit.
Felix: Aber das ist von außen nicht sichtbar. Die Klartextdaten sind nur während der
Felix: Verarbeitung innerhalb des Prozessors vorliegend.
Felix: Und von außen wirkt es so, als würde der Prozessor auf verschüsselten Daten arbeiten.
Felix: Und der Hypervisor, das Betriebssystem, andere Hardwarekomponenten,
Felix: für die sind die Daten nicht zugreifbar.
Felix: Und wenn dann dort direkt auf dem Arbeitsspeicher zugegriffen wird,
Felix: sieht man bloß verschüsselte Daten.
Felix: Das einmal zur Technik. und du hast gefragt, ist es nur Cloud?
Felix: Und ja, das Thema ist super spannend für die Cloud.
Felix: Klar kann man sich vorstellen, wenn man Daten verschlüsselt halten kann während
Felix: der Verarbeitung, hilft das viel mit Vertrauen in der Cloud.
Felix: Aber ursprünglich war das Thema ein Endgerätethema.
Felix: Die ersten Intel-Prozessoren, die das konnten, waren Consumer-Prozessoren,
Felix: also eher die Low-Power-Celerons und so weiter.
Felix: Und da war Intels Plan, dass man mit der Technologie besseren Kopierschutz lustigerweise,
Felix: haben wir gerade schon drüber gesprochen, implementieren könnte und Leute daran
Felix: hindern könnte, DVDs zu bringen.
Felix: Also die ersten Anwendungen, die Confidential Computing verwendet haben,
Felix: waren auf Low-Powered Intel-Prozessoren Decoder für DVDs.
Geek: Ich erinnere mich, ich hatte irgend so ein Thinkpad und da war auch so ein Trusted
Geek: Computing Module drin oder sowas. Wie spielen die damit rein?
Geek: Das ist ja quasi dann so der Anfang gewesen, hardwaretechnisch zu überprüfen,
Geek: dass nur bestimmte Dinge passieren auf dem Gerät.
Felix: Ja, das ist interessant. Also das TPM ist ja schon schon lange bekannt,
Felix: das Trusted-Platform-Module.
Felix: Da gibt es viele Verbindungen zu Confidential Computing. Das TPM ist ein extra
Felix: Chip auf deinem Mainboard.
Felix: Das TPM kann Schlüssel speichern, kryptografische Schlüssel,
Felix: und kann diese Schlüssel abhängig vom Zustand deines Systems freigeben oder nicht.
Felix: Und was dann üblicherweise gemacht wird beim TPM ist.
Felix: Ich starte meinen Laptop, das TPM hasht dann die Abfolge der Software,
Felix: die geladen wird auf dem Laptop, also zuerst irgendeine Firmware,
Felix: Dann der Bootloader, dann das Betriebssystem und dann vielleicht nochmal eine VM obendrauf.
Felix: Diese Software wird gehasht, das nennt man dann Trusted Boot oder Measured Boot.
Felix: Und nur wenn die Hashes der Software dementsprechend, was erwartet wird und
Felix: dann auch der Hash dann des Passworts dementspricht, was erwartet wird,
Felix: dann gibt das TPM seinen Schlüssel frei.
Felix: Und der Schlüssel ist dann zum Beispiel der, der verwendet wird,
Felix: um deine Festplatte zu ver- und entschlüsseln.
Felix: So ist das dann, wenn du bei Linux oder bei Windows Festplattenverschlüsselungen
Felix: mit TPM aktivierst, dann hast du dieses Hashing und den Abgleich der Hashes
Felix: während des Boot-Vorgangs und das TPM überwacht das und wenn das alles in Ordnung
Felix: ist, dann gibt das TPM den Schlüssel frei.
Felix: Und das TPM kann das dann auch nochmal extern belegen.
Felix: Das nennt man Remote Assistation. Also ein Laptop mit TPM kann ein Zertifikat
Felix: darüber ausstellen, welche Hashes im Boot-Vorgang beteiligt waren und dann kann
Felix: von außen festgestellt werden, okay, wahrscheinlich ist dieser Laptop in einem guten Zustand.
Felix: Das sind die beiden großen Features eines TPMs, Speicherung von Schlüssel und
Felix: Freigabe in Abhängigkeit vom Zustand und dann Attestierung des Zustands nach außen.
Felix: Und da gibt es viele Überschneidungen mit Confidential Computing,
Felix: aber es ist schon noch was anderes.
Geek: Ja, ich merke schon, das ist alles so ein bisschen ähnlich. Wir kennen es ja
Geek: aus HTTPS, wo du dann auch so eine Certificate Authority hast.
Geek: Also du hast hier jemanden mit dem TPM-Modul, dem du ja vertraust offensichtlich.
Geek: Der hat den Schlüssel und der gibt dir den wieder frei, wenn du ihm das richtige Hash zurufst.
Geek: Und wir müssen in dem Kontext ja gucken, wem vertraut man da eigentlich?
Geek: Also wenn ich mir halt überlege, wir lassen die Cloud nochmal raus,
Geek: ich kaufe mir einen Computer und ich mache dann darauf meinen Lebenslauf und
Geek: ich mache da vielleicht auch Babyfotos hin und andere Sachen,
Geek: die ich persönlich vertrauenswürdig finde.
Geek: An welchen Stellen habe ich denn potenziell, also warum würde ich es denn verschlüsseln wollen?
Geek: Ist es immer nur, wenn mir jemand anderes das wegnimmt? Also dass ich es dagegen
Geek: absichern möchte? Dann würde es mir erreichen, ich verschlüssele eigentlich
Geek: meine Festplatte und wenn er aus ist, ist es weg.
Geek: Wo kommt quasi dieser Confidential-Teil ins Spiel? Du sagtest,
Geek: auch der Prozessor verschlüsselt das und holt es auch gar nicht richtig raus.
Geek: An welchen Stellen hilft mir das, wenn ich jetzt noch nicht nicht die Cloud habe.
Geek: Wir holen die Leute alle später rein, aber erstmal sind wir nur in dem Kontext.
Geek: Habe ich da schon einen Vorteil oder da noch nicht?
Felix: Also auf Endgeräten habe ich nicht so den Riesenvorteil durch Confidential Computing.
Felix: Also was Confidential Computing erreicht, ist eine sichere Datenverarbeitung
Felix: auf vielleicht nicht komplett vertrauenswürdigen Systemen.
Felix: Wenn jetzt mein Computer, wenn ich den als vertrauenswürdig einschätze,
Felix: dann habe ich wenig Bedarf an Confidential Computing.
Felix: Der einzige Grund wäre vielleicht, mein Laptop wird geklaut,
Felix: aber dann reicht eigentlich auch die Festplattenverschlüsselung.
Felix: Mein Laptop wird geklaut, die Festplatte ist verschlüsselt, keiner kommt an meine Daten heran.
Felix: Der große Use Case auf meinem Laptop wäre das, was ich vorhin schon beschrieben
Felix: habe, nämlich der Schutz gegen den Nutzer des Laptops selbst.
Felix: Also du betrachtest deinen Laptop vielleicht als vertrauenswürdig,
Felix: aber Sony Motion Pictures betrachtet deinen Rechner nicht als vertrauenswürdig,
Felix: weil du ihn kontrollierst.
Felix: Und daher kommt dann auch dieses Konzept.
Felix: Das ursprüngliche Konzept war, ich habe den Nutzer-Laptop, der gehört dir und
Felix: jetzt habe ich als Sony Motion Pictures einen Film, der auf deinem Laptop abgespielt werden soll,
Felix: aber ich möchte nicht, dass du die Daten in Rohform bekommst,
Felix: obwohl der auf deinem Laptop abgespielt wird.
Geek: Das ist das Problem, wo ich meinen Bildschirminhalt quasi nicht mitschneiden
Geek: kann, weil irgendwelche Treiber verhindern, dass ich das mitsehen kann.
Geek: In die Richtung Das kann man.
Felix: Glaube ich, nicht verhindern. Was confidential computing verhindert,
Felix: ist, dass du Daten aus dem Arbeitsspeicher auslesen kannst, obwohl du Admin
Felix: bist auf dem System. Das heißt, du hast jede...
Felix: Eine DVD gekauft, du schiebst sie in deinen Laptop rein und wenn du jetzt ganz
Felix: normal dann diese DVD abspielst, weil DVD ist ein schlechtes Beispiel.
Felix: Es ist schon ein bisschen her, dass man DVDs geguckt hat. Vielleicht Netflix
Felix: ist ein besseres Beispiel.
Felix: Sagen wir Netflix. Die Daten werden gestreamt von irgendwoher.
Felix: Sie kommen entweder aus einem DVD-Laufwerk oder sie kommen von einem Netflix-Server
Felix: und dann werden sie bei dir verarbeitet auf dem Laptop.
Felix: Jetzt könntest du theoretisch einfach den Arbeitsspeicher des Dekodierprozesses
Felix: auslesen und hättest dann die Videodaten in Rohform.
Felix: So hat man früher DVDs kopiert oder vielleicht auch heutzutage Netflix-Serien
Felix: und Computing verhindert das jetzt.
Felix: Wie ich vorhin beschrieben habe, hält der Prozessor die Daten im Arbeitsspeicher verstüsselt.
Felix: Das heißt, wenn du jetzt auf diesen Arbeitsspeicher zugreifst,
Felix: auch vielleicht sogar mit Hardwaremitteln auf den Arbeitsspeicher zugreifst,
Felix: würdest du immer bloß verschlüsselte Daten bekommen, obwohl eigentlich du komplett
Felix: die Kontrolle über das System hast.
Felix: Und die Dekodierung würde in der sicheren sogenannten Enklave stattfinden.
Felix: Die vom Prozessor aufgespannt wird und Daten bleiben verschlüsselt im Arbeitsspeicher.
Felix: Und da kann man jetzt auch den Case zur Cloud ganz gut aufspannen.
Felix: Nämlich in der Cloud ist jemand anderes im Fahrersitz.
Felix: Das ist vielleicht eine Cloud-Subscription, aber die Cloud wird betrieben von
Felix: vielen tausend Mitarbeitern von Microsoft, Google, AWS.
Felix: Und genauso wie Netflix oder Sony auf deinem Laptop gerne eine sichere Ausführung
Felix: ihres DVD-Dekoders haben möchten, hättest du gerne eine sichere Ausführung deiner
Felix: Firmendatenbank in der Cloud.
Felix: Und so kann man das Konzept, das ursprünglich mal für ein Endgerät war,
Felix: kann man sehr schön auf die Cloud projizieren.
Felix: Es sind andere Akteure, aber es ist ein sehr ähnliches Setting.
Felix: Ich möchte meine Daten in der Cloud verarbeiten, wobei ich der Cloud nicht komplett
Felix: traue. Dann hält der Prozessor in der Cloud die Daten verstüsselt und,
Felix: Der Cloud-Admin sieht die Daten nie im Klartext.
Geek: Ich glaube, wir müssten noch gar nicht in die Cloud gehen. Das Szenario haben
Geek: wir ja auch schon in einem normalen Unternehmen, wo wir sagen,
Geek: wir haben eine HR-Abteilung und wir haben eine IT-Abteilung und die IT-Abteilung
Geek: stellt die Systeme bereit.
Geek: Und das ist ja das uralte Problem, dass die IT-Leute alle Passwörter kennen,
Geek: die können überall drauf und die HR-Abteilung sagt, aber die sollen sich doch
Geek: nicht die Gehälter angucken von allen Leuten.
Geek: Und trotzdem könnten die halt theoretisch jederzeit da ran, weil sie ja für
Geek: die Wartung zuständig sind und dergleichen. Also du hast ja eh schon das System,
Geek: auf einem fremden Computer laufen meine Daten, die ich aber irgendwie schützenswerter finde.
Geek: Oder die Szenarien, was ich auch schon bei unseren Kunden erlebt habe,
Geek: du hast halt in der Telematik-Infrastruktur,
Geek: du hast in einem Krankenhaus, hast du ein System, das ist noch gar nicht in
Geek: der Cloud, sondern du hast einen Connector und dieser Connector,
Geek: der soll einfach dafür sorgen, dass darüber Patientendaten laufen,
Geek: aber der, der den Schlüssel zum Serverraum hat, soll trotzdem nicht in die Patientendaten
Geek: gucken können. das möchte man auch verhindern.
Geek: Das heißt, Cloud ist, glaube ich, noch die höchste Form davon.
Geek: Aber wenn immer du in fremden Systemen unterwegs bist und Daten hast,
Geek: die du nicht da haben möchtest, müsstest du ja irgendwie verhindern, dass man drankommt.
Felix: Das stimmt. Das ist jedes Mal, glaube ich, ein schöner Use Case für Confidential Computing.
Felix: Wenn ich eine Datenverarbeitung auf System habe, wo der System am Illustrator,
Felix: nicht komplett die Daten sehen soll, kann man sagen.
Felix: Wenn ich eine Abschirmung der Datenverarbeitung von der Infrastruktur haben möchte.
Geek: Ich hatte das tatsächlich schon mal. Du möchtest gerne deinen IT-Administrator
Geek: kündigen in der HR-Abteilung.
Geek: Wo dokumentierst du das jetzt? Wie bereitest du das vor? Der weiß es halt dann
Geek: schon im Falle und deswegen kannst du es nicht machen.
Geek: Und ja klar, in der Cloud wird es dann nochmal potenziert, weil du hast noch weniger Ahnung.
Geek: Du kannst nicht mehr über einen Arbeitsvertrag regeln, bitte guck dir nicht
Geek: Laufwerk D an, sondern das ist nochmal komplexer.
Geek: Aber ich glaube, dieses Confidential-Thema begegnet uns überall und es mag zwar
Geek: über Cloud nochmal verstärkt sein, aber eigentlich, solange ich meinen Rechner
Geek: nicht alleine benutze und irgendwer anders dafür zuständig ist und da auch während
Geek: der Laufzeit drauf gucken kann.
Geek: Habe ich das Problem ja eigentlich immer. Also, dass ich vertrauen muss.
Geek: Da wird schon keiner was mitmachen.
Geek: Und ich glaube, das ist so ein Effekt, den sehen wir überall in der IT.
Geek: Du hast immer so eine Jugendforscht-Phase.
Geek: Man freut sich, dass es klappt und dass man es irgendwie hinkriegt und dass
Geek: man elektronisch Daten verarbeiten kann.
Geek: Und dann kommst du so ein bisschen weiter in den Prozess und stellst fest,
Geek: okay, jetzt kommen die Passwortknacker dieser Welt, jetzt kommen die Leute,
Geek: die mal gucken, was geht mit dem System.
Geek: Und die reizen die Grenzen aus und jetzt muss ich auf einmal anfangen abzusichern
Geek: und es wird einfach ein bisschen reifer insgesamt.
Geek: Und da kommen dann diese, ja, von TPM über Enclave, was auch immer,
Geek: kommen jetzt neue Konzepte mit hinzu, die man, glaube ich, einmal sortieren
Geek: muss und verstehen muss, was ist eigentlich was dabei.
Geek: Also, woraus besteht es eigentlich? Weil Computer versteht heutzutage, glaube ich, jeder.
Geek: Hier hast du eine CPU, da hast du ein bisschen RAM, Kurzzeitgedächtnis,
Geek: hat man immer so schön in den alten Bilderbüchern gesagt, dann hast du eine
Geek: Festplatte, Langzeitgedächtnis und die drei Dinge, die kennt eigentlich, glaube ich, jeder.
Geek: Und dann noch ein bisschen Input mit Keyboard und Maus, ein bisschen Output
Geek: mit Monitor und Drucker und schon hast du da dein 1970 IT-Handbuch.
Geek: Und was kommt jetzt im Rahmen von Confidential Computing dazu?
Geek: Weil wir hatten ja gerade schon darüber geredet, das TPM war ja etwas,
Geek: das hat vor Confidential Computing schon angefangen.
Geek: Und da gibt es irgendwie einen Schlüssel drin, den gibt es irgendwann frei.
Geek: Die Frage, spielt das eine Rolle? Die CPU end- und verschlüsselt Dinge.
Geek: Das heißt, sie muss ja auch irgendwo einen Schlüssel herkriegen.
Geek: Eine Enklave muss irgendwie zustande kommen.
Geek: Lass uns mal versuchen, das so ein bisschen zu sortieren.
Felix: Wir haben es schon ein bisschen angerissen hier und da, aber ich glaube,
Felix: es ist gut, wenn wir es nochmal systematisch von vorne erklären.
Felix: Bei Confidential Computing kann die Anwendung, sagen wir, wir haben dort eine.
Felix: Datenbankanwendung, theoretisch.
Felix: Die Anwendung kann dem Prozessor dynamisch zur Laufzeit sagen,
Felix: bitte schütze mich jetzt gegen den Rest des Systems.
Felix: Und das sagt die Anwendung über eine ganz normale CPU-Instruktion oder eine
Felix: Reihe von CPU-Instruktionen,
Felix: genauso wie die Anwendung über eine CPU-Instruktion den Prozessor bittet,
Felix: zwei Zahlen zu addieren oder eine virtuelle Maschine zu erstellen.
Felix: Was der Prozessor dann macht, ist, er nimmt dann die Anwendung,
Felix: behält sie vielleicht dort im Arbeitsspeicher, wo sie liegt,
Felix: aber man markiert die Arbeitsspeicherbereiche als Teil einer sogenannten Enklave.
Felix: Diese Arbeitsspeicherbereiche sind dann speziell geschützt durch die Speicherverschlüsselung.
Felix: Also alles, was dann in diesen markierten Speicherbereichen liegt,
Felix: wird im Arbeitsspeicher im Kurzzeitgedächtnis verschüsselt abgelegt und dann
Felix: nur dynamisch on demand in den Prozessor reingezogen, so wie es normal ist,
Felix: und dann innerhalb des Prozessors entschlüsselt erst.
Felix: Das liegt dann für den Experten innerhalb des Level-3-Caches schon entschlüsselt
Felix: vor, ist aber logisch nicht zugreifbar für andere Komponenten.
Felix: Der Prozessor trägt dafür Sorge, dass alles, was innerhalb der Enklave liegt,
Felix: auch nur von innerhalb der Enklave zugegriffen werden kann. Der Level-3-Cache
Felix: ist nicht direkt zugreifbar.
Felix: Das wird logisch vom Prozessor verhindert.
Felix: Man müsste theoretisch entweder einen Fehler in der Implementierung des Prozessors
Felix: finden, dass man doch auf diesen Cache zugreifen kann oder auf die Register zugreifen kann.
Felix: Oder man müsste den Prozessor physikalisch öffnen und diese Strukturen z.B.
Felix: In einem Elektronenmikroskop beobachten oder man müsste einen Seitenkanalangriff
Felix: erfahren gegen den Prozessor z.B.
Felix: Stromverbrauch messen, elektromagnetische Abstrahlung messen etc.
Felix: Da kann man dann auch Rückschlüsse ziehen.
Felix: Aber wenn man in keinen dieser drei Angriffe erfolgreich fährt,
Felix: dann sind die Daten nicht zugreifbar und diese Angriffe sind in der Praxis schwierig.
Felix: Man kann sich vorstellen, einen Prozessor physikalisch zu öffnen und mit einem
Felix: Elektronenmikroskop zu beobachten, ist komplex.
Felix: Genauso ist es komplex, einen Seitenkanalangriff durchzuführen.
Geek: Gerade wenn es at scale geht, stell dir vor, nimmst du halt irgendwie AWS Region
Geek: West, machst bei jedem Einzelnen dieser Prozessoren, weil da potenziell irgendwie
Geek: Load drauf kommen könnte, mal so ein Seitenkanal auf. Du musst ja physisch tatsächlich dann da dran.
Geek: Ich glaube, das könnte etwas kompliziert werden.
Felix: Das stimmt, das ist kompliziert, genau. Aber wenn wir jetzt,
Felix: oder vielleicht um die Erklärung abzuschließen, also wir haben diese Enklave,
Felix: die kann der Prozessor, die erstelle Prozessor.
Geek: Lass noch kurz ein Stück zurückgehen, weil der Prozessor hat das jetzt gemacht,
Geek: aber womit, Also der muss es ja irgendwie symmetrisch, asymmetrisch irgendwie vereinschlüsseln.
Felix: Ah, genau, genau, ja.
Geek: Und woher kommt das eigentlich? Weil wenn der hinter mir auf dem Post-it steht,
Geek: dieses Passwort, dann ist das ja auch nicht mehr ganz so spannend,
Geek: weil dann lese ich einfach aus, was der gerade da verschlüsselt in seinem Cache
Geek: hat oder im L3 und dann nehme ich einfach den Schlüssel, den ich kenne.
Geek: Also woher kenne ich den?
Felix: Also der Prozessor generiert zur Bootzeit einen Schlüssel, den er verwendet
Felix: für die Speicherverschlüsselung.
Felix: Das ist ein symmetrischer Schlüssel und dort wird dann in verschiedenen Flavors,
Felix: je nachdem ob Intel oder AMD, für die Speicherverschlüsselung wird AIS verwendet,
Felix: wenig überraschenderweise.
Felix: Für den Experten, das ist dann im Counter-Modus, also als Stream-Cypher,
Felix: mit einem sogenannten Message Authentication Code versehen.
Felix: Das heißt, die Verschlüsselung ist auch integritätswahrend, liefert nicht nur
Felix: Vertraulichkeit, sondern verhindert
Felix: auch die Manipulation der Speicherbereiche. Das ist auch wichtig.
Felix: Könnte ich Speicherbereiche manipulieren, könnte ich einzelne Bits flippen und
Felix: könnte dann verschiedene Angriffe starten, die so verhindert werden.
Geek: Ich weiß nicht, ob man das damit adressieren kann, aber am Wochenende bin ich
Geek: im Internet falsch abgebogen und bin irgendwie bei Cloudflare gelandet,
Geek: die ja mit 1000 Lava-Lampen, oder es sind 64 Lava-Lampen, ein Bild generieren,
Geek: um die Entropie zu haben,
Geek: damit sie nämlich genug zufällige Daten haben, um quasi Schlüssel zu erzeugen.
Geek: Ich fand es super witzig, dass sie Lava-Lampen dafür verwenden.
Felix: Das hört sich sehr lustig an, ja.
Geek: Weil tatsächlich ist jetzt die Frage, wenn er at boot time den Schlüssel erzeugt,
Geek: muss er ja seine eigene Entropie verwenden, irgendwoher.
Geek: Und da ist die Frage, vermutlich gibt es da irgendwie eine Lösung für.
Geek: Also ich wüsste jetzt nicht genau was, aber ist das...
Geek: Schwierig ist die Frage.
Felix: Also Zufallszahlengenerierung ist ein eigenes wissenschaftliches Feld.
Felix: Moderne Prozessoren haben in der Hardware einen Zufallszahlengenerator,
Felix: die auch als sehr gut gelten, auch als kryptografisch sicher gelten.
Felix: Das heißt, wenn ich zum Beispiel mir eine Zufallszahl generieren möchte,
Felix: einfach so auf meinem Prozessor, dann gibt es die Instruktion adirand.
Felix: Genauso wie ich den Prozessor fragen kann, mir zwei Zahlen zu generieren,
Felix: kann ich mit adirand mir eine wohl sehr gute Zufallszahl geben lassen.
Felix: Das geht vielleicht zu weit. Meines Wissens nach werden da Ströme irgendwo gemessen.
Felix: Es wird physikalisches Rauschen erzeugt und gemessen und daraus wird dann ein Schlüssel generiert.
Felix: Und genau so generiert der Prozessor zur Bootzeit seinen Schlüssel.
Felix: Und das gilt allgemein als sicher, wie das die Prozessoren machen.
Felix: Ob das jetzt für jede militärische Anwendung genügt, vermutlich nicht.
Felix: Aber es ist schon sehr, sehr gut.
Geek: Ja, sehr wahrscheinlich kannst du dann noch irgendwie hergehen als Serverhersteller.
Geek: Ich denke mal fünf Jahre weiter für Confidential Computing.
Geek: Dann hast du noch irgendein Modul da drauf, was eben für die Randomness irgendwas mitgeneriert.
Geek: Machst du vielleicht noch eine Röhre da drauf, alte Analoge oder so und sagst,
Geek: die macht das jetzt noch.
Felix: Definitiv.
Geek: Aber lass uns in dem klassisch-kommerziellen Bereich bleiben.
Geek: Ich glaube, das ist secure enough, damit der IT-Leiter Ingo jetzt seine Kündigung
Geek: nicht sehen kann, die dann irgendwo bei uns in den HR-Systemen existiert,
Geek: die wir in der Cloud hosten.
Geek: Das heißt, wir haben im Level 3 Cache, hatten wir alles verschlüsselt?
Felix: Entschlüsselt. Es ist im Arbeitsplatz verschlüsselt und es wird dann ab dem
Felix: Level 3 Cache entschlüsselt.
Geek: Und in der CPU ist es dann eben entschlüsselt. Und bestenfalls programmierst
Geek: du natürlich deine Anwendung dann so, dass du dann die Verarbeitung da stattfinden
Geek: lässt und nicht die Verarbeitungsdaten schon exposed nach außen wieder.
Felix: Richtig. Also man kann da verschiedene Ansätze haben. Man kann jetzt seine Anwendung
Felix: aufteilen in sicher und unsicher.
Felix: Wenn wir uns vielleicht einen Webservice anschauen, könnte ich sagen,
Felix: okay, der meiste Teil ist eigentlich jetzt nicht so relevant,
Felix: aber ich möchte jetzt das Management meiner TLS Private Keys möchte ich gerne besonders schützen.
Felix: Dann könnte ich das in einem Enklave auslagern und den Rest außerhalb haben
Felix: und dann ein Interface zwischen sicherer und unsicherer Welt erzeugen.
Felix: Die unsichere Welt kann dann mit der sicheren Welt über bestimmte Call-Gates
Felix: kommunizieren, so ähnlich wie ein Programm mit dem Kernel kommuniziert.
Felix: Syscall ist ja wahrscheinlich vielen deiner Hörer ein Begriff.
Felix: Und ähnlich wie ein User-Mode-Programm per Syscall mit einem Kernel-Treiber
Felix: kommunizieren kann, kann der unsichere Teil einer Anwendung mit dem Teil einer
Felix: Anwendung kommunizieren, der innerhalb einer Enklave läuft.
Felix: Üblicherweise verschieden aber ganze Anwendungen in Enklaven weil,
Felix: das Aufteilen relativ aufwendig ist, man muss sich Gedanken darüber machen was
Felix: ist ein sicherer, was ist ein unsicherer Teil und oft kommt man dann dazu okay,
Felix: einiges ist ja alles irgendwie schützenswürdig, weil selten ist es so, dass das ein Teil nur,
Felix: unsichere oder unwichtige Sachen macht und den anderen Teil dann mit sensiblen Daten hantiert.
Felix: Der einzige Fall ist da vielleicht, wenn man sich wirklich nur auf kryptografische Schlüssel fokussiert.
Felix: Deswegen ist es heute meistens so, ich schütze ganze Anwendungen,
Felix: verschiebe die ganze Anwendung in die Enklave und dann gibt es jetzt sogar die Tendenz,
Felix: nicht nur ganze Anwendungen, sondern ganze Container oder ganze virtuelle Maschinen
Felix: zu schützen, um das Ganze noch einfacher zu machen.
Felix: Weil häufig häufig, ja, Deployment von Anwendungen ist jetzt als Container und
Felix: nicht mehr als einzelne Binärdatei.
Felix: Und deswegen ist jetzt der Trend, ich schütze meinen Container komplett mit
Felix: confidential computing.
Geek: Wenn wir Cloud sagen, betrachten wir Cloud auch mehr so als fremder Computer,
Geek: also im Sinne als Infrastructure as a Service und nicht die hochwertigeren Dienste.
Geek: Also dass du sagst, ich nehme jetzt hier einen S3-Bucket, sondern eher ich würde
Geek: mir ein Kubernetes hochziehen und sagen, ich skaliere auf einer fremden Hardware
Geek: und kann eben den Effekt nutzen,
Geek: dass ich mir nicht selber 20 Server in den Keller stellen muss oder 24 oder
Geek: 80, wenn ich dann hochskalieren muss
Geek: und das übernimmt dann eben mein Infrastructure-as-a-Service-Provider?
Felix: Ja, das ist die richtige Frage.
Felix: Ich kann mit Confidential Computing sehr schön Infrastructure-as-a-Service sicher nutzen.
Felix: Ich erstelle mir eine Anwendung oder ich stelle mir eine Enklave auf der Cloud XY.
Felix: Ich habe quasi so ein Bootstrapper-Programm, das sagt, okay,
Felix: bitte erstelle mir eine Enklave Dann stellt der Prozessor eine Enklave.
Felix: Dann kommt jetzt erstmal nochmal ein wichtiger Schritt, den habe ich bisher
Felix: ausgelassen, nämlich die Remote Attestation.
Felix: Und jetzt ist, glaube ich, der richtige Zeitpunkt, um kurz Remote Attestation zu sprechen.
Felix: Stell dir vor, du hast jetzt diese Enklave in der Cloud. Die ist vielleicht
Felix: leer, abstrakt gesprochen.
Felix: Und jetzt ist die Frage, bevor ich meine Daten da dorthin schicke oder da ein
Felix: Programm starte, das ich dann sicher ausführen möchte, woher weiß ich denn,
Felix: dass diese Enklave vertrauenswürdig ist?
Felix: Woher weiß ich, dass da wirklich eine Enklave läuft?
Felix: Da kommt jetzt Remote Station ins Spiel.
Felix: Den Begriff Remote Assistation vorhin schon mal kurz im Kontext vom TPM verwendet.
Felix: Und das ist ein sehr ähnliches Konzept und das hat sich, ich glaube,
Felix: da wurde Confidential Computing auch sehr stark beeinflusst von den existierenden TPM-Lösungen.
Felix: Was dann nämlich passiert ist, jeder Prozessor, der Confidential Computing fähig
Felix: ist, oder auch jede GPU neuerdings, hat einen privaten Langzeitschlüssel.
Geek: Den sie über den Boot-Prozess beibehält.
Felix: Genau, genau.
Geek: In einen ROM eingebrannt irgendwo.
Felix: Genau, genau. Also das heißt, der Schlüssel zur Verschlüsselung des Arbeitsspeichers,
Felix: der wird beim Bootprozess jeweils neu generiert.
Felix: Der Schlüssel für Remote Addition, der asymmetrische Schlüssel,
Felix: der ist Langzeit und der ist eingebrannt.
Felix: Ja, weil man spricht davon, dass er in sogenannten Fuses vorliegen würde.
Felix: Jeder Prozessor bekommt dann bei der Herstellung in den Fuses eine eigene Zufallszahl
Felix: und daraus leitet sich der Langzeit private Schlüssel ab.
Geek: So wie ein Salt quasi an der Stelle?
Felix: Ja, oder eher wie so ein Seed.
Geek: Wie ein Seed, okay.
Felix: Genau, das sind dann vielleicht 128-Bit oder 64-Bit-Zufallszahl,
Felix: also eine ausreichend große Zufallszahl.
Felix: Daraus kann man dann einen privaten RSA-Schlüssel ableiten, das macht die CPU.
Felix: Und dann auch korrespondierend einen öffentlichen Schlüssel.
Felix: Wenn man sich ganz ein bisschen mit Kryptografie auskennt, dann weiß man ja,
Felix: digitale Signaturen werden mit asymmetrischen Schlüsseln, privaten,
Felix: öffentlichen Schlüsseln erstellt.
Geek: Das ist das ganze Alice-und-Bob-Thema, wo Alice Bob dann die Nachricht schickt.
Felix: Genau, genau, genau. Einführen in
Felix: die Kryptografie. An der Ruhr-Uni zum Beispiel, da kann man sowas hören.
Felix: Jede TLS-Verbindung im Internet. Wenn oben links das Schloss im Browser ist,
Felix: dann ist das eine... Irgendwo, dann basiert das auf einer asymmetrischen Krypto.
Felix: Und da sind dann Zertifikate mit im Spiel. Aber genau, jeder Prozessor hat einen eigenen...
Felix: Geheimen Schlüssel für Remote Distribution und einen öffentlichen Schlüssel, wie das dann üblich ist.
Felix: Woher kennt man den? Genau, das ist jetzt spannend.
Felix: Der öffentliche Schlüssel, dafür gibt es ein Zertifikat vom Prozessorhersteller.
Felix: Das heißt NVIDIA, AMD, Intel betreiben eigene Certificate Authorities,
Felix: mit denen sie Zertifikate für ihre Prozessoren ausstellen.
Felix: Man kann sich das so vorstellen, Intel, da wird ein neuer Prozessor erstellt
Felix: in der Fabrik, dann gibt der Prozessor den Public Key aus und der Public Key
Felix: wird notiert und dann erstellt Intel ein Zertifikat dafür, für den Public Key.
Felix: Was jetzt passiert ist, ich habe jetzt meine Enklave, das Bild,
Felix: das wir vorhin hatten, meine leere Enklave und der Prozessor nutzt jetzt seinen
Felix: privaten Schlüssel, seinen privaten Langzeitschlüssel, um ein Zertifikat für
Felix: diese Enklave zu erstellen.
Felix: Dieses Zertifikat sieht sehr ähnlich aus wie ein TLS-Zertifikat,
Felix: also das, was dafür zuständig ist, dass deine Verbindung zu Sparkasse.de sicher
Felix: ist. Das ist das gleiche Verfahren, TLS.
Felix: Und der Prozessor erstellt ein Zertifikat, ein TLS-Zertifikat oder TLS-artiges
Felix: Zertifikat für die Enklave.
Felix: Und ich kann mir dieses Zertifikat jetzt anschauen und kann daraus lernen,
Felix: okay, dort ist ein echter, zum Beispiel Intel-Prozessor, der hat eine Enklave
Felix: erstellt mit den und den Einstellungen,
Felix: mit der und der Größe und mit der und der initialen Software oder Datenbefüllung.
Felix: Könnte alles Nullen sein, aber da könnte auch schon was drin sein.
Felix: Und dann kann ich entscheiden, okay, das sieht gut für mich aus.
Felix: Genauso wollte ich es haben.
Felix: Oder das sieht nicht gut für mich aus. Da hat irgendwer fünf Bits geflippt,
Felix: deswegen möchte ich das lieber nicht haben.
Felix: Dann kann ich auch basierend auf einer positiven Einschätzung einen sicheren
Felix: Kanal in die Enklave herstellen,
Felix: zum Beispiel einen TLS-Kanal, genauso wie gerade ja schon genannt zur Sparkasse.de,
Felix: dein Browser das macht, kannst du dann mit unterschiedlicher kleinen Software
Felix: einen sicheren Kanal herstellen und kannst dann deine Daten teilen mit dieser
Felix: Enklave. Und dann ist es auch schon fertig.
Geek: Und das muss ich jedes Mal machen, wenn die Enklave neu hochfährt, nehme ich an?
Felix: Nicht unbedingt. Es könnte, so machen wir es mal konkret, Es könnte wie folgt aussehen.
Felix: Du möchtest eine Datenbank, sagen wir eine MongoDB, gerne sicher in der Cloud
Felix: betreiben oder auf Hardware Dritter, der du nicht ganz vertraust.
Felix: Das heißt, du würdest ein MongoDB-Paket, vielleicht eine Binärdatei oder einen
Felix: Container, hochladen, dann mittels einer Software den Prozessor sagen,
Felix: bitte erstellen wir jetzt eine Enklave um dieses Paket.
Geek: Was wäre das für eine Software?
Felix: Das könnte zum Beispiel eine Software von uns, von Edge Systems sein.
Felix: Wir handeln verschiedene Software, aber im einfachsten Fall ist das dann,
Felix: hast du eins unserer Tools benutzt, um ein Software-Paket für SGX zu erstellen.
Felix: Du könntest MongoDB nehmen und sagen, okay, jetzt bauen wir bitte mal das für
Felix: die Intel-Plattform, die SGX-Enklave.
Felix: Und dann könntest du das einfach so ausführen und dann würde da Bootstrapper-Code
Felix: laufen, der die Enklave erstellt und dann deine ursprüngliche Software dort lädt.
Geek: Heißt das, ich würde mir das einmal kompilieren für das System dann? oder...
Felix: Ja, das kommt drauf an, welche Technologie dort genau drunter liegt.
Felix: Wenn das so die ursprüngliche Enklaven-Technologie ist, Intel SGX,
Felix: das ist das, was es schon seit zehn Jahren gibt, dann muss es einmal cross-kompiliert werden. Wenn...
Felix: Oder in den meisten Fällen musst du das mal neu kompilieren.
Felix: Wenn du aber eine der anderen Technologien verwendest, nämlich zum Beispiel
Felix: ARM BSEV oder das neuere Intel TDX oder von ARM das CCA, dann musst du es nicht neu kompilieren.
Felix: Dann ist es meistens auf VM-Ebene und das kann dann ja, am Ende wird dann meistens
Felix: in einer extra VM dein Container gestartet.
Felix: Das sieht dann ja am Ende, ob es eine VM mit Confidential Computing Features
Felix: oder eine Enklave ist, die um eine Anwendung herumgeht, ist relativ egal.
Felix: Das sieht alles sehr, sehr ähnlich aus.
Felix: Ich glaube, wichtig ist hier, für manche Technologien muss man das nochmal neu
Felix: verpacken oder neu kompilieren. Für andere nicht unbedingt.
Felix: Kommt drauf an, an was das für ein Prozessor ist.
Geek: Der häufigste Fall wird ja tatsächlich sein, dass du eher in einem Docker- oder
Geek: Containerumfeld bist, dass da Kubernetes existiert und dass man sagt,
Geek: man hat nicht das Mongo-Image per se oder die Mongo-Binaries.
Felix: Genau, wir können das Beispiel vereinfachen. Sagen wir, du hast einen MongoDB-Docker-Container.
Geek: Ich nehme den offiziellen, weil der ist ja offiziell.
Felix: Genau, du nimmst den offiziellen, genau. Dann könntest du hingehen und sagen,
Felix: okay, wir starten jetzt mal eine VM, VM, eine Confidential Computing VM mit einem bestimmten,
Felix: Linux-Umgebung.
Geek: Wenn du sagst VM, also was abstrahiert ist, weil normalerweise in meinem Verständnis
Geek: habe ich keine VMs, sondern ich brauche irgendwas, was VMs dann verwaltet, startet und macht.
Geek: Wäre das quasi so eine Docker-VM oder was bezeichnest du als VM in dem Kontext?
Felix: Also das ist eine klassische virtuelle Maschine. Du kannst dir bei den Cloud-Anbietern
Felix: Confidential Computing virtuell Maschinen geben lassen.
Felix: Genauso wie du dir eine normale virtuelle Maschine geben lassen kannst.
Geek: Also die haben so ein Web-Interface, da kann ich ja sagen, erstelle mir eine virtuelle Maschine.
Felix: Genau, du kannst auch programmatisch über eine API machen. Nehmen wir mal das
Felix: Beispiel. Du erstellst dir eine Confidential Computing VM.
Felix: Dann wird in dieser VM-Initial auch natürlich Software geladen,
Felix: nämlich ein Bootloader, ein Kernel
Felix: und dann im nächsten Schritt wird dann vielleicht ein Container geladen.
Felix: Jetzt ist die Remote Registration dafür da, um dir zu signalisieren,
Felix: dass diese Confidential VM
Felix: oder auch Enclave gut ist und dass sie dem entspricht, was du erwartest.
Felix: Das heißt, du bekommst vom Prozessor ein Zertifikat, in dem dann,
Felix: wie ähnlich vorhin beim TPM beschrieben, die Hashes der Software drinstehen,
Felix: die in dieser Confidential VM geladen worden sind und auch die Konfiguration der Confidential VM.
Felix: Und dann, wenn du das für gut empfindest, ist, kannst du einen Kanal herstellen
Felix: zu dieser VM basierend auf dem Zertifikat des Prozessors und kannst dann mit
Felix: dieser Confidential VM arbeiten.
Felix: Und theoretisch oder auch praktisch besser gesagt, kann dann dort dein MongoDB Container laufen.
Felix: Du hast gesehen, okay, das ist genau der MongoDB Container, den ich haben wollte.
Felix: Und der läuft wiederum auf genau dem Kernel, den ich haben wollte und genau
Felix: dem Bootloader, den ich haben wollte. Den vertraue ich und dann sprichst du
Felix: direkt schon mit deiner MongoDB und von da an ist eigentlich alles genauso wie bisher.
Felix: Der einzige Unterschied oder eigentlich der einzige Extraschritt war,
Felix: dass du dir einmal auf der Client-Seite das Remote Assistation Zertifikat angeschaut
Felix: hast, das der Prozessor ausgestellt hat.
Felix: Das schaust du dir natürlich meistens nicht von Hand an. Genauso wie dein Browser
Felix: sich automatisch für dich das Zertifikat von der Sparkasse D anschaut,
Felix: macht das in den meisten Fällen dann eine Software, die sich anschaut,
Felix: was sind da für Hashes in dem Zertifikat drin und welche Partei hat denn dieses
Felix: Zertifikat am Ende zu verantworten.
Felix: Da geht es dann hoch vom Prozessor nach Intel und das kann man dann nachvollziehen.
Geek: Beim Browser haben wir ja schon so Standardsoftwares. Gibt es da auch schon
Geek: Standardsoftwares, dass die das quasi überprüfen, weil ich glaube,
Geek: der Teil ist relativ einfach.
Geek: Ich fahre mir eine VM hoch, programmatisch, über Webinterface, wie auch immer.
Geek: Das heißt, ich habe jetzt eine, dann lasse ich meinen Mongo da drin laufen und
Geek: jetzt will ich nur noch mal wissen, bevor ich die Kündigung als Dokument da
Geek: ablege in dem Speicher, will ich einmal kurz überprüfen, passt das eigentlich?
Geek: Und ich würde ja erhoffen, dass da irgendetwas Standardisiertes schon existiert, dass es machen kann.
Geek: Ansonsten müsste ich ja regelmäßig mal irgendwie mit Curl, Weget,
Geek: sonst was einmal schauen, was da zurückkommt und das irgendwie intellektuell prüfen.
Felix: Also da gibt es keinen richtigen Standard für, was auch daran liegt,
Felix: dass es relativ komplex ist, was in diesen Zertifikaten drinstehen kann.
Felix: Ich bin mir sicher, dass sich dabei die Zeit noch ein Standard rausbilden wird,
Felix: aber aktuell ist es eher so, dass der Client dann anwendungsspezifisch ist.
Geek: Ich würde mir also quasi eine Komponente bauen. Also wenn ich das mache,
Geek: würde ich mir immer so ein Verifier-Skript Programmlännen schreiben.
Felix: Genau. Und dann würdest du da rein reinschreiben, folgende Hashes sind in Ordnung
Felix: und dann überprüft dein Skript das und dann, wenn das sagt, ja,
Felix: passt, dann kannst du von da an alles machen, wie bisher.
Felix: Remote Station ist super wichtig. Ohne Remote Station funktioniert das Ganze
Felix: oder macht das Confidential Computing wenig Sinn, weil ansonsten die Infrastruktur
Felix: natürlich einfach lügen könnte.
Felix: Und bei Edgeless Systems liegt auch ein großer Teil des Fokus auf der Remote Station.
Felix: Das das sinnvoll und einfach nutzbar zu machen.
Felix: Und da beschäftigen wir uns genau mit dem Thema, oder der Frage,
Felix: die du gerade hattest, wo weiß ich denn, dass das ein gutes Zertifikat ist,
Felix: mit guten Hashes und so weiter.
Felix: Da haben wir Client-Side-Tools für und auch Server-seitige Tools,
Felix: die zum Beispiel in einem Cluster von Confidential VMs die Remote Attestation übernehmen,
Felix: die jeden neuen Knoten, der dazukommt, jeden neuen Container einmal mittels
Felix: Remote Assistation verifizieren und dann nach außen ein gebündeltes Zertifikat quasi präsentieren.
Felix: Und zur Verifizierung dieses gebündelten Zertifikats haben wir dann,
Felix: auf der Client-Seite eine Library und Tools, mit denen man das dann in seinen
Felix: Workflow einbauen kann.
Felix: Aber ja, das ist dann, wo es ein bisschen komplexer wird, aber wenn man das
Felix: schon gekapselt hat und weiß, was man möchte, was man nicht erreichen möchte,
Felix: dann kann man das ähnlich handeln, wie man auch sonst Public-Key Dinge handelt.
Geek: Remote Attestation habe ich jetzt, ich habe mich ein bisschen vorbereitet auf
Geek: die Folge und ein paar Sachen gelesen und nicht viel verstanden.
Geek: Und bei Remote Attestation bin ich dann auch irgendwann über NVIDIA gestolpert
Geek: und über über Training von Modellen und dergleichen.
Geek: Ich verstehe noch nicht ganz, wenn ich über Remote Attestation und Grafikkarten zum Beispiel spreche,
Geek: wie das zusammenhängt, weil da habe ich ja, da verstehe ich das Konzept der
Geek: Enclave noch nicht so ganz, weil da habe ich ja nicht so sehr das Konzept von,
Geek: ich fahre eine VM hoch, sondern ich kenne Grafikkarten mehr so als,
Geek: die kriegen Aufgaben von der CPU oder von irgendwas zugewiesen,
Geek: dann sollen die mal machen.
Geek: Die haben auch keine Festplatte, also auch keinen Langzeitspeicher.
Geek: Das heißt, die unterscheiden sich so ein bisschen.
Geek: Wie verhält sich das jetzt mit Remote Attestation und Confidential Computing im GPU-Bereich?
Felix: Ja, spannende Frage. Da geht es darum, dass man einen sicheren Kanal von einer
Felix: Confidential VM, also sagen wir, du hast innerhalb einer Confidential VM dein
Felix: AI-Framework geladen, dein TensorFlow oder PyTorch oder so.
Felix: Und du hast das jetzt mit Remote Assistation schon überprüft und weißt,
Felix: okay, da läuft jetzt mein PyTorch.
Felix: Und dann hast du deine Trainingsdaten da hochgeladen und willst jetzt dein Modell trainieren.
Felix: Dann ist jetzt die Frage, wie erstelle ich jetzt einen sicheren Kanal zur GPU?
Felix: Das ging bisher nicht. Wie du vielleicht weißt, der GPU spricht man dann meistens
Felix: über CUDA, über den NVIDIA-Treiber.
Felix: Und der spricht dann direkt über Hardware, über den Bus mit der Grafikkarte.
Felix: Und diese Kommunikation von Treiber, der innerhalb der Confidential VM läuft,
Felix: zur Grafikkarte, Das konnte man bisher nicht sicher machen.
Felix: Da konnte einfach dann der Hypervisor ein, wir stellen uns vor,
Felix: wir haben jetzt unsere Confidential VM mit PyTorch etc., läuft in der Cloud
Felix: oder auf einem anderen nicht vertrauenswürdigen System bei dir im Keller.
Felix: Da konnte bisher mit normalen Grafikkarten, konnte der Hypervisor zum Beispiel
Felix: eine Grafikkarte simulieren und die Confidential VM hatte keine Möglichkeit zu überprüfen,
Felix: ob das jetzt eine echte Grafikkarte ist und konnte auch keinen sicheren Kanal
Felix: bootstrappen zu dieser Grafikkarte.
Felix: Das heißt, man musste die Daten quasi im Plaintext irgendwie an eine PCI-Stellstelle
Felix: geben und wusste nicht, was passiert mit den Daten.
Felix: Und dieses Problem ist jetzt behoben mit der neuen Nvidia H100-Grafikkarte.
Geek: Aber das ist ja schon die alte.
Felix: Das stimmt, das ist schon die alte. Oder die aktuelle. Man könnte sagen,
Felix: das ist die aktuelle. Die neue ist angekündigt, aber das ist die aktuelle.
Felix: Nämlich, die kann jetzt auch remote to the station. Und da hat auch wieder jede
Felix: Grafikkarte ein Public-Private-Key, also ein Zertifikat, das von Nvidia ausgestellt worden ist.
Felix: Dieses Zertifikat wird jetzt innerhalb der Confidential VM überprüft.
Felix: Aus dem Zertifikat kann man rauslesen, okay, es ist eine echte NVIDIA H100 GPU,
Felix: weil es ein Zertifikat von NVIDIA ist.
Felix: Und ich kann auch die Firmware-Version der Grafikkarte herauslesen.
Felix: Da kann ich dann abschätzen, okay, du könntest eine Policy haben,
Felix: ich vertraue keiner Grafikkarte unter Version 1.15, weil unter der Versionsnummer
Felix: gab es eine Schwachstelle, die bekannt war.
Felix: Das heißt, ich weiß genau, okay, das ist eine echte H100 mit der und der Firmware-Version.
Felix: Und wenn ich das überprüft habe und das gut finde,
Felix: dann kann ich genau wie vorhin beschrieben aus meiner Confidential VM einen
Felix: sicheren Kanal bootstrappen zu der H100 GPU und kann dann über diesen sicheren
Felix: Kanal meine Daten auf die Grafikkarte laden.
Felix: Und das wäre dann zuerst das KI-Modell und dann meine Daten im zweiten Schritt
Felix: und dann im dritten Schritt die Kernelfunktion, so nennt man das,
Felix: die da ausgeführt werden soll und dann im vierten Schritt würde ich dann die Funktion aufrufen.
Felix: Das heißt, bei der H100 wird die ganze Grafikkarte quasi zu einer großen Enklave
Felix: und das große Feature ist, dass ich einen sicheren Kanal von meiner Confidential
Felix: VM zur Grafikkarte aufbauen kann.
Felix: Das heißt, ich habe da jetzt verschiedene Hops. Ich habe von mir einen sicheren
Felix: Kanal in die Confidential VM und von der Confidential VM einen sicheren Kanal in die GPU.
Felix: Und der Treiber in der Confidential VM hat per Remote Assistation die GPU überprüft
Felix: und ich habe per Remote Assistation meine Confidential VM überprüft.
Geek: Zwei wesentliche Fragen, die mir im Kopf rumgehen. Das eine ist,
Geek: wie überprüfe ich de facto dann das Zertifikat?
Geek: Also gibt es da wieder Software von euch, die man zum Beispiel nehmen könnte
Geek: oder ich müsste mir was selber schreiben?
Geek: Von der GPU? Genau, das H100 Zertifikat.
Felix: Da bringt Nvidia Software für mit. Wenn ich jetzt innerhalb meiner confidential
Felix: VM die aktuellsten CUDA-Treiber laufen habe oder Tools, dann ist da schon automatisch
Felix: Software für die Verifizierung des Zertifikats der H100 dabei.
Felix: Ich könnte das auch selber schreiben. Ich glaube, da hat auch Nvidia Spezifikationen für.
Felix: Aber der einfachste Weg ist, okay, ich habe da einfach die Software von Nvidia installiert.
Geek: Dann kann ich die Software einfach nehmen und jetzt stelle ich mir die Frage,
Geek: ich sitze da in dem Rechenzentrum, es gibt hier mehrere Clients,
Geek: die auf einer Maschine sitzen mit einer H100 drin und mein Kanal zur H100 ist secure,
Geek: aber jetzt kommt der Felix Schuster vorbei und der holt sich auch eine Enklave,
Geek: die auch mit von dem Host-System, mit der GPU sprechen möchte. möchte.
Geek: Sprechen wir quasi mit derselben Enklave und sind sozusagen im selben verschlüsselten Bereich?
Geek: Oder kann ich alleine dann nur die Enklave nutzen? Du kannst sie nicht mehr
Geek: nutzen, weil ich sie irgendwie blockiere.
Felix: Da begebe ich mich jetzt auf dünnes Eis. Es kann sein, dass in der aktuellen,
Felix: Version kein Teilen möglich ist. Es wird aber in Zukunft definitiv möglich sein.
Felix: Also die Feature-Ankündigung ist schon da.
Felix: Ich bin mir nicht sicher, ob das in der aktuellen Firma-Version der Nvidia H100
Felix: schon implementiert ist.
Geek: Das heißt, der Podcast muss einfach zwei Wochen später sein.
Felix: Genau, genau. Was definitiv so ist, du teilst ja nicht den Club mit anderen.
Felix: Wenn der Handshake erfolgt ist, dann hast du dort deine eigene.
Geek: Okay, dann ist die auch nur für mich und dann kann ich in meinem Worldgarden
Geek: spielen und niemand anderes kommt rein.
Felix: Genau, genau. Genau. Was ich nicht genau weiß, was aber in Zukunft definitiv
Felix: kommt, ist, dass du mehrere Instanzen gleichzeitig auf dieser H100 haben kannst.
Felix: Also, dass du ein H100 in acht Mini-H100s aufteilst virtuell und dass jede wiederum
Felix: dann eine Enklave laufen lässt oder sich im Enklavenmodus befindet.
Felix: Das kann sein oder das wird so kommen.
Felix: Ob es in der aktuellen Firmware funktioniert, das weiß ich nicht genau.
Geek: Ich kann mir vorstellen, mein Training ist ja irgendwann vorbei und dann muss
Geek: ich entweder einen guten seriellen Modus haben, dass der Nächste,
Geek: der gerade trainieren möchte, das bekommt.
Felix: Ja, auf jeden Fall.
Geek: Oder dass es irgendwie partitioniert wird, sinnvoll, dass ich dann parallel trainieren kann.
Felix: Also das Nachhinein ist gar kein Problem. Du bist fertig, die Session wird beendet.
Felix: Der Nächste kann, ob es ja, dass parallel die Karte aufteilen.
Felix: Ich glaube, das geht schon, aber definitiv in Zukunft.
Geek: Wir sind sehr technisch gewesen, Wir haben über viele der Details schon gesprochen,
Geek: aber wir haben noch nicht so über den, also außer MongoDB natürlich und über
Geek: die Kündigung der HR-Abteilung gesprochen.
Geek: Aber was für Leute nutzen zum Beispiel eure Lösungen? Wo sehen wir Confidential
Geek: Computing heute schon im Einsatz?
Geek: Wo macht es heute schon Sinn oder macht es nur für bestimmte Teilbereiche Sinn?
Geek: Was ist so deine Einschätzung?
Felix: Also man kann sagen, etwas überspitzt, dass confidential computing aktuell vor
Felix: allem da eingesetzt wird, wo es Regulierung oder Paranoia gibt.
Felix: Also in Deutschland. Genau. Paranoia auch positiv besetzt in dem Fall vielleicht.
Felix: Im Security-Bereich ist natürlich auch eine gewisse Paranoia nicht verkehrt
Felix: manchmal. Es gibt wenig Regulierung, die es speziell fordert, aber es gibt sie.
Felix: Für Dinge wie zum Beispiel, vielleicht ist ja auch Hardware Security Module ein Begriff,
Felix: das ist etwas, das weit verbreitet ist im Markt, damit sichert man Schlüssel
Felix: ab und der Grund, warum HSMs so weit verbreitet sind, ist Regulierung.
Felix: Also im Finanzsektor etc.
Felix: Werden HSMs gefordert und das hat ein bisschen gedauert, aber mittlerweile ist
Felix: das ein Standardprodukt, was man braucht, wenn man bestimmte Dinge machen möchte.
Felix: Zum Beispiel, wenn man jetzt Kreditkartendaten verarbeiten möchte,
Felix: muss man bestimmte Daten und Schlüssel in einem HSM speichern.
Felix: Wir sehen, dass es bei Computer Computing in eine ähnliche Richtung geht,
Felix: aber dass wir da noch früher dran sind.
Felix: Und die Regulierung, die bisher existiert, das ist hier und da, poppt da was auf.
Felix: Vielleicht das populärste Beispiel ist in der Telematik-Infrastruktur in Deutschland.
Felix: Da gibt es Anforderungen der Gematik, das ist die Bundesagentur,
Felix: glaube ich, die sich um die technischen Vorgaben für Dinge wie das E-Rezept
Felix: und die E-Patientenaktik kümmert.
Felix: Die Gematik hat in ihren Anforderungen für diese Anwendungen Dinge gefordert,
Felix: die sehr schön auf Confidential Computing mappen.
Felix: Da wird immer davon gesprochen, dass es einen Betreiberausschluss geben soll,
Felix: also eine Abstimmung der Anwendung gegen die Infrastruktur und ihre Betreiber.
Geek: Da sind wir wieder bei dem Krankenhausbeispiel, wo dann die Krankenhaus-ITler
Geek: und die Ärzte unterschiedliche Arten von Zugang haben sollten.
Felix: Ja, oder insgesamt das Beispiel, ich möchte meine Daten auf einem System verarbeiten,
Felix: dem ich nicht komplett vertraue.
Felix: Das ist, glaube ich, genau die Sichtweise der Gematik da drauf.
Felix: Und dazu ist auch immer von einer sogenannten vertrauenswürdigen Ausführungsumgebung
Felix: die Rede, nämlich einer VAU, wie das die Gematik nennt, kurz.
Felix: Kurz, das Konzept dieser VAU passt auch sehr schön zum Konzept der Enklave oder
Felix: entspricht eigentlich eins zu eins dem Konzept der Enklave oder der Confidential VM.
Felix: Die Gematik hat in ihrer Anforderung nicht gesagt, oder nutzt das Wort Confidential
Felix: Computing nicht, aber man kann sagen, es wird umschrieben durch die technischen Eigenschaften.
Felix: Das heißt, man kann schon sagen, dass in der deutschen Telematik-Infrastruktur
Felix: Confidential Computing eigentlich gefordert ist. Und was wir sehen oder im Markt
Felix: ist, dass confidential computing dort auch breit eingesetzt wird.
Felix: Also das E-Rezept ist ja seit, ich glaube seit mindestens 12,
Felix: 18, 24 Monaten im Produktiveinsatz.
Felix: Die E-Patientenakte auch schon länger. länger.
Felix: Und die Anbieter von E-Rezept und E-Patientenakte nutzen Confidential Computing,
Felix: um den Anforderungen der Gematik gerecht zu werden.
Felix: Und dort wird auch Software von Azure Systems eingesetzt. Und unsere Software
Felix: kümmert sich da vor allem um die Tücken der Remote Attestation.
Felix: Dass ich dann so eine E-Patienten Anwendung oder E-Rezept.
Felix: Etc. bestehen häufig aus vielen Knoten, weil es natürlich auch viele Nutzer
Felix: gibt und unsere Software kümmert sich darum, dass die vielen Hundert oder Tausende von Enklaven,
Felix: dass die alle mittels Remote Attestation überprüft werden, dass dort eine Schlüsselverwaltung
Felix: stattfindet und so weiter.
Geek: Das Schöne ist jetzt, dass es ja völlig unabhängig davon ist,
Geek: ob die bei irgendeinem Dienstleister im Keller stehen, die Server,
Geek: oder ob die bei irgendjemandem, der als großer Cloud-Anbieter unterwegs ist,
Geek: Das ist, wenn das einmal confidential ist, ist es ja in jedem Kontext confidential.
Felix: Korrekt.
Geek: Ich erinnere mich da an diese wunderbaren T-Systems-Bemühungen,
Geek: irgendwann mal die Microsoft Cloud nach Deutschland zu bringen,
Geek: aber abgespeckt und immer mit schlechteren Versionen und dergleichen.
Geek: Und das ist ja eine der, wir sprachen gerade über Paranoia und über Deutschland,
Geek: scherzhaft, das ist ja, was in Deutschland auch immer wieder ein Problem ist,
Geek: dass amerikanische Cloud-Provider bestimmte Daten nicht haben sollen,
Geek: weil man da nicht speichern kann, was immer die Regularien sein mögen oder die
Geek: Paranoia einfach nur hergibt.
Geek: Und wenn man jetzt sagt, wir haben eine Lösung gefunden, die erlaubt es uns
Geek: entweder im Keller in Stuttgart, in einem Rechenzentrum, was eh Deutschland
Geek: niemals verlässt, das secure zu haben.
Geek: Aber dasselbe Konzept, dasselbe technologische Konzept könntest du auch auf
Geek: irgendwas anderes anwenden und sagen, das kannst du nur knacken,
Geek: wenn du da irgendwie ein Elektronenmikroskop draufstellst.
Geek: Das wird vermutlich keiner tun, es sei denn, das sind irgendwelche wirklichen
Geek: staatskritischen Geheimnisse.
Felix: Korrekt. Also ich glaube, man sollte aufgrund dieser Problematik,
Felix: dass es immer noch angreifbar ist physikalisch mit Elektronenmikroskop oder
Felix: auch mit Seitenkanalüberwachung,
Felix: dass es dadurch angreifbar ist, sollte man wahrscheinlich keine Staatsgeheimnisse
Felix: in chinesischen Rechenzentren hosten oder so.
Felix: Aber ein sehr schöner Fall ist, wie du sagst,
Felix: Ich muss jetzt nicht immer unbedingt das On-Prem haben, sondern ich kann jetzt
Felix: auch rechtssensible Anwendungen, wie vielleicht eine E-Patientenakte,
Felix: auf flexibler Infrastruktur hosten.
Felix: Das ist einer der großen Use Cases. ist.
Geek: Das kann ja vielleicht auch helfen. Wir haben auch mal viel mit Versicherungen
Geek: zu tun, die ja sehr lange, sehr viele Jahre in On-Prem-Systeme investiert haben.
Geek: Und wenn du jetzt anfängst zu gucken, Kubernetes war ja immer schon eine ganz
Geek: gute Idee, weil du kannst es relativ flexibel skalieren, aber jetzt könntest
Geek: du sogar den Confidentiality- Aspekt skalieren und sagen,
Geek: lassen wir doch das meiste Zeug mal bei uns laufen, lassen wir einen Teil davon
Geek: in einer Cloud laufen und dann finden wir mal raus, wie Cloud generell funktioniert.
Geek: Und das eröffnet ja diese Möglichkeiten jetzt, dass du sagen kannst,
Geek: die ganze Zeit schwebt mir so ein bisschen Blockchain im Kopf herum,
Geek: wo du so Trustless-Environments sind, ich will nicht an Blockchain denken,
Geek: aber es ist ja so, dass du die Trust im System einfach nicht mehr brauchst,
Geek: du hast andere Möglichkeiten gefunden, wie du damit umgehen kannst.
Geek: In diesem Fall ist es halt nicht so, dass du alles offen machst und sagst,
Geek: prüf doch nach. In diesem Fall ist es, du machst es zu, kannst nicht reingucken.
Felix: Genau.
Geek: Das ist halt der Unterschied hier.
Felix: Genau, also es gibt ein paar Überschneidungen mit Blockchain,
Felix: da kann ich gleich noch was zu sagen, Aber ich glaube, das zentrale Stichwort ist Zero Trust.
Felix: Also Zero Trust beschäftigt sich ja,
Felix: Traditionell damit, wie ich in einem Netzwerk Systeme authentifiziere und der
Felix: Gedanke von Zero Trust ist ja, ich habe zwar mein Unternehmensnetzwerk,
Felix: aber ich betrachte es so, als ob es eigentlich unter Kontrolle des Angreifers wäre.
Felix: Und deswegen überprüfe ich bei jeder neuen Session, ist die andere Partei,
Felix: mit der ich spreche, die richtige und dann setze ich verschüsselte Kanäle auf.
Felix: Das heißt, ich vertraue meinem eigenen Unternehmensnetzwerk eigentlich nicht
Felix: mehr oder ich vertraue meinem Cloud-gehosteten Netzwerk nicht.
Felix: Das ist Zero Trust klassischerweise.
Felix: Und Confidential Computing erweitert das jetzt schön auf die Compute-Infrastruktur.
Felix: Da vertraue ich nicht nur jetzt meinem Netzwerk nicht mehr, sondern ich vertraue
Felix: auch meinen Knoten im Netzwerk nicht mehr und starte deswegen auf den Knoten
Felix: dynamisch sichere Ausführungsumgebungen, die sich dann auch wieder ausweisen können.
Felix: Ich habe vor einer Zeit einen Blogpost geschrieben, da habe ich die Analogie
Felix: bedient, dass Zero Trust eigentlich sich darum dreht, dass man sein Unternehmensnetzwerk
Felix: so wie Hotel-Wi-Fi betrachtet.
Felix: Also da kann alles drin sein.
Felix: Jedes Bit kann gefälscht sein oder mitgehört werden.
Felix: Und die Analogie dann zu confidential computing ist, dass ich zusätzlich dazu
Felix: meine Comput-Infrastruktur so betrachte, als ob ich auf jedem Knoten ungepatchtes
Felix: Windows 95 laufen hätte.
Felix: Und wenn ich das kombiniere, ungepatchtes Windows 95 auf Hotel-Wi-Fi,
Felix: dann habe ich ein sehr pessimistisches Bild meiner Infrastruktur,
Felix: was aber, glaube ich, auch der richtige Ansatz ist und dann mit confidential
Felix: computing und existierenden Zero-Trust-Ansätzen kann ich dann trotzdem eine sichere und,
Felix: überprüfbare Datenverarbeitung haben.
Geek: Zero Trust klingt immer so fies, finde ich, aber eigentlich ist es ja genau,
Geek: das Umgekehrte, weil du kannst jedes Gerät mitbringen, was du möchtest,
Geek: diese Bring-Your-Own-Device-Policies und was nicht alles da dran hängt.
Geek: Ich kann mit meinem eigenen Laptop arbeiten, weil ich das gewohnt bin,
Geek: und du hast nicht mehr dieses, ich weiß nicht, ob es heute noch aktuell ist,
Geek: aber ich kann mich erinnern, ich war mal bei Kunden und wenn du da das LAN-Kabel
Geek: in die Dose gesteckt hast mit deinem Laptop, der nicht vom System war,
Geek: ist das gesamte Netzsegment runtergefahren, weil es eben eben nicht Zero Trust war.
Geek: Für denjenigen, der sich nicht damit auskennt, klingt es ja völlig schizophren,
Geek: weil wenn es Zero Trust ist, dann muss man es doch runterfahren,
Geek: wenn da kein Vertrauen mehr ist. Im Gegenteil, es ist ja genau andersrum.
Geek: Es ist so, dadurch, dass ich so tue, dass jeder wie auf dem Marktplatz alles
Geek: an Absichten haben kann, gehe ich halt in jeder einzelnen Interaktion hin und
Geek: sage, jetzt weist sich doch nochmal kurz aus, dass wir wirklich über dieses
Geek: Thema sprechen können, gemeinsam.
Geek: Und ich gehe nicht davon aus, wer im Unternehmensnetzwerk ist,
Geek: der kann schon alles lesen. Da muss man nicht mehr aufpassen.
Felix: Ja, definitiv. Genau so ist es. Vielleicht das Thema Regulierung noch kurz abzuschließen.
Felix: Wir haben das gerade über Gematik und E-Patientenakte gesprochen.
Felix: Es kommt jetzt auch eine neue Regulierung namens DORA.
Felix: Das ist der Digital Operational Resiliency Act der EU.
Felix: Da geht es um IT in der Bankenlandschaft und dort gibt es einen Absatz der Encryption
Felix: in Use und oder Trusted Execution Environments,
Felix: also das Englische, die englische Entsprechung der gerade genannten vertrauenswürdigen
Felix: Ausführungsumgebung fordert.
Felix: Das heißt, das ist so der, das könnte der Startschuss für breiteres Confidential
Felix: Computing im Banken- und Finanzsektor sein. Nein.
Geek: Lass uns da nochmal ganz kurz sortieren. Ich hatte mir fest vorgenommen,
Geek: das am Anfang zu machen, aber diese Unterscheidung,
Geek: Addressed, in use, in transit, noch mal kurz zu klären.
Geek: Wir haben ja drei Gegenden. Also wir sprachen eben über das 1970er IT-Handbuch,
Geek: wo man sagt, es gibt eine CPU, es gibt einen Kurzzeitspeicher,
Geek: es gibt einen Langzeitspeicher.
Geek: Wenn ich den Computer ausmache, dann sind die Daten addressed.
Geek: Und wenn ich dann aus meinem Rechner die Festplatte ausbaue und in einen anderen
Geek: Rechner einbaue und die dann lesen möchte, wäre es ganz gut,
Geek: wenn das nicht ginge. Dafür gibt es Festplattenverschlüsselung.
Felix: Korrekt.
Geek: Das ist ja der ganze Addressed-Tag.
Felix: At rest, richtig, im Ruhezustand.
Geek: Und dann kann das Ganze jetzt passieren, dass es in Transit ist.
Geek: Ich habe zwei Computer, ich habe einen Datenbank-Server und ich nehme einen
Geek: Web-Server, auf dem läuft meine Web-Anwendung.
Geek: Und jetzt schiebe ich die Daten hin und her. Wenn jemand abfragt,
Geek: ich möchte bei Ebay eine E-Gitarre kaufen, dann fragt er in die Datenbank,
Geek: habe ich gerade E-Gitarren oder so.
Geek: Damit das verschlüsselt ist, was dazwischen ist, haben wir den ganzen HTTPS-Teil.
Geek: Wir haben alles, hatten wir gerade schon viel darüber gesprochen,
Geek: über TLS-Verschlüsselung, das Asymmetrische und dergleichen.
Geek: Damit sind wir in Transit. kennen wir Ewigkeiten schon.
Geek: Also das grüne Symbol, inzwischen hat, glaube ich, kein Browser mehr die Möglichkeit,
Geek: dass du wirklich HTTP-Seiten sinnvoll aufrufen kannst.
Felix: Da kommen drei Warnungen und der macht sich selber aus.
Geek: Also hat sich auch im Laufe der Zeit einfach eingeschlichen.
Geek: Weiß nicht, ob BitLocker jetzt auch für Festplatten schon Standard ist,
Geek: aber wir wissen, wir haben da schon etabliert was.
Geek: Und InUse war ja sozusagen die letzte Bastion. Also während der Computer läuft
Geek: und dann passt es natürlich, wenn du mehrere Nutzer auf einem Computer hast.
Geek: Das macht ja keinen Sinn an demselben Rechner, an derselben Tastatur,
Geek: weil dann kannst du es schwierig schützen, weil dann ist ja schon entsperrt sozusagen der Rechner.
Geek: Aber wenn du einen Rechner hast, da können sich zwei Menschen dran anmelden,
Geek: kann der eine Mensch jetzt sehen, was der andere macht, indem er zum Beispiel
Geek: sich eine Speicherseite ausliest aus dem RAM.
Felix: Oder ein Rootkit oder ein Virus kann die Daten sehen, theoretisch.
Felix: Und da kommt Comfort Edge, weil wir Dinge spielen, nämlich dass dann während
Felix: der Verarbeitung die Daten trotzdem verschüsselt und geschützt sind.
Felix: Und dass dort trotzdem das Rootkit im Arbeitsspeicher rumverwerten kann und
Felix: trotzdem immer nur Verschleißdaten sieht.
Geek: Damit haben wir eigentlich den gesamten Bereich schon abgedeckt,
Geek: wie Confidential Computing ist.
Geek: In welchen Bereichen findest du es am spannendsten im Moment?
Geek: Wir hatten kurz über DORA gesprochen, wir hatten über Patientenakten gesprochen.
Geek: Was sind so deine Lieblings-Usage-Szenarien? Wo würdest du am liebsten mehr
Geek: Confidential Computing sehen oder wo freust du dich, dass es heute eingesetzt wird?
Felix: Ja, also da gibt es so zwei, drei Themen. Zum einen natürlich AI.
Felix: AI ist gerade super spannend, auch ohne Confident Computing.
Felix: Ich glaube, jeder, der ChatGPT schon mal benutzt hat, hat erstmal einen kleinen Schock bekommen.
Felix: Ich kenne es auch aus meinem beruflichen Kontext.
Felix: Ich würde gerne ChatGPT für viele Dinge verwenden. Zum Beispiel,
Felix: ich bekomme viele Verträge vorgelegt,
Felix: jetzt nicht immer die wichtigsten Verträge, es könnten dann Non-Disclosure-Agreements
Felix: sein über zehn Seiten und da ist es zum Beispiel praktisch,
Felix: wenn man den Vertrag einmal bei ChatGBT hochlädt und fragt, ist das ein Standardvertrag
Felix: oder wo müsste ich mal genauer reinschauen?
Felix: Weicht der von der Norm ab oder kann ich das vielleicht auch einfach nur mal
Felix: überfliegen, diesen NDA?
Felix: Natürlich sind das dann häufig auch schon Daten, die vielleicht doch relevant
Felix: sind, weil da auch Vertragspartner drinstehen, weil dort vielleicht auch schon
Felix: sensible Daten oder sensible Punkte besprochen werden.
Felix: Und da hat man dann oft die Hemmnis oder vielleicht auch gar nicht die Erlaubnis,
Felix: solche Daten mit Angeboten wie ChatGPT zu teilen.
Felix: Mit Confidential Computing kann man jetzt Dienste erstellen,
Felix: Chat-GPT-artige Dienste erstellen, bei denen die Daten, die in den Dienst reingehen,
Felix: durchgehend verschüsselt bleiben.
Geek: Bleiben in einer Enklave und dann in der nächsten Enklave.
Felix: Genau, sie gehen quasi von meinem Computer, werden sie verschüttet,
Felix: hochgeladen, bleiben dann innerhalb der Enklave, werden dann auf die Enklave
Felix: in der GPU geladen und dort verarbeitet.
Felix: Und wenn man das jetzt richtig zusammenzurrt, dann kann man nicht nur einen
Felix: Schutz gegen die Infrastruktur haben. Also, wie du vielleicht weißt,
Felix: ChatGPT läuft auf Azure-Infrastruktur.
Felix: Mit Computing kann ich einen ChatGPT-Art-in-Games bauen, bei dem die Daten gegenüber
Felix: der Infrastruktur, wie zum Beispiel Azure, abgeschirmt sind.
Felix: Aber ich kann auch einen Schritt weiter gehen, wenn ich es besonders clever
Felix: mache, kann ich auch OpenAI ausschließen, den Betreiber des Services. ist.
Felix: Da muss man ein bisschen mehr an Gehirnschmalz investieren, also es ist dann
Felix: nicht nur Lift & Shift, so wie wir es gerade mit der MongoDB beschrieben haben,
Felix: sondern man muss sich da tiefer Gedanken drüber machen, aber es ist technisch möglich, ein,
Felix: Chat-GPT-artigen Dienst zu erstellen, bei dem der Prompt, meine Eingabe,
Felix: meine Anfrage an Chat-GPT durchgehend geschützt bleibt und niemand außer mir
Felix: weiß, was ich gerade mit diesem AI-Modell bespreche.
Felix: Das ist, glaube ich, super für viele Kontexte, also Behörden,
Felix: Gesundheit, man kann sich vorstellen, Experten-System, dass das Hausärzten hilft und so weiter.
Felix: Das finde ich sehr, sehr spannend und.
Felix: Dann noch mal konkret, man kann viele spannende Anwendungen implementieren mit
Felix: Confidential Computing, die über den reinen Schutz gegen die Infrastruktur hinausgehen.
Felix: Man kann die Technologie zum Beispiel nutzen, um einen sicheren Datenaustausch
Felix: zwischen Parteien herzustellen.
Felix: Also sagen wir, wir haben Partei A, B, C und die möchten gerne Daten tauschen,
Felix: ohne sich die gegenseitig zu zeigen.
Felix: Dann kann man das mit Confidential Computing implementieren.
Felix: Das ist dann quasi eine neue Art von Anwendung, die durch confidential computing möglich wird.
Felix: Das ist wieder dann nicht Lift und Shift, sondern ich baue etwas Neues und nutze
Felix: diese Runtime Encryption und die Remote Addition zusammen, um eine gemeinsame
Felix: Datenverarbeitung zu realisieren, in die von außen keiner reinschauen kann.
Felix: Wo aber jeder genau weiß, was dort drinnen passiert durch die Remote Addition.
Felix: Und am Ende ein Datenstrom herauskommt,
Felix: der dann interessant sein kann in verschiedener Art und Weise.
Felix: Und ein konkretes Beispiel ist, wir haben mit einer Firma oder mit einer NGO
Felix: namens Hope for Justice jetzt ein Projekt gehabt.
Felix: Hope for Justice kümmert sich um die Bekämpfung von Menschenhandel und die haben
Felix: viele Daten zu Vorfällen in dem Bereich und wollten die gerne mit anderen NGOs austauschen.
Felix: Hope for Justice ist vor allem in England tätig.
Felix: Die wollten dann gerne mit ähnlichen Organisationen in Südamerika oder in Osteuropa
Felix: oder in Deutschland Daten austauschen,
Felix: um die Menschenhandelsnetzwerke besser nachvollziehen zu können und Täter,
Felix: Opfer besser identifizieren zu können.
Felix: Da haben wir denen mit der Hilfe der Firma Intel eine Plattform gebaut,
Felix: wo genau das möglich ist.
Felix: Sie können selektiv Daten hochladen.
Felix: Andere können dann auch selektiv Daten hochladen. Und dann wird innerhalb der Plattform.
Felix: Wird dann geguckt, okay, folgende Personen kommen in euren beiden Datenbanken
Felix: vor und dann kommt als Signal nur raus, schaut euch doch mal Datenbank Eintrag 53 an.
Felix: Die andere NGO müsste zu der mehr wissen.
Felix: Und so bleibt dann quasi die Privatsphäre der Menschen in der Datenbank gewahrt
Felix: und es wird nur ein Signal herausgegeben, zu welcher Person beide Organisationen
Felix: oder mehrere Organisationen Informationen haben.
Felix: Das ist zum einen ein sehr schöner Case und zum anderen auch ein gutes Beispiel
Felix: für das, was noch mehr mit Confidential Computing möglich ist,
Felix: außerhalb von reiner Datensicherheit.
Geek: Ich stelle mir vor, dass gerade Datenprodukte, also wir kennen das ja auch über
Geek: diese Data Spaces, die es so gibt, das heißt Gaia-X und Co.
Felix: Genau, da gibt es viele Überschneidungen. Also das wäre dann quasi ein Data
Felix: Space, genau, definitiv. Und da geht es auch, ich habe vorhin,
Felix: haben wir ganz kurz mal über Blockchain und Krypto gesprochen,
Felix: das ist auch die Überschneidung mit Blockchain und Krypto.
Geek: Krypto hast du jetzt gesagt.
Felix: Ich habe nur Blockchain gesagt. Okay. Nämlich, da geht es, ich meine,
Felix: Ethereum, da geht es um Smart Contracts.
Felix: Ein Problem, das Smart Contracts manchmal haben oder generell haben,
Felix: ist, dass alles, was dort passiert, öffentlich ist.
Felix: Und mit Confidential Computing kann ich sozusagen Smart Contracts erstellen,
Felix: bei denen, die von außen nicht einbar sind, so ähnlich, wie ich es gerade beschrieben habe.
Geek: Also Confidential Contracts.
Felix: Confidential Contracts könnte man es nennen, genau. Von außen kann ich sehen,
Felix: was dort drin passiert oder welche Logik dort läuft, aber ich kann nicht sehen,
Felix: welche Daten verarbeitet werden. Das ist ja...
Geek: Ich bin skeptisch, ob das dem ganzen Thema zum Durchbruch verhelfen wird.
Felix: Ich glaube, die Datensicherheit ist deutlich spannender, aber aus Nerd-Sicht
Felix: ist das auch ein interessantes Thema.
Geek: Ich habe verstanden, was Confidential Computing so macht. Ich bin gespannt,
Geek: wo es hingeht. Hast du so einen Tipp, wie sich die nächsten Jahre in dem Bereich entwickeln werden?
Felix: Also ich bin natürlich optimistisch, klar, auch schon aus Berufsgründen.
Felix: Man hört häufig, dass man annimmt, dass Confidential Computing so ähnlich sich
Felix: entwickeln wird wie TLS.
Felix: Vor zehn Jahren war TLS auch eher was Esoterisches, eher was für Online-Banking,
Felix: eher was für große Enterprises.
Felix: Mittlerweile ist ja jeder Blog, jede Party-Pick-Seite mit TLS geschützt.
Felix: Und der Browser lässt sich eigentlich kaum noch eine Seite aufmachen,
Felix: die nicht mit TLS geschützt ist.
Geek: Wir haben bei TLS, weil wir es noch gar nicht angesprochen haben,
Geek: schiebe ich das noch schnell nach.
Geek: Bei TLS haben wir ja auch immer so ein Performance-Penalty, wenn wir über Confidential Computing sprechen.
Geek: Was sind die Kosten für Confidential Computing außer erhöhter Komplexität?
Felix: Man kann vielleicht sagen, Performance-Impact von 10%. Das ist natürlich ganz grob.
Felix: Es gibt natürlich auch verschiedene Arten von Performance, Latency, Throughput etc. etc.
Felix: Aber ja, 10% ist vielleicht ein guter Pi mal Daumen. Ich glaube,
Felix: TLS liegt auch so in dem Bereich.
Felix: Und ich glaube, das ist schon ein Rahmen, wo es sich für viele Anwendungen lohnen kann.
Felix: Und ja, was von vielen Experten erwartet wird, ist, dass Confidential Computing
Felix: irgendwann zu so einem Hygienefaktor wird wie TLS, weil es recht günstig ist.
Felix: Und wenn es überall verfügbar ist und auch die Software soweit ist,
Felix: dann ja, warum nicht anschalten, wenn ich dadurch die ganzen Vorteile erhalte.
Felix: Von daher glaube ich, dass es so ähnlich den Weg gehen wird wie TLS,
Felix: und dass in ein paar Jahren große Teile der Cloud confidential sind und ich
Felix: genau vom ersten Bit nachvollziehen kann, was auf meinen Daten läuft und niemand
Felix: auf meine Daten zugreifen kann.
Geek: Du hast gesagt, zehn Jahre haben wir das jetzt schon. Die meisten CPU-Generationen,
Geek: die jetzt aktuell sind, können das oder können das alle? Oder muss man noch
Geek: so ein bisschen warten, bis einmal das Rechenzentrum durchgewischt wird von irgendwem?
Felix: Es können alle Server-Prozessoren von Intel und AMD.
Felix: Und die aktuelle ARM-Server-Prozessoren-Architektur kann es auch.
Felix: Aber es wird noch nicht implementiert im breiten Feld. Weil,
Felix: wie du vielleicht weißt, ARM ist ja nur die Spezifikation.
Geek: Ist ja Blueprint, genau.
Felix: Genau, und dann müssen das Firmware...
Felix: Huawei oder Ampera nehmen und in Prozessoren umsetzen.
Felix: Da ist es noch ein bisschen, da ist es glaube ich, hat es wenig Verbreitung
Felix: bisher, aber man kann auch sagen, dass ARM-Server-Prozessoren auch relativ wenig Verbreitung haben.
Geek: Auch eher esoterisch, ja.
Felix: Genau, also ich weiß natürlich, ich glaube, der größte Batzen da ist wahrscheinlich AWS Graviton.
Felix: Das läuft auf ARM-Prozessoren von AWS, glaube ich.
Felix: Das ist schon relevant, aber klar, ich sage mal 90, 95 Prozent,
Felix: ganz grob geschätzt, würde ich sagen, läuft auf Intel- und AMD-Prozessoren.
Felix: Und da können es alle, es kommt mal darauf an, was man genau haben möchte,
Felix: es kommen die letzten drei AMD Prozessor-Generationen, können es also schon ein paar Jahre zurück.
Felix: Für die sicheren Enklaven können es auch die Intel-Prozessoren schon mehrere Generationen zurück.
Felix: Für Confidential VMs, also eher so das Neuere mit auch Containern,
Felix: da kann es nur die aktuellste Intel-Prozessor-Generation.
Felix: Das wäre dann Emerald oder Sapphire Rapids.
Geek: Wenn jetzt jemand dazugehört hat, Lust hat, sich da einzuarbeiten,
Geek: da mal ein bisschen mit rumzuspielen, wohin würdest du sie schicken?
Geek: Was ist der beste Ort, um einzutauchen in Confidential Computing?
Felix: Da gibt es verschiedene Möglichkeiten. Es gibt vom Confidential Computing Konsortium
Felix: eine Reihe von ganz guten White Papers und Präsentationen.
Felix: Da kann man gut starten.
Felix: Es gibt von uns organisiert die Open Confidential Computing Conference mit hochkarätigen
Felix: Speakern, wie zum Beispiel dem Azure CTO, Intel CTO, AMD CTO.
Felix: Die letzte Iteration lief im März diesen Jahres, nicht zu lange her.
Felix: Da gibt es sowohl Vorträge, die einzelne Anwendungen vorstellen,
Felix: die einen Überblick geben über das Thema, aber auch dann Spezialistenvorträge.
Felix: Ja, das findet man gut auf YouTube.
Felix: Wenn man mehr so der YouTube-Typ ist, ist, glaube ich, OC3 oder Open Computing
Felix: Conferences kann das ein guter Startpunkt sein.
Geek: Das war ein Geek kommt selten allein. ein. Vielen Dank fürs Zuhören und großen Dank an dich, Felix.
Felix: Ja, vielen Dank. Hat Spaß gemacht. Gerne wieder.
Geek: Wenn unsere Hörer jetzt mehr von dir wissen wollen, wo finden sie dich im Netz?
Felix: Sie finden mich auf LinkedIn und per Mail bin ich auch erreichbar.
Felix: Das wäre FS, zwei Buchstaben, Vorname, Nachname, jeweils der erste Buchstabe, at edgeless.systems.
Geek: Wenn ihr Feedback zu dieser Folge
Geek: habt, könnt ihr es gerne unter www.eingiekommseltenerlein.de eintippen.
Geek: Macht es gut. Bis zur nächsten Folge. Wir hören uns.