მონაცემთა დაშიფვრა და TLS
1) მუქარისა და მიზნის რუკა
არხში (in-transit): ტრეფიკის ჩარევა/მოდიფიკაცია, MitM, დაბრკოლება.
დასვენების დროს (at-rest): დისკების/ბეკების ქურდობა, BD/Logs ნაგავსაყრელები, ინსაიდერები.
გასაღებები: საიდუმლოების გაჟონვა, სუსტი როტაცია, ხელახალი გამოყენება.
მიზანია უზრუნველყოს კონფიდენციალურობა, მთლიანობა და ავთენტურობა გაზომილი SLO და კონტროლირებადი კრიპტოვალუტით.
2) მონაცემთა კლასიფიკაცია და პოლიტიკა
კლასები: Public/Internal/Confidential/Restricted (PII/ფინანსები/PAN).
ეტიკეტები: 'data. class`, `tenant`, `region`, `retention`.
სავალდებულო ზომები: Restricted- ისთვის - დაშიფვრა ველის/ობიექტის დონეზე, წვდომის ჟურნალი, ინდივიდუალური გასაღებები per-tenant/region.
3) დაშიფვრა „დასვენებაში“ (at-rest)
3. 1 Envelope დაშიფვრა
DEK (Data Encryption Key) დაშიფვრავს მონაცემებს; KEK/CMK (KMS/HSM) დაშიფვრავს DEK.
KEK როტაცია არ საჭიროებს მონაცემთა გაშიფვრას - კალამი-wrap DEK.
DEK სასურველია per ობიექტი/წვეულება/ტენანტი მოკლე TTL.
3. 2 დონე
ბანერი (TDE): დისკი/ფირფიტა სივრცეები (PostgreSQL/MySQL/SQL Server). უბრალოდ, მაგრამ მარცვლოვანი კონტროლის გარეშე.
განაცხადის დონეზე: ველები/ობიექტები (PAN, საიდუმლოებები) - უკეთესია multi-tenant და მინიმალური წვდომისთვის.
საცავი/ღრუბლები: S3/GCS SSE-KMS; ACID მონაცემებისთვის - FLE (ველი-მარცხენა ენკრიპტუმი), სადაც შესაძლებელია.
3. 3 ალგორითმები და რეჟიმები
AEAD: AES-256-GCM ან ChaCha20-Poly1305 (CPU- ზე AES-NI გარეშე).
IV/nonce: უნიკალურობა მკაცრად სავალდებულოა; შენახვა ciphertext- ის გვერდით; არ გაიმეოროთ.
ჰაშირება: პაროლები - Argon2id (ან scrypt/bcrypt) მარილით და რკინის პარამეტრებით.
IAC/ხელმოწერები: HMAC-SHA-256 მთლიანობისთვის, ან AEAD ჩაშენებული ეტიკეტი.
3. 4 BD/ფაილების პრაქტიკა
PostgreSQL: pgcrypto/გაფართოება; write- ზე - პროგრამაში მგრძნობიარე ველების დაშიფვრა.
Mongo/Doc საცავები: client-side FLE, გასაღებები KMS- ში.
Bacaps: ინდივიდუალური გასაღებები და ხელმისაწვდომი მხოლოდ CI/CD აგენტისგან; ოფსეტური ასლები ყოველთვის დაშიფრულია.
4) კლავიშების მართვა (KMS/HSM/Vault)
სიმართლის წყარო: KMS/HSM; პირადი გასაღებები არ ტოვებს მოწყობილობას/მომსახურებას.
ვერსია: 'kid', 'purpose', 'alg', 'created _ at', 'rotates _ at'.
წვდომა: გრძელი პირადი; პასუხისმგებლობის გამიჯვნა (SoD).
როტაცია: გრაფიკის მიხედვით (ხელმოწერისთვის 3-6 თვე), ღონისძიებაზე (ინციდენტი), rotate-on-use რეფრენის ნიშნებისთვის.
აუდიტი: უცვლელი ჟურნალები: ვინ, როდის, რა ხელი მოაწერა/გაშიფვრა.
მრავალ ტენანტი: გასაღებები per-tenant/brand/region; BYOK/HYOK მომხმარებლის მოთხოვნებით.
5) დაშიფვრა „არხში“ (TLS)
5. 1 მინიმუმი
TLS 1. 2 +, სასურველია TLS 1. 3; HSTS დომენებზე.
შიფროსუიტები: TLS1. 3 - წინასწარ განსაზღვრული (AES _ 256 _ GCM _ SHA384/CHACHA20 _ POLY1305 _ SHA256).
PFS: ყველა ძირითადი ეპემერნის გაცვლა (ECDHE).
ALPN: HTTP/2 და HTTP/3 (QUIC) შეგნებულად ჩართვა; ტაიმერების მონიტორინგი.
5. 2 სერთიფიკატები, OCSP, pinning
OCSP სტაპლინგი და მოკლე ჯაჭვები.
სესიების ხელახალი გამოყენება: TLS tickets მოკლე TTL.
0-RTT (TLS 1. 3): ფრთხილად ჩართოთ (მხოლოდ idempotent GET).
Pinning: მხოლოდ 'public-key pinning via TSP/Key Continuity' აპლიკაციებში/მობილურებში (არ არის მკაცრი HPKP).
mTLS: პერიმეტრის შიგნით/სერვისებსა და პარტნიორებს შორის; სერთიფიკატი SAN- სთვის.
5. 3 gRPC/HTTP/QUIC
GRPC გადასცემს Deadline- ს და მეტამონაცემებს - შეამოწმეთ და შეზღუდეთ per-try timeout.
HTTP/3 (QUIC) აჩქარებს first-byte; შეამოწმეთ WAF/დაბალანსების თავსებადობა.
6) mTLS და სერვისცენტრი
SPIFFE/SPIRE ან mesh-CA მოკლე სერთიფიკატების ავტომატური გაცემისთვის (7-30 დღე).
პოლიტიკოსები: ვინ საუბრობს ვისთან (SVID - SVID), authZ L7 დონეზე.
როტაცია გამჭვირვალეა; revoke trust-bundle განახლების გზით.
7) პროდუქტიულობა და ოპერაცია
AES-NI: დამხმარე სერვერებზე - AES-GCM უფრო სწრაფად. მობილური/ძველი CPU- ზე - ChaCha20-Poly1305.
TLS tuning: მოკლე გასაღებები PFS- ით, მაგრამ გონივრულ საზღვრებში (P-256/25519); ხელნაკეთი ქეში.
Batching: მინიმუმამდე დაიყვანეთ მცირე მოთხოვნები; TLS-overhead პროპორციულია ნაერთების რაოდენობით.
Offload: TLS პერიმეტრზე (Envoy/NGINX), შიგნით - mTLS mesh.
8) საიდუმლოების და ლოგოების პოლიტიკა
საიდუმლოებები მხოლოდ KMS/Vault- ში; Kubernetes- ში - etcd + KMS პროვაიდერის დაშიფვრა.
ლოგოების აკრძალვა: გასაღებები/ნიშნები/PAN/საიდუმლოებები; შენიღბვა.
Snaphots/damps: დაშიფვრა და შეზღუდვა წვდომა; დააკვირდით კლავიშებს.
9) კონფისკაცია და მაგალითები
9. 1 NGINX (TLS მკაცრი პროფილი)
nginx ssl_protocols TLSv1. 2 TLSv1. 3;
ssl_prefer_server_ciphers on;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:P-256;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
9. 2 Envoy (mTLS აფსიდი, ფსევდო)
yaml transport_socket:
name: envoy. transport_sockets. tls typed_config:
common_tls_context:
tls_params:
tls_minimum_protocol_version: TLSv1_2 tls_certificate_sds_secret_configs:
- name: service_cert # client certificate validation_context_sds_secret_config:
name: mesh_ca_bundle # trusted roots
9. 3 AEAD- ის გამოყენების მაგალითი (ფსევდო)
pseudo nonce = random(12)
ciphertext, tag = AES256_GCM. encrypt(key=DEK, nonce, aad=tenant object_id, plaintext)
store(nonce ciphertext tag)
10) როტაცია და გახსენებული გასაღებები
JWKS/' kid 'JWT- ისთვის; მოკლე 'exp'.
სიები 'jti '/' sid' ტოქსინების TTL- ით გაყვანისთვის.
HMAC- ის საიდუმლოებები (ვებჰუკი): აქტიური + კანარი; ორივე მიღება უკიდურეს თარიღამდე.
TLS: ალერტები T-30/T-7/T-1, ავტომატური გაფართოება, უსაფრთხო არხი.
11) დაკვირვება და ალერტა
Метрики: `tls_handshake_fail_total{reason}`, `tls_version_share`, `cipher_share`, `ocsp_stapling_errors`, `kms_ops_total{op}`, `decrypt_fail_total`, `jwks_kid_share`.
წვდომის ლოგოები: პროტოკოლი/ვერსია/კოდი (საიდუმლოების გარეშე).
ალერტები: ვადაგასული სერთიფიკატები, „bad _ record _ mac“ ზრდა, „უნდობლობის ჯაჭვების“ ზრდა, წარუმატებელი გაშიფვრა.
12) iGaming/ფინანსების სპეციფიკა
PAN-safe ნაკადები: ტოქსიკაცია, მხოლოდ ნიშნების შენახვა; PAN - PSP/ტოქსინის საცავებში.
PCI DSS: ბარათის მფლობელთა მონაცემების დაშიფვრა, კლავიშებზე წვდომის შეზღუდვა, კრიპტო-ოპერაციების ჟურნალი, ქსელის სეგმენტი.
რეგიონულობა: კლავიშები და მონაცემები მოთამაშის რეგიონში (ლატენტობა/სუვერენიტეტი).
Backoffice: mTLS + SSO, მოკლე სესიები, FIDO2 admines.
13) ანტიპატერები
TLS < 1. 2; ნებადართული სუსტი შიფრები/RC4/3DES.
ზოგადი „მარადიული“ საიდუმლოებები და გასაღებები როტაციის გარეშე და „kid“.
IV/nonce განმეორება GCM- ში (ფატალური უსაფრთხოებისთვის).
ლოგიკური საიდუმლოებები/გასაღებები/პან-მონაცემები.
მხოლოდ TDE მგრძნობიარე ველების დაშიფვრის გარეშე.
HPKP pining გაყიდვაში („თვითკეტირების“ რისკი).
0-RTT write/არა idempotent მოთხოვნებზე.
14) მზადყოფნის ჩეკის სია
- მონაცემთა კლასიფიკაცია და დაშიფვრის პოლიტიკა (per-class).
- AEAD (AES-GCM/ChaCha20-Poly1305); უნიკალური nonce; Argon2id პაროლებისთვის.
- Envelope დაშიფვრა: DEK პერ-ობიექტი/ტენანტი; KEK в KMS/HSM.
- TLS 1. 2+/1. 3, HSTS, OCSP stapling; შიფრების გონივრული ნაკრები.
- mTLS შიგნით; მოკლე სერთიფიკატების ავტომატური გაცემა/როტაცია.
- JWKS/' kid ', მოკლე' exp ', სიები' jti '; საიდუმლოებების/სერიების როტაცია გადახურვით.
- Bacapi და logs დაშიფრულია; აუდიტის დაშვება და ოპერაციები ხდება.
- დაშბორდები/ალერტები TLS/KMS/JWKS; დეგრადაციის ტესტები და კანარი.
- დოკუმენტაცია: ინციდენტების პროცედურები (გასაღების/სერტის კომპრომისი).
15) TL; DR
დაშიფვრა ყველგან: არხში - TLS 1. 3/1. 2 PFS- ით და მკაცრი პერიმეტრით; შიგნით - mTLS. დასვენების დროს - Envelope (DEK/KEK) KMS/HSM- ის კლავიშებით, მარცვლოვანი დაშიფვრის მგრძნობიარე ველები. აკონტროლეთ კლავიშები 'kid '/JWKS და რეგულარული როტაცია გადახურვით, შეინახეთ კრიპტო ოპერაციების ჟურნალები. შეარჩიეთ AES-GCM (ან ChaCha20-Poly1305), არ გადააკეთოთ nonce, დაშიფრეთ bacaps/logs. IGaming/PAN- ისთვის - ტოქსიკაცია და PCI ცნობიერი სეგმენტი.