는 그 각각은 서로 다른 솔루션을 필요로 인증 자격 증명을 저장하기 위해 사용 - 다양한 사례가 있습니다 자격 증명 시스템에 사용자 로깅 경우
을, 다음 가장 좋은 방법은에서 암호를 저장하지 않는 것입니다 모든. 대신 비밀번호의 단방향 암호화 해시를 만들어 저장하십시오. 사용자가 로그인을 시도하면 제공된 비밀번호를 해시하고 결과를 저장된 해시와 비교합니다. 해시에는 사용자의 암호가 변경 될 때마다 변경되는 "소금"이 포함되어야합니다. 따라서 해시 코드가 시스템 해시 된 암호 파일을 도용하는 경우 해커 코드를 역 분개하기 위해 무차별 대입 공격을 적용하는 것이 더 어려워집니다.
타사 시스템에 로그인하는 사용자의 자격 증명 인 경우 시스템에 로그인하기 위해 사용자 암호의 다른 단방향 해시를 생성하여이를 암호화/암호화를위한 대칭 암호의 키로 사용할 수 있습니다. 저장된 사용자 자격 증명을 해독합니다. 다시 한번 핵심 원칙은 이 아니며은 사용자의 자격 증명을 해독하는 데 필요한 정보를 저장한다는 것입니다. 이 경우 키로 사용되는 해시를 저장하면 안됩니다.
자격 증명이 다른 시스템에서 자체를 인증하는 시스템의 경우 일반적인 해결 방법은 키 저장소를 사용하고이를 보호하기 위해 호스트 운영 체제와 잠금 해제에 사용되는 키 구를 사용하는 것입니다. (더 좋은 해결책이 있다면, 정말로 그것에 대해 듣고 싶습니다.)
사용자 비밀번호를 저장하거나 저장하는 것은 나쁜 생각입니다. 누군가가 침입 할 가능성이 항상 있기 때문입니다. 그들을 훔쳐. 암호가 암호화되어 있어도 해독 키는 어딘가에 저장해야합니다. 결정된 해커가이를 찾을 수 있습니다. 또는 신뢰할 수있는 관리자가 암호 및/또는 암호 해독 키를 공개하도록 설득 될 수 있습니다. 암호가 아닌 해시를 저장하면 데이터베이스 및/또는 응용 프로그램의 키 저장소가 손상된 경우에도 추가로 보호됩니다.
두 번째 부분은 많은 사용자가 많은 시스템에서 동일한 암호를 사용한다는 것입니다. 따라서 암호가 노출되도록 시스템이 손상된 경우 잠재적으로 다른 시스템의 사용자 계정을 노출하게됩니다.
이 주제에 관해서 몇 가지 질문이있었습니다 ... –