ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SSH (Secure SHell)
    웹 프로그래밍/BE(Back-End) 2021. 7. 7. 20:25

    SSH 네트워크상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램을 의미한다.

    기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다.

    SSH의 포트 번호는 기본적으로 22번 포트를 사용한다.

    SSH는 암호화 기법을 사용하기 때문에 통신이 노출된다고 하더라도 안전한 통신이 가능하다.

     

     

     

    SSH의 동작 방식은 어떠할까?

    SSH는 공개키(public key)와 비공개키(private key)를 사용하여 인증 과정을 거친다.

    더보기

    Public Key는 공개되어도 비교적 안전한 Key이다. 이 Public Key를 통해 메시지를 전송하기 전 암호화를 한다. Public Key로는 암호화는 가능하지만 복호화는 불가능하다. 

     

    Private Key는 절대로 외부에 노출이 되어서는 안되는 Key로 본인의 컴퓨터 내부에 저장되어 있다. 이 Private Key를 통해 암호화된 메시지를 복호화 할 수 있다.

    SSH가 키를 생성하면 공개키와 비공개키가 만들어진다. 이 중에 비공개키SSH Client에 위치해 있고 공개키SSH Client와 공개키 복사본이 SSH Server에 위치한다.

    (SSH Client은 우리가 현재 사용하고 있는 컴퓨터이고 SSH Server은 원격으로 접속하고자 하는 서버가 존재하는 컴퓨터라고 생각하면 된다.)

    SSH Client에서 접속 요청을 할 때, SSH server에 복사되어 저장된 Public Key와 SSH Client에 해당 Public Key와 쌍을 이루는 Private Key와 비교를 하여 서로 한 쌍의 Key인지 아닌지를 검사한다.

    이렇게 증명이 되면 두 컴퓨터 사이에 암호화된 채널이 형성이 되어 Key를 활용해 메시지를 암호화하고 복호화하며 데이터를 주고 받을 수 있게 된다.

    원격으로 다른 서버(컴퓨터)에 접속할 때 비밀번호 대신 key 방식을 사용하여 높은 수준의 보안을 제공할 수 있다.

    출처: https://velog.io/@hyeseong-dev/%EB%A6%AC%EB%88%85%EC%8A%A4-ssh%EB%9E%80

     

     

     

    그러면 기존의 원격 방식(rsh, rlogin, 텔넷)이 있는데 왜 SSH를 개발하였을까?

    가장 큰 이유는 보안 상의 문제이기 때문이다.

    기존의 원격 방식 중 하나인 Telnet은 통신 상의 패킷을 관찰해보면 별도의 암호화없이 일반 문자열로 되어져있다.

    이로 인해 노출되어서는 안되는 데이터가 입력 또는 출력될 때마다 공격자가 통신 내용을 엿보거나 훔쳐갈 수 있는 문제가 발생한다.

     

    하지만, SSH를 사용하면 패킷 내용이 식별할 수 없는 암호화된 내용으로 보여진다. 이로 인해 공격자가 통신 내용을 보더라도 쉽게 해석하지 못하여 보안성을 보장받을 수 있다.

    '웹 프로그래밍 > BE(Back-End)' 카테고리의 다른 글

    MongoDB 알아보기  (0) 2021.07.06
    GET과 POST  (0) 2021.07.03
    SQL & NoSQL  (0) 2021.07.02
    AWS EC2 이용해보기  (0) 2021.06.30
    Web Crowling & Web Scraping  (0) 2021.06.28

    댓글

Designed by Tistory.