Mein Ansatz (früher)
„Gleiches Passwort überall verwenden = NICHT GUT“
1 Low Security Password: heybuddy24
1 High Security Passwort: htowi_fle98dk$$+djk(43.
Slide 10
Slide 10 text
Mein Ansatz (heute)
Keepass
MFA.
Slide 11
Slide 11 text
Mein Ansatz (heute)
qhjp7n0Qdnctw87G5cPg
Lkjsdk32lkö2dlkj3klj%&/lkjs()
slkjsEWeio***djfkl1109823lskjwJ
…
Ein Ort für meine Passwörter
Auto-Complete
439 Einträge.
Slide 12
Slide 12 text
www.haveibeenpwned.com
Troy Hunt
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
Azure Key Vault Übersicht
1. Speichern und schützen von “Geheimnissen”
Keys, Secrets, Certificates
2. Geheimnisse anderen Apps und Services
“zur Verfügung stellen”
Slide 15
Slide 15 text
Basics
▪ Key
▪ Kryptographischer RSA Schlüssel
▪ Kann den Key Vault NIE verlassen!
▪ Apps müssen Ver-/Entschlüsselung und Signierung an den KV delegieren
▪ Secret
▪ Eine Sequenz von Bytes (unter 25kb)
▪ Authorisierte User schreiben secrets in den KV
▪ Authorisierte Apps lessen secrets vom KV
▪ Certificate.
Slide 16
Slide 16 text
Basics
Management
Plane
Data Plane
“Verwalten von
Geheimnissen”
“Arbeiten mit
Geheimnissen”
RBAC
KV Access Policy
RBAC (Preview)
Slide 17
Slide 17 text
Basics
▪ Software Protected Keys
▪ FIPS 140-2 Level 1
▪ HSM Protected Keys
▪ FIPS 140-2 Level 2
10k Operations = 0.03 EUR
Cert Renewal: 2.53 EUR
HSM Keys: 0.84 EUR/Mt. pro Key
HSM Advanced: 4.22/Mt. pro Key.
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
Azure Disk Encryption
Encryption at Rest:
▪ SSE with PMK (default): Storage Service Encryption with Platform Managed
Key
▪ SSE with CMK: Storage Service encryption with Customer Managed Key
▪ ADE: Azure Disk Encryption (OS Level)
▪ Windows: Bitlocker
▪ Linux: DM-Crypt
Slide 21
Slide 21 text
IaaS Disk Encryption
1. VM Stoppen (Deallocated)
2. Im Key Vault Disk Encryption aktivieren
3. Schlüssel erstellen
4. Disk Encryption Set erstellen und im KV berechtigen
5. Disk dem Disk Encryption Set zuweisen.
Digital Envelope, CEK, KEK, What???
Source: Nilay Parikh, https://blog.nilayparikh.com/azure/development/best-practices-client-side-encryption-with-azure-storage-services/
Slide 26
Slide 26 text
Demo: Client Side Storage Encryption
1. Storage Account erstellen (erledigt)
2. Applikation schreiben für Blob Upload: (erledigt: ClientSideEncryptionDemo)
3. Applikation im AAD registrieren (erledigt)
Erstellt einen Service Principal (objectId, secret)
4. Applikation für die Verwendung des Service Principals konfigurieren
(erledigt)
5. Schlüssel im KV erstellen “ClientSideEncryptionKey”
6. Eine KV Access Policy erstellen, damit die App den Schlüssen
“ClientSideEncryptionKey” verwenden kann.
7. Applikation ausführen.
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
Lets write some code!
App
Slide 30
Slide 30 text
www.shhgit.com
Slide 31
Slide 31 text
Lets write some code!
App
Slide 32
Slide 32 text
Ziel: Kein Secret in Code/Config
▪ 1. Service Principal verwenden
Wir brauchen ObjectId und Secret vom Service Principal im code
▪ 2. Verwenden einer Azure Managed Service Identity (MSI)
Der App Service unterstützt die MSI.
Slide 33
Slide 33 text
Demo: Kein Secret im Code/Config
1. Secret im Key Vault erstellen
2. AppService: Managed Identity Aktivieren
3. Key Vault: KV Access Policy für MSI erstellen
4. Code zur Abfrage des Secrets schreiben und deployen.
Slide 34
Slide 34 text
No content
Slide 35
Slide 35 text
Zusammenfassung
▪ Der Key Vault speichert:
▪ Keys: Können nie mehr raus aus dem KV
▪ Secrets: Beliebige Zeichenketten
▪ Certificates: Zertifikate
▪ Verwaltung von Geheimnissen via “Management Plane”
(Bspw. Azure Portal, abgesichert durch Azure RBAC)
▪ Verwendung der Geheimnisse über die Data Plane
(REST API, abgesichert durch Key Vault Access Policies)
▪ Scenarios
▪ Key Vault für IaaS Disk Encryption
▪ Key Vault für Client Side Storage Encryption
▪ Key Vault um Geheimnisse aus dem Code zu entfernen. Mit einer MSI.