HTTPsec - HTTPsec

HTTPsec ("HTTP xavfsizligi") bu autentifikatsiya veb-protokol uchun sxema HTTP. HTTPsec beradi kriptografik jihatdan da kuchli xavfsizlik dastur qatlami.

HTTPsec HTTP autentifikatsiya sarlavhalari doirasida ishlaydi. Bu foydalanadi RSA ochiq kalitlar o'zaro autentifikatsiya va vaqtinchalik uchun Diffie-Hellman kalit almashinuvi ta'minlash uchun oldinga maxfiylik. Protokol o'zaro autentifikatsiyani va xabarning kelib chiqishini tasdiqlashni ta'minlaydi (1) URL, Metod va HTTP asosiy sarlavhalarining yaxlitligi, (2) xabarlar tanasining yaxlitligi, (3) xabarlar ketma-ketligi va (4) xabar. takrorlash. Ixtiyoriy ravishda xabar tanasini shifrlashni ta'minlaydi. U sarlavha maxfiyligini ta'minlamaydi (chunki ularning sarlavhalari shifrlangan bo'lsa, xabarlar endi HTTP bo'lmaydi) yoki ikkilamchi sarlavhalarga qo'llaniladigan yaxlitlikni himoya qilish (ular qonuniy ravishda proksi-serverlar tomonidan o'zgartirilishi mumkin).

Tushuntirish bilan misol

(Ko'p tafsilotlar chiqarib tashlangan - to'liq tushuntirish uchun to'liq texnik xususiyatlarga murojaat qiling.)

"So'rovchi" va "javob beruvchi" atamalari bitimdagi ikki tengdosh uchun "mijoz" va "server" o'rniga ishlatiladi. Bu autentifikatsiya qilinayotgan tengdoshlar mijoz yoki server qurilmalari uchun birma-bir xaritani tuzish shart emasligini tan olish uchun. Masalan, server aniq aniqlangan bir nechta so'nggi nuqtalarni joylashtirishi mumkin.

Bitimning uchta turi mavjud: Initsializatsiya, Davom etish va Challenge.

Boshlash bitimlar

Initsializatsiya operatsiyalari, so'rov o'tkazuvchi yangi umumiy maxfiy shartnomani boshlashni xohlaganda sodir bo'ladi. Ular faqat protokol maqsadlari uchun mo'ljallangan va shuning uchun xabarlarning foydali yuklarini tashish uchun foydalanilmaydi.

  • Talab qiluvchi o'z identifikatorini, sertifikatini va vaqtinchalik Diffie-Hellman jamoat qiymatini va tasodifiy naychani yuboradi.
  • Javob beruvchi o'z identifikatori, sertifikati, vaqtinchalik Diffie-Hellman jamoat qiymati va so'rovchining sertifikati tomonidan taqdim etilgan RSA ochiq kalitida shifrlangan alohida tasodifiy nosozlik bilan javob beradi. Shuningdek, u RSA shaxsiy kaliti bilan shu paytgacha almashinuvdagi barcha protokol parametrlarini imzolaydi.

Javob beruvchini ishga tushirish bosqichida, uning sertifikati bilan taqdim etilgan ochiq kalitga qarshi imzoni tasdiqlash orqali autentifikatsiya qilinadi (autentifikatsiya yangiligi so'rovchining nochorligi bilan ta'minlanadi). So'ngra talabnoma beruvchi tomonidan davom ettirish bosqichida autentifikatsiya qilinadi HMAC xabarni tasdiqlash kodlari (autentifikatsiyaning yangiligi so'rovchining javob beruvchilarning noto'g'riligini ochish qobiliyati bilan ta'minlanadi).

Diffie-Hellman qiymatlari vaqtinchalik hosil bo'lish uchun ishlatiladi umumiy sir. Ushbu vaqtinchalik maxfiy kalitlardan ikkala tengdosh ham bir xil tarzda olinadi. Boshlang'ich javobda, ushbu davom etuvchi xabarlarda ushbu maxfiy kalitlarga murojaat qilish uchun bir belgi ham qaytariladi.

Namunaviy ishga tushirish so'rovi:

Bosh http://alice.example.com/foobar.txt HTTP/1.1Ruxsat: httpsec / 1.0 ishga tushirish    id = bob.example.com    dh = clW9y2X5Vy + 5 + Ncv5lAI3W9y2X5Vgfe4y + 5 + Ncv5l ...    sertifikat = http: //bob.example.com/my-cert    url = http: //alice.example.com/foobar.txt    guruh = rfc3526 # 14    nonce = 7iqgkzgfdIe0HN35r6met2579yxetyerty7MZW ...

Masalan, ishga tushirishga javob:

HTTP/1.1 401 Avtorizatsiya talab qilinadiMuddati tugaydi: Per, 11 avgust 2005 yil 18:20:42 GMTKeshni boshqarish: o'zgartirilmaydiWWW-autentifikatsiya: httpsec / 1.0 ishga tushirish    id = alice.example.com    dh = + NcclW9y2I3W9X5Vy + 5v5lAy4X56y + Ncrwrtv5lqe ...    sertifikat = http: //alice.example.com/my-cert    token = mCa5tx1vKBY    auth = vpCNmx7MZ7iqgkzIe0HWwfyrOMeqwg0TdbpwefI ...    imzo = 2pX3SNgzWkV3w0W9y2X5V23hhy + 5b8DQmo ...

(O'qish mumkinligi uchun protokolning sarlavhalari namunasi [HTTP] [4.2] ga binoan bir nechta satrlar bo'yicha kengaytirilgan. Bundan tashqari, ba'zi bir boshlang'ich direktivalarining qiymatlari uzun va shu sababli qisqartirilgan, "..." tugaydigan ellipsis bilan ko'rsatilgan)

Davom ettirish operatsiyalari

Ushbu bitimlar umumiy maxfiy kelishuvdan kelib chiqadigan xavfsizlikni himoya qilishdan foydalanadi. Ular boshqa barcha jihatlarda an'anaviy HTTP xabarlari. Davom ettirish operatsiyalari, agar so'rovchi avvalgi nuqtada umumiy maxfiy kelishuvni boshlagan bo'lsa ishlatilishi mumkin.

  • So'rovchi va javob beruvchi o'zboshimchalik bilan HTTP xabarlarini ketma-ketligini yuboradi, bu ma'lumotni ishlatilgan maxfiy kalitlarga havola sifatida taqdim etadi.
  • Yashirin kalitlar - bu xabarni tasdiqlash kodlari va xabarlar tanasi uchun ma'lumotlar shifrlash. Kalitlar faqat ikkita qonuniy tengdoshlar tomonidan ma'lum bo'lganligi sababli, ular xabarni qabul qiluvchi tengdosh tomonidan xabar yuboradigan tengdoshni tasdiqlash va xabar tanasining parolini ochish uchun ishlatiladi. Bundan tashqari, xabarning o'ziga xosligi o'sib boruvchi hisoblagich yordamida amalga oshiriladi, bu xabarning MAC-ga kirishning turli xil usullaridan biridir.

Davom etish so'rovining namunasi:

OLING http://alice.example.com/foobar.txt HTTP/1.1Ruxsat: httpsec / 1.0 davom etmoqda    token = mCa5tx1vKBY    url = http: //alice.example.com/foobar.txt    hisoblash = 1    mac = zhHPRbxqf3KSMQpjCnpDQmyBnoqiNDMQLjRtMjxUcM =

Davom etish javobi misoli:

HTTP/1.1 200 OKSana: Per, 11 avgust 2005 yil 18:20:48 GMTMuddati tugaydi: Per, 11 avgust 2005 yil 18:20:48 GMTTarkib turi: matn / tekis; charset = ISO-8859-1Tarkib uzunligi: 1234Keshni boshqarish: o'zgartirilmaydiTarkibni kodlash: x-httpsec / 1.0-shifrWWW-autentifikatsiya: httpsec / 1.0 davom etmoqda    hisoblash = 2    mac = VplDHX3SNgzWkLKgZkjZ + I5wvImOHAMptVSc / Abttps =    hazm = V3w0W9y2X5Vy + 5 + Ncv5lAI3rb8qMlGzrOh9zjHXRHbk =<entity-body ciphertext bytes>

Shuni esda tutingki, davom etishning namunaviy so'rovi GET usuliga ega va shuning uchun hech qanday tanasi yo'q, u xabarlar tanasi bilan teng ravishda POST, PUT va boshqalar bo'lishi mumkin va masalan davomi javobida ko'rsatilgandek bir xil xabar tanasi himoyasiga ega bo'lishi mumkin.

Challenge operatsiyalari

Ushbu operatsiyalar javob beruvchiga HTTPsec-ni ishga tushirishga urinishga imkon beradi.

  • So'rov beruvchi an'anaviy HTTP so'rovida resursni so'raydi.
  • Javob beruvchi "401 ruxsatsiz" javobi bilan javob beradi va HTTPsec-ni qo'llab-quvvatlashini bildiradi.

Qiyinchiliklarga javob berishning misoli:

HTTP/1.1 401 RuxsatsizWWW-autentifikatsiya: httpsec / 1.0 chaqiruvi    id = alice.example.com    sertifikat = http: //alice.example.com/my-cert

Algoritmlar

HTTPsec tomonidan qo'llaniladigan algoritmlar RSA, OAEP, PSS, HMAC, SHA-256 va AES-256. Protokol algoritm bo'yicha muzokaralarga yo'l qo'ymaydi.

Shuningdek qarang

Adabiyotlar

Tashqi havolalar