2009-11-21 4 views
53

RSA 비공개 키에 "passphrase"가 할당 될 수 있습니다.이 암호는 누군가가 비공개 키 파일을 사용하는 경우 보조 보안을 제공하기위한 것입니다.RSA 비공개 키 암호문은 어떻게 처리됩니까?

보안 패스 프레이즈 계층은 어떻게 구현됩니까?

+4

RSA 자체는 그런 일을하지 않습니다. RSA를 사용하는 특정 프로그램에 대해 이야기하는 것 같습니다. 어떤 프로그램에 대해 (예 : PGP 또는 GPG) 말씀 하시려는 경우 매우 유용합니다. –

+1

흥미 롭습니다 - 대부분 유닉스 시스템에서 "ssh-keygen -t rsa"를 실행하여 요청한 암호에 대해 궁금합니다. – qfinder

+0

이 질문은 프로그래밍에 관한 것이 아니기 때문에 주제가 아닌 것 같습니다. 도움말 센터에서 [여기에서 내가 질문 할 수있는 항목은 무엇입니까?] (http://stackoverflow.com/help/on-topic)를 참조하십시오. 아마도 [정보 보안 스택 교환] (http://security.stackexchange.com/)이 더 나은 곳이 될 것입니다. – jww

답변

42

ssh-keygen은 OpenSSL을 사용하여 RSA 키를 생성하고이를 PEM 형식으로 저장합니다. 당신이 말하는 암호화는 PEM에만 해당됩니다. 당신이 당신의 키 파일을 보면

-----BEGIN RSA PRIVATE KEY----- 
Proc-Type: 4,ENCRYPTED 
DEK-Info: DES-EDE3-CBC,5B01E932988DC66B 

EPESt4ZVIrxnQXxxWWVa7cCR+vgNZ/4vTu4mdq6pjaW7jMZoB8HV+mA745mQkQw7 
i+YtdVs/JqOeyGiw/3McxYYKZTlhyh7MvfIr1n8ZdZmcjQz+oFqMxChFU3r8BGgA 

"DEK-정보"헤더는만큼 당신이 암호를 알고있는 키를 해독하는 데 필요한 모든 정보가 있습니다. "DES-EDE3-CBC"는 Triple DES (EDE 모드에서)를 의미합니다. CBC는 체인 모드입니다. 16 진수는 CBC에 필요한 초기 벡터입니다.

PEM은 매우 오래된 형식이므로 DES/TripleDES 만 지원합니다. AES와 Blowfish는 나중에 추가되었지만 모든 구현에서 지원되지는 않습니다. 내 ssh (OpenSSH 5.2)는 DES 및 TripleDES 만 지원합니다.

+0

이 형식을 읽는 방법을 알고있는 JRE 클래스가 있습니까? – Phaedrus

+0

@Phaedrus 참조 https://github.com/bcgit/bc-java/blob/c0d5ac5e62a6531f640bdfb4897a9fe95a0c9fdb/pkix/src/test/java/org/bouncycastle/openssl/test/ParserTest.java#L412 –

+3

이 답변은 누락 된 것 같습니다. 암호로 해석 된 암호 해독 키로 암호를 변환하는 방법 –

27

암호는 대칭 암호 (대개 DES 또는 3DES)를 사용하여 RSA 키가 들어있는 파일을 암호화하는 데 사용되는 키입니다. 공개 키 암호화에 키를 사용하려면 먼저 해독 키를 사용하여 파일의 암호를 해독해야합니다. ssh는 암호문을 요구함으로써 자동으로이 작업을 수행합니다.

누군가가 키 파일을 보유하고있는 경우 파일 암호화에 사용 된 암호를 알지 못하면 키 파일을 사용할 수 없습니다.

+0

답장을 보내 주셔서 감사합니다. 후속 질문 몇 가지 : 패스 프레이즈가 RSA 표준의 일부입니까 (위의 설명자 별)? ssh-keygen 프로그램이 DES 또는 3DES를 사용합니까/내가 어떻게 말하겠습니까? 몇 등급? 왜 AES가 아닌가? – qfinder

8

보호되지 않으면 범용 파일 시스템에 저장된 개인 키 (변조 방지 전용 하드웨어 토큰과 반대)를 쉽게 도용 할 수 있습니다. 파일 시스템 사용 권한은 충분하지만, 특히 공격자가 시스템에 실제로 액세스 할 수있는 경우에는 우회 할 수 있습니다.

좋은 암호를 사용하여 강력한 대칭 암호를 사용하면이 문제를 방지 할 수 있습니다. 좋은 RSA 비공개 키는 너무 길어서 (나를 위해, 어쨌든) 기억하지만, 훨씬 더 작은 대칭 키는 동일한 수준의 보안을 제공 할 수 있습니다. 대뇌에 저장된 비교적 짧은 대칭 키는 디스크에 저장된 큰 개인 키를 보호하는 데 사용됩니다.

+0

분명히 이해할 수 있습니다. 정확히 어떻게 구현 되었습니까? (정확히 어떤 대칭이 모든 impls에 대해 표준인지 여부) – qfinder

관련 문제