รหัสผ่านความท้าทายคืออะไร?


170

ฉันตั้งค่า SSL บนเซิร์ฟเวอร์ Ubuntu หนึ่งในฟิลด์ที่ขอเป็นส่วนหนึ่งของการตั้งค่า CSR คือ "รหัสผ่านการท้าทาย" นั่นคืออะไร? ค่าเริ่มต้นว่างเปล่า ฉันจำเป็นต้องป้อนรหัสหรือไม่

คำตอบ:


152

"รหัสผ่านท้าทาย" ที่ร้องขอเป็นส่วนหนึ่งของการสร้าง CSR แตกต่างจากวลีรหัสผ่านที่ใช้ในการเข้ารหัสคีย์ลับ ( ร้องขอในเวลาที่สร้างคีย์หรือเมื่อคีย์เพลนเท็กซ์ถูกเข้ารหัสในภายหลัง - และขออีกครั้งทุกครั้งที่เปิดใช้งาน SSL บริการที่เริ่มใช้งาน )

นี่คือคีย์ที่ถูกสร้างขึ้นและจุดเริ่มต้นของคีย์ที่สร้างขึ้น:

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

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

คีย์นี้ไม่มีข้อความรหัสผ่าน ฉันไม่ได้รับพร้อมท์เมื่อสร้างและไม่ได้ป้อน ตอนนี้เรามาสร้างคีย์เข้ารหัส:

$ 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

ดังนั้นควรมีความชัดเจนว่ารหัสส่วนตัวที่เข้ารหัส (apache ใดหรือเซิร์ฟเวอร์ที่เปิดใช้งาน SSL อื่น ๆ จะต้องปลดล็อกเมื่อเริ่มทำงาน) และรหัสส่วนตัวแบบธรรมดา (ซึ่งไม่ต้องการการปลดล็อกในเวลาเริ่มบริการ) . ตอนนี้ฉันจะสร้าง CSR ด้วยรหัสผ่านที่ท้าทายจากรหัสที่ไม่ได้เข้ารหัส :

$ 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-----

และเพื่อแสดงให้เห็นว่ากุญแจนั้นไม่ได้เข้ารหัสอย่างน่าอัศจรรย์:

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

ดังนั้นฉันพูดอีกครั้งว่า "รหัสผ่านการท้าทาย" ที่ร้องขอในฐานะส่วนหนึ่งของการสร้าง CSR ไม่ใช่สิ่งเดียวกันกับข้อความรหัสผ่านที่ใช้ในการเข้ารหัสคีย์ลับ "รหัสผ่านการท้าทาย" นั้นเป็นความลับที่ไม่ใช้ร่วมกันระหว่างคุณและผู้ออกใบรับรอง SSL (หรือผู้ออกใบรับรองหรือ CA) ที่ฝังอยู่ใน CSR ซึ่งผู้ออกใบรับรองอาจใช้เพื่อรับรองความถูกต้องของคุณ ผู้ออกใบรับรอง SSL บางรายให้ความชัดเจนมากกว่าผู้ออกใบรับรองรายอื่น ดูที่ด้านล่างของหน้านี้เพื่อดูว่าพวกเขาพูดว่าต้องใช้รหัสผ่านการท้าทายอะไร - ไม่ใช่เมื่อคุณรีสตาร์ท apache:

หากคุณเลือกที่จะป้อนและใช้รหัสผ่านที่ท้าทายคุณจะต้องตรวจสอบให้แน่ใจว่าคุณได้บันทึกรหัสผ่านนั้นในที่ปลอดภัย หากคุณต้องการติดตั้งใบรับรองของคุณใหม่ด้วยเหตุผลใดก็ตามคุณจะต้องป้อนรหัสผ่านนั้น


2
"ผู้ออก SSL" และ CA (ผู้ออกใบรับรอง) มีความแตกต่างกันหรือไม่?
Jonathan

3
ในทางเทคนิคแล้วพวกเขาไม่ได้ออกใบรับรอง SSL เอง แต่เป็นใบรับรองที่เข้ากันได้กับ SSL ฉันรู้สึกว่าผู้ออก SSL นั้นชัดเจนน้อยกว่า ผู้ออกใบรับรอง SSL จะมีความชัดเจนในความเห็นต่ำต้อยของฉัน
Jonathan

6
คำตอบที่สมบูรณ์มาก (มาก) เมื่อไม่ต้องการ IMHO จากคำถามที่ถามคุณสามารถกำจัดคำตอบทั้งหมดของคุณได้ยกเว้นว่าการทำตาม "รหัสผ่านการท้าทาย" นั้นเป็นความลับที่ไม่ใช่การแชร์ ... ' ฉันเชื่อว่าจะต้องตอบคำถามที่ถามเช่นเดียวกับข้อมูลที่ไม่เกี่ยวข้องที่ทำให้เสียสมาธิน้อยลง
joe

3
@ โจขอบคุณ! สิ่งที่คุณมองไม่เห็น (เพราะคุณไม่มีตัวแทน) คือฉันตอบกลับไปแล้วตั้งแต่คำตอบที่ถูกลบไปแล้วโดยผู้ใช้ที่ได้รับคะแนนสูงมาก (ซึ่งในกรณีนี้น่าเสียดายผิด) ดังนั้นจึงต้องทำ การโต้แย้งทีละจุด การลบที่ตามมาซึ่งไม่ได้กระทำโดยผู้แต่งทำให้ฉันดูแปลก ๆ แต่จนถึงตอนนี้ฉันเลือกที่จะปล่อยให้มันยืน ถ้ามีคนอื่นพอสนับสนุนมุมมองของคุณโดยลบความคิดเห็นของคุณฉันจะแก้ไขคำตอบของฉัน
MadHatter

3
ฉันรู้สึกงงงวยกับคำถามเดียวกันนี้และพบคำตอบนี้ไม่เป็นประโยชน์สำหรับความเข้าใจที่ จำกัด ของฉันในเรื่อง (เนื่องจากวิธีการเขียน) แต่โชคดีที่พบคำตอบของฉันจากsecurity.stackexchange.com/a/77082/67048
zagrimsan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.