breadcrumbDescription
Database-krypteringsproces
Salesforces databasekryptering fungerer på segmentniveau og krypterer og dekrypterer data i segmenter, typisk 64 KB eller mindre.
Krypteringsproces
Når en bruger gemmer data, hvis Database-kryptering er aktiv, forsøger databasekrypteringstjenesten at hente de nødvendige krypteringsnøgler fra dens krypterede nøglecache. Hvis nøglen ikke er i cachen, anmoder tjenesten om databasens lejerhemmelighed fra det regionale KMS (Key Management System). Dataoverførsel mellem KMS og krypteringstjenesten sikres af den gensidige TLS-protokol ved brug af et regelmæssigt roteret certifikat. Den hentede lejerhemmelighed gemmes derefter i den krypterede nøglecache.
Når et databasefragment er klar til at blive skrevet, genererer krypteringstjenesten et entydigt salt pr. fragment. Dette salt sammen med databaselejerhemmeligheden føjes til en KDF (Key Derivation Function) for at aflede en entydig datakrypteringsnøgle (DEK) for det specifikke fragment. Hele fragmentet krypteres derefter ved brug af OpenSSL AESGCM-256. Salt pr. fragment og en identifikator for det anvendte nøglemateriale gemmes sammen med det krypterede fragment i databasen.
Dekrypteringsproces
Når en godkendt bruger anmoder om krypterede data, henter databasekrypteringstjenesten de relevante krypterede databasefragmenter sammen med deres tilknyttede salt pr. fragment og en reference til lejerhemmeligheden, der blev brugt under krypteringen. Tjenesten kontrollerer først dens nøglecache for det matchende DEK. Hvis den ikke findes, anmoder den om databaselejerhemmeligheden fra det regionale KMS (igen sikret af mTLS) og lagrer den i cachen. Databasen bruger derefter den hentede lejerhemmelighed og salt pr. fragment i KDF til at aflede den korrekte DEK. Endelig dekrypteres dataene og returneres til brugeren.
