인증 토큰을 안전하게 저장하는 것은 모바일 앱 보안의 핵심입니다. 토큰은 사용자 계정,敏感 데이터 및 서비스의 열쇠입니다. compromis 된 경우, 사용자 ID 도난, 금융 사기 및 데이터 침해로 이어질 수 있습니다. 보안 토큰 저장: 모바일 개발자들을 위한 최적의 방법보안 토큰 저장: 모바일 개발자에게 필요한 최선의 방법
주요 내용
- 플랫폼 네이티브 보안 저장소 사용: iOS Keychain 또는 Android Keystore에서 하드웨어 기반 보안을 위해 토큰을 저장하십시오.
- 휴지 상태에서 토큰 암호화: Android의 또는 iOS의 같은 보안 암호화 도구를 사용하십시오.
EncryptedSharedPreferences토큰 노출 제한CryptoKit: 짧은 유효 기간의 토큰과 갱신 토큰 회전을 사용하여 위험을 줄이십시오. - 안전한 통신: 항상 HTTPS를 사용하고 인증서 핑핑을 구현하여 중간인 공격을 방지하십시오.
- 이러한 방법으로 보호하십시오:주요 내용:
- 토큰 생명 주기 관리: 자주 만료, 갱신, 취소하여 도난으로부터 최소한의 피해를 입힙니다.
저장 방법 간단 비교:
| 저장 방법 | 보안 수준 | 사용성 | 최적의 사용 사례 |
|---|---|---|---|
| 메모리 내 저장 | 높음 | 낮음 | 단기 세션, 고보안 필요 |
| 로컬 저장 | 낮음 | 높음 | 비민감 데이터 |
| 보안 쿠키 | 높음 | 중간 | 서버 측 제어를 갖는 웹 앱 |
| iOS 키체인 | 매우 높음 | 중간 | iOS 앱에서 민감한 토큰 저장 |
| 안드로이드 키스토어 | 매우 높음 | 중간 | 안드로이드 앱이 보안 저장을 필요로 할 때 |
| 사용자 지정 암호화 | 변수 | 중간 | 특별한 보안 요구 사항 |
앱의 현재 토큰 저장 방법을 ауд토링하고 다음 보안 관행을 구현하여 사용자와 브랜드를 보호하세요.
Faux Disk Encryption Realities of Secure Storage on Mobile Devices - Daniel Mayer & Drew Suarez
보안 토큰 저장의 기본 규칙
토큰을 보호하려면 보안의 층을 결합하여 하나의 방어가 실패해도 다른 방어가 민감한 데이터를 보호할 수 있도록 합니다. Capacitor 앱의 경우 플랫폼 간 토큰 보안을 유지하기 위해 이러한 관행을 따르는 것이 중요합니다.
HTTPS와 인증서 고정
HTTPS 암호화는 토큰截获에 대한 첫 번째 방어입니다. 앱과 서버 간의 모든 상호 작용이 HTTPS를 사용하여 전송 중 데이터를 암호화하여 공격자에 대한 노출을 방지합니다.
이것을 더욱 강화하기 위해 구현하세요. 인증서 고정Capgo 앱의 경우, @Capacitor/__CAPGO_KEEP_1__-ssl-pinning은 iOS와 Android에서 CapacitorHttp에 대한 패키지된 인증서로 HTTPS 연결을 고정합니다. 이 기술은 앱이 신뢰할 수 있는 서버와만 통신하도록 보장하며, 누군가가 위조 인증서를 사용하더라도 앱이 신뢰할 수 있는 서버와만 통신하도록 보장합니다. 앱에서 서버의 인증서나 공개 키를 고정하면 앱과 서버 간의 직접적인 신뢰 관계를establish합니다. @capgo/capacitor-ssl-pinning 실제 예시: Twitter은 Man-in-the-Middle (MitM) 공격을 경험한 후 모바일 앱에 인증서 고정을 도입했습니다. 그들의 팀은 서버의 SSL 인증서 공개 키를 앱에 직접 삽입했습니다. 사용자가 연결할 때, 앱은 고정된 인증서와 인증서를 확인했습니다. 일치하지 않으면 연결을 즉시 종료했습니다. 이 접근 방식은 MitM 공격을 크게 줄이고 사용자에 대한 신뢰도를 높였습니다.
다음 중 하나를 선택하세요. [5]
인증서 고정 [5].
(인증서 전체를 검증)으로 최대 보안을 제공합니다. 인증서 고정 인증서 전체를 검증 공개 키 핑킹 (유효한 공개 키만 검증) 인증서 갱신 시 더 많은 유연성을 제공하기 위해. OkHttp Android용 Alamofire iOS용 [5].
이러한 기술을 구현하는 것을 단순화하는 도구들
보안 전송이 구축된 후, 다음 단계는 토큰 노출을 최소화하는 것입니다.
토큰 노출 최소화
- 토큰 노출을 최소화하는 것은 토큰의 유효 기간과 권한의 범위를 제한하는 것입니다. 아이디어는 간단합니다: 토큰이 유효한 시간이 짧고 권한이 적을수록, 만약 토큰이 compromis 된 경우 위험은 낮아집니다. short-lived access tokens 토큰의 유효 기간을 분 단위로 측정하여 사용하고, 사용자 세션을 유지하기 위해 리프레시 토큰과 pair하는 것을 추천합니다. 이 방법은 도난된 토큰이 빠르게 쓸모없는 토큰이 되도록 합니다.
- 권한 제한 원칙을 적용하세요. 권한 제한 원칙. 예를 들어, 사용자 프로필 데이터만 읽기 위해 토큰이 필요하다면, 사용자 계정 설정을 수정하거나 결제 정보에 접근할 수 있는 권한을 부여하지 마세요.
- Refresh 토큰 회전을 활성화하세요. Refresh 토큰 회전, 새로운 접근 토큰을 요청할 때마다 새로운 Refresh 토큰이 발급됩니다. Refresh 토큰이 훔쳐진 경우, 정당한 앱이 토큰을 사용한 후 토큰이 유효하지 않아져 위험 창구가 줄어듭니다. [4].
토큰 노출을 제한함으로써, 취약점이 발생한 경우에 발생할 수 있는 큰 피해를 줄일 수 있습니다. 다음으로, 암호화는 물리적으로 장치가 훼손된 경우에도 토큰이 안전하도록 합니다.
휴지 상태의 토큰 암호화
휴지 상태의 토큰 암호화 장치에 저장된 토큰을 보호합니다. 장치가 잃어버려졌거나 훼손되거나 악성 소프트웨어에 의해 훼손된 경우에도 토큰이 읽을 수 없도록 암호화합니다.
모던 모바일 운영 체제는 안드로이드의 SharedPreferences나 iOS의 NSUserDefaults와 같은 표준 방법보다 훨씬 더 신뢰할 수 있는 보안화된 하드웨어 저장 옵션을 제공합니다. [4].
- 안드로이드: 사용하세요
EncryptedSharedPreferences(Android 10 이상에서 사용할 수 있습니다). 이 도구는 암호화 및 키 관리를 자동으로 처리하여 구현을 단순화하고 보안을 강화합니다. 예를 들어,SecureJWTStorageclass는 JWT를 안전하게 저장하고 검색할 수 있습니다.EncryptedSharedPreferences을 사용하여 code 없이 복잡한 사용자 정의 암호화를 필요로하지 않습니다. - iOS: Keychain은 보안 토큰 저장을 위한 하드웨어 암호화 기능을 제공합니다. 개발자는
KeychainHelperclass를 사용하여 JWT 토큰을 관리하거나 을 사용하여 토큰을 Keychain에 저장하기 전에 추가 보안层를 제공할 수 있습니다. Android 및 iOS는 모두 하드웨어 백업 암호화를 사용합니다. 예를 들어, iOS의 Secure Enclave와 Android의 Hardware Security Module은 운영 체제의 메인 운영 체제와 분리된 보안 장치에서 암호화 키를 저장합니다. [4].
마지막으로, 데이터 보유 정책을 명확하게 정의하세요. 만료된 토큰을 자동으로 삭제하고 장치에서 더 이상 필요하지 않은 경우에만敏感 데이터를 안전하게 삭제하세요. 이러한 관행은 토큰이 절대적으로 필요하지 않은 한 저장되지 않도록 보장합니다.
플랫폼별 토큰 저장 방법 [6].
Platform-Specific Token Storage Methods
모바일 플랫폼은 보안과 사용자 경험을 모두 충족하는 보안 토큰을 제공하는 전용 도구를 제공합니다. 이러한 네이티브 옵션은 HTTPS, 암호화, 노출 제한과 같은 핵심 관행을 기반으로 하며 이전에 논의된 바와 같이 구현됩니다.
안드로이드: Keystore 및 EncryptedSharedPreferences

안드로이드 기기는 Keystore 시스템과 EncryptedSharedPreferences를 통해 강력한 토큰 보호를 제공합니다. Keystore and EncryptedSharedPreferencesKeystore는 암호화 키를 보호된 환경에서 안전하게 저장하고, 추출 및 비출산을 방지하여 키가 안전한 작업만 수행할 수 있도록 합니다. 또한 사용자 인증을 요구하는 제한을 추가할 수 있습니다. 안드로이드 9 (API 레벨 28) 이상 버전을 실행하는 기기에서 StrongBox KeyMint Keystore 보다 더 큰 분리성을 제공하는 Trusted Execution Environment (TEE) 표준보다 더 큰 분리성을 제공합니다. StrongBox가 사용 가능한지 확인하려면 FEATURE_STRONGBOX_KEYSTORE를 사용하고 활성화하세요. KeyGenParameterSpec.Builder.setIsStrongBoxBacked().
암호화된 SharedPreferences는 키-값 pairs를 더 간단하게 안전하게 저장할 수 있는 방법을 제공합니다. 데이터를 암호화하고 키를 안전하게 관리하며, 23 이상의 API 레벨을 지원합니다. 안드로이드 엔지니어인 Arun은 사용의 용이성을 강조합니다:
“code 줄만 몇 줄을 작성하면, 보안을 크게 향상시킬 수 있습니다. 이를 통해
EncryptedSharedPreferences의 강력하고 사용하기 쉬운 솔루션을 구현할 수 있습니다. 이는 안드로이드 앱에서 sensitive 데이터를 안전하게 보호하는 데 유용합니다.”
최적의 방법을 위해, 오류 처리를 구현하고 키를 90-180일마다 회전하고 SharedPreferences에 저장하지 말아야 하는 highly sensitive 데이터(예: 신용 카드 번호)를 피해야 합니다. 이러한 데이터는 보안 백엔드에서 처리해야 합니다.
iOS: Keychain 및 Secure Enclave
iOS에서 토큰 보안은 Keychain 및 context. Keychain은 sensitive data, password 및 token과 같은 sensitive data를 위한 secure repository입니다. AES-256-GCM 암호화를 사용하여 Keychain은 dual-key system을 사용합니다: metadata key와 각 저장된 항목에 대한 고유한 key. metadata key는 Secure Enclave에 의해 보호되며 빠른 조회를 위해 캐시되며 secret key는 추가 보안을 위해 enclave로의 라운드 트립이 필요합니다. Keychain은 또한 같은 개발자로부터의 앱 간에 secure sharing을 지원하며 daemon에 의해 관리됩니다. securityd daemon.
Secure Enclave는 P256 key와 약 4MB의 secure storage를 사용하여 보호를 강화합니다. Face ID, Touch ID, 또는 passcode 인증을 위한 Access Control Lists (ACL) 설정을 구성하여 보안을 강화할 수 있습니다. kSecAttrAccessibleWhenUnlockedoption은 데이터가 장치에 묶여 있으므로, 비인가 접근의 위험을 줄입니다. 장치 초기화나 Face ID, Touch ID, 또는 passcode 인증이 실패한 경우를 포함한 edge case를 처리하고, 앱 권한 및 권한을 정기적으로 감사하는 것을 잊지 마십시오. .whenPasscodeSetThisDeviceOnly Capgo Live Update Platform
CapacitorCapgo Framework Documentation Website

For cross-platform apps, Capacitor offers secure storage plugins that simplify token security without requiring platform-specific code. @capgo/capacitor-data-storage-sqlite __CAPGO_KEEP_0__ @capgo/capacitor-persistent-account 인증 데이터를 다시 설치할 때까지 보존합니다. iOS에서 플러그인은 암호화된 시스템 Keychain에 데이터를 저장하며 Android에서는 Android Keystore에서 키를 생성하여 AES-GCM 모드 암호화를 사용하여 데이터를 암호화한 후 SharedPreferences에 저장합니다. 웹 환경에서 플러그인은 암호화되지 않은 localStorage - 그러나 디버깅 목적으로만.
2025년 2월, martinkasa는 capacitor-secure-storage-plugin을 업데이트하여 Capacitor v7을 지원하여 iOS 및 Android에서 문자열 값을 안전하게 저장할 수 있도록 하였습니다. 이러한 플러그인은 로그인 자격 증명 및 JSON 데이터를 저장하기에 적합합니다. 그러나 native 솔루션에서 제공하는 granular 제어를 제공하지 못할 수 있습니다. 기업급 앱에 대한 고급 보안 요구 사항이 있는 경우 native 옵션인 iOS Keychain Services 및 Android Keystore API - 또는 향상된 도구인 Ionic’s Identity Vault -가 더 적합할 수 있습니다. Capacitor의 공식 문서도 sensitive 데이터, 예를 들어 암호화 키 또는 세션 토큰을 저장하기 위해 native secure storage를 사용하는 것을 권장합니다.
Capacitor 앱에 대한 live 업데이트를 배포할 때, Capacitor와 같은 서비스는 토큰 보안을 더욱 강화할 수 있습니다. Capacitor의 end-to-end 암호화는 보안 패치 또는 토큰 관리 개선 사항을 포함한 업데이트를 안전하게 전달하여 앱의 보안 프레임워크의完整성을 유지합니다. Capgo Capgo
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__ [7]__CAPGO_KEEP_0__
Refresh 메커니즘을 설계할 때, 토큰은 갱신 프로세스 중에 엄격하게 검증되어야 합니다. brute force 공격을 막기 위해 rate limiting을 사용하고, 여러 위치에서 동시에 refresh 요청이 발생하는 이상징후를 자동으로 감지하기 위해 automated monitoring을 사용하세요. 사용자 세션을 보호하는 데 있어 성능에 영향을 미치지 않도록 보안과 성능을 균형있게 유지하는 것이 중요합니다.
토큰 취소 및 무효화
토큰 만료는 중요하지만, 토큰 취소는 보안에 또 다른 층을 더해주며, 사용자 로그아웃, 잃어버린 장치, 의심되는 보안 침해와 같은 시나리오에서 특히 중요합니다. 상태가 없는 JWT 접근 토큰은 만료될 때까지 유효하지만, refresh 토큰을 효과적으로 관리하면 새로운 접근 토큰의 발급을 차단할 수 있습니다.
권한이 없는 사용자가 sensitive 리소스에 접근하는 것을 방지하기 위해 토큰을 즉시 취소하는 것이 중요합니다. [8]토큰을 즉시 무효화하기 위해, revoked 토큰을 추적하고 API 요청 시에 확인하는 server-side blacklist를 implement하는 것을 고려하세요. 또한, Single Logout (SLO) 기능은 사용자가 여러 인증 세션을 한 번에 종료할 수 있도록 해주며, 연결된 서비스의 모든 관련된 refresh 토큰이 취소됩니다.
도난된 토큰을 처리하는 clear 프로토콜을 갖추는 것이 중요합니다. 이 프로토콜에는 즉각적인 토큰 취소, 자동 보안 알림, 영향을 받은 사용자에게 신속한 알림, 그리고 도난된 토큰과 관련된 모든 활성 세션의 종료가 포함됩니다.
OTA 시스템을 사용한 안전한 토큰 업데이트
OTA 업데이트를 통해 토큰 보안을 유지하는 데 중요한 요소는 evolves하는 위협에 대응하기 위해 OTA 시스템을 사용하는 것입니다. OTA 시스템은 사용자로부터 수동 업데이트를 요구하지 않고도 보안 패치를 빠르게 배포하고, API 키를 회전하고, 인증서를 업데이트하고, 유효성 검증 로직을 개선할 수 있습니다.
개발자들이 Capacitor을 사용하는 경우, Capgo과 같은 도구는 OTA 솔루션을 제공하며, 종단 간 암호화가 가능합니다. 이로 인해 보안 업데이트들은 Apple 및 Android 지침을 준수하며 안전하게 장치에 전달됩니다. 이러한 시스템은 급박한 보안 취약점을 해결하는 데 특히 유용합니다.
애플리케이션과 인프라를 위한 emerging threat에 대비하여 보안을 강화하세요. OTA 시스템을 통해 runtime defense와 다른 고급 대책을 배포하여 수상한 사용자 또는 장치에 대한 즉각적인 차단을 보장하며, 합법적인 사용자에게는 서비스 중단 없이 제공하세요.
토큰 저장 옵션 비교: 보안성 vs. 사용 편의성
보안 토큰 저장을 위한 최적의 방법을 결정할 때는 보안과 사용성의 적절한 균형을 찾는 것이 중요합니다. 선택한 방법은 앱의 취약성에 대한 공격 위험과 사용자 경험에 직접적인 영향을 미칠 수 있습니다. 다양한 저장 방법의 이점과 단점을 분석해 보겠습니다.
In-Memory Storage vs. Persistent Storage
In-memory storage 응용 프로그램 메모리 또는 자바 스크립트 변수에 토큰을 저장하는 것은 매우 안전한 옵션입니다. 토큰이 메모리나 변수에 저장되지 않기 때문에, persistent storage공격자가 전통적인 XSS 공격을 사용하여 액세스할 수 있는 기회가 적어진다.
하지만, tokens이 메모리에서 저장된 경우 사용자가 페이지를 새로 고치거나 새로운 탭을 열면 tokens이 사라진다. 이는 사용자가 부드러운 브라우징 경험을 기대하는 웹 앱에서 메모리 저장을 사용하는 것이 덜 실용적이다.
반면에 영구 저장 local storage, session storage, 또는 쿠키와 같은 메서드 - 사용자에게 더 부드러운 경험을 제공한다. tokens이 영구적으로 저장되면 사용자가 브라우저를 닫고 나중에 돌아와서 이전에 떠놨던 곳에서 다시 시작할 수 있다. 다시 로그인할 필요가 없다. [9].
그러나, 이 편의성은 보안 위험과 함께 온다. 영구 저장은 XSS 공격에 더 취약하다. 공격자가 local 또는 session storage에서 tokens을 훔칠 수 있다. [4]쿠키는 추가 구성 옵션을 제공하지만, CSRF 공격에 취약할 수 있다. 쿠키를 보안하려면 올바른 플래그를 사용해야 한다.
모바일 앱에서 Capacitor를 사용하는 경우 웹 워커 분리된 글로벌 스코프에서 실행되기 때문에 보안을 강화하면서도 사용성을 유지하는 것보다 메모리 저장보다 더 좋다. [9]웹 워커가 옵션인 경우가 아니라면, JavaScript 클로저를 사용하여 private 메서드를 추가로 보호할 수 있다. [9]native secure storage와 custom encryption의 장단점을 고려해야 한다.
Keychain/Keystore vs. Custom Encryption
모바일 애플리케이션에 플랫폼-자연적인 보안 저장소 iOS Keychain과 Android Keystore와 같은 플랫폼-자연적인 보안 저장소는 금 표준입니다. 이 솔루션은 하드웨어 기반 보안을 제공하여 토큰 추출이 훨씬 더 어려워집니다.
The beauty of these native tools lies in their simplicity. They’re built into the operating systems, so developers don’t have to write extensive code to implement them. Plus, they support features like 생체 인증 및 중앙 집중식 자격 증명 관리 [10].
보안과 사용자 편의성을 모두 향상시킵니다.Custom encryption [10]는 개발자에게 더 많은 제어 권한을 제공하지만, 중요한 문제가 있습니다. 보안은 암호화가 얼마나 잘 구현되었는지와 키가 얼마나 안전하게 관리되었는지에 따라 완전히 달라집니다.
많은 개발자가 보안 시스템을 구현하는 데 필요한 복잡성을 과소 평가하여 취약점이 발생할 수 있습니다. 또한, 암호화 표준이 발전하는 것은 보안 솔루션을 업데이트하고 유지 관리하는 데 필요한 자원을 증가시킵니다. 따라서, 팀이 이 분야에 깊은 전문 지식을 가지고 있지 않다면, 커스텀 솔루션은 자원 집약적입니다.
| 보안 vs. 사용성 비교 표 | 보안 수준 | 사용성 | 구현 복잡도 | 최적 사용 사례 |
|---|---|---|---|---|
| 메모리 내 저장 | 높음 | 새로 고침 시 데이터 유실 (Low) | 높음 | 고급 보안, 짧은 세션 |
| 로컬 저장소 | 높음 | 높음 | 낮음 | 비민감 데이터만 |
| 세션 스토리지 | 중간 | 높음 | 낮음 | 임시 세션 데이터 |
| 보안 쿠키 | 높음 (적절한 플래그와 함께) | 중간 | 중간 | 서버 지원을 받는 웹 애플리케이션 |
| iOS Keychain | 매우 높음 | 중간 | 낮음 | iOS native/hybrid 앱 |
| Android Keystore | 매우 높음 | 중간 | 낮음 | Android native/hybrid 앱 |
| 고유 암호화 | 변수 | 중간 | 높은 | 고급 보안 요구 사항 |
이 표는 플랫폼 네이티브 스토리지 옵션인 Keychain 및 Keystore의 강력한 보안 및 구현의 용이성을 제공하는 combination을 강조합니다. 이들은 개발자가 암호학을 마스터할 필요 없이 강력한 보호를 제공합니다.
Capacitor 개발자에게는 Keychain 및 Keystore에 접근하기 위한 보안 스토리지 플러그인을 사용하는 것이 현명한 선택입니다. 이들은 Keychain 및 Keystore의 하드웨어 백업 보안과 Capacitor가 제공하는 크로스 플랫폼 유연성을 결합합니다.
마지막으로, 토큰 저장의 선택은 앱의 위협 모델과 사용자 기대에 맞춰야 합니다. sensitive 데이터를 처리하는 앱, 예를 들어 의료 또는 금융 앱은 보안을 우선해야 합니다. 반면 소비자 앱은 사용자 경험을 향상시키기 위해 약간의 위험을 감수할 수 있습니다. 이러한 트레이드 오프를 이해하면 앱의 요구에 맞는 저장 방법을 선택할 수 있습니다.
중요한 점
사용자 데이터를 보호하기 위한 보안 토큰 저장은 기술적인 최선의 방법이 아닌 앱의完整성을 유지하기 위한 필수입니다. 2022년 81%의 확인된 침해가 약한, 재사용된, 또는 도난된 비밀번호와 관련이 있다는 점을 고려할 때, 모바일 개발자는 강력한 토큰 보안 조치를 우선해야 합니다. 최선의 방법 요약 [12]효과적인 토큰 보안 계획은 여러 층의 보호를 기반으로 합니다. 먼저 Keychain 및 Keystore를 사용하여
2022년 침해의 81%가 약한, 재사용된, 또는 도난된 비밀번호와 관련이 있다는 점을 고려할 때, 모바일 개발자는 강력한 토큰 보안 조치를 우선해야 합니다.
보안 토큰 저장의 최선의 방법 요약 플랫폼-자연어 보안 저장소예를 들어 iOS Keychain과 Android Keystore는 하드웨어 기반 보안을 제공합니다.
LocalStorage 또는 IndexedDB에 토큰을 저장하지 마십시오. [2]이 방법들은 XSS 공격에 취약합니다. 대신 운영 체제에 내장된 보안 저장소 옵션에 의존하여 접근을 제한하십시오. Capacitor을 사용하는 개발자에게는 보안 저장소 플러그인으로 native 보호를 사용할 수 있는 방법이 제공됩니다. 이 방법은 크로스 플랫폼 기능을 유지하면서도 native 보호를 사용할 수 있습니다.
토큰 생명 주기 관리는 또 다른 중요한 측면입니다. 토큰을 정기적으로 만료하고 리프레시 토큰 회전을 implement하십시오. 액세스 토큰이 요청될 때마다 새로운 리프레시 토큰을 생성하십시오. [3]. 리프레시 토큰의 더 짧은 생명 주기는 도난 시 위험을 줄입니다.
서명 키를 비밀로 유지하고 필수 서비스에만 공유하십시오. [1]. 토큰을 로깅하거나 URL에 임베딩하는 등의 위험한 방법을 피하십시오. [11]. 이러한 단계들은 토큰 관리 전략을 강화합니다.
개발자에게 다음 단계
이러한 보안 권장 사항을 따라야 하는 방법입니다.
-
토큰 저장 방법을 감사하십시오. Local Storage를 사용하는 경우, 플랫폼 네이티브 보안 저장소를 사용하도록 우선순위를 매겨야 합니다. Capacitor 앱의 경우, 보안 저장소 플러그인을 채택하여 네이티브 보호를 효과적으로 사용할 수 있습니다.
-
layered 인증을 implement합니다. low-risk 작업에 대해 더 단순한 방법을 사용하지만 sensitive 작업에 대해 multi-factor 인증 (MFA) 또는 생체 인증을 요구합니다. Microsoft에 따르면 MFA는 99.9%의 자동화된 사이버 공격을 차단할 수 있습니다. 그러나 사용자 경험을 고려해야 합니다. 연구에 따르면 사용자 중 약 1/3이 MFA를 피하기 때문에 불편함을 이유로합니다. multi-factor authentication biometrics [12]사용자 경험을 고려해야 합니다. 연구에 따르면 사용자 중 약 1/3이 MFA를 피하기 때문에 불편함을 이유로합니다. [12].
-
99.9% OTA (over-the-air) 업데이트 시스템을 사용하여 보안 및 즉각적인 롤아웃을 수행합니다. Capgo 도구를 사용하여 Capacitor 앱에 대해 암호화된 라이브 업데이트 기능을 활성화하여 보안 패치를 사용자에게 전달할 수 있습니다. 업데이트 중 토큰의 안전성을 훼손하지 않습니다.
-
토큰 생명주기 관리에 집중합니다. 정기적인 만료, 갱신 및 취소 프로토콜은 필수적입니다. 보안 위험을 최소화하기 위해 구현을 반영하십시오.
-
인증 패턴을 모니터링합니다. 이상한 활동을 감지하고 보안 조치를 조정하여 진화하는 위협에 따라 조정하십시오. [13]. 개발 프로세스의 일상적인 부분으로서 정기적인 보안 감사가 되어야 합니다.
모바일 보안이 계속 진화하고 있지만, 핵심 원칙은 여전히 동일합니다: native secure storage를 사용하십시오, token의 생명주기를 효과적으로 관리하십시오, 그리고 암호화는 절대적으로 필요합니다. 2022년 현재 81%의 스마트폰이 생체 인식 장치를 갖추고 있습니다. 2022년 [12]이러한 생체 인식 장치를 갖춘 스마트폰의 81%가 있다고 하더라도, 개발자들은 보안과 사용자 경험을 향상시키기 위한 강력한 도구를 갖추고 있습니다.
사용자들은 데이터를 당신에게 맡기고 있습니다. 따라서, token 저장 방식이 보안의 최고 수준을 충족하도록 하십시오.
FAQs
::: faq
iOS Keychain과 Android Keystore를 사용하여 mobile app 내에서 sensitive data를 보호하기 위해 mobile 개발자가 왜 native secure storage를 사용해야 하는지에 대한 질문입니다.
iOS Keychain과 Android Keystore와 같은 플랫폼 네이티브 secure storage를 사용하는 것은 sensitive data를 보호하기 위한 중요한 역할을 합니다. 이러한 도구는 built-in encryption을 제공하여 token이 불법적인 접근으로부터 보호되도록 합니다.그리고, 그들은 사용자 인증사용자가 저장된 데이터에 접근하기 전에 자신의 신원을 확인해야 하는 것을 요구합니다. 이로 인해 추가 보안 계층이 생성됩니다.
암호화 키가 출Ports되지 않는 키즉, 이러한 키는 장치에서 제거할 수 없으며, 이는 훨씬 더 낮은 위험으로 훼손될 가능성이 있습니다. 이러한 시스템은 각각의 플랫폼과 통합하기 위해 설계되어 개발자는 복잡한 암호화 프로세스를 수동으로 처리할 필요 없이 쉽게 구현할 수 있습니다. 이러한 도구를 활용하는 것은 앱 보안을 강화하는 것뿐만 아니라 개발자가 현대 보안 표준과 산업 권장 관행을 따르도록 도와줍니다. FAQ 모바일 앱에서 토큰 생명주기를 안전하게 관리하는 가장 좋은 방법은 무엇인가요? 토큰 생명주기를 안전하게 관리하기 위해 모바일 앱 개발자는 몇 가지 필수적인 관행을 따르면 됩니다. 먼저 . :::
단시간 토큰
__CAPGO_KEEP_0__
__CAPGO_KEEP_1__ __CAPGO_KEEP_2__15분 이내의 유효기간을 가진 토큰과 같은 경우를 예로 들 수 있습니다. 토큰이 compromis 된 경우에 대한 악용의 창문을 최소화하기 위해 이와 같은 토큰을 사용하는 것이 좋습니다. 사용자 편의성을 유지하면서도 보안을 유지하기 위해, 사용자 로그인을 반복적으로 강요하지 않고 새로운 토큰을 발급할 수 있는 refresh 토큰을 implement하는 것이 좋습니다. refresh 토큰.
토큰의 적절한 저장은 불법적인 접근을 방지하는 데 중요합니다. 항상 플랫폼에 특화된 보안 저장 솔루션을 사용하십시오, 예를 들어 iOS의 Keychain 또는 Android Keystore . 이들은敏感 데이터를 보호하기 위해 특별히 설계되었습니다. 또한, 토큰을 하드 코딩하거나 앱 내에서 평문으로 저장하는 것을 피하십시오. 이는 잠재적인 위협에 노출될 수 있습니다.이러한 방법을 통합함으로써 개발자는 모바일 앱의 토큰 관리의 보안을 강화하고 사용자에게 잠재적인 취약점을 보호할 수 있습니다.
:::
FAQ
커스텀 암호화로 토큰 저장을 사용할 경우 발생할 수 있는 문제점은 무엇이며, 언제 native 솔루션보다 사용할 수 있는지 알려주세요?
커스텀 암호화로 토큰 저장을 사용할 경우, 사용자에게 더 많은 제어를 제공하는 것처럼 보일 수 있지만, 보통 추가적인 복잡성을 가져오고 잠재적인 보안 취약점을 열어주고, 새로운 위협에 대응하기 위해 지속적인 유지보수를 필요로 합니다. 플랫폼에서 제공하는 내장 암호화 도구와 달리, 커스텀 솔루션은 광범위한 테스트, 자세한 문서화, 그리고 강력한 개발자 커뮤니티의 지원을 받지 못합니다. 이로 인해 디버깅과 통합이 훨씬 더 큰 문제가 됩니다.
그렇지만, 특정 데이터나 규제 요구 사항을 충족하기 위해 표준 도구가 처리할 수 없는 경우에는 사용자 지정 암호화가 피할 수 없는 상황이 있습니다. 이 경우 개발자는 표준 도구가 처리할 수 없는 경우에만 사용자 지정 암호화를 사용해야 합니다. 최선의 방법 최선의 방법을 따르면 개발자는 암호화 방법이 보안뿐만 아니라 신뢰성과 업계 표준에 부합하는지 확인할 수 있습니다. 암호화 방법 암호화 방법이 신뢰성 있고 업계 표준에 부합하는지 확인하기 위해, 개발자는 사용자 지정 암호화 접근 방식의 이점과 단점을 신중하게 고려해야 합니다.
다음으로 Secure Token Storage: Best Practices for Mobile Developers
Secure Token Storage: Best Practices for Mobile Developers 보안 및 규정 준수 계획을 위해 Secure Token Storage: Best Practices for Mobile Developers를 사용하고 있다면 Secure Token Storage: Best Practices for Mobile Developers 이를 규정 준수와 보안에 대한 구현 세부 정보와 연결하세요. 암호화 암호화 구현 세부 정보에서 암호화에 대해 연결하세요. 규정 준수 규정 준수에 대한 구현 세부 정보 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로 Capgo 보안 Capgo 보안의 제품 워크플로 및 Capgo 신뢰 센터 Capgo 신뢰 센터의 제품 워크플로