Grunnauðkenning yfir HTTPS gegn IPsec: hvað verndar hvort um sig
Fylgdu einni beiðni frá vafranum til forritsins: TLS-stökkið, 401 svarið og göngin vernda ólík tengsl og mistakast með ólíkum sönnunum.
Opnaðu þróunartólin, hladdu innri forritinu og fylgstu með því hvernig ein beiðni fer í gegnum fjóra eftirlitsstaði áður en síðan birtist. Fyrst leysist nafnið, þá opnast TCP-tenging, þá ákvarðar TLS-handaband hver þjónninn er, og aðeins þá spyr forritið hver þú ert. Lítðu á þetta sem aðskilda atburði, því hver þeirra mistekst með ólíkum sönnunum og hver þeirra tilheyrir ólíku teymi. Mest ringulreið í atvikum kemur frá því að lesa 401 sem gönguvandamál, eða gönguvandamál sem slæmt lykilorð.
Eftirlitsstaður einn: er þetta þjónninn sem þú ætlaðir að tala við
TLS-handaband svarar þeirri spurningu áður en nokkur skilríki eru send. Biðlarinn þinn staðfestir vottorðakeðjuna gegn traustgeymslu og athugar að nafnið í vottorðinu passi við hýsilinn sem þú slóst inn. Ef það mistekst sýnir vafrinn vottorðsvillu og sendir Authorization-hausinn alls ekki. Lykilorðsbeiðni er því ekki sönnun þess að þjónninn sé ósvikinn; hún er sönnun þess að forritið svaraði.
Hér birtist fyrsta mörkin. TLS verndar tenginguna að endapunkti hennar. Ef hleðslujafnari lýkur TLS og sendir venjulegt HTTP til forritsins endar dulkóðaði hlutinn hjá jafnaranum, og skilríkin eru aðeins vernduð á því fyrsta stökki.
Eftirlitsstaður tveir: hvað fer í raun í 401 skiptum
HTTP grunnauðkenning sendir notandakennið og lykilorðið í haus, kóðuð með Base64 eins og lýst er í RFC 7617. Authorization: Basic dXNlcjpwYXNz er lögunin; hver sem getur lesið beiðnina getur afturkallað kóðunina, svo öll leyndin kemur frá flutningnum undir. curl -v sýnir bæði WWW-Authenticate: Basic áskorunina og hausinn sem þú sendir til baka.
Sá haus segir forritinu hver spyr. Hann segir netinu ekki hver má tengjast, og hann dulkóðar ekkert sjálfur. Forritið verður samt að athuga skilríkið gegn geymslu og ákveða hvað þessi reikningur má gera, sem er heimild og gerist eftir auðkenningu.
Hvar IPsec-göngin liggja á þeirri leið
Gakktu nú út frá vafranum. IPsec-göng milli hliðar og hliðar vernda valda umferð milli tveggja öryggishliða, ekki milli fartölvunnar þinnar og forritsferlisins. ESP í gönguhætti vefur upprunalega pakkann, hliðin dulkóða og auðkenna hann, og innri vistföngin lifa af svo fjarlæga hliðin geti beint beiðninni til forritsins.
Valið er sá hluti sem fólk hrasar á. Stefnutengd göng nota umferðarvala, oft tjáða sem aðgangsstýrilista, til að ákveða hvaða pakkar fara inn í göngin. Leiðartengd göng nota í staðinn sýndarviðmót og leiðartöflu. Á Linux sýnir ip xfrm policy valana og ip xfrm state sýnir uppsett öryggistengsl; á eldveggstæki er hliðstæðan SA-tafla ganganna ásamt pakkarakara.
Afleiðingin er þess virði að segja hana skýrt. Pakki getur setið í algjörlega heilbrigðum göngum og samt borið HTTPS-beiðni sem forritið hafnar, og gild skilríki geta komið eftir leið án nokkurra ganga ef leiðsögn leyfir það.
Lestu mistökin á því lagi sem tilkynnti þau
401 þýðir að forritið samþykkti ekki skilríkið. 403 þýðir að það samþykkti auðkennið og neitaði aðgerðinni. TLS-villa þýðir að biðlarinn samþykkti ekki þjóninn. Engin leið eða misræmi í stefnu þýðir að pakkinn náði aldrei fjarlæga hliðinu. Fjögur ólík mistök, fjórir ólíkir eigendur, og ekkert þeirra er greint með því að stara á innskráningarformið.
Notaðu sönnurnar sem hvert lag framleiðir: netspjald vafrans fyrir stöðu og hausa, openssl s_client -connect host:443 fyrir vottorðakeðjuna, SA-teljara og annála hliðsins fyrir gönguumferð, og annála forritsins fyrir reikningsákvörðunina. Þegar tvö lög tilkynna villur samtímis, lagaðu það neðra fyrst, því dautt göng geta auðveldlega falið auðkenningarmistök og öfugt.
Kortlagedu eina þjónustu frá enda til enda
Skrifaðu fimm línur fyrir þjónustuna sem þú ert að greina: hvaða jafningja göngin tengja, hvaða undirnet og port valarnir leyfa, hvar TLS endar og hvaða auðkenni vottorðið fullyrðir, hvaða forritsreikningur og hlutverk eru notuð, og hvar hvert lag skráir. Hafðu þær á einni síðu, því tilgangurinn með kortinu er að sýna hvar ábyrgð eins lags endar og næsta byrjar.
Prófaðu síðan eitt neikvætt tilvik fyrir hvert lag. Notaðu rangt lykilorð og staðfestu að þú fáir 401, ekki tímatakmark. Tengstu frá undirneti utan valanna og staðfestu að pakkinn fari ekki í gegnum göngin. Kynntu vottorð fyrir rangt nafn og staðfestu að biðlarinn neitar áður en hann sendir skilríki. Þessar þrjár niðurstöður segja þér meira um hönnunina en nokkurt kassateikning.
Að lokum skaltu ákveða af ásetningi hvaða vernd hvert samband þarf. Grunnauðkenning yfir TLS er sanngjarnt val fyrir lítið innra tól bak við hlið; hún kemur ekki í stað heimildar fyrir hvern notanda né verndar umferð handan TLS-endapunktsins. Göngin vernda leiðina, vottorðið verndar stökkið og 401 verndar reikninginn, og aðeins það síðasta veit hver þú ert.