ssh가 사용하는 RSA, DSA 및 ECDSA 키의 차이점은 무엇입니까?


13

/etc/ssh/디렉토리에서 세 가지 유형의 ssh 키가 있음을 알 수 있습니다.

-rw------- 1 root root    607 Oct  4 22:43 ssh_host_dsa_key
-rw-r--r-- 1 root root    623 Oct  4 22:43 ssh_host_dsa_key.pub
-rw------- 1 root root    241 Oct  4 22:43 ssh_host_ecdsa_key
-rw-r--r-- 1 root root    194 Oct  4 22:43 ssh_host_ecdsa_key.pub
-rw------- 1 root root   1602 Oct  4 22:43 ssh_host_rsa_key
-rw-r--r-- 1 root root    378 Oct  4 22:43 ssh_host_rsa_key.pub

ssh의 RSA, DSA 및 ECDSA 키의 차이점은 무엇이며 세 가지가 모두 필요합니까?

답변:


9

다른 암호화 알고리즘을 사용하여 생성 된 키입니다. SSH를 사용할 때 WiFi (WPA2, WPA, WEP 등)에 대해 다른 암호화 방법을 선택하는 기능과 다소 유사한 다른 형태의 암호화를 사용하도록 선택할 수 있습니다.

SSH는 공개 키 암호화를 사용합니다. 즉, SSH 서버에 연결하면 해당 서버로 전송되는 추가 트래픽을 암호화하는 데 사용할 수있는 공개 키가 브로드 캐스트됩니다. 서버가 RSA를 사용하도록 구성된 경우 RSA 알고리즘에 의해 생성 된 키가됩니다.

컴퓨터는 질문에 나열된 키 파일에서 자체 공개 RSA 키를 다시 보냅니다. 다시 연결하고 회신하려면 서버에이 키가 필요합니다.

연결하려는 특정 SSH 서버가 이러한 알고리즘 중 하나를 사용하도록 구성되어 있기 때문에 세 개의 키가 모두 컴퓨터에 존재합니다. 컴퓨터는 서버에서 사용하는 유형과 일치하는 고유 키를 다시 보내며 동일한 키로 컴퓨터에서 키가 생성되었습니다.

추가 자료는 다음과 같습니다.

/security/5096/rsa-vs-dsa-for-ssh-authentication-keys

http://en.wikipedia.org/wiki/Public-key_cryptography

http://en.wikipedia.org/wiki/RSA_ (알고리즘)

http://en.wikipedia.org/wiki/Digital_Signature_Algorithm

http://en.wikipedia.org/wiki/Elliptic_Curve_DSA


2
세 가지가 모두 존재하는 이유, ssh 키의 목적 및 키의 공통점에 대해 간단히 이야기했습니다. 키는 암호화 알고리즘을 사용합니다. RSA, DSA 및 ECDSA 키의 차이점에 대해 이야기하지 않은 것.
Enkouyami

6

그들 모두가 필요합니까?
아니요, ssh 서버에는 하나만 필요하며 클라이언트는 ssh 연결을 위해 해당 유형의 키만 지원하면됩니다.


RSA, DSA, ECDSA, EdDSA 및 Ed25519는 모두 디지털 서명에 사용되지만 RSA 만 암호화에 사용할 수 있습니다.

RSA ( Rivest–Shamir–Adleman )는 최초의 공개 키 암호화 시스템 중 하나이며 안전한 데이터 전송에 널리 사용됩니다. 보안은 정수 인수 분해 에 의존 하므로 안전한 RNG (Random Number Generator)가 필요하지 않습니다. RSA는 DSA와 비교하여 서명 유효성 검사가 빠르지 만 생성 속도가 느립니다.

DSA ( Digital Signature Algorithm )는 디지털 서명 에 대한 연방 정보 처리 표준입니다. 보안은 불연속 로그 문제 에 의존합니다 . RSA에 비해 DSA는 서명 생성 속도가 빠르지 만 유효성 검사 속도는 느립니다. 잘못된 번호 생성기를 사용하면 보안이 손상 수 있습니다 .

ECDSA ( Elliptical Curve Digital Signature Algorithm )는 DSA (Digital Signature Algorithm)의 Elliptic Curve 구현입니다. 타원 곡선 암호화는 RSA와 동일한 수준의 보안 수준을 더 작은 키로 제공 할 수 있습니다. 또한 RSA가 불량한 RNG에 민감하다는 DSA의 단점도 공유합니다.

EdDSA ( Edward-curve Digital Signature Algorithm )는 Twisted Edwards 곡선을 기반으로 하는 Schnorr 서명 의 변형을 사용하는 디지털 서명 체계 입니다. 서명 생성은 EdDSA에서 결정 론적이며 보안은 특정 이산 로그 문제의 난제성에 기반하므로 DSA 및 ECDSA보다 안전하므로 각 서명마다 고품질의 임의성을 요구합니다.

Ed25519는 상기 인 EdDSA 서명 방식이지만 사용 SHA-256분의 512Curve25519을 ; 그것은의 보안 타원 곡선 것을 제안 더 나은 보안 DSA, ECDSA, EdDSA보다 플러스가 더 나은 성능 (인간적으로 눈에 띄는되지 않음)이 있습니다.


기타 참고 사항
RSA 키가 가장 널리 사용되므로 가장 잘 지원되는 것 같습니다.

ECSSA ( OpenSSH v5.7에 도입 )는 DSA보다 계산 상 가볍지 만 처리 성능이 매우 낮은 기계가 없으면 차이가 눈에 띄지 않습니다.

현재 OpenSSH를 7.0 , SSH는 더 이상 기본적으로 DSA 키 (SSH-DSS)을 지원하지 않습니다. SSH 표준 (RFC 4251 이상)에 따라 모든 곳에서 작동하는 데 사용되는 DSA 키.

Ed25519는 openSSH 6.5 에서 도입되었습니다 .


1
EdDSA 또는 ECDSA 입니까?
muru

@muru ECDSA입니다. 둘 다에 대한 정보로 답변을 업데이트하고 링크를 수정합니다.
Enkouyami

내가 찾을 수 없었던 것은 EdDSA가 OpenSSH에 소개되었을 때였습니다.
Enkouyami

양자 컴퓨터가 그것들을 모두 깰 수 있습니까?
Kjeld Flarup

@KjeldFlarup, 예; security.stackexchange.com/questions/211587/… 에 대한 답변과 의견에 따르면, 양자 컴퓨터는 그것들을 모두 망칠 수 있습니다.
Enkouyami 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.