Uthibitishaji wa HTTPS Basic dhidi ya IPsec: kila mmoja hulinda nini
Fuatilia ombi moja kutoka kivinjari hadi programu: hatua ya TLS, 401, na handaki hulinda uhusiano tofauti na hushindikana kwa ushahidi tofauti.
Fungua zana za msanidi, pakia programu ya ndani, na uangalie jinsi ombi moja linavyopitia vituo vinne vya ukaguzi kabla ya ukurasa kuonyeshwa. Kwanza jina linatatuliwa, kisha muunganisho wa TCP unafunguliwa, kisha makubaliano ya TLS yanathibitisha seva ni nani, na ni baada ya hapo tu programu inakuuliza wewe ni nani. Chukua haya kama matukio tofauti, kwa sababu kila moja linashindikana kwa ushahidi tofauti na kila moja linamilikiwa na timu tofauti. Mkanganyiko mwingi katika matukio hutokana na kusoma 401 kama tatizo la handaki, au tatizo la handaki kama nenosiri baya.
Kituo cha kwanza: je, hii ndiyo seva uliyokusudia kuzungumza nayo
Makubaliano ya TLS hujibu swali hilo kabla ya kitambulisho chochote kutumwa. Mteja wako huhakiki mnyororo wa cheti dhidi ya hifadhi ya uaminifu na kuangalia kwamba jina lililo kwenye cheti linalingana na mwenyeji uliouandika. Ikiwa hilo linashindikana, kivinjari huonyesha hitilafu ya cheti na kamwe hakutuma kichwa cha Authorization. Kwa hiyo ombi la nenosiri si ushahidi kwamba seva ni halisi; ni ushahidi kwamba programu ilijibu.
Hapa ndipo mpaka wa kwanza unapoonekana. TLS hulinda muunganisho hadi mahali inapoishia. Ikiwa kigawanyaji cha mzigo huisha TLS na kupeleka HTTP safi kwa programu, sehemu iliyosimbwa huishia kwa kigawanyaji, na vitambulisho hulindwa tu katika hatua hiyo ya kwanza.
Kituo cha pili: ni nini hasa husafiri katika mabadilishano ya 401
Uthibitishaji wa HTTP Basic hutuma kitambulisho cha mtumiaji na nenosiri katika kichwa, vikisimbwa kwa Base64 kama ilivyoelezwa katika RFC 7617. Authorization: Basic dXNlcjpwYXNz ndiyo umbo lake; usimbaji unaweza kurudishwa na yeyote anayeweza kusoma ombi, kwa hiyo usiri wote unatoka kwa usafirishaji ulio chini. curl -v huonyesha changamoto ya WWW-Authenticate: Basic na kichwa unachorudisha.
Kichwa hicho humwambia programu ni nani anayeuliza. Hakiiambii mtandao ni nani anayeruhusiwa kuunganisha, na hakifanyi usimbaji wa kitu chochote chenyewe. Programu bado inapaswa kuhakiki kitambulisho dhidi ya hifadhi na kuamua akaunti hiyo inaweza kufanya nini, ambayo ni idhini na hufanyika baada ya uthibitishaji.
Handaki la IPsec linakaa wapi katika njia hiyo
Sasa tembea kuelekea nje kutoka kwa kivinjari. Handaki la IPsec kati ya lango na lango hulinda trafiki iliyochaguliwa kati ya malango mawili ya usalama, si kati ya kompyuta yako ya mkononi na mchakato wa programu. ESP katika hali ya handaki hufunika pakiti asilia, malango huisimba na kuithibitisha, na anwani za ndani hubaki ili upande wa mbali uweze kuelekeza ombi kwa programu.
Uchaguzi ni sehemu inayowakwaza watu. Handaki zinazotegemea sera hutumia vichagua trafiki, mara nyingi vilivyoonyeshwa kama orodha za udhibiti wa ufikiaji, kuamua pakiti zipi zinaingia handakini. Handaki zinazotegemea njia hutumia kiolesura pepe na jedwali la njia badala yake. Kwenye Linux, ip xfrm policy huonyesha vichagua na ip xfrm state huonyesha uhusiano wa usalama ulioanzishwa; kwenye kifaa cha firewall, kifananishi ni jedwali la SA la handaki pamoja na kifuatiliaji cha pakiti.
Matokeo yanafaa kusemwa waziwazi. Pakiti inaweza kukaa ndani ya handaki lenye afya kamili na bado kubeba ombi la HTTPS ambalo programu inakataa, na vitambulisho halali vinaweza kufika kwa njia isiyo na handaki kabisa ikiwa uelekezaji unaruhusu.
Soma hitilafu katika tabaka lililoripoti
401 inamaanisha programu haikukubali kitambulisho. 403 inamaanisha ilikubali utambulisho na ikakataa operesheni. Hitilafu ya TLS inamaanisha mteja hakukubali seva. Hakuna njia au kutolingana kwa sera inamaanisha pakiti haikufika kamwe kwa lango la mbali. Hitilafu nne tofauti, wamiliki wanne tofauti, na hakuna hata moja inayotambuliwa kwa kutazama fomu ya kuingia.
Tumia ushahidi ambao kila tabaka huzalisha: paneli ya mtandao ya kivinjari kwa hali na vichwa, openssl s_client -connect host:443 kwa mnyororo wa cheti, vihesabu vya SA vya lango na kumbukumbu kwa trafiki ya handaki, na kumbukumbu ya programu kwa uamuzi wa akaunti. Wakati tabaka mbili zinaripoti hitilafu kwa wakati mmoja, rekebisha la chini kwanza, kwa sababu handaki lililokufa linaweza kuficha kwa urahisi kushindikana kwa uthibitishaji na kinyume chake.
Panga huduma moja kutoka mwanzo hadi mwisho
Andika mistari mitano kwa huduma unayotatua matatizo: handaki linaunganisha pande gani, vichagua vinaruhusu subneti na bandari gani, TLS huisha wapi na cheti kinadai utambulisho gani, akaunti gani ya programu na jukumu gani hutumika, na kila tabaka huandika kumbukumbu wapi. Ziweke kwenye ukurasa mmoja, kwa sababu lengo la ramani ni kuonyesha mahali jukumu la tabaka moja linapoishia na linalofuata linapoanza.
Kisha jaribu kesi moja hasi kwa kila tabaka. Tumia nenosiri lisilo sahihi na uthibitishe kwamba unapata 401, si muda kuisha. Unganisha kutoka subneti nje ya vichagua na uthibitishe kwamba pakiti haipitishwi handakini. Wasilisha cheti cha jina lisilo sahihi na uthibitishe kwamba mteja anakataa kabla ya kutuma vitambulisho. Matokeo hayo matatu yanakuambia zaidi kuhusu muundo kuliko mchoro wowote wa masanduku.
Mwisho, amua kwa makusudi ni ulinzi gani kila uhusiano unahitaji. Uthibitishaji wa Basic juu ya TLS unafaa kwa zana ndogo ya ndani nyuma ya lango; si mbadala wa idhini kwa kila mtumiaji au wa kulinda trafiki zaidi ya kituo cha TLS. Handaki hulinda njia, cheti hulinda hatua, na 401 hulinda akaunti, na ni ya mwisho tu kati ya hizo inayojua wewe ni nani.