Skip to main content

모바일 개발자를 위한 인증 토큰 보안: 보안 토큰 저장의 최적 방법

모바일 앱에서 사용자 데이터를 침해와 공격으로부터 보호하기 위해 인증 토큰을 안전하게 저장하는 방법을 배워보세요.

마틴 도나디우

마틴 도나디우

__CAPGO_KEEP_0__

__CAPGO_KEEP_1__

__CAPGO_KEEP_2__ __CAPGO_KEEP_3____CAPGO_KEEP_4__

__CAPGO_KEEP_5__

  • __CAPGO_KEEP_6____CAPGO_KEEP_7__
  • __CAPGO_KEEP_8____CAPGO_KEEP_9__ EncryptedSharedPreferences __CAPGO_KEEP_10__ CryptoKit __CAPGO_KEEP_11__
  • 토큰 노출을 최소화하세요: 짧은 유효 기간의 토큰과 토큰 회전을 사용하여 위험을 줄입니다.
  • 안전한 통신: 항상 HTTPS를 사용하고 인증서 핑닝을 구현하여 중간인 공격을 방지합니다.
  • 토큰 생명주기를 관리하세요: 도난으로부터 최소한의 피해를 입히기 위해 토큰을 정기적으로 만료, 갱신, 취소하세요.

저장 방법 간단 비교:

저장 방법 보안 수준 사용성 최적의 사용 사례
메모리 내 저장 High Low 짧은 세션, 높은 보안 필요성
Local Storage Low High 비민감 데이터
Secure Cookies High Medium 서버 측 제어를 가진 웹 앱
iOS Keychain 매우 높음 중간 iOS 앱에서 sensitive 토큰을 저장하는 것
Android Keystore 매우 높음 중간 Android 앱에서 secure 저장소를 요구하는 것
Custom Encryption Variable 중간 특수한 보안 요구 사항

앱의 현재 토큰 저장 방법을 ауд토링하여 시작하고 사용자와 브랜드를 보호하기 위해 이 보안 관행을 implement하세요.

Faux Disk Encryption Realities of Secure Storage on Mobile Devices - Daniel Mayer & Drew Suarez

Basic Rules for Secure Token Storage

보안 토큰 저장을 위해-layered 접근 방식이 필요합니다. 여러 보안 장치를 결합하여, 하나의 장치가 실패하더라도 다른 장치가 sensitive 데이터를 보호하는 것을 보장합니다. Capacitor 앱의 경우, 이러한 실천을 유지하는 것은 플랫폼 간에 토큰 보안을 유지하는 데 필수적입니다.

HTTPS 및 Certificate Pinning 사용

HTTPS 암호화는 토큰 인출을 방지하는 첫 번째 방어입니다. 앱과 서버 간의 모든 상호 작용이 HTTPS를 사용하여 데이터를 전송할 때 암호화되어 공격자에게 노출되지 않도록 하십시오.

이를 강화하기 위해 certificate pinning을 implement하세요. Capacitor 앱의 경우, @capgo/capacitor-ssl-pinning 은 iOS 및 Android에서 CapacitorHttp에 대한 bundled certificate를 HTTPS 연결에 고정하여, 앱이 신뢰할 수 있는 서버와만 통신하도록 보장합니다. 이 기술은 someone이.Counterfeit certificate를 사용하더라도, 앱이 서버와 직접 신뢰 관계를establish하는 것을 보장합니다. 서버의 certificate 또는 public key를 앱에 hardcoding하여, 앱과 서버 간의 직접 신뢰 관계를establish합니다.

“You should pin anytime you want to be relatively certain of the remote host’s identity or when operating in a hostile environment. Since one or both are almost always true, you should probably pin all the time.” – OWASP pinning cheat sheet [5]

A real-world 예시: Twitter은 Man-in-the-Middle (MitM) 공격을 경험한 후 모바일 앱에 인증서 핀링을 도입했습니다. 그들의 팀은 서버의 SSL 인증서 공개 키를 앱에 직접埋め込みました. 사용자가 연결했을 때, 앱은 핀된 인증서와 확인했습니다. 일치하지 않는 경우 연결은 즉시 종료되었습니다. 이 접근 방식은 MitM 공격을 크게 줄이고 플랫폼에 대한 사용자 신뢰도를 크게 향상시켰습니다. [5].

선택할 수 있는 옵션 인증서 핀링 (인증서 전체를 검증하는) 보안을 최대로 하는 것 공개 키 핀링 (공개 키만 검증하는) 인증서 갱신 시 유연성을 더하는 것 Android용 OkHttp iOS용 Alamofire [5].

보안 전송이 구축된 후, 다음 단계는 토큰 노출을 최소화하는 것입니다.

토큰 노출을 최소화하는 것

토큰 노출을 줄이려면 토큰의 유효 기간과 권한을 제한해야 합니다. 이 아이디어는 간단합니다: 토큰이 유효한 시간이 짧고 권한이 적을수록, 토큰이 훼손되면 위험성이 낮아집니다.

  • 사용 단기 토큰을 사용하세요. 유효 시간은 분 단위로 측정합니다. 이를 사용자 세션 유지에 Refresh 토큰과 pair하세요. 장기 토큰을 장치에 저장하지 않도록 하세요. 이 방법은 훼손된 토큰이すぐ에 쓸모없는 토큰이 되도록 합니다. 적용
  • 최소 권한 원칙을 적용하세요. 예를 들어, 사용자 프로필 데이터만 읽을 수 있는 토큰은 계정 설정을 수정하거나 결제 정보에 접근할 수 있는 권한을 부여하지 마세요. 활성화Refresh 토큰 회전을 활성화하세요. Refresh 토큰이 사용될 때마다 새로운 Access 토큰을 요청하는 새 Refresh 토큰이 발급됩니다. Refresh 토큰이 훼손되면, 사용자가 토큰을 사용한 후 유효하지 않아집니다. 위험 시간을 줄입니다.
  • 토큰 노출을 제한하면, 침해로 인한 심각한 손실의 가능성을 줄입니다. 다음으로, 암호화는 물리적으로 훼손된 장치에도 토큰이 안전하도록 합니다. 휴면 중인 토큰을 암호화하세요.__CAPGO_KEEP_0__ [4].

__CAPGO_KEEP_1__

__CAPGO_KEEP_2__

__CAPGO_KEEP_0__ 장치에 저장된 토큰을 보호하기 위해 데이터를 암호화합니다. 장치가 잃어버려도, 도난당해도, 악성 소프트웨어에 의해 위협받아도 토큰은 읽을 수 없습니다.

최신 모바일 운영 체제는 안드로이드나 iOS에서 사용하는 표준 방법보다 훨씬 더 신뢰할 수 있는 하드웨어 기반 저장 옵션을 제공합니다. [4].

  • 안드로이드: 사용하세요 EncryptedSharedPreferences (안드로이드 10 이상에서 사용할 수 있습니다.) 이 도구는 암호화 및 키 관리를 자동으로 처리하여 구현을 단순화하고 보안을 강화합니다. 예를 들어, SecureJWTStorage 클래스를 사용하여 JWT를 안전하게 저장하고 검색할 수 있습니다. EncryptedSharedPreferences code
  • iOS: Keychain은 하드웨어 기반 암호화를 사용하여 안전한 토큰 저장을 제공합니다. 개발자는 KeychainHelper 클래스를 사용하여 JWT 토큰을 관리하거나, CryptoKit을 사용하여 토큰을 추가로 암호화하여 보안을 강화할 수 있습니다. __CAPGO_KEEP_0__ [4].

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__ [6].

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__ __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__. Keystore는 안전한 환경에서 암호화 키를 보관하여 추출하기 어렵고, 비 내보내기 가능한 키를 보장합니다. 따라서 키는 안전한 작업을 위해만 사용할 수 있습니다. 또한 사용자 인증을 요구하는 제한을 추가할 수 있습니다. Android 9 (API 레벨 28) 이상의 기기에서 StrongBox KeyMint 표준 신뢰할 수 있는 실행 환경(TEE)보다 더 큰 격리성을 제공합니다. StrongBox가 사용 가능한지 확인하려면 FEATURE_STRONGBOX_KEYSTORE,을 사용하고 KeyGenParameterSpec.Builder.setIsStrongBoxBacked().

EncryptedSharedPreferences offers a simpler way to securely store key–value pairs. It encrypts data and securely manages keys, supporting API levels 23 and above. Arun, an Android Engineer, highlights its ease of use:

EncryptedSharedPreferences는 키-값 pairs를 안전하게 저장하는 더 간단한 방법을 제공합니다. 데이터를 암호화하고 키를 안전하게 관리하며, code 레벨 23 이상을 지원합니다. Android 엔지니어인 Arun은 사용의 편리성을 강조합니다: significantly improve security 의 몇 줄만으로도 EncryptedSharedPreferences을 사용하여

을 개선할 수 있습니다.

은敏感 데이터를 Android 앱에서 안전하게 보호하는 강력하고 사용하기 쉬운 솔루션입니다. 안전한 작업을 위해, 오류 처리를 implement하고 키를 90-180일마다 rotate하고 SharedPreferences에 저장하는 highly sensitive 데이터(예: 신용 카드 번호)를 피하는 것이 좋습니다. 이러한 데이터는 대신 안전한 백엔드에서 처리해야 합니다. iOS: Keychain과

On iOS, token security relies on the Keychain and Secure Enclave. iOS의 토큰 보안은 securityd Keychain

kSecAttrAccessibleWhenUnlockedSecure Enclave .whenPasscodeSetThisDeviceOnly 에 의존합니다. Keychain은 sensitive data, password 및 token과 같은 sensitive 데이터를 위한 안전한 저장소입니다. Keychain은 AES-256-GCM 암호화를 사용하여 sensitive 데이터를 암호화합니다. Keychain은 metadata와 각 저장된 항목에 대한 고유한 키를 사용하는 dual-key 시스템을 사용합니다. metadata 키는 Secure Enclave에 의해 보호되며, 빠른 조회를 위해 캐시되며, secret 키는 추가 보안을 위해 enclave로의 라운드 트립이 필요합니다. Keychain은 또한 동일한 개발자에서 앱 간에 항목을 안전하게 공유하는 데 지원되며,

Capacitor에 의해 관리됩니다.

Secure Enclave는 P256 키와 약 4 MB의 안전한 저장소를 사용하여 보호를 강화합니다. 보안을 강화하기 위해 Face ID, Touch ID, 또는 passcode 인증을 요구하는 Access Control Lists (ACLs) 설정을 구성하여 보안을 강화할 수 있습니다. 더 엄격한 보안을 위해 데이터를 장치에 묶어두는 옵션을 사용하여 데이터가 장치에 묶여있지 않도록 방지할 수 있습니다. 보안을 강화하기 위해 edge case, biometric lockout, 또는 장치 리셋과 같은 경우를 처리하고, 앱 권한 및 권한을 정기적으로 감사하는 것이 중요합니다. Capacitor

cross-platform 앱을 위한 Capacitor은 플랫폼에 따라 달라지는 code 없이도 보안 토큰을 간소화한 보안 저장 플러그인을 제공합니다. @capgo/capacitor-데이터 저장소-sqlite local data를 SQLite와 선택적 암호화 옵션을 사용하여 저장합니다. @capgo/capacitor-persistent-계정 iOS에서 이 플러그인은 암호화된 시스템 Keychain에 데이터를 저장하고, Android에서는 Android Keystore에서 키를 생성하여 AES-GCM 모드 암호화를 사용하여 SharedPreferences에 데이터를 저장합니다. 웹 환경에서 이 플러그인은 데이터를 암호화하지 않습니다. localStorage - 개발 목적으로만 사용합니다.

2025년 2월, martinkasa는 capacitor-secure-storage-plugin을 Capacitor v7에 지원하도록 업데이트했습니다. 이로 인해 iOS와 Android에서 문자열 값을 안전하게 저장할 수 있습니다. 이러한 플러그인은 로그인 자격 증명과 JSON 데이터를 저장하기 위해 이상적입니다. 그러나 native 솔루션에서 제공하는 세부적인 제어가 부족할 수 있습니다. enterprise급 앱의 경우 advanced 보안 요구 사항이 있는 경우 native 옵션인 iOS Keychain Services와 Android Keystore APIs - 또는 향상된 도구들처럼 아이오닉Capacitor의 공식 문서는 민감한 데이터, 예를 들어 암호화 키나 세션 토큰과 같은 경우에 native secure storage를 사용하는 것을 권장합니다. 이 경우 Capacitor의 Identity Vault -가 더 적합할 수 있습니다.

When deploying live updates for Capacitor apps, services like Cloudflare can help reduce latency and improve user experience. Capgo Capgo의 종단 간 암호화는 업데이트가 보안 패치나 토큰 관리 개선과 같은 보안 패치나 토큰 관리 개선이 포함된 업데이트를 안전하게 전달함으로써 앱의 보안 프레임워크의完整성을 유지합니다.

토큰 생명주기 및 보안 관리

토큰을 효과적으로 관리하려면 생성, 만료 및 취소와 같은 토큰의 생명주기를 관리해야 합니다. 개발자는 강력한 보안 조치와 사용자 경험의 매끄러운 제공을 균형있게 설계해야 합니다. 아래에, 토큰 만료, 취소 및 OTA(위기 상황에서 업데이트를 안전하게 전달하는) 업데이트와 같은 전략에 대해 자세히 설명합니다. 이를 통해 토큰 관리 접근 방식을 구축하는 데 도움이 됩니다.

토큰 만료 및 갱신 방법

단기 액세스 토큰과 더 오랜 기간 유지되는 갱신 토큰을 함께 사용하는 것은 보안 토큰 처리의 핵심 관행입니다. 액세스 토큰은 5-15분 이내에 만료되어 compromis 된 경우 위험을 줄이는 것이 좋습니다. 반면, 갱신 토큰은 사용자가 자주 재인증하지 않도록 유지할 수 있는 일주일 또는 몇 주 동안 유효할 수 있습니다.

API를 안전하고 효율적으로 유지하는 데 토큰 만료가 중요한 역할을 합니다. [7]이것을 토큰 회전과 pair하면 추가 보호层를 제공합니다. 이전에 발급된 토큰을 무효화함으로써, 이는 위협된 갱신 토큰의 손상을 최소화하고 의심스러운 활동을 식별하는 데 도움이 될 수 있습니다. 예를 들어, 이전 토큰을 재사용하는 경우.

When designing refresh mechanisms, ensure tokens are rigorously validated during the refresh process. Employ rate limiting to guard against brute force attacks and use automated monitoring to detect anomalies, such as refresh requests from multiple locations at the same time. Balancing security and performance is key to protecting user sessions without impacting the overall experience.

토큰 취소 및 무효화

While token expiration is crucial, token revocation adds another layer of security, especially in scenarios like user logout, lost devices, or suspected security breaches. Although stateless JWT access tokens remain valid until they expire, managing refresh tokens effectively can block the issuance of new access tokens.

Revoking tokens promptly prevents unauthorized access to sensitive resources [8]To invalidate tokens immediately, consider implementing a server-side blacklist that tracks revoked tokens and checks them during API requests. Additionally, Single Logout (SLO) functionality allows users to terminate multiple authentication sessions in one action, ensuring all related refresh tokens across connected services are revoked.

It’s also important to have clear protocols in place for handling compromised tokens. These protocols should include immediate token revocation, automated security alerts, timely notifications to affected users, and the termination of all active sessions tied to the compromised token.

토큰 취소 및 무효화는 사용자 세션을 보호하는 데 있어 성능에 영향을 주지 않으면서 중요한 요소입니다.

설치된 토큰 라이프 사이클 및 취소 전략이 강력해지면, 보안 위협이 발전하는 동안 토큰 보안을 유지하기 위해 오버 더 에어(OTA) 업데이트가 필수적입니다. OTA 시스템은 사용자로부터 수동 업데이트를 요구하지 않고도 보안 패치를 빠르게 배포하고, API 키를 회전하고, 인증서를 업데이트하고, 유효성 검증 논리를 개선할 수 있습니다.

Capacitor을 사용하는 개발자에게는 Capgo과 같은 도구가 제공됩니다. 이 도구는 Apple 및 Android 지침을 준수하는 종단 간 암호화된 OTA 솔루션을 제공하여 보안 업데이트를 안전하게 장치에 전달할 수 있습니다. 이러한 시스템은 급박한 보안 취약점을 해결하는 데 특히 유용합니다.

토큰 보안을 더욱 강화하기 위해, 앱과 인프라를 위한 emerging threats를 모니터링하세요. OTA 시스템을 사용하여 런타임 방어 및 기타 고급 대책을 배포하여, 의심스러운 사용자 또는 장치를 즉시 차단할 수 있습니다. 이는-legitimate 사용자에게 중단되지 않도록 보장합니다.

토큰 저장소 옵션 비교: 보안 vs. 사용성

보안 토큰을 저장하는 방법을 결정할 때, 보안과 사용성의 적절한 균형을 찾는 것이 중요합니다. 선택한 방법은 앱의 취약성과 전체 사용자 경험에 직접 영향을 미칩니다. 다양한 저장 방법의 이점과 단점을 비교해 보겠습니다.

임시 저장소 vs. 영구 저장소

임시 저장소 임시 저장소는 애플리케이션 메모리 또는 JavaScript 변수에 토큰을 저장하여, 매우 안전한 옵션입니다. 토큰은 영구 저장소에 기록되지 않습니다. 영구 저장소__CAPGO_KEEP_0__ 공격자들이 전통적인 XSS 공격을 사용하여 액세스할 수 있는 기회가 적다.

하지만, 한 가지 문제가 있다: 메모리에서 저장된 토큰은 사용자가 페이지를 새로 고치거나 새로운 탭을 열 때 사라진다. 이로 인해 사용자가MOOTH한 브라우징 경험을 기대하는 웹 앱에서 메모리 저장은 실용적이지 않다.

다른 한편, 영구 저장소 - 로컬 스토리지, 세션 스토리지, 또는 쿠키와 같은 방법 - 더 나은 경험을 제공한다. 영구적으로 저장된 토큰은 사용자가 브라우저를 닫고 나중에 돌아와서 이전에 떠났던 곳에서 다시 시작할 수 있게 해준다. 다시 로그인할 필요가 없다. [9].

그러나, 이 편리함은 보안 위험과 함께 온다. 영구 저장소는 XSS 공격에 더 취약하다. 악성 스크립트가 로컬 또는 세션 스토리지에서 토큰을 훔칠 수 있다. [4]쿠키는 추가 구성 옵션을 제공하지만, CSRF 공격에 취약할 수 있다. 쿠키를 보안하기 위해 올바른 플래그와 함께 사용해야 한다.

Capacitor를 사용하는 모바일 앱의 경우, 웹 워커 는 보안을 강화하면서도 사용성을 유지하는 데 메모리 저장보다 더 나은 중간 지점을 제공한다. [9]웹 워커가 옵션으로 사용되지 않는 경우, JavaScript 클로저는 privte 메서드를 추가로 보호하기 위해 시뮬레이션할 수 있다. [9]모바일 개발자도 네이티브 보안 저장소와 커스텀 암호화의 장단점을 고려해야 한다.

__CAPGO_KEEP_0__

모바일 애플리케이션에서 플랫폼-네이티브 보안 저장소 iOS Keychain과 Android Keystore와 같은 솔루션은 하드웨어 백업 보안을 제공하여 토큰 추출을 훨씬 더 어렵게 만듭니다.

이러한 네이티브 도구의 아름다움은 단순함에 있습니다. 운영 체제에 통합되어 있기 때문에 개발자는 그들을 implement하기 위해 code를 작성해야 하는 것을 피할 수 있습니다. 또한 생체 인증 중앙 집중식 자격 증명 관리 [10].

보안성과 사용자 편의성을 모두 향상시킵니다.Custom encryption [10],另一方面, 개발자에게 더 많은 제어를 제공하지만 significan트한 문제점이 있습니다. 보안은 암호화가 얼마나 잘 implement되었는지와 키가 얼마나 안전하게 관리되었는지에 따라 달라집니다.

많은 개발자가 보안 시스템을 만들기 위한 복잡성을 과소 평가하여 취약점이 발생할 수 있습니다. 또한 암호화 표준이 발전하는 경우, Custom 솔루션은 지속적인 업데이트와 유지 보수를 필요로 하며, 이는 팀이 이 분야에 깊은 전문성을 보유하지 않는 경우 리소스가 많이 소모됩니다.

보안성 vs. 사용성 비교 표 __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ __CAPGO_KEEP_2__ __CAPGO_KEEP_3__
__CAPGO_KEEP_4__ __CAPGO_KEEP_5__ __CAPGO_KEEP_6__ __CAPGO_KEEP_7__ __CAPGO_KEEP_8__
__CAPGO_KEEP_9__ __CAPGO_KEEP_10__ __CAPGO_KEEP_11__ 낮음 비민감 데이터만
세션 스토리지 중간 높음 낮음 임시 세션 데이터
안전한 쿠키 높음 (적절한 플래그와 함께) 중간 중간 서버 지원이 있는 웹 애플리케이션
iOS Keychain 매우 높음 중간 낮음 iOS native/hybrid 앱
Android Keystore 매우 높음 중간 낮음 Android native/hybrid 앱
사용자 지정 암호화 변수 중간 높음 고급 보안 요구 사항

__CAPGO_KEEP_0__ 개발자들을 위한 보안 저장소 플러그인은 Keychain과 Keystore의 하드웨어 기반 보안과 __CAPGO_KEEP_1__의 크로스 플랫폼 유연성을 결합하는 지혜로운 선택입니다.

Capacitor 개발자들은 Keychain과 Keystore와 같은 네이티브 솔루션에 접근하기 위해 보안 저장소 플러그인을 사용하는 것이 지혜로운 선택입니다. 이들은 하드웨어 기반 보안과 Capacitor의 크로스 플랫폼 유연성을 결합합니다.

앱의 위협 모델과 사용자 기대에 맞춰 토큰 저장 방법을 선택해야 합니다. 민감한 데이터를 처리하는 앱(예: 의료 또는 금융 앱)은 보안을 우선해야 합니다. 반면 소비자 앱은 사용자 경험을 개선하기 위해 약간의 위험을 감수할 수 있습니다. 이러한 트레이드 오프를 이해하면 앱에 가장 적합한 저장 방법을 선택할 수 있습니다.

중요한 점

사용자 데이터를 보호하기 위한 보안 토큰 저장은 앱의完整성을 유지하기 위한 기술적 최선의 방법이지만, 필수입니다. 2022년 81%의 확인된 침해가 약한, 재사용된, 또는 도난된 비밀번호와 관련이 있다는 점을 고려할 때, 모바일 개발자는 강력한 토큰 보안 조치를 우선해야 합니다. [12]최선의 방법 요약

효율적인 토큰 보안 계획은 여러 층의 보호를 기반으로 합니다. 먼저 __CAPGO_KEEP_0__을 사용하여

__CAPGO_KEEP_1__ platform-native secure storageiOS Keychain 및 Android Keystore와 같은 하드웨어 보안을 제공하는 운영 체제 내의 보안 저장소

LocalStorage나 IndexedDB와 같은 저장소에 토큰을 저장하지 마십시오. XSS 공격에 취약합니다. [2], as these methods are vulnerable to XSS attacks. Instead, rely on secure storage options built into the operating system, ensuring limited access. For developers using Capacitor, secure storage plugins provide a way to tap into native protections while maintaining cross-platform functionality.

개발자가 __CAPGO_KEEP_0__을 사용하는 경우, 보안 저장소 플러그인은 운영 체제 내의 보안 보호를 유지하면서도 크로스 플랫폼 기능을 제공하는 방법을 제공합니다. [3]토큰의 생명 주기를 관리하는 것은 또 다른 중요한 측면입니다. 토큰을 정기적으로 만료하고, 액세스 토큰이 요청될 때마다 새로고침 토큰을 생성하여 새로고침 토큰의 수명을 단축합니다.

새로고침 토큰의 짧은 수명은 도난의 위험을 줄입니다. [1]만약 토큰이 도난당했다면, 새로고침 토큰의 수명이 짧을수록 위험을 줄입니다. [11]만약 토큰이 도난당했다면, 새로고침 토큰의 수명이 짧을수록 위험을 줄입니다.

만약 토큰이 도난당했다면, 새로고침 토큰의 수명이 짧을수록 위험을 줄입니다.

만약 토큰이 도난당했다면, 새로고침 토큰의 수명이 짧을수록 위험을 줄입니다.

  • 만약 토큰이 도난당했다면, 새로고침 토큰의 수명이 짧을수록 위험을 줄입니다. 토큰을 안전하게 관리하기 위해, 토큰을 로깅하지 마십시오. URL에 토큰을 포함하지 마십시오. 이러한 단계는 토큰 관리 전략을 강화합니다. 개발자에게 다음 단계를 제시합니다. 개발자가 이 보안 권고 사항을 준수하기 위해 다음 단계를 취할 수 있습니다. 토큰 저장 방법을 감사하십시오. If you’re using insecure solutions like LocalStorage, prioritize migrating to platform-native secure storage. For Capacitor apps, adopt secure storage plugins to utilize native protections effectively.

  • Implement layered authentication. Use simpler methods for low-risk actions, but require multi-factor authentication (MFA) or biometrics for sensitive operations. Microsoft에 따르면 MFA는 99.9%의 자동화된 사이버 공격을 차단할 수 있습니다. [12]그러나 사용자 경험을 고려해야합니다. 연구에 따르면 사용자가 MFA를 피하는 이유 중 하나는 불편함 때문입니다. [12].

  • Use OTA (over-the-air) update systems for secure and immediate rollouts. Capgo과 같은 도구를 사용하여 Capacitor 앱에 대해 암호화된 라이브 업데이트 기능을 활성화하여 보안 패치를 사용자에게 즉시 전달할 수 있습니다.

  • Focus on token lifecycle management. 정기적인 만료, 갱신 및 취소 프로토콜은 필수적입니다. 보안 위험을 최소화하기 위해 이러한 원칙을 반영하도록 구현하세요.

  • Monitor authentication patterns. 비정상적인 활동을 감시하고 진화하는 위협에 따라 보안 대책을 조정하세요. [13]. 개발 프로세스의 일상적인 부분으로서의 보안 감사는 후회할 때가 아니라 일상적인 일이어야 합니다.

모바일 보안이 계속 발전하고 있지만, 핵심 원칙은 여전히 동일합니다: native secure storage를 사용하십시오, token lifecycle을 효과적으로 관리하십시오, 그리고 암호화는 절대 양보할 수 없습니다. Cloudflare, Capacitor, GitHub, Capgo, code, API, SDK, CLI, npm, bun과 같은 protectedTokens을 제외한 모든 것에 대해 2022년 현재 81%의 스마트폰이 생체 인식 장치를 갖추고 있습니다. 개발자들은 보안과 사용자 경험을 향상시키기 위한 강력한 도구를 갖추고 있습니다. [12]사용자들은 데이터를 당신에게 맡기고 있습니다 - 보안 표준의 최고 수준을 충족하는 토큰 저장 관행을 보장하십시오.

FAQs

::: faq

iOS Keychain과 Android Keystore를 사용하여 보안 토큰 저장을 위해 mobile 개발자가 왜 사용해야 하는지 설명하십시오.

iOS Keychain과 Android Keystore와 같은 플랫폼 네이티브 보안 저장소를 사용하는 것은 sensitive 데이터를 보호하기 위해 mobile 앱 내에서 중요한 역할을 합니다. 이 도구들은

내장 암호화 이러한 도구들은비인가 접근으로부터 토큰을 보호하기 위해 내장 암호화 사용자 인증, 사용자가 저장된 데이터에 접근하기 전에 자신의 신원을 확인하도록 요구하는 기능입니다. 이 기능은 추가 보안 계층을 제공합니다.

이러한 시스템의 가장 큰 장점 중 하나는 암호화 키가 제거할 수 없는 키입니다. 즉, 이러한 키는 장치에서 제거할 수 없으므로 compromis 된 위험이 크게 낮아집니다. 이러한 시스템은 각각의 플랫폼과 통합하기 위해 설계되었기 때문에 개발자는 복잡한 암호화 프로세스를 수동으로 처리하는 번거로움을 피하면서 쉽게 구현할 수 있습니다. 이러한 도구를 활용하는 것은 앱 보안을 강화하는 것뿐만 아니라 개발자가 최신 보안 표준 을 준수하고 산업 표준. :::

을 따르는 것을 도와줍니다.

::: faq

모바일 앱에서 토큰 라이프 사이클을 안전하게 관리하는 가장 좋은 방법은 무엇입니까? 모바일 앱에서 토큰 라이프 사이클을 안전하게 관리하려면 개발자는 몇 가지 필수적인 방법을 따르면 됩니다. 먼저 사용하는 토큰이15분 이내의 유효 기간을 가진 토큰과 같은 경우, 토큰이 compromis 된 경우에 대한 악용의 창구를 최소화하기 위해 사용됩니다. 사용자 편의성을 유지하는 동시에 보안을 유지하기 위해 구현하는 refresh tokens는 새로운 토큰을 발급받을 수 있도록 허용합니다. 사용자가 반복적으로 로그인할 필요 없이. 토큰의 적절한 저장은 불법적인 접근을 방지하는 데 중요합니다. 항상 플랫폼에 특화된 보안 저장 솔루션을 사용하십시오, 예를 들어

Keychain iOS의 경우 또는 Android Keystore . 이들은敏感데이터를 보호하기 위해 특별히 설계되었습니다. 또한, 토큰을 하드 코딩하거나 앱 내에서 평문으로 저장하는 것을 피하십시오. 이는 잠재적인 위협에 노출될 수 있습니다. 이러한 방법을 통합하면 개발자가 모바일 앱의 토큰 관리의 보안을 강화하고 사용자에게 잠재적인 취약점을 보호할 수 있습니다. :::

::: faq

커스텀 암호화로 토큰 저장을 사용할 때 발생할 수 있는 문제점은 무엇이며, 언제 네이티브 솔루션보다 고려해야 할까요?

커스텀 암호화로 토큰 저장을 사용할 때는 주의해야 합니다. 이는 사용자에게 더 많은 통제력을 제공하는 것처럼 보일 수 있지만, 종종 추가적인 복잡성을 가져오고 잠재적인 보안 약점을 열어주며, 새로운 위협에 대응하기 위해 지속적인 유지보수를 필요로 합니다. 플랫폼에서 제공하는 내장 암호화 도구와 달리, 커스텀 솔루션은 광범위한 테스트, 자세한 문서화, 그리고 강력한 개발자 커뮤니티의 지원을 받지 못합니다. 이는 디버깅과 통합을 훨씬 더 큰 문제로 만들 수 있습니다.

refresh tokens

그렇지만, 특정 데이터나 규제 요구 사항을 충족하기 위해 표준 도구가 처리할 수 없는 경우, 사용자 지정 암호화가 피할 수 없는 상황이 있습니다. 이 경우 개발자는 표준 도구가 처리할 수 없는 경우 사용자 지정 암호화 접근 방식을 사용하기 전에 주의 깊게 상호 작용을 고려해야 합니다. __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ Compliance 세부 정보에 대해 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로에 대해 Capgo 보안 Capgo 보안의 제품 워크플로에 대해, 그리고 Capgo 신뢰 센터 Capgo 신뢰 센터의 제품 워크플로에 대해.

Capacitor 앱에 대한 실시간 업데이트

웹-layer 버그가 활성화된 경우, 앱 스토어 승인 대기 없이 Capgo를 통해 패치를 배포하세요. 사용자는 배경에서 업데이트를 받으며 native 변경 사항은 일반적인 검토 경로를 유지합니다.

시작하기

블로그에서 최신 업데이트

Capgo은 전문적인 모바일 앱을 만들기 위한 최고의洞察력을 제공합니다.