programing

안드로이드:사용자 이름과 암호를 저장하고 있습니까?

codeshow 2023. 10. 29. 20:03
반응형

안드로이드:사용자 이름과 암호를 저장하고 있습니까?

Android 애플리케이션 내에서 사용할 사용자 이름과 비밀번호를 저장하려면 가장 좋은 방법은 무엇입니까?기본 설정 화면을 통해서 인가요(그러나 사용자가 이를 놓치면 어떻게 됩니까?), 대화 상자를 열고 사용자에게 자격 증명을 요청합니까?만약 그렇다면, 저는 지원서에 대한 상태를 유지해야 합니다.제가 이걸 어떻게 하죠?

제가 본 대부분의 안드로이드 및 아이폰 앱은 초기 화면이나 대화 상자를 사용하여 자격 증명을 요청합니다.사용자가 이름/비밀번호를 자주 다시 입력해야 하는 것은 번거로운 일이라고 생각하기 때문에 사용성 측면에서 정보를 저장하는 것이 타당합니다.

(Android 개발 가이드)의 조언은 다음과 같습니다.

일반적으로 사용자 자격 증명을 요청하는 빈도를 최소화하여 피싱 공격이 눈에 띄고 성공 가능성이 낮도록 하는 것이 좋습니다.대신 권한 부여 토큰을 사용하여 새로 고칩니다.

가능한 경우 사용자 이름과 암호를 장치에 저장해서는 안 됩니다.대신 사용자가 제공한 사용자 이름과 암호를 사용하여 초기 인증을 수행한 다음, 짧은 수명의 서비스별 인증 토큰을 사용합니다.

AccountManager를 사용하는 것이 자격 증명을 저장하는 데 가장 적합한 옵션입니다.SampleSyncAdapter는 SampleSyncAdapter를 사용하는 방법의 예를 제공합니다.

어떤 이유에서인지 선택사항이 아닌 경우 기본 설정 메커니즘을 사용하여 자격 증명 유지로 돌아갈 수 있습니다.다른 응용프로그램은 사용자의 환경설정에 접근할 수 없기 때문에 사용자의 정보가 쉽게 노출되지 않습니다.

안드로이드 계정 관리자를 사용해야 합니다.이 시나리오를 위해 특별히 제작된 것입니다.이것은 약간 번거롭지만 SIM 카드가 변경되면 로컬 자격 증명을 무효화하는 것 중 하나이므로 누군가가 전화기를 스와이프하여 새 SIM을 넣으면 자격 증명이 손상되지 않습니다.

이를 통해 사용자는 한 곳에서 장치에 있는 계정에 대해 저장된 자격 증명에 빠르고 쉽게 액세스(및 잠재적으로 삭제)할 수 있습니다.

SampleSyncAdapter(@Miguel 언급된 것처럼)는 저장된 계정 자격 증명을 사용하는 예입니다.

크리덴셜을 안전하게 보호하는 가장 좋은 방법은 우선 암호화가 포함된 암호를 비루팅 장치에서는 쉽게 사용할 수 없었던 account.db 파일에 저장하는 것을 생각하는 것입니다. 그리고 루팅 장치의 경우 해커가 암호를 해독하기 위해 키가 필요해야 합니다.

다른 옵션은 Gmail이 하는 방식처럼 모든 인증을 수행하는 것입니다. Gmail 서버로 첫 인증을 한 후에. 당신은 당신의 비밀번호의 경우에 사용될 Auth Token을 얻었습니다. 그 토큰은 일반 텍스트로 저장될 것입니다.서버에서 비밀번호를 변경하는 경우 이 토큰은 거짓일 수 있습니다.

단말기에 대해 2-Factor Authentication(2-Factor Authentication)을 활성화하고 단말기에 대한 단말기별 암호를 생성하는 것이 마지막으로 권장하는 옵션입니다.장치를 분실한 후 해당 장치를 비활성화하기만 하면 됩니다.

암호를 공유 환경설정에 명확한 텍스트로 저장하는 것이 문제라면 Android 응용프로그램에서 사용자 설정을 저장하는 가장 적절한 방법을 살펴보십시오.

SDK에서 SampleSyncAdapter 샘플을 볼 수도 있습니다.도움이 될지도 모릅니다.

Android 앱에 저장된 데이터의 보안을 강화하는 데 도움이 될 수 있는 Android 개발자의 이 게시물을 보십시오.

암호화를 사용하여 자격 증명을 안전하게 저장

새로운 (안드로이드 6.0) 지문 하드웨어와 API를 사용하면 github 샘플 애플리케이션에서처럼 할 수 있습니다.

숨겨진 정보를 깨기 어려운 순서대로 순위가 매겨집니다.

  1. 선명한 텍스트로 저장

  2. 대칭 키를 사용하여 암호화된 저장

  3. Android 키스토어 사용하기

  4. 비대칭 키를 사용하여 암호화된 저장

출처: Android 앱에서 암호를 저장하기에 가장 좋은 곳은 어디입니까?

키스토어 자체는 사용자 자신의 잠금 화면 핀/비밀번호를 사용하여 암호화되므로 장치 화면이 잠기면 키스토어를 사용할 수 없습니다.응용프로그램 비밀에 액세스해야 하는 백그라운드 서비스가 있는 경우 이 점에 유의하십시오.

출처: Android Keystore를 사용하여 비밀번호기타 민감한 정보를 간단하게 저장할 수 있습니다.

http://nelenkov.blogspot.com/2012/05/storing-application-secrets-in-androids.html 의 정보는 상당히 실용적이지만 "uses-hidden-android-apis" 기반 접근 방식입니다.인증 정보/비밀번호를 기기에 로컬로 저장할 수 없을 때 고려해야 할 사항입니다.

저는 또한 https://gist.github.com/kbsriram/5503519 에서 그 아이디어에 대한 정리된 요지를 만들었고, 이것은 도움이 될 것입니다.

언급URL : https://stackoverflow.com/questions/1925486/android-storing-username-and-password

반응형