[네트워크] 8-2. Authentication #1

kkado·2023년 6월 13일
0

네트워크

목록 보기
44/49

⚠️ 들어가기 앞서
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터망 과목을 공부하며 정리한 글입니다.


Authentication

입증, 증명, 인증 을 뜻하는 authentication 은 보안에서도 비슷한 의미로 사용된다.

앨리스, 밥, 트루디 세 사람이 있고 앨리스와 밥은 데이터를 주고 받는다. 밥은 앨리스의 identity를 검증하고 싶어 한다. 그리고 트루디는 나쁜 짓을 하려고 하는 놈이다.


그냥 이런 식으로 "나는 앨리스다" 라고 말하면 어떨까?

당연히 이는 효과가 없다... 트루디가 "나는 앨리스다" 라고 거짓 사칭을 해도 밥은 이 사칭을 판별해 낼 재간이 없기 때문이다.


그렇다면 이렇게, 앨리스의 IP 주소를 실어서 밥에게 보내면 어떨까?

트루디 역시 앨리스의 IP 주소를 알아낸 후 밥에게 보낼 수 있다. 따라서 이 방법도 실패.


앨리스는 이제, IP 주소를 포함하여 비밀 패스워드를 함께 추가하여 보낸다. 이건 효과가 있을까?

트루디는 앨리스의 패킷을 기록했다가 그대로 밥에게 전달할 수 있다. 이를 playback attack 이라고 한다.

이 방법도 실패 !!!


그럼 이제 패스워드를 그냥 보내는게 아니고 암호화를 한다면??

어차피 그대로 기록할 것인데, 아무 의미가 없다. 1234 라는 패스워드를 기록하여 그대로 전달을 하는 것이나, 1q2w3e4r 등으로 암호화된 패스워드를 기록하여 그대로 전달을 하는 것이나, 똑같다.


nonce의 등장

앨리스와 밥은 영악한 트루디를 물리치기 위해 조금 더 머리를 썼다.

대칭키 암호화 방식을 도입하여, 이를 암호화 및 복호화하는 과정을 거친다. 대칭키는 밥과 앨리스만 알고 있다.

앨리스가 밥에게 "나는 앨리스다" 라고 말하면, B는 어떤 숫자 R을 던져준다.
그러면 앨리스는 대칭키를 이용해서 이를 암호화한 값을 밥에게 보낸다.

밥은 이 암호화한 값을 다시 복호화하여 R을 복원할 수 있다. 앨리스랑만 공유하고 있는 공유 대칭키를 통해서 복호화가 가능하다는 것은, 그 키로 암호화를 했다는 뜻이므로 앨리스임이 증명될... 까?

이걸로는 부족하다. 왜냐면 트루디는 암호화할 수 있는 키를 가질 수는 없더라도, 앨리스가 밥에게 보내는 데이터 자체를 가로챌 수 있기 때문이다. 즉 '암호화한 값' 을 가질 수 있다. 따라서, 밥은 단순히 앨리스와 공유하고 있는 키로 복호화가 가능한 값 이 돌아왔다고 해서 그 값을 보낸 사람이 앨리스라고는 확신할 수 없다.

여기서 nonce 라는 것이 등장한다. nonce는 라이프사이클당 단 한번만 사용되는 숫자이다.

트루디가 후에 앨리스가 보낸 데이터를 가로채서 똑같이 밥에게 보낸다고 하면, 밥은 이 복호화한 값 R이 한 번만 사용되어야 하는 숫자임을 알기 때문에 복호화한 결과가 이전에 사용된 적이 있는 숫자라면 이를 버리게 된다.


위의 매커니즘을 공개키 암호화 방식으로도 가능할까?

  • 밥이 전달해준 nonce R을 앨리스의 private key로 암호화하여 밥에게 보낸다.
  • 밥은 그 암호화된 값을 복호화하기 위하여 앨리스의 public key를 얻는다.
  • 이 public key로 복호화가 가능하다면 앨리스의 private key로 암호화가 됐다는 뜻이므로, 앨리스임이 검증되나?

결론부터 얘기하면, 안 된다.

트루디가 앨리스에게는 밥으로 사칭하고, 밥에게는 앨리스로 사칭해서 가운데에 존재한다고 가정해 보자.

  • 밥은 트루디에게 nonce R을 제공한다.
  • 트루디는 본인의 개인키로 암호화하여 밥에게 돌려보냄과 동시에 동일한 R을 밥인 것마냥 앨리스에게도 전달한다.
  • 밥은 트루디에게 공개키를 달라고 한다. 트루디는 밥에게 본인의 공개키를 준다. 받은 공개키로 복호화가 잘 진행된다. 밥은 이 과정에서 어떠한 의심도 할 수 없다.
  • 한편, 앨리스는 R을 자신의 개인키로 암호화하여 트루디에게 준다. 마찬가지로 트루디는 앨리스에게 밥 행세를 한다. 앨리스의 공개키를 요구하여, 받는다. 트루디는 앨리스의 공개키를 확보했다.
  • 밥은 트루디에게 (앨리스인 줄 알고 있다) 메시지를 전달할 때 트루디의 공개키로 암호화하여 보내면서 "니가 가진 개인키로 복호화해서 봐라" 한다.
  • 트루디는 받은 데이터를 복호화하여 앨리스의 공개키로 암호화하여 앨리스에게 전달한다. 앨리스는 본인의 개인키로 이를 복호화한다.

그 결과 : 앨리스와 밥이 주고받는 데이터를 트루디가 모두 가로챌 수 있다.


profile
울면안돼 쫄면안돼 냉면됩니다

0개의 댓글