Základní ověřování přístupu - Basic access authentication
HTTP |
---|
Vyžádejte si metody |
Pole záhlaví |
Stavové kódy |
Bezpečnostní metody řízení přístupu |
Zranitelnosti zabezpečení |
V kontextu HTTP transakce, základní ověřování přístupu je metoda pro Uživatelský agent HTTP (např webový prohlížeč ) poskytnout a uživatelské jméno a Heslo při zadávání požadavku. V základním ověřování HTTP obsahuje požadavek pole záhlaví ve formě Autorizace: Základní
, kde pověření je Base64 kódování ID a hesla spojeného jedinou dvojtečkou :
.[1]
Je uvedeno v RFC 7617 z roku 2015, který zastarává RFC 2617 od roku 1999.
Funkce
Implementace HTTP Basic Authentication (BA) je nejjednodušší technikou pro vynucení kontroly přístupu k webovým zdrojům, protože to nevyžaduje cookies, identifikátory relace nebo přihlašovací stránky; spíše základní ověřování HTTP používá standardní pole v souboru Záhlaví HTTP.
Bezpečnostní
Mechanismus BA neposkytuje důvěrnost ochrana předaných pověření. Jsou pouze kódovány Base64 v tranzitu a ne šifrované nebo hašováno jakýmkoli způsobem. Proto se základní ověřování obvykle používá ve spojení s HTTPS poskytnout důvěrnost.
Protože pole BA musí být zasláno v záhlaví každého požadavku HTTP, webový prohlížeč musí mezipaměti přihlašovací údaje po přiměřenou dobu, aby se zabránilo neustálé výzvě uživatele k zadání uživatelského jména a hesla. Zásady ukládání do mezipaměti se u různých prohlížečů liší.
HTTP neposkytuje webovému serveru metodu, která by klientovi dala pokyn, aby uživatele „odhlásil“. Existuje však řada metod k vymazání pověření uložených v mezipaměti v určitých webových prohlížečích. Jedním z nich je přesměrování uživatele na adresu URL ve stejné doméně pomocí záměrně nesprávných údajů. Toto chování je však nekonzistentní mezi různými prohlížeči a verzemi prohlížečů.[2] Microsoft Internet Explorer nabízí vyhrazenou metodu JavaScriptu k vymazání pověření uložených v mezipaměti:[3]
<skript>dokument.execCommand('ClearAuthenticationCache');</skript>
V moderních prohlížečích jsou pověření uložená v mezipaměti pro základní ověřování obvykle vymazána při vymazání historie procházení. Většina prohlížečů umožňuje uživatelům konkrétně vymazat pouze přihlašovací údaje, i když je obtížné tuto možnost najít, a obvykle vymaže přihlašovací údaje pro všechny navštívené weby.[4][5]
Protokol
Strana serveru
Když server chce, aby se uživatelský agent autentizoval vůči serveru, musí server odpovídajícím způsobem reagovat na neověřené požadavky.
K neověřeným požadavkům by měl server vrátit odpověď, jejíž hlavička obsahuje a HTTP 401 Neoprávněné postavení[6] a a WWW-ověřování pole.[7]
The WWW-ověřování pole pro základní autentizaci je konstruováno následovně:
WWW-Authenticate: Basic realm = "User Visible Realm"
Server se může rozhodnout zahrnout znaková sada parametr z RFC 7617:[2]
WWW-Authenticate: Basic realm = "User Visible Realm", charset = "UTF-8"
Tento parametr označuje, že server očekává, že klient použije kódování uživatelského jména a hesla UTF-8 (viz níže).
Strana klienta
Pokud chce uživatelský agent odeslat ověřovací pověření na server, může použít Oprávnění pole.
The Oprávnění pole je konstruováno následovně:[8]
- Uživatelské jméno a heslo jsou kombinovány s jedinou dvojtečkou (:). To znamená, že samotné uživatelské jméno nemůže obsahovat dvojtečku.
- Výsledný řetězec je zakódován do oktetové sekvence. Znaková sada, která se má použít pro toto kódování, je ve výchozím nastavení nespecifikována, pokud je kompatibilní s US-ASCII, ale server může navrhnout použití UTF-8 zasláním znaková sada parametr.[8]
- Výsledný řetězec je kódován pomocí varianty Base64.
- Metoda autorizace a mezera (např. „Základní“) se poté přidají před kódovaný řetězec.
Například pokud prohlížeč používá Aladin jako uživatelské jméno a Sezame, otevři se jako heslo je hodnotou pole kódování Base64 Aladdin: OpenSesamenebo QWxhZGRpbjpPcGVuU2VzYW1l. Pak Oprávnění záhlaví se zobrazí jako:
Autorizace: Základní QWxhZGRpbjpPcGVuU2VzYW1l
Kódování URL
Klient se může vyhnout výzvě k přihlášení, když přistupuje k základnímu ověřování přístupu, a to předpřipravením uživatelské jméno:Heslo@
na název hostitele v adrese URL. Například následující by měl přístup na stránku index.html na webové stránce www.example.com pomocí zabezpečeného protokolu HTTPS a zadejte uživatelské jméno Aladin a heslo Sezame, otevři se pověření prostřednictvím základního oprávnění:
https: // Aladdin: [email protected]/index.html
Tuto podporu již zastaral uživatel RFC 3986: Používání formátu „uživatel: heslo“ v poli userinfo je zastaralé.[9] Moderní prohlížeče proto již nepodporují kódování URL základních přístupových údajů.[10] Tím se zabrání tomu, aby byla hesla posílána a viditelně viditelná v prostém textu, a také budou eliminovány (potenciálně záměrně) matoucí adresy URL jako
http://www.google.com:[email protected]/
který by dotazoval hostitele example.com, ne google.com.
Viz také
- Digestní ověřování přístupu
- HTTP + HTML ověřování na základě formuláře
- Záhlaví HTTP
- TLS-SRP, alternativa, pokud se chcete vyhnout přenosu hesla ekvivalentního k serveru (i šifrovanému, jako u TLS).
Odkazy a poznámky
- ^ „Ověřování HTTP“. Webové dokumenty MDN. Citováno 2020-11-15.
- ^ A b „Existuje prohlížeč ekvivalentní IE ClearAuthenticationCache?“. Přetečení zásobníku. Citováno 15. března 2013.
- ^ "IDM_CLEARAUTHENTICATIONCACHE identifikátor příkazu ". Microsoft. Citováno 15. března 2013.
- ^ „540516 - Použitelnost: Povolit uživatelům vymazat podrobnosti základního ověřování HTTP („ Odhlášení “)“. bugzilla.mozilla.org. Citováno 2020-08-06.
Vymazat nedávnou historii-> aktivní přihlášení (v podrobnostech) se používá k vymazání ověřování.
- ^ „Vymazat údaje o prohlížení - Počítač - Nápověda Google Chrome“. support.google.com. Citováno 2020-08-06.
Data, která lze smazat [...] Hesla: Budou odstraněny záznamy o heslech, která jste uložili.
- ^ „RFC 1945 Oddíl 11. Ověření přístupu“. IETF. Května 1996. str. 46. Citováno 3. února 2017.
- ^ Fielding, Roy T.; Berners-Lee, Tim; Henrik, Frystyk. „Hypertext Transfer Protocol - HTTP / 1.0“. tools.ietf.org.
- ^ A b Reschke, Julian. „Základní schéma ověřování HTTP“. tools.ietf.org.
- ^ „RFC 3986“. ietf.org. Citováno 2017-02-12.
- ^ „82250 - uživatelské jméno HTTP: heslo odstraněno z odkazů - chrom - jednokolejka“. bugs.chromium.org. Citováno 2016-12-07.
externí odkazy
- „RFC 7235 - Hypertext Transfer Protocol (HTTP / 1.1): Authentication“. Pracovní skupina pro internetové inženýrství (IETF). Červen 2014..