소개

  • 여기 에서 설명한 것 처럼, TLS 통신에서 비대칭키만 사용하면 너무 별로여서 실제 데이터 암복호화를 할 때에는 대칭키를 사용한다.
  • 그래서 이전에는 공개키로 대칭키 (사실 대칭키의 재료 쯤 되는 것) 을 암호화해서 보내 대칭키를 공유했었지만
  • 이 방법이 나온 뒤에는 이것을 더 많이 사용한다고 한다.

동작구 김씨 vs 송파구 서씨

  • 동작구 김씨와 송파구 서씨는 이번에는 대칭키를 이용해 새벽 세시에 햄버거 맛있게 먹는 방법 을 공유하고자 한다.
  • 둘 모두 동일한 shared secret 을 갖게 하는 것이 임무이다.
    • 여기에서 강남구 오씨가 이것을 가로채려 해본다고 가정하자.
    • 아래 표의 각 셀은 각자가 알고 있는 값을 의미한다.
  1. 일단 사전에 공개된 값은 다음과 같다.
    • : 이 값은 보다 작은 값이어야 한다.
    • : 이 값은 소수여야 한다.
동작구 김씨강남구 오씨송파구 서씨
g555
p232323
  1. 김씨와 서씨는 각자 난수를 하나씩 생성한다 (김씨 - , 서씨 - )
동작구 김씨강남구 오씨송파구 서씨
g555
p232323
k6??
s??15
  1. 각자 생성한 값에 대해 연산을 한다.
    • 김씨 ():
    • 서씨 ():
동작구 김씨강남구 오씨송파구 서씨
g555
p232323
k6??
s??15
K8??
S??19
  1. 그리고 그 결과를 서로에게 알려준다.
    • 오씨는 이것을 훔쳐봐 같이 알게 된다.
동작구 김씨강남구 오씨송파구 서씨
g555
p232323
k6??
s??15
K888
S191919
  1. 마지막으로 연산을 하여 shared secret 를 알아낸다.
    • 김씨 ():
    • 서씨 ():
    • 오씨는 , 값을 모르기 때문에 이 값을 알아낼 수 없다.
동작구 김씨강남구 오씨송파구 서씨
g555
p232323
k6??
s??15
K888
S191919
T2?2

Security considerations

Brute-force attack

  • 위의 예시에서 보듯이 결과물 은 무언가를 으로 나눈 나머지이기 때문에 는 아주 큰 값이어야 한다.
    • 만약 이 5면 0~4 5개의 값만 brute-force 로 때려넣으면 되자나 그치?
  • 따라서 보통 다음과 같은 제약을 둔다고 한다.
    • 값 또한 소수이고,
    • 2048 ~ 4096 bit 사이의 값

MITM attack

  • 알고리즘을 보면, 신원을 확인하는 단계가 없다. 따라서 MITM (Man-in-the-Middle) 공격이 가능하다.
  • 즉, 중간의 강남구 오씨가 김/서 가 보낸 를 버리고 자신이 직접 를 만들어 서로에게 전달해준다면 중간에서 내용을 가로채는 것이 가능하다.
  • 따라서 DH 만 사용하지 않고 Signature 도 같이 사용한다고 하네