At Rest կոդավորումը
At Rest կոդավորումը
1) Ինչո՞ ւ է դա անհրաժեշտ, և թե ինչ ենք մենք պաշտպանում։
Սահմանումը։ At rest-ի կոդավորումը սարքի վրա գրված տվյալների պաշտպանությունն է (սկավառակներ, կեղտաջրեր, բեքապներ, օբյեկտներ, լոգներ, հիշողության տիկնայք), որպեսզի ֆիզիկական կրիչի կամ «հում» պահեստավորման մեջ չփակված հասանելիությունը չի բացահայտել բովանդակությունը։
Ի՞ նչ ենք ծածկում
Բլոկի/ալյումինե հատորները, օբյեկտի բջիջները, տվյալների բազաները, հերթերը/քեյվելները, քեշի տիկնայք, լոգներ/թրեյսներ, պահեստային պատճեններ, էքսպորտներ/բեռնարկղեր, միջուկի/գործընթացների տիկնայք, ենթաստամոքսային/swap։
Բազմաթիվ սցենարներ 'հաճախորդների/նախագծերի/շրջակա միջավայրի միջև մեկուսացում։
Ի՞ նչ չենք ծածկում, հիշողության նստաշրջանների գողություն, կենդանի գործընթացի վրա հարձակումներ, դիմումի խոցելիություն, տվյալների փոխզիջում։ Դրա համար անհրաժեշտ է «թռիչքի» կոդավորումը, խիստ վավերացումը/հեղինակային իրավունքը, իրավունքների և իրավունքների նվազեցումը (տե՛ ս համապատասխան հոդվածները ՝ «Վավերացում և հեղինակային իրավունք», «Ստորագրություն և հարցումների հավատարմագրում»)։
2) Սպառնալիքների և վերահսկողության նպատակների մոդել
Տիպիկ ռիսկեր
Մեքենայի կորուստ/գողություն (սկավառակ, ժապավեն, USB, զարգացողի սարք)։
Չարտոնված հասանելիությունը bapam/supshots/logam։
Արտոնությունների չարաշահումը պլատֆորմի/հիպերվիզորի/storage-nod մակարդակում։
Վարձակալների խաչմերուկը կազմաձևման սխալների դեպքում։
«Սառեցված» ժամանակային ֆայլերը և տիկնայք, որոնք հայտնվում են արտեֆակտների և պատկերների մեջ։
Նպատակները
1. Տվյալների գաղտնիությունը կրողի վրա։
2. Վարձակալների/շրջակա միջավայրի գաղտնագրական մեկուսացումը։
3. Ձեռնարկության կառավարումը (ստեղծում, պահպանում, հավատարմագրում, հետ կանչելը)։
4. Անջատողականությունը (ով և երբ օգտագործում էր բանալին)։
5. Վիրահատական ռիսկերի նվազեցումը պատահականության ժամանակ։
3) Ճարտարապետության հիմնական սկզբունքները
Մենք ծածկում ենք ամեն ինչ լռելյայն։ Opt-out-ն արգելված է առանց բացառությունների ռիսկի մակարդակում։
Մրցույթի հիերարխիա (envelope encryption)։ Root/KEK no DEK (encryption keys) ռուսական օբյեկտներ/ֆայլեր/BD էջ։
KFC/HSM-ը որպես վստահության աղբյուր։ KEK-ի գեներացիան և պահպանումը KFC/HSM-ում, բեռնաթափման վիրահատությունը/դեղամիջոցները կատարվում են այնտեղ։
Per-tenae/per-intaset բանալիներ։ Գրանուլյացիան մեկուսացման և ռոտացիայի պահանջների տակ է։
Պարտականությունների բաժանումը։ Պլատֆորմի թիմերը պաշտպանեցին ռուսական վարձողի սեփականատերերը։ Առնվազն արտոնություն (PoLP)։
Crypto-agility. Ալգորիթմները/երկարության անվտանգ տեղափոխելու հնարավորությունը։
Միգրացիան որպես գործընթաց, ոչ թե իրադարձություն։ Բանալիները և տվյալները պետք է աջակցեն «սայթաքող» փոխարինմանը։
4) Ալգորիթմներ և ռեժիմներ
Օբյեկտների/ֆայլերի/ձայնագրությունների համար ՝ AES-256-GCM կամ AES-256-SIV (AEAD վավերացումով)։
Բլոկային սարքերի/հատորների համար 'AES-XIV-256/512 (պաշտպանություն բլոկների փոխակերպումից; AEAD-ը MAC-ի հետ օգտագործելն է, որտեղ կարևոր է ամբողջականությունը)։
Տվյալների ավելացման համար
TDE (Transparent Data Encryption) движка: Oracle TDE, SQL Server TDE, MySQL/InnoDB TDE и пр.
Դաշտային/կառուցվածքային կրիպտոգրաֆիա (FFC/դետերմինացված կոդավորումը) - գաղտնագրված դաշտերում/ջոինսի որոնման հնարավորությունների համար։ կիրառեք անհապաղ։
Կոմպոզիցիայի գեներացիան և պահպանումը 'KEK - KFC/HSM; DEK-ը 'դիմումների հիշողության մեջ, որոնք կարճատև են, պահելիս' միայն ծածկված տեսքով։
5) Մրցույթի հիերարխիա և KFC/HSM/HSM
Մակարդակները
1. Root key (կարգավիճակը, HSM/KMS)։ Չի թողնում HSM/KFC պարագծերը։
2. KEK (Key Encryption Key). Նախագծի/շրջակա/վարձակալողի վրա։ Կառավարում է DEK-ի կյանքի ցիկլը։
3. DEK (Data Encryption Key). Օբյեկտի/ֆայլի/աղյուսակի/սեգմենտի վրա։ Կարճ, նավարկություն առանց կանգնելու։
Պրակտիկա
Բոլոր հղման վիրահատությունները/105 - KFC API-ի միջոցով աուդիտի միջոցով։
Քաղաքական գործիչներ. Ո՞ վ կարող է «օգտագործել» բանալին, որը կարող է «կառավարել» բանալին։
Georatroporation 2019: pin-to-region + dult-24l միջռեգիոնի համար։
Հնարավոր է «երկու չեկային» մոդել (երկու օպերատորներ) բարձր ռիսկի վիրահատությունների համար։
Ուժեղ մակարդակի մեկուսացնելու համար առանձին key-rings վարձողի վրա։
6) Ռոտացիան, ակնարկները և կոմպլենսը
DEK-ի լուծարումը 'թափանցիկ և անընդհատ (rolling re-encryption օբյեկտների/էջերի մակարդակում)։
KEK-ի լուծարումը 'պարբերական (օրինակ, 6-12 ամիս) + չարտոնված ակնարկ, երբ կասկածում է փոխզիջման մասին։
Մուտքի վերանայումը 'KHL քաղաքականության միջոցով; Գործողության unwrap = ակնթարթային «կրիպտո-ոչնչացում» տվյալների։
Պարբերագրերը նշում են, թե ով, երբ, ինչ իրավունքներով, օգտագործում է բանալիները։ պահել առանձին և նաև ծածկել։
Ստանդարտները և ստանդարտները. Մենք կենտրոնանում ենք արդյունաբերության պահանջների վրա (օրինակ, GDPR/PCI-թույլատրություններ/տեղական կարգավորիչներ), օգտագործում ենք հավաստագրված կրիպտոմոդուլներ (օրինակ, հավաստագրման մակարդակների համապատասխանությունը)։
7) Ամրոցները պահեստային տեսակների վրա
7. 1 Բլոկ/ալյումինե հատորները և WM/բեռնարկղերը
Ամբողջական կոդավորումը (XIV) + բեկորների կառավարումը KFC-ի միջոցով (տեղադրման ժամանակ հատորի նախաձեռնումը)։
Պաշտպանել swap, crash-տիկնայք, tom-տնօրինություն, բեռնարկղային overlay շերտեր, պատկերներ/AMI։
Նկարները/սարքավորումները միշտ ծածկագրված են առանձին DEK-ով։
7. 2 Օբյեկտի պահեստ
Envelope encryption: յուրահատուկ DEK օբյեկտի վրա; վերնագրեր/մետատվյալներ 'առանց PII արտահոսքի։
KFC-ի հասանելիության վերահսկումը վարձակալների և շրջակա միջավայրի բանալին։
կոդավորումը (SSE սեփական KFC) կամ հաճախորդ (CSE) ընտրելն է վստահելի մոդելի միջոցով։
7. 3 Տվյալների հիմքեր
Ներառել TDE-ն այնտեղ, որտեղ հասանելի է։ BD-ի բանալիները կապել KFC-ի հետ պլագինի/էքստենշնի միջոցով։
Հատկապես զգայուն դաշտերի համար կիրառական ծածկագրումն է (AEAD) մինչև BD մտնելը։
Ամսագրերը ռեդո/գործարքային լոգներ, արխիվային լույսեր, տիկնայք 'առանձին ծածկագրում, բանալիներ' առանձին։
7. 4 Logs/treiss/metriks
Լոգարանների ձևաչափը առանց զգայուն տվյալների լռելյայն (altizing)։
Լոգարանների արխիվները առանձին բանալիներ և կարճ TTL պահեստներ են։
Լոգարանների կարդալու հասանելիությունը 'A & A-ի և աուդիտի հետ ծառայության միջոցով։
7. 5 Պահուստային պատճեններ և օֆլինային կրիչներ
Միշտ ծածկել հաճախորդի կողմում մինչև ժապավենի/ամպերի ձայնագրումը։
Պահել բանալիները առանձին (out-of-band), escrow առանձին վերահսկողությամբ։
Արտակարգ դեպքերի համար գաղտնիության բաժանումն է (օրինակ, m-of-n), որպեսզի վերականգնի wwww.ter հասանելիությունը։
8) Բազմաբնույթ (multi-tenae)
Վարձողի բանալին 'KEK-per-tenae + DEK-per-intaset։
Քաղաքական մեկուսացումը 'KFC, IAM սահմանները, առանձին IDP դերերը։
Հաճախորդի խնդրանքով հեռացումը '«ծպտյալ-ստերեոտ» - հետ կանչել KEK վարձողը և ոչնչացնել DEK-ը։
Հաճախորդի համար հաշվետվությունները 'արտեֆակտներ, բեկորների հասանելիության լոգներ, հավատարմագրման ապացույց։
9) Արտադրողականություն և գործողություն
Ապարատային արագացում (AES-NI/x86, ARMv8 Crypto Extensions)։
Տաք ճանապարհների ավելացումը 'մենք ծածկագրում ենք I/O սահմաններում, խուսափում ենք երկակի կոդից առանց կարիքների։
KFC-ի նստաշրջանների պլանները, հիշողության մեջ փակված DEK-ի (TTL-ից և պաշտպանությունը ամբոխներից)։
SLO/metriks 'unwrap լատենտ, «փոխկապակցված» օբյեկտների մասնաբաժինը, KFC սխալները, bekap-2019 արագությունը։
10) Իրականացման գործընթացը (reference runbook)
Քայլ 0-ը տվյալների բուլգարիզացումն է։ Կատալոգավորումը բոլոր պարամետրերն ու արտահոսքի ուղիները (t.ru, dampa, էքսպորտը, antront.t.ru)։
Քայլ 1-ը հիմնական հիերարխիայի դիզայնն է։ Մենք որոշում ենք KEK/DEK մակարդակները, գրանուլյացիան, տարածաշրջանները, դերերը։
Քայլ 2 - ռեժիմների/գրադարանների ընտրություն։ Հաստատված ալգորիթմները, կրիպտոբիբլիոտեկները, տարբերակների քաղաքականությունը։
Քայլ 3-ը KFC/HSM-ի հետ ինտեգրումն է։ Գեներացիա/ծածկագիր/աուդիտ, IAM քաղաքականությունը, գեո-պինինգը։
Քայլ 4 - ձայնագրման կոդավորումը։ Ներառել լռելյայն, գոյություն ունեցող տվյալների միգրացիան background reencript-ի միջոցով։
Քայլ 5 - ռոտացիա և վթարային սցենարներ։ Հաշվարկները, «key compromise» թեստերը, «KFC-ը անհասանելի է»։
Քայլ 6-ռուսական և աուդիտ։ Դաշբորդները, ալերտները, հաշվետվությունները։
Քայլ 7 - ուսուցում և «secure coding»։ Ինժեներների համար դելդները, գաղտնիքները դնելու արգելքը։
11) Փորձարկում և հավատարմագրում
Crypto-unit-թեստերը 'AEAD-ի ճկունությունը (թեստերի ստուգում), մերժման վալիդացիան բայթ փոխելիս։
Failure-tes.ru: KFC-ի անջատումը, պայմանագրերի հնացած տարբերակները, KEK-ի հարկադիր արձագանքը։
Red/Blue-թեստերը 'փորձել կարդալ «հում» սկավառակը/դիպուկահարը/bakap։
Ստուգումը կատարվում է 'ալգորիթմների/երկարության միացում (crypto-agility)։
Գրադարանների հավաստագրում 'օգտագործել միայն ստուգված կրիպտոմոդուլները։ ամրագրել տարբերակները։
12) Հաճախակի սխալներ և ինչպես խուսափել դրանցից
Կրկնակի կոդավորումը առանց իմաստի։ Ավելորդ լատենտ և բարդություն։ Պահեք մի շերտ, որը տալիս է անհրաժեշտ նռնակություն և մեկուսացում։
Պահեստավորումը տեղադրված է տվյալների մոտ։ Բանալիները միշտ առանձին են, մեկ այլ մուտքի մոդելի տակ։
Մոռացված արտեֆակտներ։ Չբացահայտված ժամանակային ֆայլերը, CSV արտահանումը, աջակցության տիկնայք։ Միացրեք վերահսկողությունը CI/CD և Black Loss Systvention-ում։
Ռոտացիայի բացակայությունը։ Դարձրեք մի մասը pipeline/com, ոչ թե ձեռքով։
Լոգները զգայուն տվյալների հետ։ Տեղադրեք պայմանագիր լոգարանների ձևաչափի և ավտոմատ ալիմիզերների համար։
13) Մինի բաղադրատոմսեր (կեղծ)
Օբյեկտի Envelope-կոդավորումը
1) Request unwrap DEK from KMS by tenant KEK id dek = kms. unwrap(kek_id, wrapped_dek)
2) Generate fresh nonce/iv, encrypt payload (AEAD)
ciphertext, tag = aead_encrypt(dek, iv=random(), aad=metadata, plaintext=data)
3) Delete DEK from memory (zeroize), save {ciphertext, iv, tag, wrapped_dek}
KEK-ի լուծարումը առանց անցյալի
For each object:
new_wrapped_dek = kms. rewrap(old_wrapped_dek, old_kek_id -> new_kek_id)
store(new_wrapped_dek)
We do not touch the data: we turn over only DEK
Տվյալների հավաքածուի «Կրիպտո-հեռացումը»
kms. disable_key (tenant_kek_id) # Deny unwrap kms. schedule_destroy (tenant_kek_id, hold_period_days=7) # Optional hold
14) Չեկ թերթերը
Սկսելուց առաջ։
- Լռելյայն կոդավորումը բոլոր տեսակի պահեստավորման վրա։
- Մրցույթի հիերարխիան նկարագրված է և իրականացվել է. դերերը և IAM քաղաքականությունը տրամադրված են։
- KFC/HSM ինտեգրված, հիմնական վիրահատությունների աուդիտը ներառված է։
- DEK/KEK լուծարումը ավտոմատացված է; փոխզիջման սցենարները մշակվել են։
- Bakaps, դիպուկահարներ, լույսեր և տիկնայք ծածկագրված են. բանալիները պահվում են առանձին։
- Alerts KFC սխալների, AEAD-tegs-ի շեղումների, չբացահայտված արտեֆակտների մասնաբաժնի վրա։
- Փորձարկումները KFC անհասանելիության և արձագանքման համար։
Վիրահատություն
- Ամսական հաշվետվություն հաճախորդների օգտագործման և հասանելիության փորձերի մասին։
- crypto-agility պլանը և պատուհանը անիմաստ ալգորիթմների համար։
- Պարբերական Red-team-ը տվյալների օտարման համար «հում» կրողներից։
15) Հարցեր և պատասխաններ (FAQ)
Լավ, արդյո՞ ք դա բավարար է։
Օ 'Ֆիզիկական ռիսկերի համար, այո, բայց վարձակալներին մեկուսացնելու և ճկուն ռոտացիայի համար ավելի լավ է envelope-ը DEK-na-օբյեկտի/հավաքածուի հետ։
Ի՞ նչ անել KEK-ի փոխզիջման ժամանակ։
Օ 'Անմիջապես հետ կանչեք KEK-ը KFC-ում, թողեք նորը, կատարեք rewrap բոլոր DEK-ը, ստուգեք ամսագրերը և անցկացնել RCA-ն։
Ինչպե՞ ս ծածկել այն դաշտերը, որտեղ փնտրում ենք։
Օ 'Օգտագործել դետերմինացված սխեմաները կամ FOX-ը միայն ռիսկերի խիստ գնահատման ժամանակ (պաթոգենների դասախոսություն)։ Ավելի լավ է հարցումներ անել այնպես, որ զգայուն դաշտերը չպահանջեն ինդեքսավորված բաց տեսակը։
Արդյո՞ ք առանձին թիմ է անհրաժեշտ մրցույթի համար։
Օ 'Խորհուրդ է տալիս «Crypto/KMS օպերատորը» որպես դեր առանձին իրավունքների և իրավունքների հետ։
Կապված նյութերը «Ճարտարապետություն և արձանագրություններ» բաժնում
«Բաների կառավարումը և նավարկումը»
«S2S-վավերացում»
«Ստորագրություն և հարցումների հավատարմագրում»
«OAuth2/OpenID Connection-ը միջուկի մեջ է»
«Վեբհուկի առաքման երաշխիքները»