EDUCATION, CRYPTO, KEYS

🔐 Kriptogrāfija - dati miera stāvoklī, pārraidē un lietošanā

Septiņas tēmas par to, kas tieši aizsargā datus katrā stāvoklī: kādi ir primitīvi un kuru problēmu katrs atrisina, kā dati tiek aizsargāti diskā, tīklā un apstrādes laikā, kā tiek pārvaldītas atslēgas un kas mainās līdz ar post-kvantu standartiem.

Datu dzīves cikls

Trīs stāvokļi, trīs draudu modeļi, trīs kontroles

Datu trīs stāvokļi un katram atbilstošā aizsardzība Dati miera stāvoklī, pārraidē un lietošanā; katram stāvoklim savs drauds un sava kontrole. Viens datu kopums, trīs draudu modeļi MIERA STĀVOKLĪ Nozagts disks vai kopija Diska un lauka šifrēšana Atslēgu hierarhija PĀRRAIDĒ Noklausīšanās, starpnieks TLS 1.3, mTLS Sertifikātu ķēde LIETOŠANĀ RAM Atmiņas izraksts, administrators Minimizēšana, tokenizācija Uzticamā izpildes vide Vājākais stāvoklis nosaka kopējo aizsardzību

Nav jēgas šifrēt disku, ja tie paši dati ceļo pa tīklu bez TLS, un nav jēgas no TLS, ja rezerves kopija guļ atvērtā veidā. Aizsardzība tiek plānota visiem trim stāvokļiem, ne vienam.

Kriptogrāfija nav mērķis

Tā ir kontrole, kas risku pārvieto no datiem uz atslēgām. Ja atslēga glabājas blakus šifrētajiem datiem, risks nav mazināts, tikai pārbīdīts.

Trīs mērķi

Konfidencialitāte (neviens cits nelasa), integritāte (neviens nemaina nepamanīts), autentiskums (zināms, kas sūtīja). Šifrēšana pati par sevi dod tikai pirmo.

Biežākā kļūda

Pašu rakstīts kriptogrāfijas kods. Algoritmi ir publiski un pārbaudīti; ievainojamības rodas ieviešanā - nejaušības avotā, atkārtotā nonce, laika noplūdē.

Būvbloki

Primitīvi - kurš kuru problēmu atrisina

Kriptogrāfijas primitīvi un to atrisinātās problēmas Katrs primitīvs risina citu problēmu Simetriskā Viena atslēga AES-256-GCM ChaCha20-Poly1305 Ātra, liels datu apjoms Problēma: atslēgas nodošana Asimetriskā Atslēgu pāris RSA-3072, ECDSA P-256 X25519, Ed25519 Atrisina atslēgas nodošanu Lēna, maziem datiem Jaucējfunkcijas Vienvirziena SHA-256, SHA-3 BLAKE2 Pirkstu nospiedums datiem NAV paroļu glabāšanai Atvasināšana No paroles uz atslēgu Argon2id, scrypt HKDF (atslēgām) Apzināti lēna, ar sāli Pretojas vārdnīcas uzbrukumam MAC un AEAD HMAC-SHA256, AES-GCM Integritāte pret NODOMU Prasa kopīgu slepenu atslēgu Ciparparaksti Ed25519, ECDSA, RSA-PSS Integritāte + autorība Pārbauda ikviens, nenoliedzamība

Praksē tos kombinē: asimetriskā vienojas par sesijas atslēgu, simetriskā šifrē datu plūsmu, AEAD vienlaikus nodrošina konfidencialitāti un integritāti. Tā strādā TLS.

Lieto

  • AEAD režīmu: AES-256-GCM vai ChaCha20-Poly1305
  • Parolēm: Argon2id (šī vietne to arī lieto)
  • Nejaušībai: secrets modulis Python valodā
  • Bibliotēku cryptography, ne pašu rakstītu kodu

Nelieto

  • AES-ECB - vienādi bloki dod vienādu šifrējumu
  • MD5, SHA-1 - sadursmes ir praktiskas
  • Jaucējfunkciju parolēm bez sāls un bez izmaksas
  • random modulis - tas ir paredzams

Dati diskā un datubāzē

Envelope encryption - atslēgu hierarhija

Envelope encryption: datu atslēga, atslēgu atslēga un saknes atslēga Datus šifrē DEK, DEK šifrē KEK, KEK aizsargā saknes atslēga HSM iekšienē. Katru atslēgu aizsargā nākamā DATI Šifrēti ar DEK AES-256-GCM DEK Datu atslēga Glabāta šifrēta KEK Atslēgu atslēga HSM / KMS HSM Saknes atslēga Nekad neiziet ārā Dalītas zināšanas šifrē šifrē sargā Rotācija pāršifrē tikai DEK - miljons ierakstu paliek vietā.

Kāpēc divi līmeņi: atslēgas rotācija nozīmē pāršifrēt tikai DEK, ne visus datus. Miljons ierakstu paliek vietā, mainās viena maza vērtība.

Pilns disks

Aizsargā pret nozagtu iekārtu. Kad sistēma darbojas, dati ir atvērti - tāpēc tas neaizsargā pret ielaušanos serverī.

Lauka līmenis

Šifrē konkrētus laukus (personas dati, veselības dati). Aizsargā arī pret DB administratoru, bet lauzta meklēšana un kārtošana.

Rezerves kopijas

Biežāk aizmirstā vieta. Kopija ir tie paši dati bez piekļuves kontroles. Šī vietne kopijas šifrē ar age un glabā ārpus servera.

Dati tīklā

TLS 1.3 - ko tas dod un ko nedod

TLS 1.3 rokasspiediens vienā apkārtgājienā TLS 1.3: viens turp-atpakaļ cikls Klients Serveris ClientHello + key_share ServerHello + sertifikāts + Finished Šifrēti lietojumdati Viens turp-atpakaļ cikls (1-RTT). TLS 1.3 noņēma novecojušos šifrus un vienmēr nodrošina forward secrecy.

Forward secrecy (PFS) nozīmē, ka vēlāk nozagta servera privātā atslēga neatšifrē agrāk ierakstīto satiksmi - katrai sesijai ir sava īslaicīga atslēga. Latviski to mēdz saukt par nākotnes noslēpumu, bet nozarē lieto oriģinālo terminu.

Ko TLS NEaizsargā

Metadatus: ar kuru serveri runā, cik daudz un cik bieži. Saturs ir slēgts, saziņas fakts nav.

Gala punkti

TLS beidzas pie servera. Ja aiz tā dati iet atvērti starp mikropakalpojumiem, aizsargāts ir tikai pirmais posms - tāpēc mTLS iekšējā tīklā.

Sertifikāts pierāda domēnu

Parasts sertifikāts apliecina domēna kontroli, ne to, ka īpašnieks ir godīgs. Pikšķerēšanas lapai arī ir derīga slēdzene.

Grūtākais stāvoklis

Dati apstrādes brīdī - ko ar tiem var izdarīt

Pieejas datu aizsardzībai lietošanas laikā Jo lielāka aizsardzība, jo augstāka cena Minimizēšana Neapstrādā to, kas nav vajadzīgs Briedums: pilnīgs Cena: zema Sāc ar šo Tokenizācija Īstā vērtība aizstāta ar bezjēdzīgu marķieri Briedums: pilnīgs Cena: vidēja Maksājumu kartēm Trusted Execution Env. Aparatūras anklāvs SGX, TDX, SEV-SNP Briedums: augošs Cena: augsta Slēpj no mākoņa uzturētāja Homomorfā Rēķina, neatšifrējot Arī drošs vairākpušu Briedums: šaurs Cena: ļoti augsta Specifiskiem uzdevumiem No kreisās uz labo: pieaug aizsardzība, pieaug arī cena un sarežģītība

Lietošanas stāvoklis ir vienīgais, kur nav universāla risinājuma. Godīgi vairumam sistēmu: minimizēšana un tokenizācija atrisina lielāko daļu, un tikai pēc tam ir vērts skatīties uz anklāviem.

Attestation

Uzticamās vides vērtība ir attālinātajā attestation: kods var pierādīt, kas tieši tajā darbojas. Bez tā anklāvs ir tikai vēl viena melnā kaste.

Uzticības pārnese

Anklāvs pārceļ uzticību no mākoņa uzturētāja uz procesora ražotāju. Tā ir maiņa, ne likvidēšana - un pret sānkanālu uzbrukumiem tie ir bijuši ievainojami.

Praksē

Šī vietne lieto vienkāršāko slāni: kartes dati nekad nenonāk serverī (maksājumus apstrādā Klix), tāpēc lietošanas stāvoklī tos nav jāaizsargā.

Kur kriptogrāfija praksē krīt

Atslēgas dzīves cikls (NIST SP 800-57)

Atslēgas dzīves cikla posmi Atslēgas dzīves cikls Ģenerēšana Droša nejaušība Glabāšana HSM, KMS Lietošana Viens mērķis Rotācija Plānota, ne tikai pēc Atsaukšana, iznīcināšana Arī no kopijām Vairums kriptogrāfijas kļūmju nav algoritmā, bet šajā ciklā Atslēga repozitorijā, atslēga blakus datiem, atslēga, kas nekad nav rotēta

Konstatēts noplūdis noslēpums nozīmē rotāciju, ne dzēšanu no vēstures. Kas reiz ir bijis publisks, ir jāuzskata par zināmu.

Viena atslēga, viens mērķis

Tā pati atslēga šifrēšanai un parakstīšanai vājina abus. Atsevišķas atslēgas nozīmē arī, ka vienas kompromitēšana neatver visu.

Dalītas zināšanas

Saknes atslēgu neviens cilvēks nezina pilnībā. Tā tiek sadalīta daļās, un atjaunošanai vajag vairākus cilvēkus - aizsardzība pret vienu vājo punktu.

Crypto-agility

Sistēma, kurā kriptogrāfisko algoritmu var nomainīt bez pārrakstīšanas. Tā kļuva par praktisku prasību tieši post-kvantu pārejas dēļ.

Standartu ainava

Kas ir apstiprināts un kas mainās

Post-kvantu standarti un pārejas laika līnija Post-kvantu pāreja jau ir sākusies 2024-08-13 NIST apstiprina FIPS 203, 204, 205 Šodien Hibrīdā pāreja Klasiskā un post-kvantu kopā Nākotne Klasiskā izņemta RSA un ECC pakāpeniski ārā Harvest now, decrypt later Šodien pārtverta satiksme var tikt atšifrēta nākotnē, kad būs pietiekami jaudīgs kvantu dators. Ilgi dzīvojoši noslēpumi ir apdraudēti jau tagad.

FIPS 203 (ML-KEM, atslēgu iekapsulēšana), FIPS 204 (ML-DSA, paraksti) un FIPS 205 (SLH-DSA, uz jaucējfunkcijām balstīti paraksti) NIST apstiprināja 2024. gada 13. augustā.

Algoritmi

FIPS 197 (AES), FIPS 180-4 (SHA-2), FIPS 202 (SHA-3), FIPS 186-5 (paraksti). Pārejas termiņus nosaka NIST SP 800-131A.

Pielietojums

NIST SP 800-175B (kā lietot), SP 800-57 (atslēgas), ISO/IEC 19790 (moduļu prasības), OWASP ASVS 6. sadaļa (pārbaudāmas prasības izstrādei).

Juridiskais

NIS2 21. panta 2. punkta h) apakšpunkts prasa kriptogrāfijas politiku. eIDAS regulē uzticamības pakalpojumus un kvalificētu e-parakstu Eiropas Savienībā.

Saīsinājumi

Visi ceļvedī lietotie apzīmējumi vienuviet.

AEAD
Authenticated Encryption with Associated Data - šifrē un vienlaikus nodrošina integritāti.
AES
Advanced Encryption Standard - simetriskais bloku šifrs (FIPS 197).
DEK
Data Encryption Key - atslēga, ar ko šifrēti paši dati.
FIPS
Federal Information Processing Standards - ASV federālie standarti; kriptogrāfijā de facto starptautiski.
HKDF
HMAC-based Key Derivation Function - atvasina atslēgas no jau slepenas vērtības.
HMAC
Hash-based Message Authentication Code - integritāte ar kopīgu slepeno atslēgu.
HSM
Hardware Security Module - aparatūra, no kuras atslēga neiziet.
KEK
Key Encryption Key - atslēga, ar ko šifrē citas atslēgas.
KMS
Key Management Service - atslēgu pārvaldības pakalpojums.
ML-DSA
Module-Lattice-Based Digital Signature Algorithm - post-kvantu paraksts (FIPS 204).
ML-KEM
Module-Lattice-Based Key-Encapsulation Mechanism - post-kvantu atslēgu apmaiņa (FIPS 203).
MPC
Multi-Party Computation - vairākas puses rēķina kopīgu rezultātu, neatklājot savus datus.
PFS
Perfect Forward Secrecy - vēlāk nozagta atslēga neatšifrē agrāko satiksmi; nozarē lieto angļu terminu.
PQC
Post-Quantum Cryptography - algoritmi, kas noturīgi arī pret kvantu datoru.
SLH-DSA
Stateless Hash-Based Digital Signature Algorithm - post-kvantu paraksts (FIPS 205).
TEE
Trusted Execution Environment - aparatūras anklāvs datiem lietošanas laikā.
TLS
Transport Layer Security - šifrēts kanāls tīklā; 1.3 versija ir pašreizējā.