Dilysu sylfaenol HTTPS yn erbyn IPsec: beth mae pob un yn ei amddiffyn
Dilynwch un cais o’r porwr i’r rhaglen: mae’r naid TLS, yr 401 a’r tiwnel yn amddiffyn perthnasoedd gwahanol ac yn methu â thystiolaeth wahanol.
Agorwch yr offer datblygwr, llwythwch y rhaglen fewnol, a gwyliwch un cais yn mynd trwy bedwar pwynt gwirio cyn i’r dudalen rendro. Yn gyntaf mae’r enw’n datrys, yna mae cysylltiad TCP yn agor, yna mae ysgydwad llaw TLS yn sefydlu pwy yw’r gweinydd, ac yn unig wedyn mae’r rhaglen yn gofyn pwy ydych chi. Triniwch y rhain fel digwyddiadau ar wahân, oherwydd mae pob un yn methu â thystiolaeth wahanol ac mae pob un yn eiddo i dîm gwahanol. Daw’r rhan fwyaf o’r dryswch mewn digwyddiadau o ddarllen 401 fel problem tiwnel, neu broblem tiwnel fel cyfrinair gwael.
Pwynt gwirio un: ai hwn yw’r gweinydd y gwnaethoch chi fwriadu siarad ag ef
Mae ysgydwad llaw TLS yn ateb y cwestiwn hwnnw cyn i unrhyw grynodeb gael ei anfon. Mae eich cleient yn dilysu’r gadwyn dystysgrif yn erbyn storfa ymddiriedaeth ac yn gwirio bod yr enw yn y dystysgrif yn cyfateb i’r gwesteiwr a deipiwyd gennych. Os yw hynny’n methu, mae’r porwr yn dangos gwall tystysgrif ac yn peidio ag anfon y pennawd Authorization o gwbl. Felly nid yw anogwr cyfrinair yn dystiolaeth bod y gweinydd yn un go iawn; tystiolaeth yw bod y rhaglen wedi ateb.
Yma mae’r ffin gyntaf yn ymddangos. Mae TLS yn amddiffyn y cysylltiad hyd at ei bwynt terfynu. Os yw cydbwysedd llwyth yn terfynu TLS ac yn anfon HTTP plaen ymlaen i’r rhaglen, mae’r segment amgryptiedig yn gorffen wrth y cydbwysedd, ac mae’r crynodebau’n cael eu hamddiffyn ar y naid gyntaf yn unig.
Pwynt gwirio dau: beth sy’n teithio mewn cyfnewid 401 mewn gwirionedd
Mae dilysu sylfaenol HTTP yn anfon dynodydd y defnyddiwr a’r cyfrinair mewn pennawd, wedi’u hamgodio â Base64 fel y disgrifir yn RFC 7617. Authorization: Basic dXNlcjpwYXNz yw’r siâp; gall unrhyw un sy’n gallu darllen y cais wrthdroi’r amgodio, felly daw’r holl gyfrinachedd o’r cludiant oddi tano. Mae curl -v yn dangos yr her WWW-Authenticate: Basic a’r pennawd rydych chi’n ei anfon yn ôl.
Mae’r pennawd hwnnw’n dweud wrth y rhaglen pwy sy’n gofyn. Nid yw’n dweud wrth y rhwydwaith pwy gaiff gysylltu, ac nid yw’n amgryptio dim ar ei ben ei hun. Mae’n rhaid i’r rhaglen wirio’r crynodeb yn erbyn storfa o hyd a phenderfynu beth gaiff y cyfrif hwnnw ei wneud, sef awdurdodi, ac mae hynny’n digwydd ar ôl dilysu.
Lle mae tiwnel IPsec yn eistedd yn y llwybr hwnnw
Nawr cerddwch tuag allan o’r porwr. Mae tiwnel IPsec rhwng porth a phorth yn amddiffyn traffig dethol rhwng dau borth diogelwch, nid rhwng eich gliniadur a phroses y rhaglen. Mae ESP yn y modd tiwnel yn lapio’r pecyn gwreiddiol, mae’r pyrth yn ei amgryptio ac yn ei ddilysu, ac mae’r cyfeiriadau mewnol yn goroesi fel y gall yr ochr bell lwybro’r cais i’r rhaglen.
Y dewis yw’r rhan sy’n baglu pobl. Mae tiwneli’n seiliedig ar bolisïau yn defnyddio detholwyr traffig, a fynegir yn aml fel rhestrau rheoli mynediad, i benderfynu pa becynnau sy’n mynd i’r tiwnel. Mae tiwneli’n seiliedig ar lwybrau yn defnyddio rhyngwyneb rhithwir a’r tabl llwybro yn lle hynny. Ar Linux mae ip xfrm policy yn dangos y detholwyr ac mae ip xfrm state yn dangos y cysylltiadau diogelwch a sefydlwyd; ar ddyfais mur tân y cyfwerth yw tabl SA y tiwnel ynghyd â thracer pecynnau.
Mae’n werth dweud y canlyniad yn blwmp ac yn blaen. Gall pecyn eistedd y tu mewn i diwnel hollol iach ac eto gario cais HTTPS y mae’r rhaglen yn ei wrthod, a gall crynodebau dilys gyrraedd dros lwybr heb diwnel o gwbl os yw’r llwybro’n caniatáu hynny.
Darllenwch y methiant ar y haen a’i hadroddodd
Mae 401 yn golygu na wnaeth y rhaglen dderbyn y crynodeb. Mae 403 yn golygu iddi dderbyn yr hunaniaeth a gwrthod y llawdriniaeth. Mae gwall TLS yn golygu na wnaeth y cleient dderbyn y gweinydd. Mae dim llwybr neu gamgymhariad polisi yn golygu na chyrhaeddodd y pecyn y porth pell erioed. Pedwar methiant gwahanol, pedwar perchennog gwahanol, ac ni ddiagnosir yr un ohonynt trwy syllu ar y ffurflen fewngofnodi.
Defnyddiwch y dystiolaeth y mae pob haen yn ei chynhyrchu: panel rhwydwaith y porwr ar gyfer statws a phenawdau, openssl s_client -connect host:443 ar gyfer y gadwyn dystysgrif, cownteri SA a logiau’r porth ar gyfer traffig y tiwnel, a log y rhaglen ar gyfer y penderfyniad cyfrif. Pan fydd dwy haen yn adrodd gwallau ar unwaith, trwsiwch yr un isaf yn gyntaf, oherwydd gall tiwnel marw guddio methiant dilysu yn hawdd a’r gwrthwyneb.
Mapio un gwasanaeth o’r dechrau i’r diwedd
Ysgrifennwch bum llinell ar gyfer y gwasanaeth rydych chi’n datrys problemau ag ef: pa gymheiriaid y mae’r tiwnel yn eu cysylltu, pa is-rwydweithiau a phyrth y mae’r detholwyr yn eu caniatáu, ble mae TLS yn terfynu a pha hunaniaeth y mae’r dystysgrif yn ei honni, pa gyfrif a rôl rhaglen sy’n cael eu defnyddio, a ble mae pob haen yn logio. Cadwch nhw ar un dudalen, oherwydd pwrpas y map yw dangos ble mae cyfrifoldeb un haen yn gorffen a’r nesaf yn dechrau.
Yna profwch un achos negyddol fesul haen. Defnyddiwch gyfrinair anghywir a chadarnhewch eich bod yn cael 401, nid cyfnod goramser. Cysylltwch o is-rwydwaith y tu allan i’r detholwyr a chadarnhewch nad yw’r pecyn yn mynd trwy’r tiwnel. Cyflwynwch dystysgrif ar gyfer yr enw anghywir a chadarnhewch fod y cleient yn gwrthod cyn anfon crynodebau. Mae’r tri chanlyniad hynny’n dweud mwy wrthych am y cynllun nag unrhyw ddiagram o flychau.
Yn olaf, penderfynwch yn fwriadol pa amddiffyniad sydd ei angen ar bob perthynas. Mae dilysu sylfaenol dros TLS yn ffitio’n rhesymol ar gyfer teclyn mewnol bach y tu ôl i borth; nid yw’n cymryd lle awdurdodi fesul defnyddiwr nac amddiffyn traffig y tu hwnt i bwynt terfyn TLS. Mae’r tiwnel yn amddiffyn y llwybr, mae’r dystysgrif yn amddiffyn y naid, ac mae’r 401 yn amddiffyn y cyfrif, a dim ond yr olaf sy’n gwybod pwy ydych chi.