나는 레일에 API를 구현하고 있으며 HTTP 다이제스트 인증을 기본 승인보다 안전하기 때문에 사용하고자합니다. 내 암호가 일방향 암호화 해시로 데이터베이스에 저장되는 경우 어떻게 구현합니까?HTTP 다이제스트 인증 (단방향 암호화 된 암호 사용)
0
A
답변
0
솔직히? 귀찮게하지 마라. HTTP를 통해 다이제스트를 사용하려는 경우 양식 또는 기본 인증을 사용할 수도 있습니다. HTTPS가 해결책입니다. 다이제스트를 사용하는 것은 여전히 완전히 안전하지 않습니다 (약한 해싱을 사용하고 MitM 공격에 대한 방어력을 제공하지 않습니다).
HTTPS는 어렵지 않고 응용 프로그램 보안에 어려움을 겪을 수 있습니다.
0
서버에 저장된 해시 값과 함께 다이제스트 권한을 사용하는 유일한 방법은 클라이언트의 해시 알고리즘을 복제하여 사용자의 암호를 해시로 변환 한 다음 기본적으로 새 암호 (공유 비밀 키)가되는 것입니다.
해시 값을 생성 할 때 소금을 사용하면 클라이언트에서 동일한 소금을 사용해야하므로 어려울 수 있습니다.
다른 사람들도 제안했듯이 HTTPS를 대신 사용해보십시오. 그런 다음 일반 텍스트로 된 암호를 클라이언트에서 서버로 보내고 HTTPS를 사용하여 종단 간 보호를 수행 할 수 있습니다. HTTPS는 암호화와 인증을 제공하여 루프를 닫습니다.
Basic도 재생 공격을 받기 쉽기 때문에 확실히 양식을 작성하려고합니다. –