본문 바로가기
SWE/네트워크

SSH | Man in the Middle Attacks 중간자 공격 | RSA키

by S나라라2 2022. 1. 24.
반응형

 

에러 : "Host Key Verification Failed" / "Could not resolve hostname [domain.com]: Name or service not known"

https://linuxhint.com/host-key-verification-failed-mean/

 

문제 발생 경로:

리눅스 개발 서버의 리눅스를 재설치하였다. (개발 서버 초기화) 

그리고 윈도우에서 ssh로 개발 서버에 접속하려니까 "Host Key Verification Failed" 문제가 나와서 ssh-keygen -R [ip] 명령어를 실행하였다.

(ssh-keygen -R옵션은 해당 IP와 매칭된 key를 삭제하는 명령어이다. 따라서 다시 접속하면 key를 다시 저장하게 된다.)

 

그랬더니 윈도우에서 개발서버에 ssh로 접속은 가능하나, 개발서버에서 git remote repository와 연결이 되지 않는다.

개발서버에서 git remote repository로부터 pull을 하거나 push를 하려고 하면 Could not resolve hostname [domain.com]: Name or service not known" 문제가 나온다.

 

https://wiki.bi0s.in/crypto/rsa-blinding-attack/

문제 발생 이유:

SSH로 접속을 하면 서버와 클라이언트는 RSA키①를 공유한다. 문제는 마지막 연결 후에(RSA 공유키를 교환한 상태에서) 클라이언트의 RSA공유키를 삭제하였기 때문에 서버에서는 기존에 알고 있던 키와 달라! 위험해! 라고 블럭을 하는 것이다. 이것은 Man in the Middle Attack(중간자 공격)②을 예방하기 위해서이다. 

 


①RSA 암호화 :

비대칭키(암호화와 복호화에 사용하는 키가 서로 다름)를 사용하는 암호화의 한 종류로 소인수 분해의 난해함에 기반한 암호화 방식

 

②중간자 공격(Main in the Middle Attack, MITM):

중간자 공격은 통신을 연결하는 두 사람 사이에 중간자가 침입하여, 두 사람은 상대방에게 연결했다고 생각하지만 실제로는 두 사람은 중간자에게 연결되어 있으며 중간자가 한쪽에서 전달된 정보를 도청 및 조작한 후 다른 쪽으로 전달한다.

암호 프로토콜은 중간자 공격을 막기 위하여 인증을 사용한다. 인증의 예시 중 하나로 공개키 기반구조(Public Key Instructures, PKI)③가 있다.

 

③공개 키 기반 구조 (Public Key Instractures, PKI):

보통 서버에서만 클라이언트가 진짜인지 확인, 평가하는 반면 PKI는 양쪽에서 모두 평가한다. 클라이언트에서도 서버를 평가하는 방법이다. (상호인증)

즉, PKI란 신뢰할 수 있는 공개키들의 명단을 관리하는 보안 인프라라고 할 수 있다.

 


스니핑(Sniffing):

네트워크 통신 내용을 몰래 도청하는 행위를 스니핑 이라고 한다. 혹은 '패킷 가로채기'라고도 한다.

 

SSH(시큐어 셸, Secure SHell) :

시큐어 셸은 원격으로 다른 시스템에 접속하여 명령어를 실행할 수 있도록 해주는 대표적인 프로그램이다. (또는 프로토콜을 가리킨다.)

 

기존의 telnet, ftp 서비스를 보안이 강화된 명령으로 대체하기 위해 만들어졌다. 기존의 telnet은 ID/PW방식을 사용하여 서버에 접속하고, text를 주고받는다. 그러나 SSH는 한 쌍의 키를 공유하고 모든 패킷은 암호화되어 전달한다. 따라서 통신이 노출된다고 하더라고 이해할 수 없는 암호화된 문자로 보인다.

 

 

ssh key 위치 : ~/.ssh/known_hosts

 

OpenSSL :

네트워크 보안 통신 프로토콜인 TLS/SSL의 오픈소스 구현판이며, 기본적인 암호화 기능 및 여러 유틸리티 함수들이 구현되어 있음.

 

CA 인증서 :

CA는 인증기관(Certificate authority)을 의미하며, CA 인증서는 이 인증기관(사설 또는 공인)에서 발급된 인증서를 의미함.

반응형