Junior
Ինչպես է աշխատում HTTPS-ը?
sobes.tech AI
Պատասխան AI-ից
HTTPS (Hypertext Transfer Protocol Secure) — դա պրոտոկոլ է, որը ապահովում է տվյալների անվտանգ փոխանցում հաճախորդի (օրինակ՝ բրաուզերի) և սերվերի միջև։ Այն հիմնված է HTTP-ի վրա, բայց օգտագործում է ծածկագրում փոխանցվող տեղեկատվության պաշտպանության համար։
HTTPS-ի աշխատանքը հիմնված է TLS (Transport Layer Security) պրոտոկոլի օգտագործման վրա, որը նախկինում կոչվում էր SSL (Secure Sockets Layer): TLS/SSL ապահովում է անվտանգության երեք հիմնական կողմնորոշիչը՝
- Կոդավորումը: Միջեւ հաճախորդի և սերվերի միջև տվյալները կոդավորվում են, ինչը դարձնում է դրանք անճանաչելի երրորդ կողմերի համար։
- Տվյալների ամբողջականությունը: Ստուգվում է, որ տվյալները չեն փոխվել փոխանցման ընթացքում։
- Անձնագրում: Սերվերը հաստատում է իր իսկականությունը հաճախորդին։
HTTPS կապի հաստատման գործընթացը ներառում է մի քանի փուլ, որոնք կոչվում են "TLS/SSL Handshake":
- Client Hello: Հաճախորդը ուղարկում է սերվերին "Client Hello", որը պարունակում է՝
- TLS-ի աջակցվող տարբերակը։
- Աջակցվող ծածկագրական ալգորիթմների ցանկը (cipher suites):
- Կատարյան թիվ։
- Server Hello: Սերվերը պատասխանում է "Server Hello"-ով՝ ընտրելով հաճախորդի առաջարկածներից՝
- TLS տարբերակը։
- Մի ալգորիթմ։
- Կատարյան թիվ։
- Սերվերի սերտիֆիկատը։
- Certificate: Հաճախորդը ստանում է սերվերի սերտիֆիկատը և ստուգում նրա իսկությունը՝
- Ստուգում է թվային ստորագրությունը սերտիֆիկատի վրա՝ օգտագործելով բաց հանրային բանալի։
- Ստուգում է սերտիֆիկատի ժամկետը։
- Ստուգում է, որ դոմենային անունը համապատասխանում է սերտիֆիկատին։
- Client Key Exchange: Հաճախորդը ստեղծում է pre-master secret (բանալիք), որը կոդավորում է սերվերի սերտիֆիկատից բաց հանրային բանալով և ուղարկում սերվերին։
- Change Cipher Spec (Client): Հաճախորդը տեղեկացնում է սերվերին, որ պատրաստ է սկսել կոդավորված տվյալների փոխանակումը։
- Finished (Client): Հաճախորդը ուղարկում է կոդավորված հաղորդագրություն՝ բոլոր նախորդ Handshake հաղորդագրությունների հեշով՝ ամբողջականության ստուգման համար։
- Change Cipher Spec (Server): Սերվերը դեշֆորմատիզացնում է pre-master secret-ը՝ օգտագործելով իր մասնավոր բանալին, և ստեղծում սիմետրիկ բանալիներ սեսիայի համար։ Այնուհետև տեղեկացնում է հաճախորդին, որ պատրաստ է սկսել կոդավորված տվյալների փոխանակումը։
- Finished (Server): Սերվերը ուղարկում է հաճախորդին կոդավորված հաղորդագրություն՝ բոլոր նախորդ Handshake հաղորդագրությունների հեշով։
- Կոդավորված տվյալների փոխանցում: Հաջող ավարտից հետո, հաճախորդն ու սերվերը օգտագործում են ստեղծված սիմետրիկ բանալիները՝ բոլոր հաջորդ տվյալների կոդավորման համար։
Այսպիսով, HTTPS ապահովում է պաշտպանված կապ, ինչը դարձնում է վեբ սերֆինգը ավելի անվտանգ։