정리 조금/Basics

SSH, Host Keys

Turtle0105 2023. 10. 12. 20:14

 

SSH

  종종 대규모 자료에 대한 딥러닝 작업을 하기위해 서버에서 작업을 하는데, 접속할 때 SSH를 사용한다. SSH는 Secure Shell을 줄인 말이며, 두 컴퓨터간 통신을 가능하게 해주는 일종의 프로토콜이다. 프로토콜이 조금 생소하다면 인터넷의 HTTP, 대용량 파일 전송에 사용되는 FTP등을 생각해보면 되는데, SSH는 terminal로 접속하는 방식 정도라 생각될 수 있다. SSH는 client와 host간 통신 내용이 암호화가 가능하다는 점에서 강점을 보인다. 여기서 client는 host에 접속하려는 컴퓨터 (ex. 내 PC), host는 접속대상 (ex. 주로 작업하는 서버) 이다.

Secrete Key

  SSH 프로토콜에서 사용하는 암호화된 key가 바로 host key다. 암호키는 대칭 & 비대칭 키 방식이 있다.

 

대칭키 방식은 비밀 키가 하나 있고, 비밀 문자를 보내고 싶을 때, 그 키를 이용하여 문자를 암호화하여 보내고, 받는이는 동일한 키로 복호화 하여 읽을 수 있게하는 방식이다.

from wikipedia

키 하나를 알면 이용 가능한 방식으로 공격자가 하나만 알아도 암호를 알수도, 거짓 정보를 흘릴수도 있어 구조상 위험해보인다.

 

비대칭 (공개 키) 방식은, 키가 두개인 한 쌍이 필요하다. 하나는 누구에게나 공개해도 되는 공개 키, 다른 하나는 자신만 알고 있어야하는 비밀 키. 예를들어, Bob이 공개 키 방식으로 Alice에게 비밀 메시지를 송신하려할 때를 생각해보자. 먼저 Alice는 공개 키를 Bob에게 보낸다. 이때 Alice의 공개 키는 누구나 알아도 상관 없으며, Bob은 Alice의 공개 키와 함께 전달하고자 하는 메시지를 암호화해 Alice에게 보낸다. Alice는 암호문을 받아 자신만이 아는 비밀 키로 복호화하여 Bob의 메시지를 읽을 수 있게 된다.

from wikipedia

비대칭 방식은 송신자는 (보안상 중요한) 비밀 키를 알 필요가 없으며 공격자 입장에서는 두개의 키를 모두 알아내야 하기 때문에, 구조상으로 대칭키에 비해 더 보안이 좋다 여겨진다.

 

참고로, SSH에서는 크게 client와 host간 대칭 암호화 방법을 사용하지만, 그 대칭 암호화의 키를 만드는데 비대칭 암호화 알고리즘이 사용된다.

etc.

  각각의 host는 unique한 host key를 갖으며, 유출될 경우 공격당할 수 있다. 때문에, computing cluster에서와 같은 실용적으로 꼭 필요한 상황이 아니고는 공유하지 말자.

 

일반적으로 SSH를 처음 사용할 때 혹은 컴퓨터가 처음 부팅될 때 자동으로 생성된다. 이런 자동생성된 key를 재생성하거나 바꾸고 싶을 때, ssh-keygen 같은 프로그램을 사용하면 된다고 한다.

 

연결한 적 있는 호스트의 host key를 known host keys라 부른다.

 

Private host key의 경우 root만 접근 가능해야 하지만, 시스템 관리자들도 root에 대한 접근이 있음으로 결국 얻을 수 있게된다. 이처럼 만약 attacker가 root 접근 권한이 있다면, private host key를 알 수 있게된다. 결과적으로 attacker가 공격을 할 수 있게되어, user password를 얻거나 여러 조작이 가능한 커맨드를 관리자 세션에 사용할 수 있게된다. 때문에 무결성 검사를 필요로 하지만, 더 깊은 내용은 나중에 다루도록 하자!

 

P.S.

해보고 싶은게 많은 주제이지만, 업무에 집중 해야 하므로... ㅠㅠ

나중에 필요가 생기면 아래의 주제에 대해 더 다루어 볼 예정이다.

  • 공개키의 안전한 교환을 위한 Diffie-Hellman Key Exchange algo
  • 공격자로부터의 무결성을 확인하기 위한 구조와 Hashing algo
  • User의 접속권한 인증절차 방식 두가지, Password & RSA 비교 및 활용
  • Toy 적용

 

Reference

Wikipedia

Linux Administration: A Beginners Guide, Sixth Edition, 6th Edition by Wale Soyinka

'정리 조금 > Basics' 카테고리의 다른 글

IC 50  (0) 2023.10.25
in vitro, in vivo and in silico  (0) 2023.10.25
Expectation vs. Average  (0) 2023.09.04
Exact & Asymptotic p-values  (0) 2023.08.31
Scale Free Network  (0) 2023.08.31