본문 바로가기

IT/네트워크

SSH란(extra. 공개키, 비공개키)

SSH란 Secure Shell Protocol, 즉 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜.

대표적인 사용의 예는 다음과 같다.

 

  1. 데이터 전송
  2. 원격 제어

이 둘은 개발 공부를 하시는 분이라면 한 번쯤은 사용해보셨을 것이라고 생각함. 먼저 데이터 전송의 예로는 원격 저장소인 Github이 있을 수 있습니다. 소스 코드를 원격 저장소인 깃헙에 푸쉬할 때 여러분은 SSH를 활용해 파일을 전송하게 됩니다.

 

다음으로는 원격 제어입니다. 웹 개발 공부를 하시는 분이시라면 AWS와 같은 클라우드 서비스를 이용해보셨을 것이다. 우리는 AWS의 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위해서도 SSH를 통한 접속을 해야 합니다.

 

그렇다면 FTP나 Telnet과 같은 다른 컴퓨터와 통신을 위해 사용되는 프로토콜도 있는데 SSH를 사용하는가를 생각해볼 수 있습니다. 그 이유는 물론 "보안"입니다. 만일 예로 언급한 두 프로토콜을 통해 민감한 정보(예를 들어 로그인 정보)를 주고받는다면 정보를 직접 네트워크를 통해 넘기기 때문에 누구나 해당 정보를 열어볼 수 있어 보안에 상당히 취약합니다.

 

반면 SSH는 먼저 보안적으로 훨씬 안전한 채널을 구성한 뒤 정보를 교환하기 때문에 보다 보안적인 면에서 훨씬 뛰어납니다. 그렇다면 SSH는 어떤 방식으로 서로 다른 컴퓨터가 안전하게 통신하게끔 할까요?

 

Private Key and Public Key

SSH는 다른 컴퓨터와 통신을 하기 위해 접속을 할 때 우리가 일반적으로 사용하는 비밀번호의 입력을 통한 접속을 하지 않습니다.

기본적으로 SSH는 한 쌍의 Key를 통해 접속하려는 컴퓨터와 인증 과정을 거치게 된다. 이 한 쌍의 Key는 다음과 같다.

 

  • Private Key
  • Public Key

 

먼저 Public Key는 단어 뜻 그대로 공개되어도 비교적 안전한 Key. 이 Public Key를 통해 메시지를 전송하기 전 암호화를 하게 됩니다. Public Key로는 암호화는 가능하지만 복호화는 불가능합니다. 

 

그리고 이와 쌍을 이루는 Private Key는 절대로 외부에 노출이 되어서는 안되는 Key로 본인의 컴퓨터 내부에 저장하게 되어있습니다. 이 Private Key를 통해 암호화된 메시지를 복호화 할 수 있습니다.

 

Private Key and Public Key

https://www.youtube.com/watch?v=_6Ri-Ha5uZE 

 

정보를 받는자가 두개의 키를 생성. 하나는 공개키(Public Key), 하나는 비공개키(Private Key).

두개는 천생연분. PubK를 알면, PrivK를 알고, PrivK를 알면, PubK를 알게됨.

받는사람이 PubK를 인터넷에 올림.

받는사람 왈, "나에게 정보를 보내려면, 내가 보낸 PubK를 암호화해서 보내시오!"하면서 PubK키를 오픈.

그러면 모든 사람(보내는 자, 가로채려는 자)이 PubK를 가져올 수 있음.

보내는 자가 정보를 가지고 있음. 인터넷에서 가져온 PubK를 이용해서 암호화를 함.

암호화된 정보를 받는자도 받을 수 있고, 가로채려는자가 가로채서 받을수도 있음.

암호화된 정보를 정보로 바꾸고 싶은데, 가로채려는자는 PrivK가 없고, 받는자는 PrivK가 있음.

받는자는 PrivK로 암호화된 정보를 복호화할수 있고, 가로채려는자는 없어서 복호화를 못함.

즉, 정보를 복호화할때 사용하는 비공개키가 그 누구에게도, 공개된 적이 없음에도 복호화 할 수 있다!

 

'IT > 네트워크' 카테고리의 다른 글

etc/init.d/network 에러  (0) 2021.02.19
쿠키와 세션 그리고 로컬 스토리지와 세션 스토리지  (0) 2021.02.17
Axios  (0) 2021.02.16
[인프라] x86이란  (0) 2020.10.20
CURL 이란?  (0) 2019.11.25