2017-05-11 3 views
0

나는 실제 사용자 이름과 암호로 curl -u을 사용하는 것이 안전하다는 것을 알아 내려고하고 있습니다. 이러한 요청의 헤더를 조사하면 사용자 이름과 암호가 일종의 해시로 변환 된 것으로 보입니다. 이 암호화 또는 압축은 아래 예에서 어떻게 cUrl -u는 사용자 이름과 암호를 해시로 변환합니까?

은 그것이 jujuba:lalalalaanVqdWJhOmxhbGFsYWxh

로 전환되는 것으로 보인다? 안전 해요? 수신자가이 데이터를 어떻게 디코딩합니까? 당신이 명령을 실행하면

curl -u jujuba:lalalala -i -X Get http://localhost:80/api/resource -v 

* timeout on name lookup is not supported 
* Trying 127.0.0.1... 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0* Connected to localhost (127.0.0.1) port 80 (#0) 
* Server auth using Basic with user 'jujuba' 
> Get /api/resource HTTP/1.1 
> Host: localhost 
> Authorization: Basic anVqdWJhOmxhbGFsYWxh 
+2

기본 인증은 헤더에 Base64 인코딩을 사용합니다. 연결이 암호화되어 있지 않으면 (예 : HTTPS를 사용하여) 보안되지 않습니다. –

+0

안전하지 않은 경우이를 수행 할 이유가 있습니까? 특히 압축 된 것처럼 보이지 않습니다. –

+1

[RFC 2617, Section 2] (https://tools.ietf.org/html/rfc2617#section-2)에서는 HTTP 기본 인증 사양을 다루고 있습니다. 클라이언트가 해시를 만드는 방법과 서버가이를 처리하는 방법입니다. – Castaglia

답변

2

:

echo anVqdWJhOmxhbGFsYWxh | base64 -d 

당신은 내용이 기본 인증에 대한 표준 인 단지 자료-64로 인코딩 된 것을 보여주는 jujuba:lalala를 얻을 것이다.

인증이 필요한 사이트에는 HTTPS를 사용해야합니다.

+0

입니다. 사양 : https://greenbytes.de/tech/webdav/rfc7617.html#rfc.section.4.p.3을 참조하십시오. –