홍카나의 공부방

[컴퓨터 네트워크] 17. SSH의 정의와 HTTP와의 차이점 본문

Computer Network

[컴퓨터 네트워크] 17. SSH의 정의와 HTTP와의 차이점

홍문관카페나무 2024. 2. 6. 22:12

 

Secure Shell(SSH)

 

SSH는 원격지 호스트 컴퓨터에 접속하기 위해 사용하는 인터넷 프로토콜이다. 즉, 다른 컴퓨터의 Shell을 사용할 수 있게 해주는 프로그램(혹은 프로토콜)을 의미한다. 한글로 직역하면 보안 쉘인데, 기존 UNIX 시스템의 원격 접속 프로토콜이었던 Telnet에 암호화 기능을 추가한 프로토콜이다. 기본 포트 번호는 22번이다. Shell*로 원격 접속을 하기에 보통은 CLI상에서 작업을 하게 된다.

 

SSH가 동작하는 순서는 다음과 같다.

단, SSH 연결 이전에 서버와 클라이언트가 서로의 공개 키(Public Key)를 알고 있다고 가정한다.

 

1. SSH Server라고 불리는 데몬(daemon)이 항상 원격지의 SSH Client로부터 접속을 기다린다.

Windows에서는 OpenSSH 서비스를 사용하여 SSH Server를 실행한다.

 

2. 클라이언트가 서버에 요청을 보내면, 서로를 인증한다.

3. 클라이언트가 난수를 하나 생성한 후, 이를 서버의 공개 키로 암호화하여 서버로 전송하고, 난수의 해시(Hash)를 저장해 둔다.

4. 서버는 전송받은 암호화된 난수를 서버 자신의 개인키(Private Key)로 복호화한 후에, 복호화된 난수의 해시를 계산하고 클라이언트에게 전송한다.

5. 클라이언트는 전송 받은 난수의 해시를 저장된 해시와 비교하여 서버를 인증한다.

6. 3~5번의 과정을 반대로 똑같이 진행한다.

7. 서로간의 인증이 끝나면, 비대칭 키를 이용하여 대칭 키(Session Key)를 교환한다.

 

교환한 대칭 키를 이용하여 ssh 서버와 클라이언트가 모든 통신을 암호화하여 진행한다.

 

* Shell : user의 명령을 커널(Kernel)에 전달하고, 그 결과를 다시 user에게 알려주는 프로그램

 

 

HTTP와의 차이점

 

HTTP(HyperText Transfer Protocol)는 웹 브라우저와 서버 간에 웹 페이지나 이미지와 같은 정보를 주고 받는데 사용하는 프로토콜이다. 말 그대로 하이퍼텍스트 전송 프로토콜인 만큼, 원격으로 서버에 접속해서 명령을 실행하거나 shell을 건드리는 등의 목적으로 사용되는 SSH와는 목적과 특성이 다르다.

 


 

자세한 설명은 아래 링크를 참고한다. (What is SSH?)

https://www.hostinger.ph/tutorials/ssh-tutorial-how-does-ssh-work

 

What Is SSH: Understanding Encryption, Ports and Connection

In this SSH tutorial, we will learn how SSH works and the various mechanisms that it utilizes to securely encrypt a connection.

www.hostinger.ph

 

 

 

 

 

반응형