Веб сайт гэж юу вэ? Дугаар-3

М.Зоригт
Багш

М.Зоригт
Багш
Та өнөөдөр гар утсаа аваад л дор хаяж нэгэн арван удаа төрөл бүрийн сайт руу орсон байх. Сошиалаа шалгалаа, мэдээ уншлаа, банкны апп руугаа орлоо. Анзаарсан бол вебийн хаягийн мөрөнд жижигхэн 🔒 түгжээ болон https:// гэсэн таван үсэг үргэлж байсаар л байна. Гэхдээ энэ түгжээ юуг "цоожилж" байгаа юм бэ? Яагаад зарим сайт https://-ээр эхэлдэг, зарим нь зүгээр л http:// байдгийг та анзаарч байсан уу?
Өмнөх хоёр нийтлэлдээ бид браузер, URL, домайн, хостинг, серверийн тухай ярилцсан. Гэвч нэг чухал асуулт хариугүй үлдсэн билээ: браузер сервертэй яг яаж "ярилцдаг" юм бэ? Тэр харилцаа яаж эхэлж, яаж дуусч, яагаад зарим нь аюулгүй, зарим нь аюултай байдаг вэ? Энэ нийтлэлээр уг асуултыг задлая.
HTTP гэдэг нь HyperText Transfer Protocol буюу дамжуулах протокол гэсэн үг. Нэр нь хүндхэн сонсогдож байгаа ч мөн чанар нь үнэхээр энгийн:
HTTP бол браузер ба сервер хоёрын ярилцдаг хэл юм.
Хүн хүнтэй уулзахдаа монгол, англи, япон гэх мэт ямар нэгэн хэлээр ярилцдаг. Браузер серверээс мэдээлэл хүсэхдээ яг мөн адил HTTP хэлээр "ярьдаг". Энэ хэлэнд яг л монгол хэлэн дэх дүрэм, хэллэг, өгүүлбэрийн бүтэц шиг тогтсон дүрэм бий. Хоёр тал ийм нийтлэг дүрэмтэй учраас Сингапурт байрлах сервер Улаанбаатарт сууж буй таны утсыг гайхалтай хурдан ойлгож чаддаг юм.

Та найзынхаа гэрт зочлоход юу болдгийг төсөөлөөд үз дээ:
1. Та хаалгыг тогшино — энэ нь хүсэлт (Request).
2.Найз чинь хаалгаа онгойлгож, "тавтай морил" гэж хариу хэлнэ — энэ нь хариу (Response).
HTTP яг ийм зарчмаар ажилладаг. Та хаягийн мөрөнд tee.education гэж бичээд Enter дартал — таны браузер серверт "Энэ сайтын нүүр хуудсыг надад өгөөч" гэсэн утгатай хүсэлт явуулдаг. Сервер тэр хүсэлтийг хүлээн авч, шаардлагатай файлуудаа (HTML, CSS, зураг, видео г.м.) хариу болгон буцаадаг. Браузер тэдгээрийг хүлээн аваад, угсарч, эцэст нь таны дэлгэц дээр чимэглэн харуулна.
Бүх хүсэлт адилхан биш. Та зөвхөн харах гэж байна уу, эсвэл шинэ зүйл нэмэх гэж байна уу? Үүнээс хамаараад HTTP-д тодорхой "үйл үг" буюу method байдаг:
— GET — мэдээллийг унших. Жишээ нь: блог нийтлэл, бүтээгдэхүүний зураг үзэх.
— POST — шинэ мэдээллийг илгээх. Жишээ нь: бүртгүүлэх форм бөглөх, нэвтрэх, сэтгэгдэл бичих.
— PUT — байгаа мэдээллийг шинэчлэх. Жишээ нь: профайлынхаа нэр өөрчлөх.
— DELETE — мэдээллийг устгах. Жишээ нь: өөрийн постоо устгах.
Анхааралтай ажиглавал — Facebook-д зураг постлох, цахим худалдан авалт хийх, YouTube-аас видео үзэх — интернет дэх бараг бүх үйлдэл эдгээр дөрвөн төрлийн хүсэлтийн нэгэн дотор багтдаг. Нарийссан ч гэсэн энэ дөрөв л юм.
HTTP анх 1990-ээд оны эхээр зохиогдох үед интернет одоогийнхтой адил байгаагүй. Тэр үед хэн ч банкны мэдээлэл болон өөрийн хувийн эмзэг мэдээллийг интернетээр дамжуулан явуулна гэж бодоогүй билээ. Тиймээс HTTP-ийн анхны хувилбар нэг чухал асуудалтай байжээ:
HTTP-ээр явж буй бүх мэдээлэл "хамгаалалтгүй" буюу шифрлэгдээгүй явдаг.
Энэ юу гэсэн үг вэ? Та http:// сайт дээр нэвтрэх нэрээ, нууц үгээ бичлээ гэж бодъё. Тэр мэдээлэл таны утаснаас сервер хүртэл олон арван сүлжээний цэгээр дамжина. Wi-Fi рутер, интернет үйлчилгээ үзүүлэгч, олон улсын кабель… Энэ замын аль ч цэгт хэн нэгэн "чагнаж" байвал таны нууц үгийг шууд унших боломжтой. Яг л кафед чанга ярьж буй яриа шиг.
Энэ асуудлыг шийдэх гэж HTTPS буюу аюулгүй хувилбарыг бүтээсэн юм.

HTTPS дэх төгсгөлийн "S" нь Secure буюу аюулгүй гэдэг үгийг илэрхийлдэг. Өөрөөр хэлбэл — HTTPS = HTTP + аюулгүй давхарга.
Үүнийг хамгийн ойлгомжтой жишээгээр тайлбарлая:
Та найзтайгаа кафед чанга ярьж байх үед хажуу ширээний хэн ч таны яриаг сонсож чадна. Энэ бол HTTP. Харин та хоёр зөвхөн өөрсдийн л мэддэг нууц кодоор бичилцэж, бусад нь хэдий чанга сонсох гэж оролдсон ч огт юу ч ойлгохгүй бол — энэ бол HTTPS.
1. Нууцлал (Confidentiality) — таны нууц үг, банкны карт, хувийн мессеж замдаа хэн нэгэнд "чагнагдахгүй". Бүх мэдээлэл шифрлэгдэж, зөвхөн зөв түлхүүртэй хэн л унших боломжтой болдог.
2. Бүрэн бүтэн байдал (Integrity) — мэдээллийг замдаа хэн нэгэн "өөрчилж", хуурамчлах боломжгүй болдог. Жишээ нь, таны банкны гүйлгээний дүнг 100,000₮-өөс 1,000,000₮ болгож сольж чадахгүй.
3. Танилт (Authentication) — та үнэхээр зөв сайттай ярилцаж байгааг баталгаажуулдаг. Хуурамч банкны сайт хэн нэгэн зохион байгуулсан байсан ч HTTPS-ийн SSL гэрчилгээ үүнийг илчилнэ.
Энэхүү бүхэл бүтэн ажиллагааг SSL/TLS хэмээх технологи гүйцэтгэдэг. SSL/TLS гэдэг нь хоёр талын хооронд "нууц түлхүүр солилцох" нарийн математик аргачлал юм. Хичнээн нарийн ч гэсэн, та зүгээр л сайт нээх хооронд бүгд автоматаар миллисекундын дотор болж өнгөрдөг.

Сүүлийн арван жилд интернетийн дүр төрх эрс өөрчлөгдсөн. Өнөөдөр HTTPS нь "нэмэлт давуу тал" биш, заавал байх ёстой үндсэн шаардлага болсон. Үүний цаана хэд хэдэн хүчтэй шалтгаан байдаг
Хэрэглэгчийн итгэл. Chrome, Firefox, Safari зэрэг орчин үеийн бүх браузер http:// сайтуудыг "Аюулгүй биш" (Not Secure) гэсэн улаан анхааруулгатайгаар харуулдаг. Хэрэглэгч ийм анхааруулга харангуутаа сайтаа хаах магадлал маш өндөр.
Google-ийн хайлтын зэрэглэл. Google 2014 оноос хойш HTTPS-ийг хайлтын ranking factor болгож үздэг. Өөрөөр хэлбэл, ижил агуулгатай хоёр сайтын HTTPS-тэй нь Google хайлтад илүү дээгүүр харагдана.
Хууль эрх зүйн шаардлага. Хувийн мэдээлэл, банкны карт, эрүүл мэндийн өгөгдөл боловсруулдаг бүх систем HTTPS ашиглах нь олон оронд хууль зүйн үүрэг болсон.
Үнэгүй болсон. Өмнө нь SSL гэрчилгээ авах нь жилд 100-аас 500 ам.доллар зарцуулдаг үнэтэй үйл явдал байсан. Өнөөдөр Let's Encrypt зэрэг үйлчилгээ гэрчилгээг бүрэн үнэгүй, автоматаар олгож байна. Энэ нь HTTPS-ийг хэн ч ашиглах боломжтой нийтийн өмч болгож хувиргасан билээ.
Одоо бид цуврал гурвын мэдлэгээ нэгтгэж, та https://tee.education гэж браузерт бичээд Enter дартал цаанаас яг юу болдог болохыг зургаан алхамаар харъя:
Браузер DNS-ээс tee.education-ийн IP хаягийг асуудаг (Дугаар-2)
IP хаягийг олж аваад тухайн серверт холбогддог (Дугаар-2)
Браузер ба сервер HTTPS гэрээ хийж, нууц түлхүүр солилцон, аюулгүй суваг үүсгэдэг (Дугаар-3)
Браузер шифрлэгдсэн сувгаар HTTP хүсэлт (GET) илгээдэг — "Нүүр хуудсаа надад өгнө үү"
Сервер HTTP хариу (Response) буцаадаг — HTML, CSS, зураг, скрипт г.м.
Браузер бүх файлуудыг угсарч, таны дэлгэц дээр сайтыг бүрэн харуулдаг
HTTP бол браузер ба серверийн ярилцдаг хэл. HTTPS бол тэр хэлний аюулгүй хувилбар. Эдгээр нь интернет дээр явагдаж буй бүх харилцааны үндэс суурь — та сошиалд мессеж бичих ч бай, банкны гүйлгээ хийх ч бай, эсвэл яг одоо энэ нийтлэлийг унших ч бай.
Дараагийн удаа браузерынхаа хаягийн мөрөн дэх жижигхэн 🔒 түгжээний дүрсийг хараад, түүний цаана ямар нарийн нүдэнд үл үзэгдэх, гэвч сонгодог гоо сайхантай харилцаа явагдаж байгааг санана уу. Тэр түгжээ зүгээр нэг чимэглэл биш — тэр бол таны нууцлалын манаач юм.