2009-07-23 4 views
5

저는 유료 디지털 인증서를 읽고 웹 사이트 https : //에서 SSL을 사용한 후 네트워크 계층에서 데이터 전송이 안전하다는 것을 알고 SSL을 처음 사용합니다.SSL을 사용하지 않는 안전한 로그인 자격 증명

내 응용 프로그램에서 나는 loginname과 password를 제외하고 많은 보안 문제가 없다.

SSL의 HTTPS를 사용하지 않고 LOGINNAME과 암호를 보호 할 수있는 방법이 있습니까 : //

+1

네,하지만 좋은 보호 장치는 아닙니다. 중간자 (man-in-the-middle) 공격은이 보안 메커니즘을 쉽게 손상시킬 수 있습니다. –

답변

3

평범한 HTTP보다 안전하게 작동 할 수있는 여러 인증 방법이 있습니다. 이 중 가장 일반적인 것은 Digest이며 모든 주요 웹 브라우저와 사실상 모든 웹 프로그래밍 프레임 워크에서 지원됩니다.

웹 사이트에 대한 다이제스트를 사용하는 다운 측면입니다 :

  • 인증은 거의 좋은 보이지 않는 브라우저 자체가 아니라 웹 사이트의 로그인 페이지에 의해 처리된다 "비밀번호를 잊었습니까?"와 같은 주변 도우미 기능을 모두 사용할 수는 없습니다. 우리가 요즘 기대하게 된 것.

  • SSL 연결이없는 경우 정통한 사용자는 자격 증명을 입력 할 때 SSL 연결을 찾도록 훈련 받았기 때문에 안전하지 않은 경우에도 비밀번호를 안전하지 않게 보냈다고 걱정할 수 있습니다. 이

또한 일반 HTTP를 통해 안전 등 OAuth 다른 계획이 있지만, 그 웹 사이트에 비해 API에 대한 정말 더, 그래서 아마 당신이 원하는 없습니다.

+2

다이제스트가 정확하게 안전하지 않습니다. 컴퓨터간에가는 트래픽을 볼 수있는 사람은 여전히 ​​다이제스트 된 암호를 가로 채고, 다이제스트 된 암호를 사용하여 HTTP 요청을 조롱하거나 수정하고 여전히 웹 사이트에 액세스 할 수 있습니다. – tschaible

+0

다른 인증 방법과 마찬가지로 비슷한 문제가 발생합니다. 인증 쿠키를 발급하는 것과 같은 토큰 기반 인증도 가로 챌 수 있으며 스푸핑 될 수 있습니다. 둘 다 완화되는 방식은 만료 토큰을 갖게하는 것입니다 (다이제스트는 넌스로 이것을 수행합니다). 모든 연결이 SSL을 통해 이루어지기 전까지는 진정한 안전성이 보장되지 않습니다 (그렇다해도 실제로는 안전하지 않습니다!). –

+0

오, 나는 대답을 얻은 것 같다. MD5 알고리즘을 사용하여 클라이언트에서 암호의 해시 값 (암호화 됨)을 생성 할 수 있습니다. 그리고 그 서버는 클라이언트 측에서 그 키를 사용하는 로그인 페이지에 대한 요청이있을 때 클라이언트에게 무작위 값 키를 전달해야합니다. 우리는 암호를 암호화하여 서버에 보낼 수 있습니다. 서버가 키를 알고 있으므로 해독 할 수 있습니다. 이 솔루션은 훌륭하다고 생각합니다. 너의 의견은 뭐니? –

1

인증서는 자기가 한을 체결 할 수있다. 반드시 유료가 될 필요는 없습니다 :)

+0

선생님, 내 웹 사이트에서 무료 디지털 인증서를 사용할 수 있도록 자세한 내용을 알려 주실 수 있습니까? 또한 웹 사이트에 어떻게 구성 할 수 있습니까 –

+1

무료 인증서를 발급하는 cacert.org도 있습니다. 그들은 기본적으로 브라우저에서 신뢰하지 않지만 자체 서명보다 낫습니다. – stribika

1

또한 나는 현재 그 사용하고 StartSSL.Org 을 시도 할 수 있으며 어떠한 대안이 없어도 잘 작동하지만이 cacert.org로 어떻게 든 같은, 그들은 기본적

2

하여 브라우저에서 신뢰할 수없는 사용자가 로그인 한 모든 페이지에 대해 SSL을 사용하는 것 이외의 브라우저에서 HTTP 보안. 다른 기술은 완전히 안전하지 않으며 모호한 계층입니다.

HTTP를 통한 모든 가정용 솔루션은 다른 취약점 중에서도 MITM 공격에 항상 취약합니다.

SSL을 사용하는 경우에도 & 로그인 메커니즘은 안전해야하며 그렇지 않으면 다른 악용 사례를 사용하여 해킹 당할 수 있습니다.

0

주제에서 벗어나면 openssl을 사용하여 자체 서명 인증서를 얻을 수 있습니다.

자체 서명 된 인증서를 생성하려면 먼저 RSA 키와 CSR을 생성해야합니다. 설치하려면 openssl와 리눅스 시스템에서 :

openssl genrsa -des3 -out mydomain.key 1024 

openssl req -new -key mydomain.key -out mydomain.csr // fill in the details 

mv mydomain.key mydomain.key.org 

openssl rsa -in mydomain.key.org -out mydomain.key  // creates passphraseless key 

openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt 
0

음은 오래된 스레드를 엽니 다 싫어,하지만 난이 정확 보이지 않아요.

나는 검증 할 수있는 인증서를 이기기가 어렵지만 사람들은 종종 테스트 사이트에 자체 서명 된 인증서를 사용한다는 것을 인정합니다. 나는 간단한 자작 해결책이 자기 서명 된 인증서만큼 좋은 것일 수 있다고 확신한다.

지옥, 나는 심지어 약간의 사전 공유 키 (또는 gpg와 같은 것)로 모든 비트를 안전하다고 말할 것입니다.

+0

클레임을 뒷받침하는 참조 자료를 제공해 주시겠습니까? 사실이라면, 그들은 매우 흥미로울 것입니다. – Lizz