2011-10-17 2 views
1

요즘 Google은 Gmail 계정이 비정상적인 위치의 두 IP 주소로 액세스되어 Gmail 계정이 해킹 당했다고 통보했습니다. 나는 일반적으로 (그리고 어리 석음으로) 모든 웹 사이트에 동일한 암호를 사용하기 때문에 필자는 사물을 변경하고 다른 암호를 사용하기로 결정했습니다.토론 : 비밀번호 키퍼 Android 애플리케이션 암호화

Android 개발자로서 다른 비밀번호를 기억하기 어렵 기 때문에 사용자 이름과 비밀번호를 저장할 수있는 비밀번호 키퍼 애플리케이션을 개발하기로 결정했습니다. 쉬운 경로를 택하고 기존 타사 암호 키퍼 응용 프로그램을 다운로드하고 싶지 않습니다.

내 응용 프로그램에서 사용자 이름과 암호를 보호하는 가장 좋은 방법은 무엇입니까? 현재 추가 할 수있는 계정 목록을 보려면 암호가 필요합니다. 또한 사용자 이름과 암호를 데이터베이스에 저장하고 있습니다. 그러나 Android는 기본적으로 데이터베이스를 암호화 할 수 없습니다. 내가 데이터베이스에 저장 한 값을 암호화 할 수는 있지만 누군가 내 전화로 손을 대면 실제로 원한다면 암호화를 찾을 수 있습니다. 또는 암호화/암호 해독을 위해 서버를 사용할 수도 있지만 유지 관리해야하고 손상 될 수있는 서버가 있습니다.

주제에 대한 의견을 듣고 싶습니다. 완벽 함을 달성 할 수 없다는 것을 알고는 있지만 Android 애플리케이션을 구현하는 좋은 방법은 무엇입니까?

답변

2

비밀번호 목록을 추가/표시 할 때마다 사용자가 반드시 PIN 또는 비밀번호를 제공하도록해야 할 것입니다. 맞습니까? 암호화 키로 사용하면 안됩니다. 즉, 누군가가 귀하의 전화를 받으면 사용자가 정의한 키를 모르더라도 암호를 얻거나 암호를 해독 할 수 없습니다.

+0

XKCD 예, 사용자가 기본 PIN 또는 암호를 정의하도록 요구하고있다. 그러나 PIN/암호를 암호화 키로 사용하는 것에 대해서는 생각하지 않았습니다. 나는 그 생각을 좋아한다. 감사! – littleK

2

응용 프로그램을 살펴보십시오 1password 그들은 아마도 시장에서 최고의 암호 키퍼 응용 프로그램입니다. 그들의 철학은 당신이 당신의 1 패스 워드를 사용하여 128 비트 암호화 톤 뒤에 모든 패스워드를 저장한다는 것입니다. 그 외 모든 웹 사이트 패스워드는 임의로 생성 된 영숫자 문자열입니다. 따라서 충돌 기회는 실제로 없으며 어디서나 탐색 할 수 있습니다.

사용자가 암호가 어딘가에 있다고 가정 할 수있는 서버를 사용하면 안됩니다. 좋은 앱 개발자 인 경우 서버의 암호는 클라이언트 쪽을 저장하는 것처럼 안전합니다.

"정말로 원한다면"암호화를 찾는 방법은 사용자가 하나의 암호를 선택하는 것이므로 모든 정보를 입력해야합니다. 예, 무차별 대입으로 암호화를 해독하는 것이 가능하지만 사용자가 사전이 아닌 알파벳 숫자 문자열을 선택하면 통과 가능성이 거의 없습니다. 또한 모든 것을 올바르게 암호화하면 암호화를 "중단"할 수 없습니다.

마지막 단지 때문에 내가 할 수

To anyone who understands information theory and security and is in an infuriating argument with someone who does not (possibly involving mixed case), I sincerely apologize.

크레딧