조회 수 4198 추천 수 0 댓글 0
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
번호 분류 제목 글쓴이 날짜 조회 수
729 Develop [ios] Swift 4 String, Date, DateFormatter 예제 hooni 2018.10.18 1521
728 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 1577
727 Develop How to Test SMTP AUTH using Telnet hooni 2018.04.05 1597
726 Develop [swift] popToRoot 모달뷰, 네비게이션컨트롤러 한꺼번에 닫기 file hooni 2021.01.29 1608
725 Develop [android] 레이아웃 사이즈 변경 (동적; programmatically) hooni 2016.11.07 1625
724 Develop [ios] binary를 C코드로 변환 file hooni 2015.01.03 1653
723 Develop [ios] 스크린 캡쳐 (전원버튼 + 홈버튼) 호출 알아내기 hooni 2014.11.19 1660
722 Develop [ios] Swift 4 Singleton inheritance hooni 2018.10.31 1695
721 Develop [js] 모바일 스크롤 방지(해제) hooni 2015.04.14 1701
720 Develop [python] 파라미터 앞에 *, ** 의 의미? (*args, **kwargs) hooni 2019.11.22 1708
719 Develop ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 file hooni 2015.01.01 1736
718 Develop [ios] Requesting Location Permissions in iOS file hooni 2018.08.18 1746
717 Develop [ios] Locale Identifiers file hooni 2018.11.29 1748
716 Develop [web] 더 빠른 웹을 위한 프로토콜, 'HTTP/2' file hooni 2014.10.20 1770
715 Develop [ios] 동영상 플레이어 샘플 (for Remote Url) file hooni 2017.02.07 1771
714 Develop [ios] How To Use UIScrollView to Scroll and Zoom Content (Using Objective-C) file hooni 2016.03.23 1773
Board Pagination Prev 1 ... 6 7 8 9 10 ... 53 Next
/ 53