OpenSSH 기준으로, SSH의 암호화 또는 Hashing과 관련된 알고리즘의 분류를 다음과 같이 4가지 정도로 할 수 있다.

  • Key Exchange Algorithms
  • MAC Algorithms
  • Ciphers
  • HostKey Algorihtms

SSH 프로토콜에서 통신을 할 때에는 SSH Client와 SSH Server 간에 위 알고리즘에 대해 서로 일치하는 게 반드시 1개는 필요하다.

 

/etc/ssh/ssh_config 에는 해당 host가 SSH Client로 동작할 때에 지원하는 알고리즘 리스트가 나와 있다. 즉, 해당 configuration을 통해 weak algorithms을 인위적으로 제외시킬 수 있다는 것이다. 만약 KexAlgorithms, MACs, Ciphers, HostKeyAlgorithms 와 같은 구문이 없다면, 해당 OpenSSH 버전에서 Default로 지원하는 알고리즘 set을 사용하고 있는 것이다.

 

/etc/ssh/sshd_config 는 해당 host가 SSH Server로 동작할 때에 지원하는 알고리즘 리스트가 나와 있다. 해당 configuration을 통해 weak algorihtms 을 인위적으로 제외시킬 수 있다는 것이다. 사실상 SSH Server 쪽의 weak algorithms 들을 제외하여 원천적으로 차단하는 것이 보안 적용에 효과적이므로, 원격 제어 자주 당하거나(?) SFTP 서버 등으로 활용되는 Host의 경우, 반드시 sshd_config 를 철저하게 설정해 주어야 한다.

 

Key Exchange Algorihtms

: SSH 프로토콜에서 Client와 Server 간에 Public Key(공개키)를 주고 받는데, 이 공개키를 기반으로 암호화 및 복호화에 사용되는 대칭키를 생성하게 된다. 이러한 SSH 프로토콜 상 Client와 Server간에 Public Key를 주고 받는 과정 자체가 보호되어야 하기 때문에, 이 교환 과정에서 사용되는 알고리즘을 말한다.

 

OpenSSH - 현재 Host가 SSH Server로 동작할 때 지원하는 Key Exchange Algorithms 확인 방법

sshd -T | grep -oP '(?<=^kexalgorithms\\s)\\S+'

 

MAC Algorithms

: SSH 프로토콜에서 Client와 Server 간에 데이터를 주고 받을 때, 해당 데이터가 올바른 Client 또는 올바른 Server로부터 온 게 맞는지 확인하기 위한 Hashing 알고리즘이다. 즉, 데이터의 무결성을 보장하기 위한 알고리즘이다.

 

OpenSSH - 현재 Host가 SSH Server로 동작할 때 지원하는 MAC Algorithms 확인 방법

sshd -T | grep -oP '(?<=^macs\\s)\\S+'

 

Ciphers

: SSH 프로토콜에서 Client와 Server 간에 주고 받는 데이터의 실질적인 내용을 암호화하는 알고리즘Set이다. SSH Server에서 설정되어 있는 순서에 따라, Cipher Suite 채택에 대한 Preference가 결정된다.

Client로부터 받은 Cipher Suite 중에서 Server가 지원하는 Cipher Suite와 일치하는 것을 확인하고, 그 중 Server에서 가장 앞에 설정된 Cipher Suite가 Client 및 Server 간에 주고 받는 데이터에 대한 암호화 알고리즘set으로 채택된다.

 

OpenSSH - 현재 Host가 SSH Server로 동작할 때 지원하는 Cipher Algorithms 확인 방법

sshd -T | grep -oP '(?<=^ciphers\\s)\\S+'

 

HostKey Algorithms

: SSH 프로토콜에서 Client 및 Server의 Host Key를 생성하고 검증하는 데 사용되는 암호화 알고리즘이다. 여기서 Host Key란, 해당 SSH Client에 대한 Server를 인증할 때 사용되는 Key이다.

 

OpenSSH - 현재 Host가 SSH Server로 동작할 때 지원하는 HostKey Algorithms 확인 방법

sshd -T | grep -oP '(?<=^hostkeyalgorithms\\s)\\S+'
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기