검수요청.png검수요청.png

"디피-헬만 키교환"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
 
(사용자 2명의 중간 판 9개는 보이지 않습니다)
1번째 줄: 1번째 줄:
''' 디피-헬만 키 교환 '''
+
'''디피-헬만 키교환'''<!--디피-헬만 키 교환, 디피-헬먼 키 교환, 디피-헬먼 키교환, 디피-헬맨 키 교환, 디피-헬맨 키 교환-->(Diffie-Hellman Key Exchange)은 암호 키를 교환하는 방법으로, 디피-헬만 키 교환은 [[RSA]]와 마찬가지로 두 사람이 암호화되지 않은 통신망을 통해 공통적인 비밀 키를 공유할 수 있도록 하는 것이다. 하지만 이 비밀키가 암호화되어 통신망에서 지나가는 것은 문제가 되며, 이 문제를 [[중간자 공격]](Man-in-the Middle)이라 하며, 이 중간자 공격을 통하여 비밀키가 노출되어 위험할 수 있다. [[디피-헬만]] 알고리즘의 방법은 링크를 통해 알아볼 수 있다.<ref name="jroh">JROH, 〈[https://rsec.kr/?p=242 디피 헬만 키 (Diffie-Hellman Key) 를 2048 bit로 바꿔야 하는 이유]〉, 《개인블로그》, 2017-07-10</ref>
  
(Diffie-Hellman Key Exchange) 는 암호 키를 교환하는 방법으로, 디피-헬만 키 교환은 [[RSA]]와 마찬가지로 두 사람이 암호화 되지 않은 통신망을 통해 공통적인 비밀 키를 공유할 수 있도록 하는 것이다. 하지만 이 비밀키가 암호화 되어 통신망에서 지나가는 것은 문제가 되며, 이 문제를 [[Man-in-the Middle]] (중간자 공격) 이라하며, 이 중간자 공격을 통하여 비밀키가 노출되어 위험할 수 있다. [[디피-헬만]] 알고리즘의 방법은 링크를 통해 알아볼 수 있다.
+
== 개요 ==
 +
디피-헬만 키 교환(Diffie-Hellman Key Exchange)이란 "[[이산대수]](Discrete logarithm)를 계산하는 일은 어렵다(Computationally Infeasible)"는 사실에 기반한 방법이다.<ref name="펜타">〈[https://www.pentasecurity.co.kr/tag/diffie-hellman/ 펜타 뉴스레터 11월호 "뭐? 디피-헬먼 성이 무너진다고?"]〉, 《Penta Security》, 2016-11-30</ref>
  
 
== 문제점 ==
 
== 문제점 ==
 
+
앞서 말했던 것처럼, 디피-헬만 키 교환의 문제점은 중간자 공격 즉 [[Man-in-the Middle]] 이 가장 큰 문제점인데, 이것은 통신을 하는 대상과 비밀 정보를 공유할 수 있지만 상대방에 대한 인증은 전혀 보장이 되지 않는다. 예를 들어 A와 B가 비밀 키를 공유할 때 중간에 C라는 공격자가 A에게는 B인척 B에게는 A인척하여 접근을 하게 되면  A는 C를 보고 B라 생각하고, B는 C를 보고 A라 생각을 하게 되어 C가 A와 B의 대칭키를 가질 수 있게 되는 것이다.<ref name="jroh"></ref> 또한 디피-헬만 알고리즘을 사용하는 [[TLS]] 연결에서 로그잼(Logjam)이라는 TLS 연결 취약점이 발견되었다. 취약한 [[DHE]] 연결의 오프라인 암호 해독이 가능하거나, 의도적으로 512bit로 DHE_EXPORT 다운그레이드 및 TLS False Start 확장 오프라인 해독 공격, DHE_EXPORT 다운그레이드 및 중간자가 서버 자격을 변경하는 등의 공격 시나리오를 가질 수 있다. 이를 통해 암호화된 통신을 해독하여 도감청이 가능해진다.<ref>와스프로 GodNR, 〈[https://waspro.tistory.com/479 (SSL 암호화 취약점)디피 헬만 키(Diffie Hellman Key)]〉, 《티스토리》, 2019-06-03</ref>
앞서 말했던 것 처럼, 디피-헬만 키 교환의 문제점은 중간자 공격 즉 [[Man-in-the Middle]] 이 가장 큰 문제점인데, 이것은 통신을 하는 대상과 비밀 정보를 공유할 수 있지만 상대방에 대한 인증은 전혀 보장이 되지 않는다. 예를 들어 A와 B가 비밀 키를 공유 할 때 중간에 C라는 공격자가 A에게는 B인척 B에게는 A인척 하여 접근을 하게 되면  A는 C를 보고 B라 생각하고, B는 C를 보고 A라 생각을 하게 되어 C가 A와 B의 대칭 키를 가질 수 있게 되는 것이다.
 
  
 
== 해결책 ==
 
== 해결책 ==
 
+
위와 같은 문제점을 해결하기 위해선 여러 가지 방법이 있는데 그 방법은 다음과 같다.<ref name="jroh></ref>
위와 같은 문제점을 해결하기 위해선 여러가지 방법이 있는데 그 방법은 다음과 같다.
 
  
 
''' 1. [[OpenSSL]] 버전을 업데이트 '''
 
''' 1. [[OpenSSL]] 버전을 업데이트 '''
18번째 줄: 17번째 줄:
 
* 1.0.1과 1.0.2 : DH 파라미터가 768 비트보다 짧다면 [[handshake]]를 거부하도록 [[TLS 클라이언트]]에 대한 보호 기능을 추가
 
* 1.0.1과 1.0.2 : DH 파라미터가 768 비트보다 짧다면 [[handshake]]를 거부하도록 [[TLS 클라이언트]]에 대한 보호 기능을 추가
 
* 1.0.2b 이상, 1.0.1n 이상 : 위 제한을 1024 비트까지 증가
 
* 1.0.2b 이상, 1.0.1n 이상 : 위 제한을 1024 비트까지 증가
* 1.0.1m 이상, 1.0.2a 이상 : EXPORT cipher suite (수출등급 암호) 를 기본적으로 무능하게 만듬
+
* 1.0.1m 이상, 1.0.2a 이상 : EXPORT cipher suite (수출 등급 암호)를 기본적으로 무능하게 만듬
  
''' 2. Diifie-Hellman 수출용 Cipher Suite 를 사용하지 않는다 '''
+
''' 2. Diifie-Hellman 수출용 Cipher Suite를 사용하지 않는다 '''
  
 
''' 3. ECDHE (Elliptic-Curve Hellman) 을 사용한다. '''
 
''' 3. ECDHE (Elliptic-Curve Hellman) 을 사용한다. '''
36번째 줄: 35번째 줄:
 
* [[국대국 프로토콜]] (STS, Station-To-Station Protocol) 디피-헬만 키 교한의 문제점 중간자 공격을 공개키 인증서를 이용한 전자서명을 사용하여 해결
 
* [[국대국 프로토콜]] (STS, Station-To-Station Protocol) 디피-헬만 키 교한의 문제점 중간자 공격을 공개키 인증서를 이용한 전자서명을 사용하여 해결
  
== 참고 자료 ==
+
[[파이어폭스]](FireFox)는 [[암호공격]]으로부터 사용자를 보호하기 위해 취약판 디피-헬만 키를 사용하는 HTTPS 서버로의 액세스를 차단한다. 이는 디피-헬만에서의 취약점으로 알려진 [[로그잼]](Logjam) 취약점을 이용한 공격으로부터 보호하기 위해서이다. 이는 1024비트 이상의 키 크기를 사용하면 해결되는 문제이다. 이 때문에 파이어폭스는 1024비트 이하의 키를 사용하는 사이트를 대상으로 차단하기로 했다.<ref>Lucian Constantin, 〈[http://www.itworld.co.kr/news/101400 파이어폭스, 암호키 취약한 웹사이트 차단…1024비트로 기준 상향]〉, 《아이티월드》, 2016-10-04</ref>
  
* 〈[https://rsec.kr/?p=242 디피 헬만 키 (Diffie-Hellman Key) 를 2048 bit로 바꿔야 하는 이유]〉, 《개인블로그》, 2017-07-10
+
== 사례 ==
 +
 
 +
=== 블록체인 ===
 +
[[블록체인]]에서 높은 독립성과 투명성을 유지할 수 있는 점을 들어 [[MDL]](Mutual Distributed Ledger)라고 부른다. MDL은 디피-헬만 키 교환에서 비롯된 것이다. 디피-헬만 키 교환으로 암호키로 각각 비밀 정보를 공유해 이산 대수로 풀도록 해 안전성을 확보하는 방식이다. 변조를 할 수 없는 블록체인을 이용하면 비용을 들이지 않고 높은 거래 신뢰도를 확보할 수 있다.<ref>이석원, 〈[http://slownews.kr/62408 화폐 없는 시대 그 이상… 블록체인에 주목하라]〉, 《슬로우뉴스》, 2017-03-13</ref>
 +
 
 +
=== 사물인터넷 ===
 +
2017년 백석대학교 정보통신학부에서 연구한 논문에서는 사물인터넷에 디피-헬만 키 교환 방식을 기반으로 사물인터넷 센서 노드 키 관리에 대한 연구를 진행했다. 사물인터넷의 기술과 서비스를 구현하기 위해서는 센서를 통해 감지되는 정보의 해킹 및 정보 유출을 막기 위해서는 '보안'기술이 필수적으로 요구된다. 하지만 사물인터넷은 센서를 이용하기 때문에 전력과 용량등에 있어서 제약이 심하기 때문에 일반적인 보안으로는 키관리의 어려움을 겪는다. 디피-헬만 키 동의 방식을 적용하여 센서 네트워크의 키 관리 기술을 제안했다. 이는 디피-헬만 알고리즘의 이산대수를 구하는 문제는 계산상 불가능하다는 것에 안전성을 두고 있다. 디피-헬만 키 교환 방식으로 인해 센서 네트워크의 저전력, 저용량 문제를 해결하고 안전한 통신을 할 수 있다.<ref>홍성혁, 유진아, 〈[http://www.ndsl.kr/ndsl/search/detail/article/articleSearchResultDetail.do?cn=JAKO201707851605715&SITE=CLICK Diffie-Hellman 기반 사물인터넷 센서노드 키 관리 연구]〉, 《백석대학교 정보통신학부》, 2017</ref>
 +
 
 +
=== 안전한 메신저 ===
 +
2001년 숙명여자대학교에서 발표한 논문에서는 디피-헬만 키 교환 방식을 이용하여 안전한 인스턴트 메신저 구현에 대한 연구를 발표했다. 안전한 인스턴트 메신저의 보안 요구사항은 서버로 전송되는 개인정보를 보호할 수 있어야 하며, 사용자간에 전송되는 정보 또한 암호화되어 제 3자에게 노출되지 않아야 한다. 연구에서는 개인정보를 서버에 전송할때 암호화할때 사용하는 키를 서버와 사용자가 공유할 때 디피-헬만 키 교환 방식을 사용하여 제 3자가 암호키를 알 수 없도록 한다. 따라서 정보를 해독할 수 없도록 했다. 또한 사용자간에 정보를 전송할 때 역시 디피-헬만 키 교환 방식을 사용하였다. 이 때 사용되는 키는 통신 당사자만이 알 수 있고, 제 3자와 서버는 알 수 없다. <ref>정보고, 〈[http://dcollection.lib.sookmyung.ac.kr/srch/srchDetail/000000005350?navigationSize=10&query=%2B%28%28all%3Adiffie%29%29&pageSize=10&insCode=211043&searchWhere1=all&searchTotalCount=0&sortDir=desc&rows=10&pageNum=1&searthTotalPage=0&treePageNum=1&sortField=score&start=0&ajax=false&searchText=%5B%EC%A0%84%EC%B2%B4%3A%3Cspan+class%3D%22point1%22%3Ediffie%3C%2Fspan%3E%5D&searchKeyWord1=diffie Diffie-Hellman 키 교환 방식을 이용한 안전한 인스턴트 메신저의 구현]〉, 《숙명여자대학교》, 2001</ref>
 +
 
 +
{{각주}}
 +
 
 +
== 참고자료 ==
 +
* JROH, 〈[https://rsec.kr/?p=242 디피 헬만 키 (Diffie-Hellman Key) 를 2048 bit로 바꿔야 하는 이유]〉, 《개인블로그》, 2017-07-10
 
* 〈[https://www.pentasecurity.co.kr/tag/diffie-hellman/ 펜타 뉴스레터 11월호 "뭐? 디피-헬먼 성이 무너진다고?"]〉, 《Penta Security》, 2016-11-30
 
* 〈[https://www.pentasecurity.co.kr/tag/diffie-hellman/ 펜타 뉴스레터 11월호 "뭐? 디피-헬먼 성이 무너진다고?"]〉, 《Penta Security》, 2016-11-30
* 〈[https://eton.tistory.com/129 정보보안기사 필기시험 정리 - 4 ]〉, 《개인블로그》, 2017-05-31
+
* eton, 〈[https://eton.tistory.com/129 정보보안기사 필기시험 정리 - 4 ]〉, 《개인블로그》, 2017-05-31
 +
* 이석원, 〈[http://slownews.kr/62408 화폐 없는 시대 그 이상… 블록체인에 주목하라]〉, 《슬로우뉴스》, 2017-03-13
 +
* Lucian Constantin, 〈[http://www.itworld.co.kr/news/101400 파이어폭스, 암호키 취약한 웹사이트 차단…1024비트로 기준 상향]〉, 《아이티월드》, 2016-10-04
 +
* 와스프로 GodNR, 〈[https://waspro.tistory.com/479 (SSL 암호화 취약점)디피 헬만 키(Diffie Hellman Key)]〉, 《티스토리》, 2019-06-03
 +
* 홍성혁, 유진아, 〈[http://www.ndsl.kr/ndsl/search/detail/article/articleSearchResultDetail.do?cn=JAKO201707851605715&SITE=CLICK Diffie-Hellman 기반 사물인터넷 센서노드 키 관리 연구]〉, 《백석대학교 정보통신학부》, 2017
 +
* 정보고, 〈[http://dcollection.lib.sookmyung.ac.kr/srch/srchDetail/000000005350?navigationSize=10&query=%2B%28%28all%3Adiffie%29%29&pageSize=10&insCode=211043&searchWhere1=all&searchTotalCount=0&sortDir=desc&rows=10&pageNum=1&searthTotalPage=0&treePageNum=1&sortField=score&start=0&ajax=false&searchText=%5B%EC%A0%84%EC%B2%B4%3A%3Cspan+class%3D%22point1%22%3Ediffie%3C%2Fspan%3E%5D&searchKeyWord1=diffie Diffie-Hellman 키 교환 방식을 이용한 안전한 인스턴트 메신저의 구현]〉, 《숙명여자대학교》, 2001
  
 
== 같이 보기 ==
 
== 같이 보기 ==
 
 
* [[RSA]]
 
* [[RSA]]
 
* [[Man-in-the Middle]]
 
* [[Man-in-the Middle]]
53번째 줄: 70번째 줄:
 
* [[ECDHE]]
 
* [[ECDHE]]
 
* [[국대국 프로토콜]]
 
* [[국대국 프로토콜]]
 +
 +
{{암호 알고리즘|검토 필요}}

2019년 8월 5일 (월) 21:10 기준 최신판

디피-헬만 키교환(Diffie-Hellman Key Exchange)은 암호 키를 교환하는 방법으로, 디피-헬만 키 교환은 RSA와 마찬가지로 두 사람이 암호화되지 않은 통신망을 통해 공통적인 비밀 키를 공유할 수 있도록 하는 것이다. 하지만 이 비밀키가 암호화되어 통신망에서 지나가는 것은 문제가 되며, 이 문제를 중간자 공격(Man-in-the Middle)이라 하며, 이 중간자 공격을 통하여 비밀키가 노출되어 위험할 수 있다. 디피-헬만 알고리즘의 방법은 링크를 통해 알아볼 수 있다.[1]

개요[편집]

디피-헬만 키 교환(Diffie-Hellman Key Exchange)이란 "이산대수(Discrete logarithm)를 계산하는 일은 어렵다(Computationally Infeasible)"는 사실에 기반한 방법이다.[2]

문제점[편집]

앞서 말했던 것처럼, 디피-헬만 키 교환의 문제점은 중간자 공격 즉 Man-in-the Middle 이 가장 큰 문제점인데, 이것은 통신을 하는 대상과 비밀 정보를 공유할 수 있지만 상대방에 대한 인증은 전혀 보장이 되지 않는다. 예를 들어 A와 B가 비밀 키를 공유할 때 중간에 C라는 공격자가 A에게는 B인척 B에게는 A인척하여 접근을 하게 되면 A는 C를 보고 B라 생각하고, B는 C를 보고 A라 생각을 하게 되어 C가 A와 B의 대칭키를 가질 수 있게 되는 것이다.[1] 또한 디피-헬만 알고리즘을 사용하는 TLS 연결에서 로그잼(Logjam)이라는 TLS 연결 취약점이 발견되었다. 취약한 DHE 연결의 오프라인 암호 해독이 가능하거나, 의도적으로 512bit로 DHE_EXPORT 다운그레이드 및 TLS False Start 확장 오프라인 해독 공격, DHE_EXPORT 다운그레이드 및 중간자가 서버 자격을 변경하는 등의 공격 시나리오를 가질 수 있다. 이를 통해 암호화된 통신을 해독하여 도감청이 가능해진다.[3]

해결책[편집]

위와 같은 문제점을 해결하기 위해선 여러 가지 방법이 있는데 그 방법은 다음과 같다.[1]

1. OpenSSL 버전을 업데이트

                           OpenSSL 1.0.2 : 패치된 버전 1.0.2b 이상
                           OpenSSL 1.0.1 : 패치된 버전 1.0.1n 이상

OpenSSL 1.0.1과 1.0.2대의 버전별 해결책

  • 1.0.1과 1.0.2 : DH 파라미터가 768 비트보다 짧다면 handshake를 거부하도록 TLS 클라이언트에 대한 보호 기능을 추가
  • 1.0.2b 이상, 1.0.1n 이상 : 위 제한을 1024 비트까지 증가
  • 1.0.1m 이상, 1.0.2a 이상 : EXPORT cipher suite (수출 등급 암호)를 기본적으로 무능하게 만듬

2. Diifie-Hellman 수출용 Cipher Suite를 사용하지 않는다

3. ECDHE (Elliptic-Curve Hellman) 을 사용한다.

  • 타원 곡선형 디피-헬만 (ECDH) 키 교환 방식은 실현 가능하다고 알려진 모든 암호 해독학적 공격을 우회할 수 있다. 이러한 이유로 현대의 웹 브라우저들은 기존의 디피-헬만 방식보다 ECDHE방식을 선호

4. Diffie-Hellman의 키 값을 2048bit 이상으로 생성, 적용 한다

5. 대칭키로 디피-헬만 교환 값을 암호화한다.

6. 공개키로 디피-헬만 교환 값을 암호화한다.

7. 디피-헬만 교환 값을 개인키로 서명한다.

8. 국대국 프로토콜을 사용한다.

  • 국대국 프로토콜 (STS, Station-To-Station Protocol) 디피-헬만 키 교한의 문제점 중간자 공격을 공개키 인증서를 이용한 전자서명을 사용하여 해결

파이어폭스(FireFox)는 암호공격으로부터 사용자를 보호하기 위해 취약판 디피-헬만 키를 사용하는 HTTPS 서버로의 액세스를 차단한다. 이는 디피-헬만에서의 취약점으로 알려진 로그잼(Logjam) 취약점을 이용한 공격으로부터 보호하기 위해서이다. 이는 1024비트 이상의 키 크기를 사용하면 해결되는 문제이다. 이 때문에 파이어폭스는 1024비트 이하의 키를 사용하는 사이트를 대상으로 차단하기로 했다.[4]

사례[편집]

블록체인[편집]

블록체인에서 높은 독립성과 투명성을 유지할 수 있는 점을 들어 MDL(Mutual Distributed Ledger)라고 부른다. MDL은 디피-헬만 키 교환에서 비롯된 것이다. 디피-헬만 키 교환으로 암호키로 각각 비밀 정보를 공유해 이산 대수로 풀도록 해 안전성을 확보하는 방식이다. 변조를 할 수 없는 블록체인을 이용하면 비용을 들이지 않고 높은 거래 신뢰도를 확보할 수 있다.[5]

사물인터넷[편집]

2017년 백석대학교 정보통신학부에서 연구한 논문에서는 사물인터넷에 디피-헬만 키 교환 방식을 기반으로 사물인터넷 센서 노드 키 관리에 대한 연구를 진행했다. 사물인터넷의 기술과 서비스를 구현하기 위해서는 센서를 통해 감지되는 정보의 해킹 및 정보 유출을 막기 위해서는 '보안'기술이 필수적으로 요구된다. 하지만 사물인터넷은 센서를 이용하기 때문에 전력과 용량등에 있어서 제약이 심하기 때문에 일반적인 보안으로는 키관리의 어려움을 겪는다. 디피-헬만 키 동의 방식을 적용하여 센서 네트워크의 키 관리 기술을 제안했다. 이는 디피-헬만 알고리즘의 이산대수를 구하는 문제는 계산상 불가능하다는 것에 안전성을 두고 있다. 디피-헬만 키 교환 방식으로 인해 센서 네트워크의 저전력, 저용량 문제를 해결하고 안전한 통신을 할 수 있다.[6]

안전한 메신저[편집]

2001년 숙명여자대학교에서 발표한 논문에서는 디피-헬만 키 교환 방식을 이용하여 안전한 인스턴트 메신저 구현에 대한 연구를 발표했다. 안전한 인스턴트 메신저의 보안 요구사항은 서버로 전송되는 개인정보를 보호할 수 있어야 하며, 사용자간에 전송되는 정보 또한 암호화되어 제 3자에게 노출되지 않아야 한다. 연구에서는 개인정보를 서버에 전송할때 암호화할때 사용하는 키를 서버와 사용자가 공유할 때 디피-헬만 키 교환 방식을 사용하여 제 3자가 암호키를 알 수 없도록 한다. 따라서 정보를 해독할 수 없도록 했다. 또한 사용자간에 정보를 전송할 때 역시 디피-헬만 키 교환 방식을 사용하였다. 이 때 사용되는 키는 통신 당사자만이 알 수 있고, 제 3자와 서버는 알 수 없다. [7]

각주[편집]

  1. 1.0 1.1 1.2 JROH, 〈디피 헬만 키 (Diffie-Hellman Key) 를 2048 bit로 바꿔야 하는 이유〉, 《개인블로그》, 2017-07-10
  2. 펜타 뉴스레터 11월호 "뭐? 디피-헬먼 성이 무너진다고?"〉, 《Penta Security》, 2016-11-30
  3. 와스프로 GodNR, 〈(SSL 암호화 취약점)디피 헬만 키(Diffie Hellman Key)〉, 《티스토리》, 2019-06-03
  4. Lucian Constantin, 〈파이어폭스, 암호키 취약한 웹사이트 차단…1024비트로 기준 상향〉, 《아이티월드》, 2016-10-04
  5. 이석원, 〈화폐 없는 시대 그 이상… 블록체인에 주목하라〉, 《슬로우뉴스》, 2017-03-13
  6. 홍성혁, 유진아, 〈Diffie-Hellman 기반 사물인터넷 센서노드 키 관리 연구〉, 《백석대학교 정보통신학부》, 2017
  7. 정보고, 〈Diffie-Hellman 키 교환 방식을 이용한 안전한 인스턴트 메신저의 구현〉, 《숙명여자대학교》, 2001

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 디피-헬만 키교환 문서는 암호 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.