보안 6

[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][Swift] iOS Swift에서 사용할 수 있는 암호화 방식

모바일 앱에서는 사용자 데이터를 안전하게 보호하기 위해 암호화가 필수적입니다. iOS에서는 다양한 암호화 기술을 제공하며, Swift에서 이를 쉽게 활용할 수 있습니다. 이번 글에서는 iOS에서 사용할 수 있는 대표적인 암호화 기법과 예제 코드를 함께 살펴보겠습니다. 1. 암호화의 기본 개념암호화는 데이터를 안전하게 보호하기 위한 과정으로, 크게 대칭 키 암호화와 비대칭 키 암호화로 나뉩니다.1) 대칭 키 암호화 (Symmetric Encryption)하나의 키를 사용하여 데이터를 암호화 및 복호화속도가 빠르고 효율적키가 노출될 경우 보안 위협 발생대표적인 알고리즘: AES (Advanced Encryption Standard)2) 비대칭 키 암호화 (Asymmetric Encryption)공개 키(Pu..

클라이언트 2025.02.16

Hashing(해싱) 개념 정리

1. 해싱(Hashing)이란?해싱(Hashing)은 데이터를 일정한 길이의 고유한 값(해시값)으로 변환하는 과정입니다. 해싱은 암호학적 보안, 데이터 무결성 검사, 빠른 데이터 검색 등 다양한 용도로 사용됩니다.해싱의 특징은 다음과 같습니다.단방향 변환: 해시값을 통해 원래 데이터를 복원할 수 없음고정된 길이 출력: 입력 데이터의 크기와 상관없이 해시값의 길이는 일정함고유성(Uniqueness): 서로 다른 입력은 서로 다른 해시값을 생성해야 함고속 연산: 해시 함수는 빠르게 계산 가능해야 함충돌 방지(Collision Resistance): 같은 해시값을 가지는 서로 다른 입력값(충돌)이 최대한 적어야 함2. 해시 함수(Hash Function)란?해시 함수(Hash Function)는 입력 데이터를..

개발 일반 2025.02.15

[iOS] UserDefaults 동작 방식과 보안

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

클라이언트 2025.02.15

Keychain을 사용한 민감 정보 처리

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

클라이언트 2019.12.07