2013-04-22 2 views
1

암호로 보호 된 RSA 교환에 사용되는 개인 키가 있습니다. 암호를 알고 있으므로 암호를 사용할 수 있지만 어떤 암호가 암호를 사용했는지는 알 수 없습니다.비밀번호 암호화 개인 키에 사용

this question에 대한 답변에 따라 해독 된 키의 헤더에 암호가 명명 된 다른 키가 있습니다. 그러나, 단순히 암호화 된이 키를 시작합니다

-----BEGIN ENCRYPTED PRIVATE KEY----- 

을 해독 할 때 :

-----BEGIN RSA PRIVATE KEY----- 

추가적인 헤더.

openssl rsa 및 gnutls의 certtool -k과 같은 도구는 암호가 제공 될 때 키를 해독하고 공개 키에 대한 정보를 제공하지만 암호에 사용되는 대칭 암호에 대해서는 아무 말도하지 않습니다.

아마도 이러한 응용 프로그램은 키를 해독하므로 암호가 무엇인지 알 수 있습니다. 이 정보를 얻을 수있는 방법이 있습니까? 어쨌든 비밀 번호가 있으면 비밀로 유지하는 데 많은 포인트가없는 것 같습니다.

gnutls API (하지만 openssl이 아닌)를 사용한 프로그램 응답은 좋지만 이상적으로는 기존의 휴대용 도구에 대해 알고 싶습니다.

+0

"BEGIN ENCRYPTED PRIVATE KEY"로 표시된 항목은 모두 EncryptedPrivateKeyInfo ASN.1 객체입니다. 따라서 해당 형식을 처리 할 수있는 라이브러리는 아마도 사용 된 암호화 알고리즘을 읽을 수있을 것입니다. –

답변

3

ASN.1 디코딩 :

0:d=0 hl=4 l=1294 cons: SEQUENCE 
    4:d=1 hl=2 l= 64 cons: SEQUENCE 
    6:d=2 hl=2 l= 9 prim: OBJECT   :PBES2 
    17:d=2 hl=2 l= 51 cons: SEQUENCE 
    19:d=3 hl=2 l= 27 cons: SEQUENCE 
    21:d=4 hl=2 l= 9 prim:  OBJECT   :PBKDF2 
    32:d=4 hl=2 l= 14 cons:  SEQUENCE 
    34:d=5 hl=2 l= 8 prim:  OCTET STRING 
    44:d=5 hl=2 l= 2 prim:  INTEGER   :0800 
    48:d=3 hl=2 l= 20 cons: SEQUENCE 
    50:d=4 hl=2 l= 8 prim:  OBJECT   :des-ede3-cbc 
    60:d=4 hl=2 l= 8 prim:  OCTET STRING 
    70:d=1 hl=4 l=1224 prim: OCTET STRING 

즉. 이 예에서는 des-ede3-cbc가 사용되고 있습니다. 여기에 온라인/오픈 소스 ASN.1 디코더를 사용할 수있다 : phpseclib ASN.1 Decoder

그냥 복사/데이터를 붙여 넣기하고 '제출'버튼을 누르십시오!

OpenSSL을 설치 한 경우 CLI를 통해 openssl asn1parse -inform PEM -in file.ext -i을 수행 할 수도 있습니다.

+0

감사합니다. openssl 명령이 트릭을 수행했습니다! – delicateLatticeworkFever

0

해당 파일을 열려면 ASN.1 뷰어와 같은 도구를 사용하십시오. 대부분은 base64로 인코딩 된 데이터도 처리해야하지만, base64로 디코딩 된 데이터가 먼저 필요합니다. 그런 다음 (가장 가능성이 큰) PKCS # 8 랩 키를 가져 오면 OID를보고 암호를 얻게됩니다. 이런 식으로 당신에게 무언가를 제공해야

관련 문제