Contents

Atachment
첨부 '6'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

모바일 앱을 개발하다 보면 보안상 취약성을 발견할 수 있다. 앱에서 사용되는 환경 파일, 중요한 데이터의 기록 파일이나 DB 파일들이 노출되고 있다. iExplorer와 같은 프로그램을 사용하면 앱 내부에 있는 파일들을 자유롭게 PC로 복사해서 변경 후 다시 iPhone에 복사할 수 있다. 이런 보안상 취약점을 보강하기 위해서는 중요 데이터는 암호화하고 사용시 복호화 하도록 구현해야 한다.

 

데이터를 저장할 때 암호화하여 저장하면 외부에서 접근이 가능하더라도 데이터의 접근에 제한을 둘 수 있다. 물론, 암호화 알고리즘 자체도 해킹될 수 있지만 단기간 될 수 있는 것은 아니며 평문으로 저장되는 것보다는 보안을 높일 수 있다.

 

MD5나 SHA와 같이 해시 알고리즘을 통해서 간단히 데이터를 비교할 수도 있지만 해시 함수는 특성상 복호화 할 수 없는 단방향 암호이기 때문에 우리는 양방향 암호화를 위해서 AES 등 쌍방향 암호화 방법을 사용하는 것이 좋다.

AES(Advanced Encrtption Standard)는 미국 정부에서 표준으로 지정된 블록 암호 방식이다. 이 전에는 DES 대칭키 암호를 사용했지만 DES의 56bit 암호 비트가 현재 컴퓨팅 능력에 비해서 적고 여러 취약점이 발견되어 존 데이먼과 빈센트 라이먼(Rijndael)에 의해서 개발되었다. AES는 128bit를 가지고 있고, 128bit 이상의 32배수 길이의 키를 사용할 수 있다.

 

Objective-C에서 AES256 암호화, 복호화에 대한 코드를 검색하면 많은 자료들이 검색될 것이다. 하지만, 암호 방식이 공개된 것일 뿐 암호화 키가 없이 암호화 방식만 가지고 복호화 하는 것은 어렵기 때문에 공개된 소스코드를 가지고 암호화 메소드를 구현할 수 있다.

 

1. 프로젝트 설정

- 샘플 싱글뷰 프로젝트 생성

- Security.framework 프로젝트에 포함

- #import <CommonCrypto/CommonCryptor.h> 헤더 포함

aes_01.png

 

2. encryptByAES256WithKey:data: 메소드 작성

aes_02.png

 

3. decryptByAES256WithKey:data: 메소드 작성

aes_03.png

 

4. 결과 화면

aes_04.png

 


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
993 System/OS 무료로 HTTPS 적용하기 (Let's Encrypt) file hooni 2017.10.28 1407
992 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 1410
991 Etc 아이폰의 터치스크린 정확도 file hooni 2015.04.01 1423
990 Etc IT감사 기법 시험 file hooni 2017.06.14 1423
989 System/OS [mac] Mac OS에서 재생되는 사운드를 녹음하는 방법 file hooni 2016.10.03 1448
988 System/OS [linux] wget 명령 사용 예제 hooni 2020.05.26 1448
987 System/OS OpenSSL로 ROOT CA 생성 및 SSL 인증서 발급하기 hooni 2017.10.28 1464
986 Database [mysql] MacOS에 MySQL 설치, 설정, 암호 재설정 file hooni 2017.12.15 1471
985 Develop [android] 레이아웃 사이즈 변경 (동적; programmatically) hooni 2016.11.07 1486
984 Develop [ios] binary를 C코드로 변환 file hooni 2015.01.03 1533
983 System/OS [mac] OS X 요세미티 사용자가 많이 겪는 버그와 몇몇 불편사항 file hooni 2015.01.04 1534
982 System/OS [svn] 하나의 SVN에서 멀티 저장소 (One svnserve, multiple repositories) hooni 2015.01.02 1549
Board Pagination Prev 1 ... 11 12 13 14 15 16 17 18 19 20 ... 98 Next
/ 98