Transcript 목 표 내 용
안드로이드 기반 데이터 암호화 플랫폼 개발 -DES암호화 알고리즘 모듈 개발 Kyungwon University Computer Network LAB 2011.9.7 심 재성 1 DES암호화 알고리즘 모듈 개발 1. 과제 개요 2. DES 개요 3. DES 설계 및 구현 4. 진행 일정 및 상황 5. 향후 일정 2 1. 과제 개요 ▣ 과제 수행의 필요성 ◎ 모바일 기기가 발전 모바일용 운영체제, 미들웨어, 응용 프로그램 을 묶은 S/W플랫폼 안드로이드 기반 어플리케 이션이 많이 개발되고 사용됨 ◎ 사용자 정보를 유출시켜 피해를 주는 악성 어플리케이션 ◎ 보안에 대한 인식 부족과 개발시 데이터 보안 고려 부족 등 어플리케이션 암호화를 하는 API는 개발 되 었으나 안드로이드 기반의 데이터 암호화 플랫폼 부재 ◎ OpenSSL ◎ 어플리케이션 개발에 보안을 고려하게 되면 기본적으로 개발비용 외에 별도의 비용 발생 및 전문가 확보 어려움 3 1. 과제 개요 ▣ 과제 수행의 필요성 ◎ 모바일 기기가 발전 모바일용 운영체제, 미들웨어, 응용 프로그램 을 묶은 S/W플랫폼 안드로이드 기반 어플리케 이션이 많이 개발되고 사용됨 ◎ 사용자 정보를 유출시켜 피해를 주는 악성 어플리케이션 ◎ 보안에 대한 인식 부족과 개발시 데이터 보안 고려 부족 등 어플리케이션 암호화를 하는 API는 개발 되 었으나 안드로이드 기반의 데이터 암호화 플랫폼 부재 ◎ OpenSSL ◎ 어플리케이션 개발에 보안을 고려하게 되면 기본적으로 개발비용 외에 별도의 비용 발생 및 전문가 확보 어려움 4 1. 과제 개요 [표-1] 내용 및 범위(전체) 목 표 내 안드로이드 기반의 데이터 암호화 플랫폼 요구 분석 - 모바일 보안 실태 분석 - 안드로이드 보안 개발 유형 조사 및 분석 - 암호화 알고리즘 분석 - 모바일 환경의 데이터 사용 유형 분석 안드로이드 기반의 데이터 암호화 플랫폼 설계 - 안드로이드 환경의 데이터 암호화 시나리오 설계 · 단말저장형 데이터 시나리오 설계 · 단방향전송형 데이터 시나리오 설계 · 실시간 전송형 데이터 시나리오 설계 - 안드로이드 환경에 적합한 경량화된 암호화 알고리즘 설계 · RSA, ECC, SEED(3-DES) 등 - 안드로이드 기반 암호화 플랫폼 설계 · 시나리오 구별 모듈 설계 · 데이터 전처리 모듈 설계 · 경량화 암호 알고리즘 모듈 설계 안드로이드 기반의 데이터 암호화 플랫폼 구현 - 안드로이드 환경의 시나리오별 데이터 암호화 구현 · 단말저장형 데이터 암호화 구현 · 단방향전송형 데이터 암호화 구현 · 실시간전송형 데이터 암호화 구현 - 안드로이드 기반 데이터 암호화 플랫폼 구현 · 시나리오 구별 모듈 구현 · 데이터 전처리 모듈 구현 · 경량화 암호 알고리즘 모듈 구현 안드로이드 기반의 데이터 암호화 플랫폼 테스트 및 평가 용 - 구현된 데이터 암호화 플랫폼 모듈별 단위 테스트 - 구현된 데이터 암호화 통합 테스트 - 구현된 데이터 암호화 플랫폼 평가 및 보완 공개 SW 커뮤니티 프로젝트 구성 - 초기 커뮤니티 멤버구성 - Sourceforge 커뮤니티 구성 - nForge 커뮤니티 구성 - 전문가 그룹 및 관련 소모임을 통한 멤버 구성 공개 SW 커뮤니티 프로젝트 운영 - 커뮤니티 맴버구성 - 공개 SW 커뮤니티 홍보 - 커뮤니티를 통한 요구사항 및 기능 Feedback - 커뮤니티를 통한 세미나 및 소모임 - 공개 SW 커뮤니티 활성화를 위해 국내·외 안드로이드 개발자 모임을 통한 커뮤니티 연계 5 1. 과제 개요 [표-2] 과제 일정(전체) 추진일정 단계 과제내용 5 2 9 1 6 6 2 3 3 0 6 1 3 7 2 0 2 7 4 1 1 8 1 8 2 5 1 8 1 5 9 2 2 2 9 5 1 2 10 1 9 2 6 3 1 0 1 7 11 2 4 3 1 7 1 4 모바일 보안 실태 분석 안드로이드 보안 개발 유형 분석 분석 모바일 환경의 데이터 사용 유형 분석 데이터 암호화 시나리오 설계 설계 경량화된 암호화 알고리즘 설계 암호 알고리즘 구현 시나리오별 데이터 암호화 구현 테스트 모듈별 단위 테스트 설계 암호화 플랫폼 설계 구현 데이터 암호화 플랫폼 구현 플랫폼 테스트 테스트 모듈별 단위 테스트 통합테스트 플랫폼 평가 및 보완 6 2 1 1. 과제 개요 ▣ 과제 해결 내용 ◎ 요구 분석 모바일 보안 실태 분석 모바일 환경의 데이터 사용 유형 분석 안드로이드 보안 개발 유형 조사 및 분석 암호화 알고리즘 분석 요구 분석된 내용을 주 3회 정기적으로 커뮤니티 공유하고, 수정 및 보안 을 계속적으로 조사.분석 ◎ 설계 안드로이드 환경에서 데이터 암호화 시나리오 설계 경량화된 암호화 알고리즘 설계 안드로이드 기반 암호화 플랫폼 설계 7 1. 과제 개요 ▣ 과제 해결 내용 ◎ 구현 안드로이드 환경에서 데이터 암호화 시나리오 구현 단말 저장형 암.복호화 속도에 중점 단방향전송형 암호 강도에 중점 실시간전송형 빠른 키 전송 및 데이터 암.복호화 속도에 중점 안드로이드 기반 암호화 플랫폼 구현 설계를 기반으로 각 시나리오에 맞게 구별되는 것을 중점으로 구현 ◎ 테스트 및 평가 구현된 데이터 암호화 플랫폼 모듈별 단위 테스트 구현된 데이터 암호화 통합 테스트 구현된 데이터 암호화 플랫폼 평가 및 보완 입력값, 출력값, 오류발생원인, 오류발생상황 등을 상세히 기록 커뮤니티 공유 8 1. 과제 개요 ▣ 과제 해결 내용 ◎ 공개 S/W 커뮤니티 프로젝트 구성 및 운영 초기 구성원은 관련 연구원과 전문가 그룹을 중심 추가적으로는 본교 개발동아리와 연계로 구성 활동인원 증원 초기 구성원으로부터 관련 정보를 획득, 커뮤니티를 통해 정보를 공유하 고, 지속적인 커뮤니티 회원들과의 의사소통 유도 커뮤니티를 통한 요구사항 및 기능 Feedback 커뮤니티를 통한 세미나 및 소모임 국내외 안드로이드 개발자 모임을 통한 커뮤니티 연계 9 1. 과제 개요 ▣ 과제 수행시 기대효과 ◎ 안드로이드 기반의 어플리케이션의 보안성 증대 본 과제의 안드로이드 기반 데이터 암호화 플랫폼을 통해 개인 및 기업 개발자들이 활용 가능 개발 어플리케이션의 보안성이 크게 증대 사용자들의 개인정보 유출 예방 효과 ◎ 공개 S/W 커뮤니티 활성화 및 파급효과 안드로이드 기반 데이터 암호화 플랫폼은 모든 소스 및 개발 과정이 공개 S/W 커뮤니티에 공개 개인 및 기업 개발자 들의 적극적인 참여를 유도 공개 S/W 커뮤니티 활성 화를 도모, 보안의 인식제고 등 효과 기대 10 1. 과제 개요 ▣ 과제 수행시 기대효과 ◎ 개발 비용의 절감 현재 개인 및 기업 개발자에 의해 개발되고 있는 보안 플랫폼을 추가 하 려면 보안관련 전문가의 필요와 보안 모듈개발로 인해 개발비용과 시간 이 증가 본 과제를 통해 개발되는 플랫폼은 공개 S/W정책을 적용 추가 개발비용 과 시간적 측면에서 모두 감소 ◎ 보안의 인식 확대 최근 발생되는 수많은 모바일 단말에서의 해킹사고 및 개인정보 노출문 제 발생 근본적인 개발자들의 해결의지 부족과 기본인프라 부족 본 과제는 공개 S/W 커뮤니티를 통해 보안 문제 이슈 발생 및 보안 홍보 효과 증가 11 2. DES 개요 ▣ 내용 및 범위(개인) 목 표 DES 암호화 알고리즘 분석 내 암호화 알고리즘 분석 DES 암호화 알고리즘 분석 DES 암호화 알고리즘 모듈 설계 DES 암호화 알고리즘 설계 DES 암호화 알고리즘 모듈 설계 · 시나리오 구별 모듈 설계 · 데이터 전처리 모듈 설계 · 경량화 암호 알고리즘 모듈 설계 DES 암호화 알고리즘 모듈 구현 DES 암호화 알고리즘 모듈 구현 · 시나리오 구별 모듈 구현 · 데이터 전처리 모듈 구현 · 경량화 암호 알고리즘 모듈 구현 DES 암호화 알고리즘 모듈 테스트 및 평가 용 구현된 DES 암호화 모듈별 단위 테스트 구현된 DES 암호화 통합 테스트 구현된 DES 암호화 평가 및 보완 12 2. DES 개요 ▣ DES 암호화 알고리즘 (Data Encryption Standard : DEA) ◎ IBM에서 개발한 대칭키 알고리즘 IBM의 암호학자 Feistel이 만든 블록암호의 구조가 그대로 사용됨 치환과 전치의 혼합방법을 사용 ◎ ◎ 1977년부터 20년간 미국 표준, 국제 표준으로 사용되었던 알고리즘 현재 상용화 되어 있는 3DES, RC5, IDEA, BlowFish 등 대칭키 암호화 방식의 가장 기본 [그림-1] Horst Feistel 13 2. DES 개요 ▣ DES의 특징 ◎ 대칭적 알고리즘을 사용하는 개인 정보 보안 네트워크 작은 경우 적은 수의 비밀키 교환만 하면 되어 쉽고 간편함 큰 경우 많은 수의 비밀키 교환으로 인해 안전 교환이 어려워져 비용이 비싸지고 부담스러워짐 ◎ 비밀키 공유로 인한 신뢰성 상대방이 비밀키를 보호하고 누출 하지 않을 것에 대한 신뢰 개인적이든 업무용이든 이전에 알고 있는 관계에서만 사용 ◎ 인증과 부인 방지 비밀키가 공유되어 상대방의 행위를 증명 하지 못함 데이터를 몰래 수정할 수 있으나 도용자 식별 불가 14 2. DES 개요 ▣ DES 암·복호화 ◎ DES 암호화 64Bit 길이의 평문 과 키값 을 입력받아 암호문을 출력 키 값에 입력된 값을 좌측 쉬프트하여 16라운드 실행 ◎ DES 복호화 64Bit 길이의 암호문 과 키값 을 입력받아 평문을 출력 키 값에 입력된 값을 우측 쉬프트하여 16라운드 실행 키(56+8 bit) 평문 64bit DES 암호화 키(56+8 bit) 암호문 64bit DES 복호화 평문 64bit [그림-2] DES 암·복호화 과정 15 2. DES 개요 ▣ DES 암·복호화 ◎ 평문을 순치환 후 마지막에 역치환 하여 암호문 출력 ◎ 암호문을 역치환 후 마지막에 순치환 하여 평문 출력 64bit 16번 반복 평문 64bit 암호문 순 치환 64bit 비밀키 역 치환 64bit 비밀키 키에 의한 변환 (치환, 전치, XOR) 48bit 암호키 키에 의한 변환 (치환, 전치, XOR) 48bit 복호키 역 치환 64bit 순 치환 암호문 64bit 평문 [그림-3] DES 암·복호화 알고리즘 16 2. DES 개요 ▣ Use Case 암호화 입력 데이터 암호문 출력 송신자 단말기 복호화 [그림-4] USE CASE 17 2. DES 개요 ▣ 단말 저장형 데이터 보관 ◎ 단말기 내에 저장되는 전화번호부, 스케줄 위험 노출 • 단말기 분실 시 저장 데이터 유출 • 외부 해킹으로 인한 저장 데이터 훼손 단말 저장 데이터 보관 [그림-5] 비보호 상태의 데이터 보관 18 2. DES 개요 ▣ 단말 저장형 데이터 보관 ◎ DES 암호화를 사용하여 저장데이터 보호 • 외부로 부터의 비정상적 접근 제어 • 비밀키 미인증 접속자 대상 정보 보호 단말 저장 데이터 보관 DES 비밀키 [그림-6] DES로 보호된 저장 데이터 19 2. DES 개요 ▣ DFD 블럭화 암호화 라운드 암호키 평문 암호키DB PCA,PCB,LSH 암호키 사용자 암호키 생성 평문 PCA,PCB LSH, RSH 비밀키 비밀키 64bit 비밀키 블럭화 64bit 비밀키 -1 IP,IP E, S, P 암호문 복호키 생성 단말기 복호키 복호키DB 라운드 복호키 복호화 [그림-7] Data Flow Diagram PCA,PCB,RSH 암호문 블럭화 20 3. DES 설계 및 구현 ▣ 입력 값 분할 START A=int(Len(input)/8) B=0 C=Len(input) inputM(A) Read Input, Space 반복 D=A*8,C,1 input=input+space B=B+1 inputM(B)=Sub(input(B,B*8)) B=A Yes No STOP 21 3. DES 설계 및 구현 ▣ 키 생성 (1/2) START REK RoundEncoderKey TK TempKey L Left R Right BK BitKey ES EncoderShift DS DecoderShift REK(48)(16) TK(56) L(28)(17) R(28)(17) All(56)(16) Read BK,ES,DS, PCA,PCB 반복 a=1,56,1 TK(a)=BK(PCA(a)) 반복 b=1,28,1 L(b)(0)=TK(b) R(b)(0)=TK(28+b) ⓐ 22 3. DES 설계 및 구현 ▣ 키 생성 (2/2) ⓐ 반복 a=2,17,1 c=0 반복 • DES 암호화 배열 ES를 이용하여 진행 • DES 복호화 배열 DS를 이용하여 진행 b=1,28,1 b+ES(a-1):28 =< c=b+ES(a-1) L(b)(a)=L(c)(a-1) R(b)(a)=R(c)(a-1) > C=0+ES(a-1) L(b)(a)=R(c)(a-1) R(b)(a)=R(c)(a-1) All(b)(a-1)=L(b)(a) All(28+b)(a-1)=R(b)(a) 반복 d=1,48,1 c=PCB(d) REK(d)(a-1)=All(c)(a-1) STOP ⓑ 23 3. DES 설계 및 구현 ▣ DES 알고리즘 START EDT EncoderDecText EBT EncoderBitText ERK EncoderRightKey AT AllText LT LeftText RT RightText FS FrontS RS RearS TS TempS • DES 암호화 => 초기 순치환 • DES 복호화 => 초기 역치환 EDT(16) EBT,AT(64) FS,RS,TS(8)(17) ER,ERK(48)(17) TSERK,SERK,PSERK(32)(17) LT,RT(32)(17) TT(64)(17) SMOK,SNMG Read -1 IP,IP ,E,S,P,BT,REK 반복 a=1,64,1 TT(a)=BT(IP(a) 반복 a=1,32,1 LT(a)(1)=TT(a)(1) RT(a)(1)=TT(28+a)(1) ⓐ 24 3. DES 설계 및 구현 ▣ DES 알고리즘 ⓐ 반복 a=2,17,1 반복 b=1,32,1 LT(b)(a)=RT(b)(a-1) 반복 c=1,48,1 ER(c)(a)=RT(E(c))(a-1) ERK(c)(a)=ER(c)(a-1) +REK(c)(a-1) d=0 반복 e=1,8,1 FS(e)(a)=2*RT(1+d)(a-1)+RT(6+d)(a-1) RS(e)(a)=8*RT(2+d)(a-1)+4*RT(3+d)(a-1) 2*RT(4+d)(a-1)+RT(5+d)(a-1) TS(e)=S(e)(FS(e)(a),RS(e)(a)) d=d+6 ⓑ 25 3. DES 설계 및 구현 ▣ DES 알고리즘 ⓑ 반복 f=4,32,4 반복 g=1,4,1 SMOK=TS((f)/4-1)(a)/2 SNMG=TS((f)/4)(a)-(SMOK*2) TS((f)/4)(a)=SMOK SERK(f-g)(a)=SNMG 반복 h=1,32,1 PSERK(h)(a)=SERK(P(h))(a) RT(h)(a)=PSERK(h)(a) +LT(h)(a-1) 반복 i=1,32,1 AT(i)=RT(i)(17) AT(28+i)=LT(i)(17) EBT(i)=AT(IP -1(i)) EBT(28+i)=AT(IP -1(i)) STOP ⓒ 26 3. DES 설계 및 구현 ▣ DES 암호화 구현 String 타입의 input 변수에 평문 값 입력 ◎ 입력된 평문 값에 대한 암호문 생성 ◎ 입력된 값의 약 2배정도 길이의 String타입 암호문 출력 TEST Divid8 DES_Set (MAIN) (8자리 분할) (이진 변환) DES_Encode DES_Encode rKey r (암호키 생성) (암호화) •변수 Secretkey TEST (MAIN) 27 3. DES 설계 및 구현 ▣ DES 복호화 구현 String 타입의 cipher 변수에 암호문 값 입력 ◎ 입력된 암호문 값에 대한 평문 복호 ◎ 암호화에서 입력되었던 String타입의 평문을 복호화하여 출력 TEST Divid16 DES_END (MAIN) (16자리 분할) (이진 변환) •변수 Secretkey DES_Set (이진 변환) DES_Decode DES_Decode rKey r (암호키 생성) (암호화) TEST (MAIN) 28 4. 진행 일정 및 상황 ▣ 과제 일정(개인) 추진일정 구분 내용 6 29 계획 13 20 27 03 10 17 24 31 07 DES 암호화 문서화 분석 알고리즘 모듈 06 9 8 과제 파악 및 일정 계획 문서 작성 DES암호화 7 암호화 알고리즘 DES 암호화 알고리즘 설계 데이터 암호화 설계 구현 데이터 암호화 구현 테스트 모듈별 단위 & 종합 테스트 29 4. 향후 일정 ▣ 향후 일정 ◎ 현재까지 진행된 작업자료 업로드 ◎ SNS를 활용한 재난상황 대처(학술대회) 기존 재난전달 체계의 보완점을 조사 및 분석 SNS를 활용한 재난 정보 수집 및 이용 방안 제안 ◎ PMIPv6 에 대한 학회지, 논문지 조사 분석 ◎ Fast Handover기법에 대한 학회지, 논문지 조사 30 31