HMAC란 무엇인가요? #
HMAC(해시 기반 메시지 인증 코드)는 비밀 키와 해시 함수를 사용하여 데이터 또는 메시지의 무결성과 진위성을 검증하는 암호화 구조입니다. HMAC는 전송 중 데이터가 변조되지 않았으며 신뢰할 수 있는 출처에서 전송되었음을 보장하는 방법을 제공합니다. HMAC는 데이터를 비밀 키와 결합하고, 결과를 해싱한 다음, 수신자 측의 참조 HMAC과 비교하는 과정을 통해 보안 통신 및 인증 시스템을 포함한 다양한 애플리케이션에서 데이터 유효성을 확인하는 안전한 방법을 제공합니다.
SSHd(SSH 데몬)와 같은 SSH(Secure Shell) 서비스에서 HMAC은 클라이언트와 서버 간 통신 보안을 강화하는 데 사용됩니다. SSH 키 교환 과정에서 서버와 클라이언트는 데이터 무결성 검증에 사용될 HMAC 알고리즘을 포함한 일련의 암호화 알고리즘에 대해 협상합니다. 선택된 HMAC 알고리즘은 공유 비밀 키와 결합하여 송신 패킷에 대한 HMAC 태그를 생성하고 수신 패킷의 무결성을 검증하는 데 사용됩니다. 이를 통해 클라이언트와 서버 간에 교환되는 데이터가 전송 중 변경되지 않았음을 보장하여 변조를 방지하고 SSH 보안 모델의 핵심 요소인 통신의 신뢰성을 보장합니다.
SSHD에서 약한 암호 비활성화 #
SSHd 서비스의 보안을 강화하려면 MD5 또는 96비트 HMAC가 사용되지 않도록 SSH의 암호, MAC 및 키 알고리즘을 수정해야 할 수도 있습니다.hmac-md5 hmac-md5-96 hmac-sha1-96). 다음 단계를 진행해 주세요.
기존 SSHd 구성 확인 #
현재 SSH 구성을 검사하여 허용되는 암호, MAC 주소, 키 알고리즘을 확인하세요. 다음 명령을 사용하여 정보를 수집하세요.
root@noid-ee-01:~# sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)" 암호 chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com 맥 umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 kex알고리즘 curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
SSHD 구성 편집 #
보안을 강화하려면 약한 암호와 MAC을 비활성화하는 것을 고려해 보세요. 텍스트 편집기(예: 나노 or vi) SSHD 구성 파일을 편집하려면(다음에 위치) / etc / ssh / sshd_config). 허용하지 않을 암호와 MAC 주소를 제거하고 파일을 저장하세요. 해당 구성이 존재하지 않으면 파일 끝에 새 줄을 추가하세요.
ciphers aes128-ctr,aes192-ctr,aes256-ctr macs hmac-sha1,hmac-sha2-256,hmac-sha2-512
SSHD 서비스를 다시 시작합니다 #
변경 사항을 적용하려면 SSHD 서비스를 다시 시작하세요.
root@noid-ee-01:~# systemctl restart sshd
새로운 구성을 확인하세요 #
이전과 동일한 명령을 사용하여 업데이트된 구성을 확인합니다.
root@nid-ee-01:~# sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)" ciphers aes128-ctr,aes192-ctr,aes256-ctr macs hmac-sha1,hmac-sha2-256,hmac-sha2-512 kexalgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
이러한 단계는 SSH가 더 안전한 암호화 그룹과 MAC을 사용하도록 구성하고, 취약한 옵션은 비활성화하여 SSHd 서비스의 전반적인 보안을 강화함으로써 SSH 보안을 강화하는 데 도움이 됩니다. 이러한 설정을 변경하면 이전 버전이나 보안 수준이 낮은 SSH 클라이언트와의 호환성에 영향을 미칠 수 있으므로, 변경 사항이 특정 보안 요구 사항을 충족하는지 확인하십시오.