Mật khẩu thử thách là gì?


170

Tôi đang thiết lập SSL trên máy chủ Ubuntu. Một trong những lĩnh vực mà nó yêu cầu như là một phần của việc thiết lập CSR là "mật khẩu thử thách". Đó là gì? Mặc định là trống. Tôi có cần phải nhập một?

Câu trả lời:


152

"Mật khẩu thách thức" được yêu cầu như một phần của thế hệ CSR, khác với cụm mật khẩu được sử dụng để mã hóa khóa bí mật ( được yêu cầu tại thời điểm tạo khóa hoặc khi khóa mã hóa sau đó được mã hóa - và sau đó được yêu cầu lại mỗi lần bật SSL dịch vụ sử dụng nó khởi động ).

Đây là một khóa đang được tạo và bắt đầu của khóa được tạo:

$ openssl genpkey -algorithm rsa -out foo.key
............++++++
...++++++

$ head -3 foo.key
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ9jNAG4Noy//r/S
eeK/gEgGOV0BZm0CYmgSQGj4P6N3cJsPlGsG80qKTxTFwoEiXnM3BVeBpDdXhGKt

Khóa này không có cụm mật khẩu. Tôi đã không được nhắc nhở cho một sáng tạo, và đã không nhập một. Bây giờ, hãy tạo một khóa được mã hóa:

$ openssl genpkey -algorithm rsa -des3 -out bar.key
...........................................++++++
.....................................++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

$ head -3 bar.key
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQInfwj1iv3icMCAggA
MBQGCCqGSIb3DQMHBAizMHBklBexiwSCAoDtRKf1WtMiVMH7HraGTIG0rlQS6Xuj

Vì vậy, cần phải rõ ràng khóa riêng được mã hóa (apache, hoặc bất kỳ máy chủ hỗ trợ SSL nào khác, sẽ cần mở khóa cho nó khi bắt đầu) và khóa riêng plaintext (không yêu cầu mở khóa khi bắt đầu dịch vụ) trông như thế nào . Bây giờ tôi sẽ tạo CSR với mật khẩu thử thách từ khóa không được mã hóa :

$ openssl req -new -key foo.key
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:asdfasdf
An optional company name []:
-----BEGIN CERTIFICATE REQUEST-----
MIIBmzCCAQQCAQAwQjELMAkGA1UEBhMCWFgxFTATBgNVBAcMDERlZmF1bHQgQ2l0
eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEAn2M0Abg2jL/+v9J54r+ASAY5XQFmbQJiaBJAaPg/o3dwmw+U
awbzSopPFMXCgSJeczcFV4GkN1eEYq2Cmam3tH6t8mVDh0/UryJSWBsaFm9mh9RF
gIpP0hEkYZTf/0X+X06ukt9S/Id9Z/tVgPsZA3TcNjNhJfVaTm81/4ykq8UCAwEA
AaAZMBcGCSqGSIb3DQEJBzEKDAhhc2RmYXNkZjANBgkqhkiG9w0BAQUFAAOBgQCa
ivuDRBlHOhBjg6wPbH9NvCnvEnxeEAkYi0Sl/Grdo/WCk17e+sv9wgqEW1QSIdbV
XzMeWidurv4AtcATwhfk9tBcYBCTxANkTONzhJG7Yk9OAz8g8Ljo8EEvPf4oHqpw
tBg10DCD2op0lCwL2LBdPO3RG20f/HD6fEXPVxZdOQ==
-----END CERTIFICATE REQUEST-----

Và chỉ để chứng minh rằng khóa chưa được mã hóa một cách kỳ diệu:

$ head -3 foo.key
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ9jNAG4Noy//r/S
eeK/gEgGOV0BZm0CYmgSQGj4P6N3cJsPlGsG80qKTxTFwoEiXnM3BVeBpDdXhGKt

Vì vậy, tôi nói lại: "mật khẩu thách thức" được yêu cầu như một phần của thế hệ CSR không giống với cụm mật khẩu được sử dụng để mã hóa khóa bí mật. "Mật khẩu thách thức" về cơ bản là một mật khẩu bí mật được chia sẻ giữa bạn và nhà phát hành chứng chỉ SSL (còn gọi là Tổ chức chứng nhận hoặc CA), được nhúng trong CSR, mà nhà phát hành có thể sử dụng để xác thực bạn cần. Một số tổ chức phát hành chứng chỉ SSL làm cho điều đó rõ ràng hơn những người khác; nhìn xuống cuối trang này để biết nơi họ nói mật khẩu thách thức là cần thiết - không phải khi bạn khởi động lại apache:

Nếu bạn chọn nhập và sử dụng mật khẩu thử thách, bạn sẽ cần đảm bảo rằng bạn lưu mật khẩu đó ở nơi an toàn. Nếu bạn cần cài đặt lại chứng chỉ của mình vì bất kỳ lý do gì, bạn sẽ được yêu cầu nhập mật khẩu đó.


2
Có sự khác biệt giữa "Nhà phát hành SSL" và CA (Cơ quan cấp chứng chỉ) không?
Jonathan

3
Về mặt kỹ thuật, họ không phát hành giao thức SSL, mà là chứng chỉ tương thích SSL. Tôi cảm thấy như nhà phát hành SSL là ít rõ ràng. Nhà cung cấp chứng chỉ SSL sẽ rõ ràng, theo ý kiến ​​khiêm tốn của tôi.
Jonathan

6
Câu trả lời rất (rất) đầy đủ, khi người ta không cần IMHO. Dựa trên câu hỏi được hỏi, bạn có thể loại bỏ tất cả câu trả lời của mình ngoại trừ việc theo sau "" Mật khẩu thách thức "về cơ bản là một bí mật được chia sẻ bí mật ... '. Tôi tin rằng sẽ trả lời câu hỏi được hỏi hoàn toàn, với thông tin không phù hợp ít gây mất tập trung hơn.
joe

3
@joe cảm ơn! Điều bạn không thể nhìn thấy (vì bạn không có đại diện) là tôi đã trả lời câu trả lời trước đó đã bị xóa bởi một người dùng được đánh giá rất cao (trong trường hợp này, thật không may, sai) nên đã phải làm một phản bác từng điểm. Việc xóa nó sau đó, không được thực hiện bởi tác giả của nó, làm cho tôi trông hơi kỳ lạ, nhưng cho đến bây giờ tôi đã chọn để nó đứng vững. Nếu đủ người khác ủng hộ quan điểm của bạn bằng cách nâng cao nhận xét của bạn, tôi sẽ sửa đổi câu trả lời của mình.
MadHatter

3
Tôi đã bị bối rối bởi câu hỏi rất giống nhau này và nhận thấy câu trả lời này không hữu ích cho sự hiểu biết hạn chế của tôi về chủ đề này (do cách viết), nhưng may mắn tìm thấy câu trả lời của tôi từ security.stackexchange.com/a/77082/67048
zagrimsan
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.