클라이언트 전용 시스템에 사용자 정의 SSH DH 그룹을 배포하면 보안상의 이점이 있습니까?


16

SSH에 대한 Logjam 관련 공격에 대한 제안 된 완화 전략 은 다음과 같은 것을 사용하여 사용자 정의 SSH Diffie-Hellman 그룹을 생성하는 것입니다 (아래는 OpenSSH 용).

ssh-keygen -G moduli-2048.candidates -b 2048
ssh-keygen -T moduli-2048 -f moduli-2048.candidates

시스템 전체 모듈러스 파일을 출력 파일로 바꿉니다 moduli-2048. ( ssh-keygen -GDH-GEX 후보 프라임을 ssh-keygen -T생성하고 생성 된 후보를 안전성에 대해 테스트하는 데 사용됩니다 .)

이는 사전 계산에 적합하도록 잘 알려진 그룹을 사용하는 SSH 서버에서 수행해야 할 합리적인 일이지만, 클라이언트 전용 시스템에 사용자 정의 SSH DH 그룹을 배포하면 보안 상 이점이 있습니까? (즉, SSH 서버에 연결하지만 SSH 서버 자체로는 작동하지 않는 시스템입니다.)

나는 주로 Linux에서 OpenSSH와 관련된 답변에 관심이 있지만 더 일반적인 답변도 감사하겠습니다.

답변:


18

당신이 정말로 원한다면 할 수는 있지만 OpenSSH에 대한 2048 비트 DH 매개 변수를 재생성하지는 않을 것입니다. 취약한 암호화 비활성화와 같이 SSH를 보호 하기 위해 수행 해야 할 훨씬 더 중요한 것들이 있습니다 .

내가 일은 2048 비트 미만의 기존 것들을 삭제하는 것입니다.

awk '$5 >= 2000' /etc/ssh/moduli > /etc/ssh/moduli.strong && \
mv /etc/ssh/moduli.strong /etc/ssh/moduli

눈치 채지 못한 경우 OpenSSH에는 사전 생성 된 모듈러스가 최대 8192 비트까지 제공됩니다. 오늘날 1024 비트 프라임에 대해 확실히 우려하고 있지만 2048 비트 프라임은 가까운 미래에 안전하다고 생각됩니다. 결국에는 변할 것이지만 다음 주가 될 수도 있지만 연금 수급자가 된 후에는 더 길어질 것입니다 ...

ssh-keygen매뉴얼 페이지 에는 다음과 같은 호기심이 있습니다 .

이 파일은 비트 길이 범위의 모듈러스를 포함하고 연결의 양쪽 끝이 공통 모듈러스를 공유하는 것이 중요합니다.

실제 모듈러스를 대체하는 것에 반대하는 것처럼 보이지만 실제로 그렇게하는 실제 이유는 제공하지 않습니다.


관련 : 암호화의 양쪽 에서 다른 계수를 사용하는 Diffie-Hellman . 내 제한된 이해하려면, 나타납니다 원하는 길이의 더 공유 계수가없는 경우, 그 길이의 그룹과 디피 - 헬만 일반적인 경우에 가능하지 않고, 특정의 경우에 가능하지 않을 수 있습니다. 따라서 두 엔드 포인트간에 모듈러스를 공유하는 것은 Diffie-Hellman 키 교환 프로토콜의 수학적 요구 사항이며 공통 모듈러스가없는 두 엔드 포인트간에 Diffie-Hellman 키 교환을 수행하려고하면 실패합니다.
CVn

2
RFC 4419 [ tools.ietf.org/html/rfc4419] 는 서버가 사용자 정의 DH 매개 변수를 제공 할 수 있도록하기위한 것입니다. 서버는 클라이언트에 후보 매개 변수를 전송하고 클라이언트가 동의하면 양쪽이 서버 제공 매개 변수를 사용하여 세션 키로 사용되는 공유 비밀을 생성합니다. 따라서 서버와 클라이언트의 모듈러스 파일에 동일한 항목이없는 경우에는 문제가 없습니다.
Brian Minton

2

답은 : 아니요. 혜택이 없습니다. :)

/etc/ssh/moduli 파일은 서버 측에만 사용됩니다.

SSH 클라이언트 측의 파일에 대해 걱정할 필요가 없습니다.

SSH 클라이언트의 실행을 추적하고 해당 파일이 열리지 않는지 확인할 수 있습니다.

$ strace -e openat ssh user@localhost
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.