Хөгжүүлэгчийн хэрэгслүүдийг нээж, дотоод аппыг ачаалж, хуудас зураглагдахаас өмнө нэг хүсэлт дөрвөн хяналтын цэгээр хэрхэн өнгөрч буйг ажиглаарай. Эхлээд нэр шийдэгдэж, дараа нь TCP холболт нээгдэж, дараа нь TLS гар барилт сервер хэн болохыг тогтоож, зөвхөн дараа нь апп таныг хэн бэ гэж асууна. Эдгээрийг тусдаа үйл явдал гэж үзээрэй, учир нь тус бүр нь өөр нотолгоогоор бүтэлгүйтдэг бөгөөд тус бүр нь өөр багийн хариуцлага юм. Ослын үеийн төөрөгдлийн ихэнх нь 401-ийг туннелийн асуудал гэж уншихаас, эсвэл туннелийн асуудлыг буруу нууц үг гэж уншихаас үүсдэг.

Нэгдүгээр хяналтын цэг: энэ нь таны ярихыг хүссэн сервер мөн үү

TLS гар барилт нь ямар ч итгэмжлэл илгээхээс өмнө тэр асуултад хариулдаг. Таны клиент сертификатын гинжийг итгэлцлийн санд тулгуурлан баталгаажуулж, сертификат дахь нэр таны оруулсан хосттой таарч байгаа эсэхийг шалгадаг. Хэрэв энэ нь бүтэлгүйтвэл хөтөч сертификатын алдаа харуулж, Authorization толгойг огт илгээхгүй. Тиймээс нууц үгийн хүсэлт нь сервер жинхэнэ гэдгийн нотолгоо биш; энэ нь апп хариулсан гэдгийн нотолгоо юм.

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

Хоёрдугаар хяналтын цэг: 401 солилцоонд үнэндээ юу аялдаг вэ

HTTP үндсэн баталгаажуулалт нь хэрэглэгчийн танигч болон нууц үгийг толгойд хийж илгээдэг бөгөөд Base64-аар кодлогдсон, дараах байдлаар тайлбарлагдсан RFC 7617 баримт бичигт. Authorization: Basic dXNlcjpwYXNz бол түүний хэлбэр; кодлолтыг хүсэлтийг уншиж чадах хэн ч буцааж болох тул бүх нууцлал нь доорх тээвэрлэлтээс ирдэг. curl -v нь WWW-Authenticate: Basic сорилт болон таны буцааж илгээх толгойг хоёуланг нь харуулна.

Тэр толгой нь апп-д хэн асууж байгааг хэлдэг. Энэ нь сүлжээнд хэн холбогдож болохыг хэлдэггүй бөгөөд өөрөө юу ч шифрлэдэггүй. Апп нь итгэмжлэлийг санд тулгуурлан шалгаж, тэр бүртгэл юу хийж болохыг шийдэх ёстой хэвээр, энэ нь эрх олголт бөгөөд баталгаажуулалтын дараа явагдана.

IPsec туннель тэр замд хаана байрладаг вэ

Одоо хөтчөөс гадагш алхаарай. Гарц хоорондын IPsec туннель нь хоёр аюулгүй байдлын гарцын хооронд сонгосон урсгалыг хамгаалдаг, таны зөөврийн компьютер болон аппын процессын хооронд биш. Туннель горимын ESP анхны пакетыг ороож, гарцууд түүнийг шифрлэж, баталгаажуулдаг ба дотоод хаягууд хадгалагддаг тул холын тал хүсэлтийг апп руу чиглүүлж чадна.

Сонголт нь хүмүүсийг тээглүүлдэг хэсэг юм. Бодлогод суурилсан туннель нь урсгалын сонгогчдыг ашигладаг бөгөөд тэдгээрийг ихэвчлэн хандалтын хяналтын жагсаалт хэлбэрээр илэрхийлж, ямар пакетууд туннельд орохыг шийддэг. Маршрутад суурилсан туннель нь оронд нь виртуал интерфэйс болон маршрутжуулалтын хүснэгтийг ашигладаг. Linux дээр ip xfrm policy сонгогчдыг, ip xfrm state тогтоосон аюулгүй байдлын холбоог харуулдаг; галт ханын төхөөрөмж дээр үүнтэй адил нь туннелийн SA хүснэгт болон пакетын мөрдөгч юм.

Үр дагаврыг тодорхой хэлэх нь зүйтэй. Пакет нь бүрэн эрүүл туннель дотор байрласан ч апп-ын үгүйсгэдэг HTTPS хүсэлтийг зөөж болох бөгөөд хүчинтэй итгэмжлэлүүд маршрутжуулалт зөвшөөрвөл туннельгүй замаар ч ирж болно.

Алдааг түүнийг мэдээлсэн давхарга дээр уншаарай

401 гэдэг нь апп итгэмжлэлийг хүлээж аваагүй гэсэн үг. 403 гэдэг нь таних тэмдгийг хүлээж аваад үйлдлээс татгалзсан гэсэн үг. TLS алдаа гэдэг нь клиент серверийг хүлээж аваагүй гэсэн үг. Маршрут байхгүй эсвэл бодлогын зөрүү гэдэг нь пакет холын гарц хүртэл хэзээ ч хүрээгүй гэсэн үг. Дөрвөн өөр бүтэлгүйтэл, дөрвөн өөр эзэн, бөгөөд тэдгээрийн аль нь ч нэвтрэх маягт руу ширтэх замаар оношлогддоггүй.

Давхарга бүрийн бий болгодог нотолгоог ашиглаарай: төлөв болон толгойд хөтчийн сүлжээний самбар, сертификатын гинжид openssl s_client -connect host:443, туннелийн урсгалд гарцын SA тоолуур болон бүртгэл, бүртгэлийн шийдэлд апп-ын бүртгэл. Хоёр давхарга нэгэн зэрэг алдаа мэдээлбэл, эхлээд доод хэсгийг засаарай, учир нь үхсэн туннель баталгаажуулалтын алдааг амархан нууж чадна, мөн эсрэгээрээ.

Нэг үйлчилгээг эхнээс нь төгсгөл хүртэл зураглаарай

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

Дараа нь давхарга бүрт нэг сөрөг тохиолдлыг туршаарай. Буруу нууц үг ашиглаж, тайм-аут биш 401 авч байгаа эсэхийг баталгаажуулаарай. Сонгогчдын гаднах дэд сүлжээнээс холбогдож, пакет туннелээр дамждаггүйг баталгаажуулаарай. Буруу нэрэнд сертификат үзүүлж, клиент итгэмжлэл илгээхээс өмнө татгалздагийг баталгаажуулаарай. Тэр гурван үр дүн дизайны талаар ямар ч хайрцагт диаграмаас илүү ихийг хэлнэ.

Эцэст нь харилцаа бүрт ямар хамгаалалт хэрэгтэйг санаатайгаар шийдээрэй. TLS дээрх үндсэн баталгаажуулалт нь гарцын ард байгаа жижиг дотоод хэрэгсэлд тохиромжтой сонголт; энэ нь хэрэглэгч тус бүрийн эрх олголт эсвэл TLS-ийн төгсгөлийн цэгээс цаашхи урсгалыг хамгаалахыг орлохгүй. Туннель замыг, сертификат үсрэлтийг, 401 нь бүртгэлийг хамгаалдаг бөгөөд зөвхөн сүүлчийнх нь таныг хэн бэ гэдгийг мэддэг.

Холбоотой нийтлэлүүд