프로그래밍[Univ]/네트워크

[네트워크] 종단점 인증 및 전자메일의 보안

Cloud Travel 2012. 11. 13. 19:58

* 인증 방법

 - 상대방이 진짜인지를 판별하는데 사용하는 방법을 인증 방법이라고한다.

 - 암호, 스마트카드, 생체인식(홍채, 지문, 얼굴)등을 이에 사용하고 있다.

 - 약송된 인증 방법을 프로토콜이라고 한다.

  eg) ATM

  - 우리는 ATM카드를 사용할때 간단한 인증방법(프로토콜)을 사용한다.

   > ATM카드를 인식하여 카드 주인임을 확인한다.

   > 도난 여부등에 대해서 한번더 확인하기 위해서 비밀번호(PIN)을 입력한다.

 

* 네트워크에서의 인증 프로토콜

 - 독립되 있는(네트워크에 연결되지 않은) 컴퓨터에서는 안전한 경로가 보장되고 있기 때문에 인증이 쉽다.

 - 네트워크 상은 해결해야할 문제가 존재한다.

  > 누구나 메세지를 관찰 할 수 있다. 주고 받는 정보가 노출 되있다.

  > 메세지를 재사용 할 수 있다.

  > 메세지를 변경도 할 수 있다.

 - 네트워크에서의 인증 프로토콜 제약사항

  > 인증 프로토콜은 단방향으로 발생해야 하므로, 쌍방이 인증을 하려면 2번의 인증이 필요하다.

  > 세션키의 사용이 필요할 수도 있다.

  > 요구사항에 따라서 사용되는 키가 다를 수 있으며, 해쉬 함수의 사용여부, 익명성, 부인 방지등이 추가적으로 적용되야한다.

 ⓐ ap 1.0 : 아무런 보안 없이 자기가 자신임을 이야기한다.

  - 문제점 : 공격자도 자신을 속여서 접근이 가능하다.

 ⓑ ap 2.0 : 사용자를 대표하는 고유한 값으로 인증한다. (eg. IP)

  - 문제점 : 공격자는 Packet을 잡아서 손쉽게 대표하는 값을 발견할 수 있다. (IP의 경우 IP spoofing 사용)

 ⓒ ap 3.0 : 자신만이 알고 있는 비밀 값을 사용한다. (eg. Password)

  - 문제점 : ap 2.0과 같이 공격자의 Packet 분석으로 손쉽게 사용이 가능하다.

 ⓓ ap 3.1 : 암호를 대칭키로 암호화 하여서 보낸다

  - 문제점 : 공격자는 이 때 사용된 암호문 값을 재사용하여 접근이 가능하다. ( Replay attack, playback attack)

 ⓔ ap 4.0 : nonce를 이용하여 매번 다른 암호를 사용한다. 그리고 대칭키를 사용하여 암호화하여 보낸다.

  - 대칭키에 대한 정보를 종단에서만 알고 있다면, 안전한 편이다. : S/Key Algorithm

  - nonce 값은 한번만 사용되는 랜덤값이므로 계속 다른 값이 적용된다.

 ⓕ ap 5.0 : nonce와 공개키를 이용하여 인증한다.

  - 이 경우는 공개키를 신뢰할 수 있게 해주는 공인인증서 및 이를 보장해주는 공인인증기관이 필요하다.

  - 중간자 공격(인증기관이 없을 경우)

   > A가 B에 메세지를 보낼경우 공격자가 중간에서 메세지를 가로체서 B에게 보낸다.

   > B는 A를 확인하기 위해서 nonce 값을 보낼 것이다.

   > 공격자는 자신의 개인키로 암호화하여 nonce 값을 보낸다.

   > B는 암호문을 풀기위해서 A의 공개키를 요청한다.

   > 공격자는 자신의 공개키를 보내준다. (이렇게 되면  B는 공격자가 A인줄 알고 통신을 할 것이다.)

   -------------

   > 반대로 공격자는 A에게 nonce 값을 보낸다.(B가 자신에게 한 것처럼)

   > A는 자신의 개인키로 암호화하여 nonce 값을 보낸다.

   > 공격자는 A에게 공개키를 요청하고 A는 자신의 공개키를 보내준다.(이렇게 되면 A는 공격자가 B인줄 알고 통신할 것이다.)

  

* Application 보안

 - IP sec과 같이 낮은 단계의 Layer에서 보안을 하여 각각의 Apps마다 다른 보안 프로토콜을 만들 필요가 없게 하려고했다.

 - IP sec은 만들어졌지만, 이것과 별도로 각각의 Apps에서는 자신들만의 프로토콜을 가지고 보안을 한다.

 

* 전자메일의 보안

 - 목표

  > 다른 사람이 보지 못하게 한다.

  > 보낸 사람이 자신이 아는 그 사람인지를 증명해준다.

  > 메세지의 무결성을 증명해준다.

 - 이를 위해서 암호화와 전자서명을 사용한다.

 - 암호화 : 메세지를 암호화한다

  > 전에 배웠듯이, MAC을 사용한다. 

   -- 송신 --

  1) 대칭키를 생성하여, 생성된 대칭키로 메세지를 암호화한다.

  2) 대칭키는 상대방의 공개키로 암호화한다.

  3) 1)과 2)의 생성물을 하나로 합쳐서 전송한다.

   -- 수신 --

  1) 자신의 개인키로 공개키를 찾는다.

  2) 공개키로 메세지를 복화하한다.

 - 전자서명 : 송신자 정보확인 및 메세지의 무결성 증명

  > 이 방법 역시 전에 디지털 서명때 배운 것과 동일하다.

  -- 송신 --

  1) 메세지를 해쉬 함수에 적용하여 메세지 다이제스트를 생성한후, 자신의 개인키로 암호화한다.

  2) 1)의 결과물과 본래의 메세지를 합쳐서 송신한다.

  -- 수신 --

  1) 받은 메세지를 해쉬 함수에 적용하여 메세지 다이제스트를 생성한다.

  2) 송신자의 공개키로 수신한 메세지 다이제스트를 복화하하여 1)의 결과물과 비교한다.

 - 암호화 기법과 전자서명을 합쳐서 전자메일의 보안 프로토콜을 생성한다.

  -- 송신 --

  1) 본래의 메세지를 해쉬 함수에 적용하여 메세지 다이제스트를 생성한후, 자신의 개인키로 암호화한다.

  2) 본래의 메세지와 1)의 결과물을 합친다.

  3) 대칭키를 생성하여 2)의 결과물을 암호화한다.

  4) 생성된 대칭키를 상대방의 공개키로 암호화한다.

  5) 3)과 4)의 결과를 합쳐서 송신한다.

  -- 수신 --

  1) 자신의 개인키를 이용하여 대칭키를 밝혀낸다.

  2) 대칭키를 이용해서 암호화된 문서를 메세지 다이제스트+메세지 형식으로 풀어낸다.

  3) 2)에서 분리된 메세지를 자신의 해쉬함수에 적용한다.

  4) 2)에서 분리된 메세지 다이제스트를 송신자의 공개키로 복호화한다.

  5) 4)의 결과와 3)의 결과를 비교한다.

 - PGP(Pretty Good Privacy)

  > 1991년에 만들어진 전자 메일의 표준 암호화 기법