이번에는 우리가 알고 있는 공인인증서는 무슨 역할을 하고, 왜 인증된 기관에서 받아야 하는지 알아보겠습니다.

인증서(Certificate)는 무엇이며 왜 만들어졌는가?

 

인증서는 아래와 같은 내용이 포함되어 있습니다.

- 발행 장소

- 소유자 이름과 email 주소

- 인증서의 용도, 유효기간

- Common Name(CN)

- Public Key

- Hash

 

인증서에 포함된 Public Key는 발행 주체(예를들면 서비스를 제공하는 웹 사이트 등)의 PK이며, 이 정보들은 인증기관의 private key로 암호화 되었습니다. 브라우저들은 유명한 인증 기관의 Public Key를 이미 포함하고 있어 인증서를 받아 발행 주체의 Public Key를 확인할 수 있습니다. 

 

개인적인 생각으로는 사용자가 서비스를 제공하는 웹 사이트에 접속할 때 별도로 Public Key를 전달하면 될 것을 왜 인증서를 만들고, 인증 기관까지 만들어서 이럴까 하는 생각도 들긴 합니다. 하지만, 인증서를 공인된 인증 기관에 신청할 때 신청 주체가 해당 도메인의 주인이 맞는지, 어떤 도메인을 언제까지 사용하는지에 대한 정보를 등록, 확인하는 절차가 있기 때문에, 사용자가 해당 사이트에 접속했을 때 공인된 인증서가 있다면 그 사이트를 보다 더 신뢰하고 정보를 교환할 수 있을 겁니다.

 

인증기관의 역할과 작동원리

 

인증서 발급을 신청한 주체는 Root Certification Authority (이하 CA)라 부르는 인증서 발급 기관에 인증서 발급을 신청합니다. CA의 인증서는 웹브라우저에 기본으로 설치되어 있으며, 인증서 신청주체는 일정 비용을 지불하고 인증을 요청할 수 있습니다. 또한 Let's Encrypt (무료이며 자동화된 개방형 인증 기관) 같은 무료 인증 기관도 있습니다. 

 

이제 유저들은 어떤 사이트에 https로 접속할 때 인증서를 먼저 확인하게 됩니다. SSL 의 이전 흐름도에 인증 과정을 추가하면 아래와 같습니다.

(* 인증서를 활용한 데이터 교환 절차)

인증기관은 발급하는 역할도 하지만, 철회 인증서(Revoked Certificate)들도 관리합니다. Root CA 인증서들은 모두 해당 기관에서 자체 서명(Self-signed)되어 있으며. 이제 다음 글에서는 자체 서명된 인증서를 만들고 이를 개인용 사이트 혹은 다른 용도로 어떻게 사용할 수 있는지 알아보겠습니다.

 

 

 

 

 

 

[root@lnk635 ~]# ssh 'root'@'172.xx.xx.xx'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)! 
It is also possible that a host key has just been changed. 
The fingerprint for the ECDSA key sent by the remote host is 
SHA256:FTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Please contact your system administrator. 
Add correct host key in /root/.ssh/known_hosts to get rid of this message. 
Offending ECDSA key in /root/.ssh/known_hosts:8 
ECDSA host key for [172.xx.xx.xx]:22 has changed and you have requested strict checking. 
Host key verification failed.

 

 

ssh로 원격접속을 시도하면 위와 같은 에러가 출력될 때가 있다. 기존에 접속하던 시스템의 변경 문제(시스템 재설치 혹은 교체)로 저장된 원격 시스템의 고유값이 기존에 저장된 값과 다를 때 발생한다. 

 

스푸핑 같은 해킹으로 의심되기 때문에 위와 같은 경고를 출력하는데, /root/.ssh/known_hosts  파일에 들어가서 해당 ip로 저장된 키 값이 저장된 라인을 삭제한 후 재접속을 시도하면 된다. 

 

 

+ Recent posts