Presentation is loading. Please wait.

Presentation is loading. Please wait.

Use of a Broken or Risky Cryptographic Algorithm

Similar presentations


Presentation on theme: "Use of a Broken or Risky Cryptographic Algorithm"— Presentation transcript:

1 Use of a Broken or Risky Cryptographic Algorithm
System & Network Security Lab 석사 25기 유창훈 경로탐색 경로 유출

2 Table of Contents 소개 암호알고리즘 코드예제 보안대책 Q&A

3 Introduction 파괴된 혹은 위험한 암호 알고리즘의 사용은 민감한 정보가 유출될 가능성이 있어 위헙합니다.
정보보호 측면에서 취약하거나 위험한 암호화 알고리즘을 사용해서는 안된다. 표준화되지 않은 알고리즘이나 몇몇 오래된 암호화 알고리즘의 경우 컴퓨터의 성능이 향상됨에 따라 취약해지기도 하였다. 예전에는 몇십년이 걸린다고 하였던것도 요즘은 며칠이나 몇시간내에 해독되기도 한다. RC2,RC3, RC5, RC6. MD4, mD5, SHA1, DES 알고리즘이 여기에 해당한다.

4 암호 알고리즘 DES 3DES 대칭키 방식, 블럭암호. 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로 대체될 전망.

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

6 암호 알고리즘 해쉬함수 MD5 임의의 메시지 x를 입력받아 고정된 길이 n 비트를 출력하는 함수.
안전성을 위해 256bit이상 사용을 권고. 주로 전자서명알고리즘과 결합하여 사용. 암호응용분야에 중요. 무결성 검사에 사용 MD5 128bit 출력길이 1996년 설계상결함 발견. SHA-1사용을 권장. 2006년 노트북 컴퓨터 한대의 계산 능력으로 1분내에 해시 충돌을 찾을수있음. 2008년 SSL 인증서 변조가능 하다는 것이 발표됨. MD5알고리즘은 보안관련 용도로 쓰는 것은 권장하지 않음. 키가 없는 해쉬, 키가있는 mac

7 암호 알고리즘 해쉬함수 SHA 미국 국가 안전 보장국이 1993년 SHA-0(160bit) 발표. 충돌발견
중국 암호학자 Wang에 의해 취약성이 발견, 2^63 의 복잡도로 공격가능. 1초에 2^21  1년 에 2^46번 계산 약 13만대 컴퓨터로 1년 2012년 10월 1일 SHA-3 선정 : Keccak 키가 없는 해쉬, 키가있는 mac 미국정부는 여전히 sha2를 안전하고 유용한 알고리즘으로 간주, 일반적인 용도로 쓰기에는 전혀 문제가 없을것이라고 말했음. 암호화 알고리즘에 의존하는 서비스를 설계하는 데는 오랜 시간이 걸리기 때문에 문제가 나타나지 않는 한 이를 굳이 변경하기란 쉬운 일이 아니다. SHA-3가 이들 서비스에 적용되기 시작하기까지는 앞으로 여러 해가 걸릴 것이다. 그러나 팀 폴크는 이 새로운 알고리즘이 앞으로 중요해질 것임을 강조했다.

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

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

10 자체적인 암호화 알고리즘을 개발 및 사용하지 않는다. 암호화 알고리즘을 쉽게 바꿀 수 있도록 소프트웨어를 설계해야 한다.
보안대책 자체적인 암호화 알고리즘을 개발 및 사용하지 않는다. 암호화 알고리즘을 쉽게 바꿀 수 있도록 소프트웨어를 설계해야 한다. MD5,SHA1,DES와 같은 알고리즘의 사용여부 체크. 암호모듈의 정확한 사용방법을 알고있어야 함. 학계및 업계에서 이미 검증된 표준화된 알고리즘 사용. 알고리즘의 교체 업무관련 내용, 개인정보등에 대한 암호 알고리즘 적용시, IT보안인증 사무국이 안정성을 확인한 검증필 암호모듈을 사용 150% 원리라는 것이 있습니다. 게임은 하다가 싫증이 나면 다른 게임하면 되지만, OS나 DBMS, 오피스 프로그램 같은 것은 (개인이나 업체나 모두) 새로 나온 것이 아주 좋지 않는 이상은 웬만하면 바꾸지 않는다는 것입니다. 현실을 얘기하자면, 국내 암호화 모듈이 기존에 나와 있는 것들보다 이처럼 획기적으로 향상된 장점을 찾아 보기는 어렵습니다. 

11 Q&A 감사합니다.


Download ppt "Use of a Broken or Risky Cryptographic Algorithm"

Similar presentations


Ads by Google