Không thể giải mã khóa riêng tư mặc dù tôi biết cụm mật khẩu


9

Tôi nghĩ rằng vấn đề của tôi xuất phát từ thực tế là có gì đó không ổn với khóa nhưng tôi không thể giải mã nó, để điều tra thêm, với việc phân tích cú pháp. Nhưng tôi không chắc chắn.

Tôi đang cố gắng sử dụng phương pháp tiêu chuẩn:

openssl rsa -in ./id_rsa -out ./id_rsa.decrypted

Tôi nghĩ rằng tôi biết cụm mật khẩu, vì khi tôi nhập sai, tôi nhận được:

Enter pass phrase for ./id_rsa:
unable to load Private Key
140256774473360:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:544:
140256774473360:error:0906A065:PEM routines:PEM_do_header:bad decrypt:pem_lib.c:483

"Giải mã xấu " là khá rõ ràng. Bây giờ, khi tôi nhập cụm mật khẩu có vẻ tốt của mình, tôi quay lại:

Enter pass phrase for ./id_rsa:
unable to load Private Key
139662870623888:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:asn1_lib.c:153:
139662870623888:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1314:
139662870623888:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=RSA
139662870623888:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
139662870623888:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:asn1_lib.c:153:
139662870623888:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1314:
139662870623888:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=PKCS8_PRIV_KEY_INFO
139662870623888:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:132:

Nó cũng không tải được khóa, nhưng bây giờ nó không thành công với trình phân tích cú pháp asn1, không có gì về cụm mật khẩu.

Tôi có thể bằng cách nào đó có được phiên bản khóa không được mã hóa và sử dụng các công cụ khác để xem có vấn đề gì không?

Tôi đã thấy một số bài đăng rằng một cái gì đó thay đổi và nguyên nhân có thể cho các khóa có vẻ tốt không thể phân tích cú pháp, nhưng tất cả chúng đều hoạt động trên phiên bản không được mã hóa. Nhưng họ chỉ thấy phương pháp mà tôi đã thấy với khóa dercypt là phương pháp trên.


Tên gợi ý rằng tập tin có thể đã được tạo bởi ssh-keygen. Bạn đã thử sử dụng ssh-keygenđể giải mã nó chưa? ssh-keygen -p -f keyfilesẽ thay đổi cụm mật khẩu trên một keyfile (nó sẽ ghi đè lên tệp, vì vậy hãy tạo một bản sao trước). Bằng cách chỉ định một cụm mật khẩu trống là cụm mật khẩu mới, nó sẽ giải mã tập tin.
kasperd

@kasperd Vâng, nó nói cụm mật khẩu xấu. Mọi công cụ khác đều nói đó là một cụm từ xấu, ngoại trừ openssl. Nhưng từ hành vi openssl tôi nghĩ rằng nó tốt, tôi đã không sử dụng khóa chúng trong một thời gian, nhưng đó là một trong những mật khẩu "tiêu chuẩn" của tôi, vì vậy nó sẽ phù hợp. Không ssh-keygensử dụng openssl dưới mui xe?
luk32

@dawud Tôi đã thử nó, nhưng tôi nghĩ công cụ này giả sử đầu vào đã được giải mã, không yêu cầu cụm mật khẩu và nói "tiêu đề quá dài" ngay lập tức. Tôi nghĩ rằng đó là bước tiếp theo để xem có gì sai với khóa của họ, sau khi tôi nhận được phiên bản được giải mã.
luk32

1
Tôi có thể đã yêu cầu một bản sao của tập tin và cụm mật khẩu chính xác để tái tạo các triệu chứng. Nhưng tôi có thể thấy một số vấn đề trong cách tiếp cận đó. Vì vậy, tôi chỉ đoán ở đây, và tôi không có cách nào tốt để kiểm tra xem dự đoán của tôi có hoạt động hay không ngoài việc hỏi bạn.
kasperd

1
Khi kiểm tra lệnh giải mã openssl của bạn trên một tệp bị lỗi có chủ ý, tôi đã gặp cùng một lỗi với cả mật khẩu chính xác và mật khẩu không hợp lệ. Điều này khiến tôi nghi ngờ về khả năng đây là trường hợp tệp được mã hóa bị hỏng theo thời gian do bitflips ngẫu nhiên.
kasperd

Câu trả lời:


9

Tôi tin rằng khóa riêng của bạn đã được sửa đổi, vì tôi có thể sao chép cùng một thông báo lỗi bằng cách thay đổi một ký tự trong khóa bảo vệ cụm từ vượt qua mẫu mà tôi vừa tạo.

Bạn có thể tái tạo điều này như sau -

  1. Tạo cụm mật khẩu được bảo vệ khóa riêng
  2. Giải mã khóa riêng để đảm bảo nó hoạt động.
  3. Thay đổi một ký tự bên trong tệp chứa khóa riêng được mã hóa.
  4. Hãy thử giải mã nó ngay bây giờ.
[testuser @ whitehat .ssh] $ openssl rsa -in id_rsa -out id_rsa.decrypted
Nhập cụm từ cho id_rsa:
viết khóa RSA
[người kiểm tra @ whitehat .ssh] $ ls -al id_rsa *
-rw -------. 1 người kiểm tra người kiểm tra 951 ngày 24 tháng 3 15:01 id_rsa
-rw-rw-r--. 1 người kiểm tra người kiểm tra 887 ngày 24 tháng 3 15:02 id_rsa.decrypted
-rw-r - r--. 1 người kiểm tra người kiểm tra 236 ngày 24 tháng 3 14:51 id_rsa.pub
[người kiểm tra @ whitehat .ssh] $ vim id_rsa
[testuser @ whitehat .ssh] $ openssl rsa -in id_rsa -out id_rsa.decrypted
Nhập cụm từ cho id_rsa:
không thể tải khóa riêng
139900595279688: error: 0D07207B: thói quen mã hóa asn1: ASN1_get_object: tiêu đề quá dài: asn1_lib.c: 150:
139900595279688: error: 0D068066: thói quen mã hóa asn1: ASN1_CHECK_TLEN: tiêu đề đối tượng xấu: tasn_dec.c: 1306:
139900595279688: error: 0D07804A: thói quen mã hóa asn1: ASN1_ITEM_EX_D2I: lỗi asn1 lồng nhau: tasn_dec.c: 381: Type = RSA
139900595279688: lỗi: 04093004: thường trình rsa: OLD_RSA_PRIV_DECODE: RSA lib: rsa_ameth.c: 115:
139900595279688: error: 0D07207B: thói quen mã hóa asn1: ASN1_get_object: tiêu đề quá dài: asn1_lib.c: 150:
139900595279688: error: 0D068066: thói quen mã hóa asn1: ASN1_CHECK_TLEN: tiêu đề đối tượng xấu: tasn_dec.c: 1306:
139900595279688: error: 0D07804A: thói quen mã hóa asn1: ASN1_ITEM_EX_D2I: lồng asn1 lỗi: tasn_dec.c: 381: Type = PKCS8_PRIV_KEY_INFO
139900595279688: lỗi: 0907B00D: thói quen PEM: PEM_READ_BIO_PRIVATEKEY: ASN1 lib: pem_pkey.c: 132:
[người kiểm tra @ whitehat .ssh] $ 

Thông tin phiên bản hệ điều hành và openssl

[người kiểm tra @ whitehat /] $ lsb_release -a
Phiên bản LSB :: core-4.0-amd64: core-4.0-noarch: Graphics-4.0-amd64: Graphics-4.0-noarch: Printing-4.0-amd64: in-4.0-noarch
ID nhà phân phối: Khoa học
Mô tả: Khoa học Linux phát hành 6.2 (Carbon)
Phát hành: 6.2
Tên mã: Carbon
[người dùng thử @ whitehat /] $ rpm -q openssl
openssl-1.0.1e-30.el6_6.5.x86_64

1

Tôi đã kết thúc ở đây vì tôi có cùng một vấn đề, nhưng tôi đã bị gây ra bởi giao diện xuất chứng chỉ AWS ACM. (Chứng chỉ CA riêng có thể được xuất bằng cụm mật khẩu)

Đôi điều về cụm mật khẩu cụ thể mà tôi đã sử dụng ... Không chắc chắn chính xác nguyên nhân gây ra sự cố, nhưng đó có thể là độ dài hoặc ký hiệu được sử dụng.

Kết quả cuối cùng là tôi đã có một khóa với cụm mật khẩu khác / rút gọn với những gì tôi mong đợi.

Mong rằng sẽ giúp được ai đó ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.