Slide 1

Slide 1 text

Geheimniskrämerei in der Azure- Cloud mit dem Azure Key Vault Manuel Meyer Azure Solution Architect, Trivadis AG www.manuelmeyer.net @manumeyer1

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Vulnerabilities „Firewall Konfiguration“ „Betriebssytem- Bugs“ „Faule Sysadmins“ „Web Server Config“

Slide 5

Slide 5 text

Applications 83% Operating Systems13% Hardware 4% VULNERABILITY CLASSIFICATION

Slide 6

Slide 6 text

https://www.informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/

Slide 7

Slide 7 text

2 Probleme: Der User & die IT-Leute

Slide 8

Slide 8 text

Der User

Slide 9

Slide 9 text

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.

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Azure Storage Encryption Encryption at Rest: ▪ PMK: Platform Managed Key (default) ▪ CMK: Customer Managed Key (a.k.a. BYOK) ▪ Client-Side Encryption.

Slide 25

Slide 25 text

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.

Slide 36

Slide 36 text

Links ▪ Docs: https://docs.microsoft.com/en-us/azure/key-vault/ ▪ Key Vault Developer Guide: https://docs.microsoft.com/en-us/azure/key- vault/general/developers-guide ▪ Key Vault Diagnostics: https://zimmergren.net/azure-key-vault-diagnostics- who-accessing-your-vault/

Slide 37

Slide 37 text

Thank you! Manuel Meyer www.manuelmeyer.net @manumeyer1 [email protected]