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


답변:


64

id_rsa.pub과 id_dsa.pub의 공개 키는 id_rsa와 id_dsa.

당신이 관련 요구하는 경우 SSH, id_rsa인 RSA의 반면, 키와 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.pub및 id_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.