본문으로 바로가기

iOS 애플리케이션은 임시 데이터와 영구 데이터를 로컬 시스템(iOS 설치기기)에 저장할 수 있다.

데이터를 평문으로 저장하게 될 경우 계정 정보(ID/PW), 고객 정보, 서버 정보 등과 같은 중요 정보가 유출될 수 있다.

 

iOS 애플리케이션이 로컬 시스템에 데이터를 저장하는 장소는 아래와 같다.

 

1. Data Container

- /var/mobile/Containers/Data/Applications/$uuid 에 위치.
- 애플리케이션 내부 데이터를 저장하는 곳.
- 상세 데이터 저장 경로는 아래와 같음.

분류 항목 내용
Documents 전체 경로 /var/mobile/Containers/Data/Applications/$uuid/Documents
저장 내용 사용자 데이터 저장
사용자에게 노출되고 생성, 삭제 또는 수정할 수 있는 파일 포함
사용자가 다운로드한 파일 포함 (비디오 또는 오디오 앱)
Library/Application support 전체 경로 /var/mobile/Containers/Data/Applications/$uuid/
저장 내용 앱을 실행하는 데 사용되는 폴더로 사용자에게 보이지 않음
(앱 생성 데이터) 앱이 생성하고 관리하는 데이터, 설정, 탬플릿 등
Library/Caches 전체 경로 /var/mobile/Containers/Data/Applications/$uuid/
저장 내용 데이터 캐시 파일을 저장하는 곳으로 앱 성능을 위한 목적으로 존재
디스크 공간 확보를 위해 삭제할 수 있으므로 쉽게 재생성 가능한 파일
Tmp 전체 경로 /var/mobile/Containers/Data/Applications/$uuid/
저장 내용 임시파일을 위한 저장소로 앱 실행하는 데 필요 없는 파일

 

2. iCloud Container

- /private/var/mobile/Library/Mobile Documents
- iCloud와 관련된 데이터 저장.
- iCloud 지원 iOS 애플리케이션이 사용하는 데이터가 포함됨..

 

3. iOS Keychain

- /var/Keychains/keychain-2.db
- 사용자 이름, 암호, 네트워크 암호, 인증 토큰과 같은 민감한 정보를 저장하는 공간.
- Sqlite 데이터베이스로 구성된 파일이며 모든 데이터는 암호화됨.

 

※ 대응방안

자격증명, 개인정보, 인증정보 등 중요한 정보는 디바이스 내 저장하지 않아야 함.

어쩔수없이 디바이스 내 중요정보를 저장해야 할 경우, 안전한 암호화 알고리즘을 통해 데이터를 암호화하여야 함.

국내 · 외 암호 연구 관련 기관의 권고 암호 알고리즘 예시
분류 미국(NIST) 일본(CRYPTREC) 유럽(ECRYPT) 국내
대칭키 암호 알고리즘 AES-128/192/256
3TDEA
AES-128/192/256
Camellia-128/192/256
AES-128/192/256
Camellia-128/192/256
Serpent-128/192/256
SEED
HIGHT
ARIA-128/192/256
LEA-128/192/256
공개키 암호 알고리즘
(메시지 암·복호화)
RSA
(사용 권고하는
키길이 확인 필요)
RSAS-OAEP RSAS-OAEP RSAES
일방향 암호 알고리즘 SHA-224/256/384/512 SHA-256/384/512 SHA-224/256/384/512
Whirlpool
SHA-224/256/384/512

출처 : 개인정보의 안정성 확보조치 기준 해설서, KISA, 2020.12.

 

암호화 알고리즘을 이용한 언어별 데이터 암호화 샘플 소스코드는 아래의 링크를 참조.

https://seed.kisa.or.kr/kisa/Board/23/detailView.do

 

KISA 암호이용활성화 - 자료실 - 암호알고리즘 소스코드

한국인터넷진흥원(KISA)에서는 스마트폰 앱 개발 시 다양한 암호알고리즘을 쉽게 활용할 수 있도록, 모바일환경(안드로이드, iOS, 윈도우 모바일)에 적합한 소스코드를 별도로 배포하고 있습니다.

seed.kisa.or.kr