2012-02-27 4 views
3

필자가 작성중인 iPhone 응용 프로그램의 암호 코드 (기본적으로 4 자리 핀 코드)를 잊어 버린 사용자들에게 일종의 암호 재설정 기능을 구현하고 싶습니다. 모든 사용자가이를 단순히 비활성화 할 수 있습니다. 나는 어떤 종류의 검증을 제자리에 두려고 생각하고 있으며 이런 종류의 일에 가장 적합한 방법이 무엇인지 알고 싶다. 이 같은암호 코드 재설정 알고리즘

내가 계획입니다 뭔가 :

  1. 사용자의 연락처 나
  2. 내가 패스 코드 화면에 입력하는 이메일을 통해 코드 또는 코드의 순서를 보내 자신의 암호가 잊어 버린 대답
  3. 앱이 일부 비밀 알고리즘을 기반으로 번호를 생성하고 사용자가 나에게 보낸다
  4. 패스 코드를 제거하기 위해 입력하는 다른 코드 (일치하는 알고리즘에 의해 생성됨)를 보내고

이 방법을 사용하면 사용자가 나와 접촉하여 자신이 누구인지 확인한 경우에만 사용자가 암호를 재설정하도록 허용 할 수 있습니다. 이렇게하면 사용자가이 코드를 사용하여 동일한 앱이있는 다른 휴대 전화를 잠금 해제 할 수 없습니다.

이것이 좋은 생각입니까? 이러한 종류의 2 단계 인증 코드를 생성하기위한 적절한 해싱 알고리즘/라이브러리가 있습니까 (Objective C 권장)? 이런 종류의 접근법이 있습니까?

도움이나 조언을 주시면 감사하겠습니다.

+0

4 자리 핀이 단지 10.000 가능한 값을 보낼 수 있습니다. 어디에서 어떻게 코드를 저장 하시겠습니까? –

+0

앱 샌드 박스에 저장할 계획입니다. 개인 정보를보고있는 일반 사용자는 암호를 잊어 버리고 전화를 걸거나 게임을하기 위해 누군가에게 전화를 빌려주는 경우 패스 코드가 있다고 말해야합니다. 결정된 사용자가 전화 또는 백업을 통해 트롤링하여 침입하는 것을 막을 수 있다는 점에서 안전 할 필요는 없습니다. –

답변

1

해시와 RSA의 조합을 사용하여이를 해결할 수 있어야합니다.

마지막에 개인 키 (K1)가 있고 앱에 공개 키 (K2)가 있다고 가정합니다.

2 단계 : 임의 코드 C와 개인 키 K1을 사용하여 C의 암호화를 보냅니다. 앱이 암호화를 해독하고 사용자가 입력 한 코드와 일치하는지 확인합니다. C

3 단계 : 앱에서 임의의 4 자리 코드 (새 비밀번호 P)를 만들고 공개 키로 암호화 한 다음 당신에게 보냅니다 사용자)

4 단계에 있습니다 : 당신은 당신의 개인 키를 사용하여 새 암호를 해독하고 사용자에게