openssl로 pfx 파일의 암호화 방법을 추측합니다.
Windows 버전에 따라
証明書のエクスポート ウィザード
화면에서 암호화를 선택할 수 있습니다 (秘密キーをエクスポートします
를 선택한 경우).AES256-SHA256을 선택한 경우의 문제점
AES256-SHA256
에서 내보낸 pfx를 Windows Server 2016에서 가져오려고 할 때 문제가 발생했습니다.
PowerShell Import-PfxCertificate
cmdlet에서 pfx를 가져 오려고하면,
- Import-PfxCertificate : The PFX file you are trying to import requires either a different password or membership in an Active Directory principal to which it is protected.
라는 수수께끼 오류 발생
X509Certificate2.Import
에서 가져 오기를 시도하면,
- The specified network password is not correct
라는 수수께끼 오류 발생
가져오기에 사용한 비밀번호가 잘못되지 않는다면 어떨까요?
pfx 파일 형식에 대해 알아보기
pfx 파일에 적용한 암호화 방식을 알 수 있습니까?
Google 검색 중 Which encryption algorithm is used in password protected *.pfx/PKCS 12 certificates?에 요청한 답변이있었습니다.
TL;DR: The PKCS#12 format only specifies the structure of the file, it does not list which algorithms are legal, so the actual encryption algorithm used will depend on which software was used to create the .p12 file.
[Bing 번역] DR: PKCS # 12 形式はファイルの構造を指定するだけで、どのアルゴリズムが有効かはリストされないので、使用される実際の暗号化アルゴリズムは、. p12 ファイルの作成に使用されたソフトウェアによって異なります。
그렇다고 해서… 「암호화에 사용한 암호화 방식을 알기 위해서는, 올바른 패스워드를 사용해 해독에 성공하는 다른 없다」라고 하는 것 같습니다.
추가 검색을 통해 pfx 파일을 덤프하는 방법을 찾았습니다. 이 출력을 보고 뒷받침을 받았습니다.
openssl.exe asn1parse -inform der -in CodeSign.pfx -i -dump
덤프의 일부
0:d=0 hl=4 l=6854 cons: SEQUENCE
4:d=1 hl=2 l= 1 prim: INTEGER :03
7:d=1 hl=4 l=6770 cons: SEQUENCE
11:d=2 hl=2 l= 9 prim: OBJECT :pkcs7-data
22:d=2 hl=4 l=6755 cons: cont [ 0 ]
26:d=3 hl=4 l=6751 prim: OCTET STRING
0000 - 30 82 1a 5b 30 82 06 51-06 09 2a 86 48 86 f7 0d 0..[0..Q..*.H...
...
1a50 - d2 3a 16 7c 9d d2 5f 01-09 16 4a d0 d0 ad 82 .:.|.._...J....
6781:d=1 hl=2 l= 75 cons: SEQUENCE
6783:d=2 hl=2 l= 47 cons: SEQUENCE
6785:d=3 hl=2 l= 11 cons: SEQUENCE
6787:d=4 hl=2 l= 9 prim: OBJECT :sha256
6798:d=3 hl=2 l= 32 prim: OCTET STRING
0000 - 24 51 85 f0 cf 5b 86 af-75 0d 27 b8 c7 f9 55 48 $Q...[..u.'...UH
0010 - 11 b5 52 00 a2 34 17 e3-39 25 1c f8 ea 02 4c 97 ..R..4..9%....L.
6832:d=2 hl=2 l= 20 prim: OCTET STRING
0000 - 92 bd 0f 1a a9 ef 70 f6-84 72 68 8c 0f 73 40 6f ......p..rh..s@o
0010 - 1f 2e bb d1 ....
6854:d=2 hl=2 l= 2 prim: INTEGER :07D0
:pkcs7-data
의 내용이라고 생각된다 OCTET STRING
가 덤프가 되어 있으므로…
어떠한 암호화가 실시되고 있는 것으로 생각됩니다.
덤프 뒤에 :sha256
라는 문구가 발견되었습니다.
이것이 암호화 지정과 관련이 있는지 확인합니다.
AES256-SHA256
로 암호화한 경우
...
6811:d=1 hl=2 l= 75 cons: SEQUENCE
6813:d=2 hl=2 l= 47 cons: SEQUENCE
6815:d=3 hl=2 l= 11 cons: SEQUENCE
6817:d=4 hl=2 l= 9 prim: OBJECT :sha256
6828:d=3 hl=2 l= 32 prim: OCTET STRING
0000 - 99 5e 94 b6 fc c0 09 dd-b1 cb 03 c6 50 64 68 8d .^..........Pdh.
0010 - d9 8e c0 0e 5f 0c 3e 98-83 a5 59 18 1d f2 3b 1b ...._.>...Y...;.
6862:d=2 hl=2 l= 20 prim: OCTET STRING
0000 - da 13 a3 70 f3 2b e1 fc-cb 2c d5 a7 08 4f 6e e7 ...p.+...,...On.
0010 - b7 10 98 bf ....
6884:d=2 hl=2 l= 2 prim: INTEGER :07D0
TripleDES-SHA1
로 암호화한 경우
...
6677:d=1 hl=2 l= 59 cons: SEQUENCE
6679:d=2 hl=2 l= 31 cons: SEQUENCE
6681:d=3 hl=2 l= 7 cons: SEQUENCE
6683:d=4 hl=2 l= 5 prim: OBJECT :sha1
6690:d=3 hl=2 l= 20 prim: OCTET STRING
0000 - 33 71 f9 6e e5 1e 56 d7-7e d8 6e b4 6d 62 ea 07 3q.n..V.~.n.mb..
0010 - 45 ad 4f 56 E.OV
6712:d=2 hl=2 l= 20 prim: OCTET STRING
0000 - 57 f7 83 26 ac f4 f0 a4-29 a9 7e 6b 79 8c b1 e8 W..&....).~ky...
0010 - 97 ce c2 17 ....
6734:d=2 hl=2 l= 2 prim: INTEGER :07D0
결과, 관련이 있었다 :
pfx 파일에 적용한 암호화 방식을 알 수 있습니까?
Google 검색 중 Which encryption algorithm is used in password protected *.pfx/PKCS 12 certificates?에 요청한 답변이있었습니다.
TL;DR: The PKCS#12 format only specifies the structure of the file, it does not list which algorithms are legal, so the actual encryption algorithm used will depend on which software was used to create the .p12 file.
[Bing 번역]
DR: PKCS # 12 形式はファイルの構造を指定するだけで、どのアルゴリズムが有効かはリストされないので、使用される実際の暗号化アルゴリズムは、. p12 ファイルの作成に使用されたソフトウェアによって異なります。
그렇다고 해서… 「암호화에 사용한 암호화 방식을 알기 위해서는, 올바른 패스워드를 사용해 해독에 성공하는 다른 없다」라고 하는 것 같습니다.
추가 검색을 통해 pfx 파일을 덤프하는 방법을 찾았습니다. 이 출력을 보고 뒷받침을 받았습니다.
openssl.exe asn1parse -inform der -in CodeSign.pfx -i -dump
덤프의 일부
0:d=0 hl=4 l=6854 cons: SEQUENCE
4:d=1 hl=2 l= 1 prim: INTEGER :03
7:d=1 hl=4 l=6770 cons: SEQUENCE
11:d=2 hl=2 l= 9 prim: OBJECT :pkcs7-data
22:d=2 hl=4 l=6755 cons: cont [ 0 ]
26:d=3 hl=4 l=6751 prim: OCTET STRING
0000 - 30 82 1a 5b 30 82 06 51-06 09 2a 86 48 86 f7 0d 0..[0..Q..*.H...
...
1a50 - d2 3a 16 7c 9d d2 5f 01-09 16 4a d0 d0 ad 82 .:.|.._...J....
6781:d=1 hl=2 l= 75 cons: SEQUENCE
6783:d=2 hl=2 l= 47 cons: SEQUENCE
6785:d=3 hl=2 l= 11 cons: SEQUENCE
6787:d=4 hl=2 l= 9 prim: OBJECT :sha256
6798:d=3 hl=2 l= 32 prim: OCTET STRING
0000 - 24 51 85 f0 cf 5b 86 af-75 0d 27 b8 c7 f9 55 48 $Q...[..u.'...UH
0010 - 11 b5 52 00 a2 34 17 e3-39 25 1c f8 ea 02 4c 97 ..R..4..9%....L.
6832:d=2 hl=2 l= 20 prim: OCTET STRING
0000 - 92 bd 0f 1a a9 ef 70 f6-84 72 68 8c 0f 73 40 6f ......p..rh..s@o
0010 - 1f 2e bb d1 ....
6854:d=2 hl=2 l= 2 prim: INTEGER :07D0
:pkcs7-data
의 내용이라고 생각된다 OCTET STRING
가 덤프가 되어 있으므로…어떠한 암호화가 실시되고 있는 것으로 생각됩니다.
덤프 뒤에
:sha256
라는 문구가 발견되었습니다.이것이 암호화 지정과 관련이 있는지 확인합니다.
AES256-SHA256
로 암호화한 경우...
6811:d=1 hl=2 l= 75 cons: SEQUENCE
6813:d=2 hl=2 l= 47 cons: SEQUENCE
6815:d=3 hl=2 l= 11 cons: SEQUENCE
6817:d=4 hl=2 l= 9 prim: OBJECT :sha256
6828:d=3 hl=2 l= 32 prim: OCTET STRING
0000 - 99 5e 94 b6 fc c0 09 dd-b1 cb 03 c6 50 64 68 8d .^..........Pdh.
0010 - d9 8e c0 0e 5f 0c 3e 98-83 a5 59 18 1d f2 3b 1b ...._.>...Y...;.
6862:d=2 hl=2 l= 20 prim: OCTET STRING
0000 - da 13 a3 70 f3 2b e1 fc-cb 2c d5 a7 08 4f 6e e7 ...p.+...,...On.
0010 - b7 10 98 bf ....
6884:d=2 hl=2 l= 2 prim: INTEGER :07D0
TripleDES-SHA1
로 암호화한 경우...
6677:d=1 hl=2 l= 59 cons: SEQUENCE
6679:d=2 hl=2 l= 31 cons: SEQUENCE
6681:d=3 hl=2 l= 7 cons: SEQUENCE
6683:d=4 hl=2 l= 5 prim: OBJECT :sha1
6690:d=3 hl=2 l= 20 prim: OCTET STRING
0000 - 33 71 f9 6e e5 1e 56 d7-7e d8 6e b4 6d 62 ea 07 3q.n..V.~.n.mb..
0010 - 45 ad 4f 56 E.OV
6712:d=2 hl=2 l= 20 prim: OCTET STRING
0000 - 57 f7 83 26 ac f4 f0 a4-29 a9 7e 6b 79 8c b1 e8 W..&....).~ky...
0010 - 97 ce c2 17 ....
6734:d=2 hl=2 l= 2 prim: INTEGER :07D0
결과, 관련이 있었다 :
:sha1
가 포함되어 있으면 TripleDES-SHA1
로 암호화되었을 수 있습니다.:sha256
가 포함되어 있으면 AES256-SHA256
로 암호화되었을 수 있습니다.그래서 인증서 가져 오기 오류
The specified network password is not correct
AES256-SHA256
로 암호화된 pfx 파일을 해독할 수 없는 것일 수 있습니다. AES256-SHA256
로 암호화하고 있을지 어떨지는,openssl.exe asn1parse -inform der -in CodeSign.pfx -i -dump
명령의 출력에 :sha256
라는 문언이 포함되어 있는지 어떤지로 추측이 가능. 라는 것을 알았습니다.
Reference
이 문제에 관하여(openssl로 pfx 파일의 암호화 방법을 추측합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kenjiuno/items/c1c777d0a9eaeb453180텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)