연구실세미나_20130516_cwe327_유창훈

Download Report

Transcript 연구실세미나_20130516_cwe327_유창훈

Use of a Broken or Risky Cryptographic
Algorithm
System & Network Security Lab
석사 25기 유창훈
2013.5.16
Table of Contents
1.
2.
3.
4.
5.
소개
암호알고리즘
코드예제
보안대책
Q&A
Introduction
암호 알고리즘
 DES
-
대칭키 방식, 블럭암호.
1960년대말 IBM개발.1997년 미국에서 표준으로 채택.
평문 64bit , 키 56bit
전수조사공격에 취약.
2^56 번의 연산이 필요  개발당시 몇 억년이상 예상
1993년 DES안전성 평가에 문제가 있다고 판단
1999년 DES전용칩을 사용하여 DES Challenge 3 프로젝트  22시간
 3DES
-
DES를 3회 반복
키 168 bit
AES가 발표되기 전 임시로 3DES사용을 권고
DES를 그대로 사용하므로 쉽게 구현가능하지만 DES보다 3배 느림
점차 AES로 대체될 전망.
암호 알고리즘
 AES
-
2001년 미국 NIST에 의해 Rijndeal 알고리즘이 채택.
30년간 미국 표준 암호.
블록길이 128bit, 키 128bit, 192bit, 256bit 가능.
DES와 비교하여 전수조사 시 2^72배 향상(키 128bit일때)
DES가 하루면, AES는 2^72일 .
앞으로 AES가 계속 세계적 표준으로 널리 사용될 것으로 보임.
암호 알고리즘
 해쉬함수
-
임의의 메시지 x를 입력받아 고정된 길이 n 비트를 출력하는 함수.
안전성을 위해 256bit이상 사용을 권고.
주로 전자서명알고리즘과 결합하여 사용.
암호응용분야에 중요.
무결성 검사에 사용
1) MD5
-
128bit 출력길이
1996년 설계상결함 발견.
SHA-1사용을 권장.
2006년 노트북 컴퓨터 한대의 계산 능력으로 1분내에 해시 충돌을 찾을수있
음.
- 2008년 SSL 인증서 변조가능 하다는 것이 발표됨.
- MD5알고리즘은 보안관련 용도로 쓰는 것은 권장하지 않음.
암호 알고리즘
 해쉬함수
1) SHA
-
미국 국가 안전 보장국이 1993년 SHA-0(160bit) 발표. 충돌발견
2년후 SHA-0의 변형인 SHA-1(160bit)이 발표됨. 공격법만 존재
2001년 SHA-224/256/384/512 SHA-2 발표.
256bit 이상을 권고.
중국 암호학자 Wang에 의해 취약성이 발견, 2^63 의 복잡도로 공격가능.
1초에 2^21  1년 에 2^46번 계산 약 13만대 컴퓨터로 1년
2012년 10월 1일 SHA-3 선정 : Keccak
코드예제 - java
 취약한 코드
Try{
Cipher c = Cipher.getInstance(“DES”);
c.init(Cipher.ENCRYPT_MODE, k);
rslt = c.update(msg);
}
catch (InvalidKeyException e){..}
 안전한 코드
Try{
Cipher c = Cipher.getInstance(“AES/CBC/PKCS5Padding”);
c.init(Cipher.ENCRYPT_MODE, k);
rslt = c.update(msg);
}
catch (InvalidKeyException e){..}
코드예제 - C
 취약한 코드
EVP_CIPHER_CTX ctx;
EVP_CIPHER_CTX_init(&ctx);
EVP_EncryptInit(&ctx, EVP_des_ecb(), …);
…
 안전한 코드
EVP_CIPHER_CTX ctx;
EVP_CIPHER_CTX_init(&ctx);
EVP_EncryptInit(&ctx, EVP_aes_128_ecb(),….);
…
* 정리자료
보안대책
1. 자체적인 암호화 알고리즘을 개발 및 사용하지 않는다.
2. 암호화 알고리즘을 쉽게 바꿀 수 있도록 소프트웨어를
설계해야 한다.
3. MD5,SHA1,DES와 같은 알고리즘의 사용여부 체크.
4. 암호모듈의 정확한 사용방법을 알고있어야 함.
Q&A
감사합니다
.