id_rsa.pub와 id_dsa.pub의 차이점은 무엇입니까?


답변:


64

id_rsa.pubid_dsa.pub의 공개 키는 id_rsaid_dsa.

당신이 관련 요구하는 경우 SSH, id_rsaRSA의 반면, 키와 SSH 프로토콜 1 또는 2와 함께 사용할 수 있습니다 id_dsaA는 DSA의 키 만 2 SSH 프로토콜을 사용할 수있는 두 제품 모두 매우 안전하지만, DSA는 것으로 보인다 요즘 표준입니다 (모든 클라이언트 / 서버가 SSH 2를 지원한다고 가정).

업데이트 : 이것이 작성된 이후 DSA는 안전하지 않은 것으로 나타났습니다. 아래 답변에서 더 많은 정보를 얻을 수 있습니다.


나는 이것에 동의하지 않는다. 오늘날 (그보다 덜하지만 2010 년에 게시 된 경우에도) 1024 비트 (DSA에서 사용할 수있는 가장 큰 키 크기)는 너무 약한 것으로 간주됩니다. 따라서 RSA가 더 나은 옵션입니다. SSH v1에 관하여 : 10 년 전에는 이것이 안전하다고 생각하지 않았습니다.
Adam Katz

3
@AdamKatz DSA는 2009 년부터 2048 비트 및 3072 비트 키 지원을 지원했습니다 ( FIPS 186-3 기준 ). 대부분의 ssh 클라이언트 / 서버는 OpenSSH 및 PuTTY를 포함하여 더 큰 DSA 키를 지원합니다. 대부분의 키 생성기는 더 큰 DSA 키도 지원하지만 OpenSSH의 ssh-keygen은 여전히 ​​지원하지 않습니다 (ssh 및 sshd 모두 지원하더라도). Linux의 경우이 블로그 게시물에 설명 된대로 OpenSSL을 사용하여 더 큰 DSA 키를 생성 할 수 있습니다 .
Mike Pelley

1
흥미 롭군요! 나는 그것을 몰랐고 그것은 확실히 둘 사이의 필드를 평준화하는 데 도움이됩니다 (OpenSSH 지원 부족은 꽤 끔찍합니다). 그래도 DSA가 표준 (현재 또는 2010 년)이라고 말하지는 않지만 RSA는 절대적으로 그렇습니다 (그리고 Ed25519와 같은 타원 곡선 시스템으로 전환 중입니다).
아담 카츠

46

SSH를 사용하여 공개 / 개인 키 쌍을 , 그래서 id_rsa당신입니다 RSA (소수 기준) 개인 키, 더 안전 당신보다 id_dsa DSA (지수 기준) 개인 키. 개인 키를 안전하게 유지하고 사용자 id_rsa.pubid_dsa.pub공개 키를 광범위하게 공유하십시오 .

DSA는 안전하지 않습니다.

DSA에는 컴퓨터의 난수 생성기가 서브 파인 경우 추측 가능한 매개 변수 가있어 비밀 키가 드러납니다. ECDSA (DSA의 타원 곡선 업그레이드) 도 마찬가지로 취약합니다 . 좋은 난수를 사용하더라도 DSA에는 다른 강도 문제가 있습니다PDF ( Diffie-Hellman에서도 발견됨 ).

OpenSSH는 안전하지 않은 1024 비트 키를 만들고 ( 해결 방법 ) 이제 기본적으로 DSA를 비활성화합니다 .

가능하면 Ed25519 사용

타원 곡선 암호화 는 더 작은 키 크기로 복잡성을 증가시킵니다. Ed25519 ( 평면 모델링 타원 곡선 의 복잡성을 기반으로 함 )는 간섭이 없다고 가정하기 때문에 선호되는 구현입니다 (누출 된 문서는 미국 NSA가 암호화 표준을 약화 시킨다는 것을 보여줍니다 ).

안타깝게도 Ed25519는 여전히 새롭기 때문에 OpenSSH 6.5 또는 GnuPG 2.1이 필요 합니다 ( 전체 목록 참조 ).

Ed25519를 사용할 수 없을 때 4096 비트로 RSA 사용

4096 비트의 RSA 키 크기는 Ed25519와 비슷한 복잡성을 가져야합니다.

RSA가 DSA와 동일한 강도 문제에 취약 할 수 있다는 우려 때문에 Ed25519는 RSA보다 여전히 선호되지만 RSA에 해당 익스플로잇을 적용하는 것은 상당히 어려울 것으로 예상됩니다.


2
단 한 가지 수정 사항 : DSA는 2009 년부터 2048 비트 및 3072 비트 키를 지원했습니다 ( FIPS 186-3 기준 ). 위의 내 의견에 더 많은 정보가 있습니다.
Mike Pelley 2015 년

2
Infosec SE는 이 질문에 대해 더 깊이 있는 좋은 답변을 제공합니다 . 더 큰 키 크기에서도 DSA가 더 이상 안전하지 않다는 Black Hat 2013 강연 을 인용 합니다.
Adam Katz 2015

2
이 답변을 DSA의 문제에 대해 더 포괄적으로 업데이트했습니다. 이제 (동일하게 유효한) Infosec SE 답변보다 더 자세합니다. 일부 링크 위로 마우스를 가져 가면 더 자세한 정보가 표시됩니다.
Adam Katz

1
이 게시물은 저에게 너무 많은 것을 배웠고 훨씬 더 많은 찬성표가 필요합니다.
liljoshu 2010 년


1

rsa는 더 안전한 것으로 간주됩니다.

더 이상은 (5 월 2020 10 년 후)로 OpenSSH를 8.2보고 에 의해 훌리오

향후 지원 중단 알림

지금 수 1 USD $ 50K 이하의 SHA-1 해시 알고리즘에 대한 선택 - 접두사 공격을 수행 할 수 있습니다.
이러한 이유로, 우리는 가까운 장래 릴리스에서 기본적으로 SHA-1에 의존하는 "ssh-rsa"공개 키 서명 알고리즘을 비활성화 할 것 입니다.

( " SHA-1 is a Shambles : First Chosen-Prefix Collision on SHA-1 and Application to the PGP Web of Trust "Leurent, G and Peyrin, T (2020))

이 알고리즘은 안타깝게도 더 나은 대안이 있음에도 불구하고 여전히 널리 사용되고 있으며, 원래 SSH RFC에서 지정한 유일한 공개 키 서명 알고리즘입니다.

더 나은 대안은 다음과 같습니다.

  • RFC8332 RSA SHA-2 서명 알고리즘 rsa-sha2-256 / 512.
    이러한 알고리즘은 " ssh-rsa" 와 동일한 키 유형을 사용하는 이점이 있지만 안전한 SHA-2 해시 알고리즘을 사용합니다.
    이들은 OpenSSH 7.2 이후로 지원되었으며 클라이언트와 서버가 지원하는 경우 기본적으로 이미 사용됩니다.

  • ssh-ed25519 서명 알고리즘.
    릴리스 6.5 이후 OpenSSH에서 지원되었습니다.

  • RFC5656 ECDSA 알고리즘 : ecdsa-sha2-nistp256 / 384 / 521.
    이는 릴리스 5.7 이후 OpenSSH에서 지원되었습니다.

서버가 호스트 인증에 약한 ssh-rsa 공개 키 알고리즘을 사용하고 있는지 확인하려면 ssh-rsassh (1)의 허용 목록에서 알고리즘을 제거한 후 연결을 시도 하십시오.

ssh -oHostKeyAlgorithms=-ssh-rsa user@host

호스트 키 확인에 실패하고 지원되는 다른 호스트 키 유형을 사용할 수없는 경우 해당 호스트의 서버 소프트웨어를 업그레이드해야합니다.

OpenSSH의 향후 릴리스 UpdateHostKeys에서는 클라이언트가 더 나은 알고리즘으로 자동 마이그레이션 할 수 있도록 기본적으로 활성화 됩니다.
사용자는이 옵션을 수동으로 활성화하는 것을 고려할 수 있습니다 .


-8

하나의 용도 DSA를 하고 다른 하나는 RSA를 사용합니다 .


기본 이름 (논리적으로 보이는 이름)을 사용하고 있다고 가정하면 theatrus는 바로 머리에 맞았습니다.
David Larrabee

당신은 질문의 실제 부분에 대답하지 않았습니다. 이것이 최상위 답변이기 때문에 반대 투표. 그럴 필요가 없습니다.
akauppi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.