Keychain 5

[iOS] Jailbreak (탈옥) 상태에서 Keychain 데이터 가져오기

iOS의 Keychain Services는 애플리케이션이 비밀번호, 암호화 키, 인증 토큰 등을 안전하게 저장할 수 있도록 제공하는 보안 저장소입니다. 키체인 데이터는 앱의 샌드박스(Sandbox) 내에서만 접근 가능하며, 일반적으로 다른 앱에서 접근할 수 없도록 보호됩니다.키체인 항목은 다음과 같은 주요 API를 통해 저장 및 조회됩니다.SecItemAdd → 새로운 항목을 추가SecItemUpdate → 기존 항목을 업데이트SecItemCopyMatching → 특정 항목을 조회SecItemDelete → 항목 삭제이러한 보안 구조 때문에 일반적인 방법으로는 키체인 데이터를 쉽게 추출할 수 없지만, 탈옥 환경이나 동적 분석 도구를 사용하면 특정 조건에서 데이터를 확인할 수 있습니다. iOS 키체인 정..

클라이언트 2025.02.16

[iOS] iOS 앱 보안을 위한 최적화 방법

iOS 앱 개발에서 보안은 필수 요소입니다. 사용자의 데이터를 보호하고, 앱이 해킹되지 않도록 예방하는 것은 매우 중요합니다.이 글에서는 iOS 앱 보안을 강화하는 다양한 방법을 예제 코드와 함께 상세히 설명하겠습니다.1. 데이터 보호1) Keychain을 이용한 보안 저장사용자의 중요한 데이터(토큰, 패스워드 등)는 UserDefaults가 아니라 Keychain에 저장해야 합니다.(1) Keychain 저장 예제import Securityfunc saveToKeychain(account: String, password: String) { let data = password.data(using: .utf8)! let query: [String: Any] = [ kSecClass ..

클라이언트 2025.02.16

[iOS] UserDefaults 동작 방식과 보안

UserDefaults는 iOS 개발에서 간단한 데이터를 저장하고 불러오는 데 자주 사용되는 API이다. 그러나 보안상의 이슈가 있을 수 있어, 적절한 사용법과 보안 대책을 고려해야 한다. 이번 글에서는 UserDefaults의 동작 방식과 보안 관련 사항을 자세히 살펴본다.1. UserDefaults란?UserDefaults는 앱 내에서 Key-Value 형태로 데이터를 저장할 수 있는 간단한 저장소이다. 설정 값, 사용자 선호도, 앱 상태 등을 저장하는 데 주로 사용된다.1.1 주요 특징간단한 Key-Value 저장 방식앱이 삭제되기 전까지 데이터 유지앱이 재시작되더라도 데이터 유지plist 파일을 사용하여 데이터 저장보안이 강하지 않으므로 민감한 데이터 저장에 부적절1.2 지원하는 데이터 타입Use..

클라이언트 2025.02.15

[iOS] 안전한 데이터 저장, Keychain 사용하기

이번 포스트에서는 Keychain을 사용하여 안전하게 데이터를 저장하고 불러오는 방법에 대해 살펴보고자 합니다. Keychain은 디바이스 안에 암호화된 데이터 저장 공간을 의미합니다. 사용자는 암호화된 공간에 데이터를 안전하게 보관할 수 있습니다. Keychain에 저장할 수 있는 데이터는 다양한 데이터가 포함될 수 있습니다. 사용자 계정 정보를 비롯하여 결제 지불 정보, 사용자 개인 정보 등 민감한 데이터를 모두 저장할 수 있습니다. 현재까지 Keychain 영역이 외부 침입자에 의해 뚫렸다는 소식이 없었을 만큼 안전한 공간입니다. Keychain Service는 Keychain Service API를 통해 데이터를 암호화할 후 Keychain에 저장하게 됩니다. 아래 그림을 살펴보면 이해에 도움이 ..

클라이언트 2020.08.17

Keychain을 사용한 민감 정보 처리

이번 포스트에서는 비밀번호, 주민번호 등 민감 정보를 안전하게 처리할 수 있는 Keychain에 대해서 살펴보도록 하겠습니다. 우리는 기존에 데이터를 기기에 저장해두기 위해 UserDefaults를 사용하였었는데 이는 단순 데이터를 저장하기에는 문제가 없으나 비밀번호, 인증서, 개인 정보 등 민감한 정보를 저장하기에는 base-64로 인코딩해서 저장하는 것으로 충분하지 않는가? 라고 생각할 수 있겠지만 이는 보안 상 결코 안전하지 않습니다. 1. KeyChain 이란? 컴퓨터 사용자는 종종 안전하게 보관해야하는 작은 비밀을 가지고 있습니다. 예를 들어, 대부분의 사람들은 수많은 온라인 계정을 관리합니다. 각각에 대해 복잡하고 고유한 암호 (Unique Passwords)를 기억하는 것은 불가능하지만 암호..

클라이언트 2019.12.07