Sobes.tech
Middle

Ինչպես է իրականացվում հաղորդագրությունների կոդավորումը բրաուզերի և սերվերի միջև:

sobes.tech AI

Պատասխան AI-ից

Բրաուզերի և սերվերի միջև գաղտնագրումը կատարվում է HTTPS պրոտոկոլի միջոցով, որը հանդիսանում է HTTP-ի վերին շերտը SSL/TLS (Secure Sockets Layer / Transport Layer Security) պրոտոկոլների օգտագործմամբ:

Համաձայնեցման գործընթացը (Handshake):

  1. Client Hello: Բրաուզերը ուղարկում է սերվերին հաղորդագրություն, որը պարունակում է աջակցվող SSL/TLS տարբերակները, կոդավորման ալգորիթմների ցանկը (cipher suites), սեղմման ալգորիթմներ և պատահական թիվ (քարտից):
  2. Server Hello: Սերվերը ընտրում է լավագույն պրոտոկոլի տարբերակը, կոդավորման հավաքածուն և սեղմման ալգորիթմը, ինչպես նաև ստեղծում է իր պատահական թիվը (սերվերից) և ուղարկում դրանք բրաուզերին՝ իր SSL/TLS սերտիֆիկատով միասին:
  3. Authentication: Բրաուզերը ստուգում է սերվերի սերտիֆիկատը՝
    • Կենտրոնական սերտիֆիկատային կենտրոնի վստահելիությունը (Root CA):
    • Սերտիֆիկատի ժամկետը:
    • Դոմենի անվան համապատասխանությունը սերտիֆիկատում՝ կայքի հասցեին:
    • Սերտիֆիկատի չեղարկման ցանկում չլինելը (CRL կամ OCSP):
  4. Premaster Secret: Բրաուզերը ստեղծում է պատահական թիվ (premaster secret), այն կոդավորում է սերվերի բացահայտ բանալով (սերտիֆիկատից) և ուղարկում սերվերին:
  5. Session Key Generation: Երկուսն էլ՝ բրաուզերը և սերվերը, օգտագործում են հաճախորդային (Client Random), սերվերային (Server Random) պատահական թվերը և premaster secret-ը՝ սեսիայի բանալին (session key) ստեղծելու համար:
  6. Change Cipher Spec: Բրաուզերը ուղարկում է սերվերին հաղորդագրություն, որը տեղեկացնում է սեսիայի բանալու օգտագործման անցման մասին:
  7. Finished: Բրաուզերը ուղարկում է սերվերին բոլոր նախորդ հաղորդագրությունների հեշը՝ սեսիայի բանալով կոդավորված, որը ստուգում է ռուկովի ճշգրտությունը:
  8. Change Cipher Spec: Սերվերը ուղարկում է բրաուզերին հաղորդագրություն՝ անցնելու կոդավորված կապի:
  9. Finished: Սերվերը ուղարկում է բրաուզերին բոլոր նախորդ հաղորդագրությունների հեշը՝ սեսիայի բանալով կոդավորված:

Հաջող ռուկովից հետո, բոլոր տվյալների փոխանցումները բրաուզեր և սերվեր միջև կատարվում են սիմետրիկ կոդավորմամբ՝ ստեղծված սեսիայի բանալու հիման վրա: Սիմետրիկ կոդավորումը շատ ավելի արդյունավետ է, քան ասիմետրիկը, ինչը այն դարձնում է հարմար մեծ ծավալների տվյալների կոդավորման համար:

Օգտագործվող ալգորիթմներ (օրինակ):

  • Ասիմետրիկ կոդավորում (սեսիայի բանալի փոխանակման համար): RSA, Diffie-Hellman (DH), Elliptic Curve Diffie-Hellman (ECDH):
  • Սիմետրիկ կոդավորում (տվյալների կոդավորման համար): AES, 3DES, ChaCha20:
  • Հեշավորում (հաղորդագրությունների ամբողջականության ստուգման համար): SHA-256, SHA-384: