HTTPS -ыг шууданч тагтаагаар адилтган тайлбарлах нь

Orgilbat
Unimedia Solutions
Published in
5 min readMay 16, 2018

Оргинал пост : https://medium.freecodecamp.org/https-explained-with-carrier-pigeons-7029d2193351

Криптограф (нууцлал) бол ойлгоход хэцүү сэдэв. Дүүрэн математик тооцоолол, баталгаа, гаргалгаа. Гэхдээ яг гардаад криптографик систем бүтээх гээгүй л бол, зөвхөн юу болоод байгааг ухаж ойлгоё гэвэл тийм ч хэцүү төвөгтэй бишээ.

Хэрэв та HTTPS протоколын дараагийн хувилбарыг хийх зорилготойгоор энэхүү өгүүлэлийг уншиж буй бол уучлаарай, зураг дээрх энэ том тагтаа бид хоёр таньд туслаж чадахгүй нь. Харин HTTPS үнэндээ яаж ажилладаг вэ гэдгийг ойлгож авах гэсэн бол кофе чанагчаа дүүргэж, асааж тавьчихаад, наашаа суугаарай.

Алиса, Бооб, тагтаа гурав

Интернэтэд хийж буй таны үйлдэл бүр (энэ өгүүлэлийг унших, Амазоноос бараа худалдаж авах, фэйсбүүкдээ зураг аплоод хийх гэх мэт) цаанаа сервер рүү мессеж илгээх, серверээс мессеж хүлээж авах үйлдэл л байдаг.

Хэдийгээр жаахан хийсвэр ч гэлээ тэрхүү нааш цааш илгээгдэх мессежийг бид шууданч тагтаагаар зөөлгөдөг байсан гэж төсөөлье. Утгагүй санагдаж магадгүй, гэхдээ илүү хурдан л болохоос биш HTTPS яг ийм зарчмаар ажилладаг.

Бас сервер, клайнт, хакер энэ тэр гэж байхаар төсөөлөхөд амар Алиса, Бооб, Малори гэсэн нэр хэрэглэе. Криптографын ухагдахууныг өмнө нь судлаж байсан бол танд эдгээр нэр танил санагдах болов уу. Хэрэв анх удаа таарч байгаа бол наадуул чинь энэ төрлийн техникийн ном зохиолд түгээмэл гардаг дүрүүд юм шүү.

Анхны гэнэхэн харилцаа

Хэрэв Алиса Бооб -д мессеж илгээмээр байвал тэрээр захиагаа шууданч тагтааны хөлд уяад тагтааг Бооб руу нисгэх нь гарцаагүй. Харин Бооб мессежийг хүлээн аваад, уншаад, ерөнхийдөө бүх зүйл сайхан байна.

Гэтэл Малори Алисагийн нисгэсэн тагтааг замд нь барьж аваад, захиаг нь өөрчилсөн бол яах билээ? Бооб лав Алисагийн илгээсэн захиа ирж явах замдаа өөрчлөгдсөн гэдгийг мэдэхгүй.

Энэ бол яг HTTP -ийн ажилладаг зарчим. Нэлээд аймаар байгаа биз? Би л лав банкны мэдээллээ HTTP -р илгээхгүй. Таныг ч гэсэн битгий тэгээрэй гэж зөвлөмөөр байна.

Нууц код

Харин одоо Алиса Бооб хоёр нэлээд сэрэмжтэй, бусад хүн солилцсон захиаг нь үзчихвий гэж бодсон байг. Ингээд тэд захиа бичихдээ нууц код ашиглаж байхаар тохирчээ. Бичих үсэг бүрээ 3 байраар урагшлуулан сольж, жишээлбэл, D → A, E → B, F → C гэсэн байдлаар бичихээр болов. Энгийн текст нь “secret message” байсан бол кодоор бичсэн нь “pbzobq jbppxdb” болох нь.

Одоо Малори шууданч тагтааг замд нь зогсоолоо ч ашигласан кодыг мэдэхгүй тул илгээсэн мессежийг ямар нэг утгатай (Бооб-д ойлгогдох) мессежээр сольж чадахгүй. Харин Бооб кодоо мэдэж байгаа болохоор A → D, B → E, C → F гэсэн урвуу чиглэлд хөрвүүлэн захиагаа тайлж уншина. Нууцлагдсан тект “pbzobq jbppxdb” буцаж хөрвүүлэгдээд “secret message” болох нь байна.

Ура нөхдөө, бид мессежээ саадгүй дамжуулж чадлаа!

Үүнийг symmetric key cryptography (тэгш хэмт түлхүүрийн нууцлал) гэж нэрлэдэг. Тэгш хэмт гэсэн нь, хэрэв та мессежийг хэрхэн нууцлахыг мэдэж байгаа бол түүнийг буцаагаад яаж тайлахаа мэднэ гэдгээс тэр юм.

Яг дээр өгүүлсэн үсэг шилжүүлэх код бол олон нийтэд Caesar cipher (Цезарийн шифр) гэдэг нэрээр танил болсон арга. Амьдрал дээр мэдээж хэрэг үүнээс илүү нарийн төвөгтэй код ашиглах нь ойлгомжтой ч үндсэн санаа нь яг адилхан.

Түлхүүрийг хэрхэн сонгох вэ?

Илгээгч ба хүлээн авагчаас өөр хүн түлхүүрийг мэдэхгүй байгаа үед тэгш хэмт түлхүүрийн нууцлал бол маш найдвартай арга. Цезарийн шифрт түлхүүр гэдэг нь үсгийн шилжилт болно. Бидний авсан жишээнд энэ шилжилт 3 байна. Тэгвэл энэ тоо 4 юмуу 12 ч байж болно.

Гэтэл Алиса Бооб хоёр урьд нь нэг ч удаа уулзаж байгаагүй, тэгээд шууданч тагтаагаар анх удаа мессеж солилцож эхлэх гэж байгаа бол энэ түлхүүрээ хэрхэн тогтоох вэ гэдэг асуудал үүснэ. Хэрэв тэд мессеж дотроо түлхүүрээ хийгээд явуулбал Малори тагтааг замд нь саатуулж байхдаа мессеж доторх түлхүүрийг мөн олчихно. Энэ нь Малорид илгээсэн захиаг тайлж уншаад зогсохгүй дураараа өөрчилсөн, бас нууцласан шинэ захиагаар сольж илгээх боломж олгоно. Нууцлаад ч нэмэргүй боллоо.

Үүнийг Man in the Middle Attack (дундах хүний дайралт) гэж нэрлэх бөгөөд үүнээс зайлсхийх ганц арга бол нууцлалын системээ бүхлээр нь солих явдал болно.

Хайрцаг зөөдөг тагтаанууд

За ингээд Алиса Бооб хоёр илүү дээр систем бодож олжээ. Тэр нь, хэрэв Бооб Алисад мессеж илгээмээр байвал дараах алхамуудыг алгасалгүй дагах хэрэгтэй гэнэ :

  • Бооб Алиса руу ямар ч мессежгүй нэг тагтааг нисгэнэ
  • Алиса түгжээ нь онгорхой хайрцаг тагтаанд зүүгээд Бооб руу буцаан нисгэхдээ хайрцагны түлхүүрийг өөртөө хадгалж үлдэнэ
  • Бооб захиагаа хайрцагт хийж, түгжээг цоожлоод (хаагаад л цоожлогддог ч юмуу) тагтааг буцаан нисгэнэ
  • Алиса хайрцагийг хүлээн аваад, өөрт байгаа түлхүүрээр хайрцагаа онгойлгож захиагаа уншина

Ийм байдлаар илгээвэл Малори захиаг уншиж юмуу өөрчилж чадахгүй. Учир нь түүнд түлхүүр байхгүй. Алиса Бооб руу захиа илгээхээр бол бас дээрх дүрмийг дагана.

Алиса Бооб хоёр сая нийтэд asymmetric key cryptography (тэгш хэмгүй түлхүүрийн нууцлал) гэж нэрлэгддэг аргыг ашиглалаа. Тэгш хэмгүй гэж нэрлэсэн нь, та хэдийгээр мессежээ нууцлаж (хайрцагийг түгжиж) чадах ч нууцлагдсан мессежээ буцаагаад тайлж (түгжээтэй хайрцгийг нээж) чадахгүйгээс тэр юм.

Техникийн хэлээр бол хайрцаг нь public key (нийтийн түлхүүр), хайрцгийг онгойлгох түлхүүр нь private key (хувийн түлхүүр) болно.

Хайрцагт яаж итгэх юм бэ?

Хэрэв та анзаарсан бол бидэнд шийдэгдээгүй асуудал байсаар л байна. За тайлбарлая. Бооб онгорхой хайрцагийг хүлээж аваад тэр нь Алисагаас ирсэн гэдгийг яаж мэдэх юм бэ? Малори, тагтааг зам дунд нь саатуулж өөрийн хайрцагийг сольж зүүгээд (хайрцагны түлхүүр мэдээж өөрт нь байгаа) Бооб руу нисгэсэн байвал яахав?

Энэ эрсдэлийг бодоод Алиса өөрийн хайрцаг дээр гарын үсгээ тавьж явуулахаар болж л дээ. Бооб хайрцгийг аваад гарын үсгээр нь Алисагийнх гэдгийг танина гэсэн үг.

Тэгвэл Бооб Алисагийн гарын үсгийг хамгийн анх удаа харахдаа яаж таних билээ гэж та бодож байна уу? Үнэхээр боддог л бодол. Тэр хоёр ч бас үүнийг бодсон бөгөөд Алиса гарын үсгээ зурахын оронд Тээд гарын үсгээ зурахаар болжээ.

Тээд гэдэг чинь хэн билээ гэж үү? Аан, Тээд бол маш алдартай, хүн бүхний таньдаг, итгэж болох залуу. Тэрээр хүн болгонд гарын үсгээ өгдөг, түүнд нь бүгд итгэдэг, харин гарын үсгээ өгөхдөө цаад хүнээ маш сайн шалгаж, нягтлаж байж зурж өгдөг (баталгаажуулдаг) нэгэн юм. Алисагийн хайрцаг дээр Тээд гарын үсгээ зурахдаа, Алисагаас гарын үсгийг нь авч, өөрийнх нь мөн гэдгийг батлаж байж зурна гэсэн үг. Тээдийн гарын үсэгтэй хайрцгийг Малори олж авах боломжгүй, өөрөөр хэлбэл Малори өөрийгөө Алиса гэж Тээдэд итгүүлж, залилж чадахгүй.

Тээдийг техникийн хэлээр Certification Authority гэж нэрлэх ба энэхүү өгүүллийг уншиж байгаа хөтөч (browser) чинь янз бүрийн Certification Authority -ийн гарын үсэгтэй сангуудтай ирдэг юм.

Тэгэхээр та, ямар нэг вэб сайт руу анх удаа хандлаа гэхэд ирж байгаа хайрцагт нь итгэж таараа. Учир нь та Тээдэд итгэдэг, Тээд энэ хайрцагт итгэж болноо гэсэн байна шүү дээ.

Хайрцаг бол хүнд

Юутай ч Алиса Бооб хоёр хоорондоо харилцах найдвартай системтэй боллоо. Гэтэл тэд тагтаанд хайрцаг зүүгээд нисгэх нь зөвхөн мессежээ зүүгээд нисгэхээс хамаагүй удаан байгааг анзаарчээ.

Иймд хайрцагтай аргыг (тэгш хэмгүй түлхүүрийн нууцлалыг) зөвхөн тэгш хэмт нууцлалын түлхүүрийг сонгох үед хэрэглэв. Ингэснээр хоёр аргын хамгийн сайн талуудыг нэгтгэн ашиглана гэсэн үг. Тэгш хэмгүй нууцлалын найдвартай байдал + тэгш хэмт нууцлалын үр ашигтай байдал.

Бодит амьдрал дээр “манай тагтаанууд” хангалттай хурдан л даа. Гэсэн ч илгээх мессежүүдээ asymmetric cryptography -р нууцлах нь symmetric cryptography -р нууцлахаас удаан болохоор үүнийг зөвхөн түлхүүр солилцохдоо л ашигладаг юм.

Одоо та HTTPS хэрхэн ажилладагийг мэдэж авлаа. Кофе чинь ч буцалсан байх. Уу даа.

--

--