문제

나는 물었다 여기 내가 구현하도록 요청받은 프로토콜과 그것이 얼마나 안전했는지에 대해. 처음부터 똥이라는 것이 분명해 보였습니다. 그래서 나는 묻는다 :

당신은 나에게 아주 간단한 로그인 프로토콜을 지적 할 수 있습니까 (나는 암호화 시스템에서 null입니다) ?? 응용 프로그램의 서버와 클라이언트 측면을 모두 개발하고 있으며 자신의 메신저 시스템이 있으므로 충분한 자유가 있습니다.

귀하의 제안을위한 2 가지 특별한 특성 만.

  1. 단순 :이 응용 프로그램이 실행될 네트워크는 특별히 불안하지 않으며 평범한 텍스트로 암호를 보내는 것을 피하고 싶습니다.

  2. 가능하면 메시지의 너무 긴 교환이 아닙니다. 짧을수록 좋습니다.

도움이 되었습니까?

해결책

체크 아웃 도전 응답 인증

  • 서버는 로그인 양식에 임의의 챌린지 문자열이 포함되어 있습니다.
  • 로그인하면 JavaScript가 암호를 해시 한 다음 도전 과제로 해시합니다.
  • 그런 다음 서버는 동일한 확인을 수행합니다 (DB는 해시 암호를 저장해야하지만이 방법은이를 방송해야하기 때문에 해당 해당 소금을 효과적으로 사용하지 못하게합니다).

다른 팁

3 개의 패스 프로토콜 편리 할 것입니다. 기본적으로 다음으로 요약됩니다.

  • 사람이 비밀번호를 암호화하고 사람 B로 보냅니다.
  • 개인 B는 암호화 된 암호를 암호화하여 사람 A로 다시 보냅니다.
  • 사람이 해독하고 다시 보내십시오.
  • Person B는이를 해독하고 비밀번호를 일반 텍스트로 가져옵니다.

이런 식으로 비밀번호는 평범한 텍스트로 전송되지 않으며 암호화 키도 아닙니다. 그것은 상징적 인 암호화에 (아마도) (아마도) 매우 빠른 프로토콜이기 때문에 비교적 빠른 프로토콜입니다.

데이터베이스 내용이 무단 손에 들어가는 경우 데이터베이스에 암호 해시를 저장하는 것은 최적의 안전이 아닙니다. 해시를 직접 반전시키는 방법은 없지만 온라인이 있습니다. Dictinonaries (처럼 여기) 해시 (패스) 단어를 역전시키기 위해.

DB에서는 다음과 같은 Somethig를 저장해야합니다.

md5(login_name +  domain_or_appname_salt + password);

중간의 소금은 여러 형태의 사전 공격을 방지합니다.

클라이언트 측 (브라우저)에서 사용자 이름과 비밀번호가있는 로그인 양식이 있습니다. 작은 JavaScript 조각은 userame + app_salt_ 및 password를 해시하므로 login_name 및 생성 된 해시 만 서버로 전송됩니다.

이제 일반 텍스트 비밀번호는 일반 텍스트로 서버로 보내지 않습니다. 따라서 여기에서 HTTPS에 의존 할 필요는 없습니다.

암호 업데이트 양식에서 동일한 기술을 사용할 수 있습니다. 따라서 서버는 일반 텍스트 비밀번호를 결코 알지 못합니다.

나는 당신이 이것과 다른 답변들로부터 약간의 영감을 얻었기를 바랍니다.

행복한 해킹!

Huibert

프로토콜이 TCP에서 실행되면 인증을 Clear로 작성한 다음 SSL과의 통신을 포장 할 수 있습니다. 예를 들어, 프로토콜에 Port 1234를 사용하는 경우 서버의 해당 포트를 닫고 클라이언트가 SSH로 터널링하도록 할 수 있습니다. 이것은 프로그래밍 방식으로 수행 될 수 있으며 매우 일반적인 솔루션입니다.

프로토콜이 HTTP를 통해 실행되면 HTTPS를 사용하여 표준 방식으로 수행 할 수 있습니다. 예를 들어 HTTP에 대한 기본 인증은 지정한 요구에 충분히 안전합니다.

반면에, 와이어에서 비밀번호를 보내지 않으려면 도전 응답 인증을 수행해야합니다.

  1. 서버는 임의의 문자열을 보냅니다
  2. 클라이언트는 무작위 문자열 + 암호의 해시를 보냅니다
  3. 서버는 해시를 확인합니다.

이것은 서버에서 비밀번호를 사용할 수 있다는 단점이 있습니다 (일반 텍스트로 암호화). 서버에 암호를 저장하지 않으려면 첫 번째 예로 돌아 가야합니다.

SASL 안전한 인증 메커니즘입니다. SASL에 대한 지원은 릴리스 1.5+를 위해 Java Standard Libraries에 제공됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top