11
Use of a Broken or Risky Cryptographic Algorithm System & Network Security Lab 석석 25 석 석석석 2013.5.16

Use of a Broken or Risky Cryptographic Algorithm

Embed Size (px)

DESCRIPTION

Use of a Broken or Risky Cryptographic Algorithm. System & Network Security Lab 석사 25 기 유창훈 2013.5.16. Table of Contents. 소개 암호알고리 즘 코드예제 보안대책 Q&A. Introduction. DES 대칭키 방식 , 블럭암호 . 1960 년대말 IBM 개발 .1997 년 미국에서 표준으로 채택 . 평문 64bit , 키 56bit 전수조사공격에 취약 . - PowerPoint PPT Presentation

Citation preview

Page 1: Use of a Broken or Risky Cryptographic Algorithm

Use of a Broken or Risky Crypto-graphic Algorithm

System & Network Security Lab석사 25 기 유창훈

2013.5.16

Page 2: Use of a Broken or Risky Cryptographic Algorithm

Table of Contents

1. 소개2. 암호알고리즘3. 코드예제4. 보안대책5. Q&A

Page 3: Use of a Broken or Risky Cryptographic Algorithm

Introduction

Page 4: Use of a Broken or Risky Cryptographic Algorithm

암호 알고리즘

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 로 대체될 전망 .

Page 5: Use of a Broken or Risky Cryptographic Algorithm

암호 알고리즘

AES- 2001 년 미국 NIST 에 의해 Rijndeal 알고리즘이 채택 .- 30 년간 미국 표준 암호 .- 블록길이 128bit, 키 128bit, 192bit, 256bit 가능 .- DES 와 비교하여 전수조사 시 2^72 배 향상 ( 키 128bit 일때 ) - DES 가 하루면 , AES 는 2^72 일 .- 앞으로 AES 가 계속 세계적 표준으로 널리 사용될 것으로 보임 .

Page 6: Use of a Broken or Risky Cryptographic Algorithm

암호 알고리즘

해쉬함수- 임의의 메시지 x 를 입력받아 고정된 길이 n 비트를 출력하는 함수 .- 안전성을 위해 256bit 이상 사용을 권고 . - 주로 전자서명알고리즘과 결합하여 사용 . - 암호응용분야에 중요 .- 무결성 검사에 사용

1) MD5- 128bit 출력길이- 1996 년 설계상결함 발견 .- SHA-1 사용을 권장 .- 2006 년 노트북 컴퓨터 한대의 계산 능력으로 1 분내에 해시 충돌을

찾을수있음 .- 2008 년 SSL 인증서 변조가능 하다는 것이 발표됨 . - MD5 알고리즘은 보안관련 용도로 쓰는 것은 권장하지 않음 .

Page 7: Use of a Broken or Risky Cryptographic Algorithm

암호 알고리즘

해쉬함수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

Page 8: Use of a Broken or Risky Cryptographic Algorithm

코드예제 - 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){..}

Page 9: Use of a Broken or Risky Cryptographic Algorithm

코드예제 - 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(),….);…

Page 10: Use of a Broken or Risky Cryptographic Algorithm

보안대책

1. 자체적인 암호화 알고리즘을 개발 및 사용하지 않는다 .2. 암호화 알고리즘을 쉽게 바꿀 수 있도록 소프트웨어를

설계해야 한다 .3. MD5,SHA1,DES 와 같은 알고리즘의 사용여부 체크 .4. 암호모듈의 정확한 사용방법을 알고있어야 함 .

Page 11: Use of a Broken or Risky Cryptographic Algorithm

Q&A

감사합니다 .