Perché l'autenticazione di base HTTP codifica il nome utente e la password con base64?

38

RFC 2617 richiede che in Autenticazione HTTP di base , il nome utente e la password devono essere codificati con base64.

To receive authorization, the client sends the userid and password, separated by a single colon (":") character, within a base64 encoded string in the credentials.

  basic-credentials = base64-user-pass
  base64-user-pass  = <base64 encoding of user-pass,
                   except not limited to 76 char/line>
  user-pass   = userid ":" password
  userid      = *<TEXT excluding ":">
  password    = *TEXT

Userids might be case sensitive.

If the user agent wishes to send the userid "Aladdin" and password "open sesame", it would use the following header field:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Poiché la codifica base64 offre zero sicurezza delle credenziali, perché è fatto?

    
posta josh3736 30.01.2013 - 04:31
fonte

2 risposte

48

Non è fatto per ragioni di sicurezza, e più come mezzo per sfuggire a caratteri speciali

link

TLS verrebbe utilizzato per la sicurezza.

    
risposta data 30.01.2013 - 05:43
fonte
2

È davvero semplice. E 'solo (come tutti i poveri di sicurezza) un compromesso tra il tempo / sforzo richiesto per implementarlo e la sicurezza del prodotto. In questo caso, è semplice da implementare ma molto insicuro come hai dimostrato.

Per citare wikipedia

HTTP Basic authentication implementation is one of the easiest ways to secure web pages because it doesn't require cookies, session handling, or the development of login pages. Rather, HTTP Basic authentication uses static headers which means that no handshakes have to be done in anticipation. Programmers and system administrators sometimes use basic access authentication—in a trusted network environment—to manually test web servers using Telnet or other plain-text network tools. This is a cumbersome process, but the network traffic is human-readable for diagnostic purposes. One other advantage of basic authentication is that it avoids the double hop authentication problem that can cause problems for protocols such as NTLM.

Per facilitare la sicurezza dell'accesso, sarebbe consigliabile utilizzare TLS / SSL.

Spero che ti aiuti!

    
risposta data 30.01.2013 - 05:13
fonte

Leggi altre domande sui tag