it-gundan.com

해시 된 비밀번호를 사용하여 시스템 외부에서 사용자 계정 마이그레이션

새 플랫폼으로 마이그레이션해야하는 수천 개의 사용자 계정이있는 시스템이 있습니다. 시스템은 암호화되지 않은 일반 텍스트가 아닌 해시 된 암호를 저장합니다. 또한 쉽게 사용할 수있는 해싱에 대한 세부 정보가 없습니다.

전환하는 효과적인 방법은 무엇입니까? 한 가지 아이디어가 내 머리 꼭대기에서 떠오른다.

  1. 미리 모든 데이터를 마이그레이션 할 수 있습니다. 기존 플랫폼의 현재 사용자는 새 플랫폼에 계정과 모든 데이터를 갖습니다.
  2. 현재 인증을 처리하는 일부 코드를 제거하고 사용자 이름/암호의 유효성을 검사하는 일종의 서비스로 바꿉니다.
  3. 새 플랫폼은 먼저 자체 인증을 확인하여 비밀번호가 전송되었는지 확인할 수 있습니다. 그렇지 않은 경우 다른 플랫폼의 서비스를 호출하여 이전 시스템에서 유효한지 확인할 수 있습니다.
  4. 유효하지 않은 경우 사용자에게 로그인이 잘못되었음을 알려줍니다.
  5. 유효하면 이제 올바른 비밀번호를 알고 있으며 플랫폼이 사용하는 방식에 따라 고유 한 사용자 테이블을 비밀번호로 채울 수 있습니다.
3
Larsenal

최근에 사용중인 해시 알고리즘에 액세스 할 수 없다는 점을 제외하고는 비슷한 문제가 발생했습니다. 두 가지 선택이 있다고 생각합니다.

  1. 모든 사용자 프로필을 새 시스템으로 옮기고 이전 암호 해시가있는 추가 열이 있습니다.
  2. 사용자가 처음 로그인하면 시스템에 새 시스템에 계정이 없지만 이전 시스템의 해시는 존재합니다. 시스템은 비밀번호의 사전 해시 사본을 유지하고 이전 해시와 비교하여 해시 된 버전을 확인합니다.
  3. 이전 해시가 일치하면 새 시스템의 비밀번호를 전송 한 비밀번호로 설정하십시오.

그러나 해시 알고리즘에 액세스 할 수없고 각 사용자에게 전자 메일 주소가있는 경우 다른 옵션을 선택할 수 있습니다. 이것이 내가 실제로 한 일입니다.

  1. 모든 사용자 이름, 이메일 주소 및 정보를 기존 시스템에서 새 시스템으로 복사하십시오. 사용자가 이전 시스템의 사용자임을 나타내는 플래그 열을 테이블에 넣습니다.
  2. 사용자가 처음으로 새 시스템에 로그인하면 새 시스템에 계정은 있지만 암호는없는 것을 알 수 있습니다.
  3. 시스템에 "웹 사이트를 업데이트했으며 사용자 계정이 변환되었습니다."라는 메시지가 화면에 표시되도록합니다. 새로운 임시 비밀번호를 입력하면 곧 이메일을 받게됩니다. 기간).
  4. 새 사이트에 사용자에게 임시 비밀번호를 보내면 로그인 할 수 있습니다. 처음 로그인 한 사용자는 비밀번호를 원하는대로 재설정합니다.

두 번째 옵션은 꽤 잘 작동했습니다. 사용자 불만이 거의 없었으며 사용자가 잊어 버린 암호를 재설정하는 일반적인 프로세스이기 때문에 비교적 안전합니다.

3
Ben Hoffman

너무 많은 어려움을 겪기 전에 해시 알고리즘이 무엇인지 살펴 보셨습니까? 해시 된 암호를 사용할 정도로 제정신이라면 공통 해시 알고리즘 (MD5, SHA1 등)을 사용하기에 제정신이기를 바랍니다.

그들이하는 일을 리버스 엔지니어링 할 수 있는지 알아보기 위해 몇 가지 일반적인 옵션을 시도해 보는 것이 좋습니다.

또한 "현재 인증을 수행하는 일부 코드를 제거"에 대해 언급합니다. 해시 알고리즘이 아닌 코드를 어떻게 사용합니까?

0
Eric Petroelje