Sobes.tech
Junior

Ինչպես է աշխատում HTTPS-ը?

sobes.tech AI

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

HTTPS (Hypertext Transfer Protocol Secure) — դա պրոտոկոլ է, որը ապահովում է տվյալների անվտանգ փոխանցում հաճախորդի (օրինակ՝ բրաուզերի) և սերվերի միջև։ Այն հիմնված է HTTP-ի վրա, բայց օգտագործում է ծածկագրում փոխանցվող տեղեկատվության պաշտպանության համար։

HTTPS-ի աշխատանքը հիմնված է TLS (Transport Layer Security) պրոտոկոլի օգտագործման վրա, որը նախկինում կոչվում էր SSL (Secure Sockets Layer): TLS/SSL ապահովում է անվտանգության երեք հիմնական կողմնորոշիչը՝

  1. Կոդավորումը: Միջեւ հաճախորդի և սերվերի միջև տվյալները կոդավորվում են, ինչը դարձնում է դրանք անճանաչելի երրորդ կողմերի համար։
  2. Տվյալների ամբողջականությունը: Ստուգվում է, որ տվյալները չեն փոխվել փոխանցման ընթացքում։
  3. Անձնագրում: Սերվերը հաստատում է իր իսկականությունը հաճախորդին։

HTTPS կապի հաստատման գործընթացը ներառում է մի քանի փուլ, որոնք կոչվում են "TLS/SSL Handshake":

  1. Client Hello: Հաճախորդը ուղարկում է սերվերին "Client Hello", որը պարունակում է՝
    • TLS-ի աջակցվող տարբերակը։
    • Աջակցվող ծածկագրական ալգորիթմների ցանկը (cipher suites):
    • Կատարյան թիվ։
  2. Server Hello: Սերվերը պատասխանում է "Server Hello"-ով՝ ընտրելով հաճախորդի առաջարկածներից՝
    • TLS տարբերակը։
    • Մի ալգորիթմ։
    • Կատարյան թիվ։
    • Սերվերի սերտիֆիկատը։
  3. Certificate: Հաճախորդը ստանում է սերվերի սերտիֆիկատը և ստուգում նրա իսկությունը՝
    • Ստուգում է թվային ստորագրությունը սերտիֆիկատի վրա՝ օգտագործելով բաց հանրային բանալի։
    • Ստուգում է սերտիֆիկատի ժամկետը։
    • Ստուգում է, որ դոմենային անունը համապատասխանում է սերտիֆիկատին։
  4. Client Key Exchange: Հաճախորդը ստեղծում է pre-master secret (բանալիք), որը կոդավորում է սերվերի սերտիֆիկատից բաց հանրային բանալով և ուղարկում սերվերին։
  5. Change Cipher Spec (Client): Հաճախորդը տեղեկացնում է սերվերին, որ պատրաստ է սկսել կոդավորված տվյալների փոխանակումը։
  6. Finished (Client): Հաճախորդը ուղարկում է կոդավորված հաղորդագրություն՝ բոլոր նախորդ Handshake հաղորդագրությունների հեշով՝ ամբողջականության ստուգման համար։
  7. Change Cipher Spec (Server): Սերվերը դեշֆորմատիզացնում է pre-master secret-ը՝ օգտագործելով իր մասնավոր բանալին, և ստեղծում սիմետրիկ բանալիներ սեսիայի համար։ Այնուհետև տեղեկացնում է հաճախորդին, որ պատրաստ է սկսել կոդավորված տվյալների փոխանակումը։
  8. Finished (Server): Սերվերը ուղարկում է հաճախորդին կոդավորված հաղորդագրություն՝ բոլոր նախորդ Handshake հաղորդագրությունների հեշով։
  9. Կոդավորված տվյալների փոխանցում: Հաջող ավարտից հետո, հաճախորդն ու սերվերը օգտագործում են ստեղծված սիմետրիկ բանալիները՝ բոլոր հաջորդ տվյալների կոդավորման համար։

Այսպիսով, HTTPS ապահովում է պաշտպանված կապ, ինչը դարձնում է վեբ սերֆինգը ավելի անվտանգ։