2011-12-20 4 views
2

소금이 인증 과정에서 어떻게 사용되는지 알고 있습니까? 비록 인터넷을 통해 검색했지만 여전히 이해하지는 못합니다. 누구든지 도와 줄 수 있습니까? 대단히 감사합니다!소금이 인증 과정에서 어떻게 사용 되는가?

+0

무엇을 읽고 무엇을 이해하지 못합니까? –

+1

[http://en.wikipedia.org/wiki/Salt_(cryptography)](http://en.wikipedia.org/wiki/Salt_(cryptography)) –

답변

3

일반적으로 소금에 절인 해시가 사용됩니다. 맛있는 소리 외에도 다음과 같이 작동합니다.

암호를 암호화하는 한 가지 방법은 비밀 키를 사용하여 암호를 암호화하고 암호를 해독하는 양방향 암호화 메커니즘을 만드는 것입니다. 누군가가 비밀 키를 얻으면 아무 것도 해독 할 수 있기 때문에 문제가 될 수 있습니다. 예를 들어 누군가 데이터베이스에 액세스하여 한 사용자의 암호를 해독 할 수 있으면 모든 사용자의 암호를 해독 할 수 있습니다. 게다가 값을 해독하는 것이 가능하다는 사실만으로도 보안 상 위험 할 수 있습니다.

또 다른 옵션은 해시를 만드는 것입니다. 이는 단방향 정렬 암호화로 항상 동일한 결과를 제공합니다. 이는 사용자 암호를 해시 한 후 데이터베이스의 해시 된 값과 일치하는지 확인하기 때문에 값을 암호 해독 할 필요가 없기 때문에 유용 할 수 있습니다. 그러나이 두 가지 단점은 해시 알고리즘 자체가 일반적으로 안전하지 않기 때문에 동일한 암호를 가진 모든 사람이 동일한 암호화 된 값을 갖게된다는 것입니다. 이 때문에 한 사람의 암호를 얻을 수 있다면 다른 사람이 동일한 암호를 가지고 있는지 쉽게 파악할 수 있습니다. 또한 해시 알고리즘을 통해 사전 전체를 실행하여 누가 약한 암호를 가지고 있는지 확인하기 쉽습니다.

그래서 해시를 향상시키는 방법은 소금 값을 추가하는 것입니다. 사용자 암호를 해시하기 전에 해시 알고리즘을 실행하기 전에 사용자 이름 (또는 사용자 ID 또는 사용자에게 상수이지만 사용자에게 고유 한 다른 이름)을 추가하십시오. 이렇게하면 모든 사람이 다른 암호화 된 값을 갖게되지만 모든 사람의 해시 값은 여전히 ​​자신의 계정에서 반복 가능합니다. 또한 해시가 사전에서 오지 않았을 때의 값을 알기 때문에 사전 공격의 위험을 줄입니다. 누군가는 각 사용자의 사용자 이름 또는 사용자 ID 또는 무차별 대입 공격에 포함 된 모든 것을 포함시켜야합니다. 따라서 한 사람이 해킹 당했을 때도 해커는 다른 모든 사용자, 심지어는 같은 암호를 가진 사람이라도 처음부터 다시 시작해야합니다.

+0

답장을 보내 주셔서 감사합니다. 도움이됩니다! =) – ycf

관련 문제