API დაშიფვრა და დაცვა: TLS, HSTS, PFS, საიდუმლოების როტაცია
1) მუქარისა და მიზნის სურათი
API MitM- ის თავდასხმის ქვეშ, ტრეფიკის ჩარევა, დაუცველი შეტევა, ნიშნების გაყალბება, გასაღებების გაჟონვა და სიცოცხლის ხანგრძლივობის საიდუმლოებების ბოროტად გამოყენება. დაცვის მიზნები:- კონფიდენციალურობა და მთლიანობა (TLS 1. 3 + ძლიერი შიფრი).
- დაცვისგან დაცვა/სტრიპინგისგან (HSTS, აკრძალული ვერსიები/შიფრები).
- კომპრომისზე მიყენებული ზიანის მინიმიზაცია (PFS, მოკლე TTL, სწრაფი როტაცია).
- კლიენტის/სერვისის საიმედო ავთენტიფიკაცია (mTLS/ნიშნები) და ტრეკირება.
2) TLS, როგორც საფუძველი (სერვერი და მომსახურება)
ვერსიები და შიფრები:- სტანდარტულად, TLS 1. 3; ნებადართულია TLS 1. 2 მხოლოდ თავსებადობისთვის. გამორთეთ 1. 1/1. 0.
- `TLS_AES_128_GCM_SHA256`, `TLS_AES_256_GCM_SHA384`, `TLS_CHACHA20_POLY1305_SHA256`.
- TLS 1-ისთვის. 2: მხოლოდ ECDHE AES-GCM/ChaCha20 და ECDSA/RSA- ს ხელმოწერით (მაგალითად, "ECDHE-ECDSA-AES128-GCM-SHH256 ').
- სერვერის გასაღებები: ECDSA P-256/P-384 (უფრო სწრაფი და მოკლე) ან RSA 2048 +/3072.
- კლიენტის გასაღებები mTLS- ისთვის: ECDSA P-256; გაცემა საკუთარი CA- ს ან გადახდის HSM/KMS- ის საშუალებით.
- ჩართეთ OCSP სტაპლინგი, სასურველია Must-Staple დროშა და ALPN (HTTP/2/3).
- უზრუნველყოფილია ეფემერული გაცვლა (ECDHE) - მაშინაც კი, თუ სერვერის გასაღები იხვეწება, წინა სესიები არ არის გაშიფრული.
- იძულებით გამორთეთ სტატიკური DH/RSA ძირითადი შეთანხმება.
- ECH (Encrypted Client Hello), თუ წინა/CDN მხარს უჭერს, მალავს SNI.
- HTTP/2/3 მხოლოდ ძლიერი შიფრებით; დაუცველი HTTP აკრძალვა, HTTPS- ის რედაქცია.
3) HSTS წინააღმდეგ TLS-stripping
ჩართეთ HTTP Strict Transport Security ფესვების დომენზე და ქვესადგურებზე:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preloadგანათავსეთ დომენი HSTS preload სიაში.
დააკვირდით გამოქვეყნებამდე სისწორეს (გამოტოვება რთულია).
4) ურთიერთგაგება: mTLS ან/და ნიშნები
mTLS მიკრო სერვისებს/შიდა API- ს შორის: ორმხრივი სერთიფიკატები, ავტომატური როტაცია სამსახურის საშუალებით mesh (Istio/Linkerd) ან საკუთარი PKI.
API კლიენტები (მობილური/პარტნიორი ინტეგრაცია): ნიშნები (OAuth2/OIDC, JWT), სურვილისამებრ mTLS მაღალი რანგისთვის.
საჯარო ფრონტებისთვის: TLS + მოკლემეტრაჟიანი OAuth2/OIDC ნიშნები მოწყობილობის/DPOP მითითებით.
5) სერთიფიკატების და სასიცოცხლო ციკლის მართვა
ACME ავტომატიზაცია (მაგალითად, Let's Encrypt/ორგანიზაციული CA) ავტომობილების განახლებით გასვლამდე 30 დღით ადრე.
სერთიფიკატების მოკლე ცხოვრება (90 დღის განმავლობაში) + ვადების მონიტორინგი, ალერტები და კანარის ნაკაწრები.
ცენტრალიზებული PKI: ფესვი/შუალედური CA, CRL/OCSP, გამოშვების აუდიტი და მიმოხილვა.
მაგალითი nginx (ფრაგმენტი):nginx ssl_protocols TLSv1. 3 TLSv1. 2;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256;
ssl_prefer_server_ciphers on;
ssl_ecdh_curve X25519:P-256:P-384;
ssl_stapling on; ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;6) საიდუმლოების როტაცია: პრინციპები და ნიმუშები
როტაციის მიზნები: შეზღუდოს გაჟონვის „ასაფეთქებელი სხივი“, შეამციროს ბოროტად გამოყენების დრო, უზრუნველყოს უსაფუძვლო გამოშვებები.
ძირითადი წესები:- საიდუმლოებების შენახვა მხოლოდ საიდუმლო მენეჯერში (KMS/Vault/Cloud SM). საიდუმლო არ არის Git/სურათები.
- მოკლე TTL და ავტომატური როტაცია: ხელმოწერის გასაღებები, BD პაროლები, პროვაიდერების API გასაღებები.
- ორმაგი გამოცემა (ორმაგი ფანჯრის ფანჯარა): ძველი და ახალი გასაღებები აქტიურია ერთდროულად გადასვლის პერიოდისთვის.
- ვერსია + kid (JWT/JWKS- ისთვის), „გრეის“ ფანჯარა ძველი ნიშნებისთვის.
- JWT გასაღებები (ხელმოწერა/დაშიფვრა), ვებჰუკებისა და ხალიჩების HMAC საიდუმლოებები, BD პაროლები/აღრიცხვა, ქეშები (Redis), CI/CD ნიშნები, პროვაიდერების საიდუმლოებები (KYC/AML, გადახდები, SMS/ელ.ფოსტა), SSH ავტომატიზაციის გასაღებები.
დაუგეგმავი როტაციის გამომწვევები: გაჟონვის ეჭვი, წვდომის თანამშრომლების განთავისუფლება, მიმწოდებლის შეცვლა, რეგულატორის მოთხოვნები.
7) JWT/JWKS: უსაფრთხო როლური ოვერლი
გამოაქვეყნეთ JWKS endpoint მიმდინარე და მომავალი გასაღებით ('kid' სავალდებულოა).
როტაციის პროცედურა:1. ახალი კლავიშის წარმოქმნა და JWKS- ში დამატება, როგორც „მეორე“.
2. ხელმომწერების განახლება ახალი ნიშნით ახალი ნიშნების გამოშვებას წარმოადგენს.
3. დაელოდეთ ძველი ნიშნების TTL- ს და ამოიღეთ ძველი გასაღები JWKS- დან.
დააინსტალირეთ მოკლე TTL ნიშნები (მაგალითად, 5-15 წუთი) + refresh ნაკადები დამატებითი შემოწმებით.
8) საიდუმლო მენეჯმენტი პრაქტიკაში
KMS + envelope encryption: სამაგისტრო გასაღები HSM/KMS- ში, მონაცემები დაშიფრულია DEK- ით.
Vault/Cloud Secret Manager: დინამიური კრედიტები BD- სთვის (TTL- დან სწავლის გაცემა), პერიოდული როტაცია.
Kubernetes: External Secrets/Secrets Store CSI; etcd დაშიფვრა; RBAC; საიდუმლოების დამუშავების აკრძალვა.
როლებზე წვდომა: IAM/ABAC, მინიმალური შეღავათების პრინციპი, აპარატურის საზღვრები (HSM, TPM).
სრული აუდიტი: ვინ, როდის, რატომ წაიკითხა/შეიცვალა.
9) ტრანსპორტის დაცვა პერიმეტრის შიგნით
ნუ ენდობით „შიდა ქსელს“: ყველგან TLS/mTLS (zero-trust).
სერვისი mesh ავტომატიზაციას უწევს სერთიფიკატებს, გადატვირთვას და როტაციას, დაკვირვებას (mTLS ნაგულისხმევი).
მინიმუმამდე დაიყვანეთ TLS ტერმინალები: ან მხოლოდ edge + დაშიფრული east-west, ან დაშიფვრა.
10) API უსაფრთხოების პოლიტიკა TLS- ზე
Rate limiting/DoS დაცვა, ვებჰუკების ხელმოწერის შემოწმება (HMAC საიდუმლოების როტაციით).
Content-Security-Policy/Referrer-Policy/X-Content-Type-Options для фронта.
mTLS კრიტიკული endpoint (გადახდები, admink), პარტნიორი IP allow სია.
Replay დაცვა: timestamp + nonce ხელმოწერილი მოთხოვნით, ფანჯრები არაუმეტეს 5 წუთისა.
11) მონიტორინგი და ტესტები
TLS- ის დაკვირვება: ვერსიები/შიფრები მეტრიკებში, ალერტები downgraid- ის მცდელობებისთვის, ხელჩანთების უკმარისობის ზრდა.
სკანერები (CI/CD- ში და რეგულარულად იყიდება): მხარდაჭერილი შიფრების, სერთიფიკატების, HSTS, OCSP შემოწმება.
Chaos/DR სავარჯიშოები: სერთიფიკატის გადინება, საიდუმლო მენეჯერის დაცემა, ხელმოწერის გასაღების კომპრომისი - შეამოწმეთ რეაქციის გეგმები.
12) რეაგირების პროცედურები
გასაღების კომპრომისი: სერტიფიკატის დაუყოვნებლივი გაყვანა/გასაღების ამოღება JWKS- დან, გადაქცევა სარეზერვო, იძულებითი ტოქსიკური რეგენერაცია.
გადინება გახანგრძლივების გარეშე: დროებითი დეგრადაცია (მხოლოდ შიდა ტრაფიკი), სერთიფიკატების ავტომატური გადაკეთება.
ინციდენტის ანგარიში: საგნების მიერ დაზარალებული დრო, ტექნოლოგია. დეტალები, კორექტირების ზომები.
13) სწრაფი შემოწმების ჩეკის სია
- მხოლოდ TLS 1. 3 (+ 1. 2 ლეგასისთვის), შიფრების მკაცრი სია.
- HSTS с `preload`, OCSP stapling, ALPN.
- ECDHE PFS- ისთვის; ECDSA P-256/384 ან RSA 3072.
- mTLS კლასტერში/კრიტიკულ სერვისებს შორის.
- JWKS + kid, მოკლე TTL ნიშნები, როტაციის გეგმა.
- საიდუმლოებები - მხოლოდ KMS/Vault- ში, BD/პროვაიდერების ავტომატური როტაცია.
- სერთიფიკატების მანქანის განახლება (ACME), ალერტები 30 დღეში.
- CI/CD უსაფრთხოების და დაუცველი შიფრების სათაურების შემოწმება.
- დოკუმენტირებული runbook 'და: როტაცია, მიმოხილვა, ინციდენტები.
რეზიუმე
საიმედო API დაცვა არის TLS 1 კომბინაცია. 3 + HSTS + PFS, როგორც კლავიშებისა და საიდუმლოებების მართვის სავალდებულო მინიმუმი და სექსუალური პროცესები. დაამატეთ mTLS სერვისებს შორის, ავტომატიზირდით გამოშვებას/როტაციას KMS/Vault/mesh- ის საშუალებით, შეინარჩუნეთ მოკლე TTL და „ორმაგი ფანჯრები“ კლავიშების შეცვლისას - და თქვენ მინიმუმამდე დაიყვანთ ჩარევის, დაშლის საიდუმლოებების ბოროტად გამოყენების რისკებს, პროდუქტის ხელმისაწვდომობისა და სიჩქარის დარღვევის გარეშე.
