🔐 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
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
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-GCMvaiChaCha20-Poly1305 - Parolēm:
Argon2id(šī vietne to arī lieto) - Nejaušībai:
secretsmodulis Python valodā - Bibliotēku
cryptography, ne pašu rakstītu kodu
Nelieto
AES-ECB- vienādi bloki dod vienādu šifrējumuMD5,SHA-1- sadursmes ir praktiskas- Jaucējfunkciju parolēm bez sāls un bez izmaksas
randommodulis - tas ir paredzams
Dati diskā un datubāzē
Envelope encryption - atslēgu hierarhija
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
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
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)
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
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ā.