นี่คือคำสั่ง pkcs8ssl ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
pkcs8 - เครื่องมือแปลงคีย์ส่วนตัวรูปแบบ PKCS#8
เรื่องย่อ
OpenSSL pkcs8 [-topk8] [-แจ้ง PEM|เดอร์] [-แต่งตัว PEM|เดอร์] [-in ชื่อไฟล์] [-พาสซิน หาเรื่อง]
[-ออก ชื่อไฟล์] [-ส่งออกไป หาเรื่อง] [- นอยเตอร์] [-ไม่มีการเข้ารหัส] [-nooct] [-ฝัง] [-nsdb] [-v2 ALG]
[-v2prf ALG] [-v1 ALG] [- เครื่องยนต์ id]
DESCRIPTION
การขอ pkcs8 คำสั่งประมวลผลคีย์ส่วนตัวในรูปแบบ PKCS#8 สามารถรองรับทั้งที่ไม่ได้เข้ารหัส
รูปแบบ PKCS#8 PrivateKeyInfo และรูปแบบ EncryptedPrivateKeyInfo ที่มี PKCS#5 ที่หลากหลาย
(v1.5 และ v2.0) และอัลกอริทึม PKCS#12
คำสั่ง OPTIONS
-topk8
โดยปกติคีย์ส่วนตัว PKCS#8 จะถูกคาดหวังในอินพุตและรูปแบบดั้งเดิมส่วนตัว
คีย์จะถูกเขียน กับ -topk8 ตัวเลือก สถานการณ์จะกลับกัน: มันอ่าน a
คีย์ส่วนตัวรูปแบบดั้งเดิมและเขียนคีย์รูปแบบ PKCS#8
-แจ้ง เดอร์ | PEM
ระบุรูปแบบการป้อนข้อมูล หากคาดว่าจะมีคีย์รูปแบบ PKCS#8 ในอินพุต แสดงว่า
ทั้งก DER or พีอีเอ็ม คาดว่าจะเป็นเวอร์ชันเข้ารหัสของคีย์ PKCS#8 มิฉะนั้น
DER or พีอีเอ็ม ใช้รูปแบบของคีย์ส่วนตัวรูปแบบดั้งเดิม
-แต่งตัว เดอร์ | PEM
ระบุรูปแบบผลลัพธ์ ตัวเลือกมีความหมายเดียวกับ -แจ้ง
ตัวเลือก
-in ชื่อไฟล์
ระบุชื่อไฟล์อินพุตที่จะอ่านคีย์จากหรืออินพุตมาตรฐานหากตัวเลือกนี้
ไม่ได้ระบุไว้ หากรหัสถูกเข้ารหัส วลีรหัสผ่านจะได้รับพร้อมท์
-พาสซิน หาเรื่อง
แหล่งรหัสผ่านไฟล์อินพุต สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบของ หาเรื่อง ดู
PASS วลี อาร์กิวเมนต์ ส่วนเข้า OpenSSL(1)
-ออก ชื่อไฟล์
ระบุชื่อไฟล์เอาต์พุตเพื่อเขียนคีย์หรือเอาต์พุตมาตรฐานตามค่าเริ่มต้น ถ้า
ตั้งค่าตัวเลือกการเข้ารหัสใด ๆ จากนั้นวลีรหัสผ่านจะได้รับแจ้ง ผลลัพธ์
ชื่อไฟล์ควร ไม่ เหมือนกับชื่อไฟล์อินพุต
-ส่งออกไป หาเรื่อง
แหล่งที่มารหัสผ่านของไฟล์ที่ส่งออก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบของ หาเรื่อง ดู
PASS วลี อาร์กิวเมนต์ ส่วนเข้า OpenSSL(1)
-ไม่มีการเข้ารหัส
สร้างหรือป้อนข้อมูลคีย์ PKCS#8 ตามปกติ โครงสร้าง PKCS#8 EncryptedPrivateKeyInfo
โดยใช้อัลกอริธึมการเข้ารหัสตามรหัสผ่านที่เหมาะสม ด้วยตัวเลือกนี้และ
โครงสร้าง PrivateKeyInfo ที่ไม่ได้เข้ารหัสเป็นที่คาดไว้หรือส่งออก ตัวเลือกนี้ไม่
เข้ารหัสคีย์ส่วนตัวเลย และควรใช้เมื่อจำเป็นเท่านั้น แน่ใจ
ซอฟต์แวร์ เช่น ซอฟต์แวร์ลงนามโค้ด Java บางเวอร์ชันที่ใช้ส่วนตัวที่ไม่ได้เข้ารหัส
กุญแจ
-nooct
ตัวเลือกนี้สร้างคีย์ส่วนตัว RSA ในรูปแบบที่ใช้งานไม่ได้ซึ่งซอฟต์แวร์บางตัวใช้
โดยเฉพาะคีย์ส่วนตัวควรอยู่ใน OCTET STRING แต่ซอฟต์แวร์บางตัว
เพียงแค่รวมโครงสร้างเองโดยไม่มี OCTET STRING โดยรอบ
-ฝัง
ตัวเลือกนี้สร้างคีย์ DSA ในรูปแบบที่ใช้งานไม่ได้ พารามิเตอร์ DSA ถูกฝังอยู่
ภายในโครงสร้าง PrivateKey ในรูปแบบนี้ OCTET STRING มี ASN1
SEQUENCE ประกอบด้วยสองโครงสร้าง: SEQUENCE ที่มีพารามิเตอร์และ an
ASN1 INTEGER ที่มีคีย์ส่วนตัว
-nsdb
ตัวเลือกนี้สร้างคีย์ DSA ในรูปแบบที่ใช้งานไม่ได้ซึ่งเข้ากันได้กับคีย์ส่วนตัวของ Netscape
ฐานข้อมูล PrivateKey มีลำดับซึ่งประกอบด้วยสาธารณะและส่วนตัว
คีย์ตามลำดับ
-v2 ALG
ตัวเลือกนี้ทำให้สามารถใช้อัลกอริธึม PKCS#5 v2.0 ได้ ปกติ PKCS#8 คีย์ส่วนตัว
ถูกเข้ารหัสด้วยอัลกอริธึมการเข้ารหัสตามรหัสผ่านที่เรียกว่า pbeWithMD5และDES-CBC
ใช้การเข้ารหัส DES 56 บิต แต่เป็นอัลกอริธึมการเข้ารหัสที่แข็งแกร่งที่สุด
รองรับใน PKCS#5 v1.5 ใช้ -v2 ตัวเลือกอัลกอริธึม PKCS#5 v2.0 ใช้ซึ่ง
สามารถใช้อัลกอริธึมการเข้ารหัสใด ๆ เช่น 168 บิต Triple DES หรือ 128 บิต RC2 ได้อย่างไรก็ตาม
การใช้งานจำนวนมากยังรองรับ PKCS#5 v2.0 หากคุณเพียงแค่ใช้คีย์ส่วนตัวกับ
OpenSSL ถ้าอย่างนั้นก็ไม่สำคัญ
การขอ ALG อาร์กิวเมนต์คืออัลกอริธึมการเข้ารหัสที่ใช้ ค่าที่ถูกต้องรวมถึง ของ, des3
และ rc2. ขอแนะนำว่า des3 ถูกนำมาใช้.
-v2prf ALG
ตัวเลือกนี้ตั้งค่าอัลกอริทึม PRF เพื่อใช้กับ PKCS#5 v2.0 ค่านิยมทั่วไป
อยากจะเป็น hmacด้วยSHA256. หากไม่ได้ตั้งค่าตัวเลือกนี้ ค่าเริ่มต้นสำหรับการเข้ารหัสคือ
ใช้หรือ hmacด้วยSHA1 หากไม่มีค่าเริ่มต้น
-v1 ALG
ตัวเลือกนี้ระบุอัลกอริทึม PKCS#5 v1.5 หรือ PKCS#12 ที่จะใช้ รายการทั้งหมดของ
อัลกอริทึมที่เป็นไปได้รวมอยู่ด้านล่าง
- เครื่องยนต์ id
การระบุเครื่องยนต์ (โดยเอกลักษณ์ของมัน id string) จะทำให้ pkcs8 เพื่อพยายามที่จะได้รับ
การอ้างอิงการทำงานกับเอ็นจิ้นที่ระบุ ดังนั้นจึงเริ่มต้นได้หากจำเป็น NS
เอ็นจิ้นจะถูกตั้งค่าเป็นค่าเริ่มต้นสำหรับอัลกอริธึมที่มีอยู่ทั้งหมด
หมายเหตุ
รูปแบบที่เข้ารหัสของไฟล์ PEM ที่เข้ารหัส PKCS#8 ใช้ส่วนหัวและส่วนท้ายต่อไปนี้:
----- เริ่มเข้ารหัสคีย์ส่วนตัว -----
----- สิ้นสุดรหัสส่วนตัวที่เข้ารหัส -----
แบบฟอร์มที่ไม่ได้เข้ารหัสใช้:
----- เริ่มต้นคีย์ส่วนตัว -----
----- สิ้นสุดคีย์ส่วนตัว -----
คีย์ส่วนตัวเข้ารหัสโดยใช้อัลกอริธึม PKCS#5 v2.0 และจำนวนการวนซ้ำที่สูงนั้นมากกว่า
ปลอดภัยที่เข้ารหัสโดยใช้รูปแบบที่เข้ากันได้กับ SSLeay แบบดั้งเดิม ดังนั้นถ้า
การรักษาความปลอดภัยเพิ่มเติมถือเป็นสิ่งสำคัญที่ควรแปลงกุญแจ
การเข้ารหัสเริ่มต้นเพียง 56 บิตเพราะเป็นการเข้ารหัสที่เป็นปัจจุบันมากที่สุด
การใช้งาน PKCS#8 จะรองรับ
ซอฟต์แวร์บางตัวอาจใช้อัลกอริธึมการเข้ารหัสที่ใช้รหัสผ่าน PKCS#12 ด้วยรูปแบบ PKCS#8
คีย์ส่วนตัว: สิ่งเหล่านี้ได้รับการจัดการโดยอัตโนมัติ แต่ไม่มีตัวเลือกในการสร้าง
เป็นไปได้ที่จะเขียนคีย์ส่วนตัวที่เข้ารหัส DER ที่เข้ารหัสในรูปแบบ PKCS#8 เนื่องจาก
รายละเอียดการเข้ารหัสจะรวมอยู่ในระดับ ASN1 ในขณะที่รูปแบบดั้งเดิม
รวมไว้ในระดับ PEM
PKCS # 5 v1.5 และ PKCS # 12 อัลกอริทึม
สามารถใช้อัลกอริธึมต่างๆ กับ -v1 ตัวเลือกบรรทัดคำสั่ง รวมถึง PKCS#5 v1.5 และ
พีเคซีเอส#12. มีการอธิบายรายละเอียดเพิ่มเติมด้านล่าง
PBE-MD2-DES PBE-MD5-DES
อัลกอริธึมเหล่านี้รวมอยู่ในข้อกำหนด PKCS#5 v1.5 ดั้งเดิม พวกเขาเท่านั้น
เสนอการป้องกัน 56 บิตเนื่องจากทั้งคู่ใช้ DES
PBE-SHA1-RC2-64 PBE-MD2-RC2-64 PBE-MD5-RC2-64 PBE-SHA1-DES
อัลกอริธึมเหล่านี้ไม่ได้กล่าวถึงในข้อกำหนด PKCS#5 v1.5 ดั้งเดิม แต่เป็น
ใช้อัลกอริธึมการได้มาซึ่งคีย์เดียวกันและได้รับการสนับสนุนโดยซอฟต์แวร์บางตัว พวกเขาคือ
กล่าวถึงใน PKCS#5 v2.0 พวกเขาใช้ 64 บิต RC2 หรือ 56 บิต DES
PBE-SHA1-RC4-128 PBE-SHA1-RC4-40 PBE-SHA1-3DES PBE-SHA1-2DES PBE-SHA1-RC2-128
PBE-SHA1-RC2-40
อัลกอริธึมเหล่านี้ใช้อัลกอริธึมการเข้ารหัสตามรหัสผ่าน PKCS#12 และอนุญาตให้แข็งแกร่ง
อัลกอริธึมการเข้ารหัสเช่น Triple DES หรือ 128 บิต RC2 ที่จะใช้
ตัวอย่าง
แปลงรูปแบบส่วนตัวจากแบบดั้งเดิมเป็นรูปแบบ PKCS#5 v2.0 โดยใช้ DES สามตัว:
opensl pkcs8 -in key.pem -topk8 -v2 des3 -out enckey.pem
แปลงส่วนตัวจากรูปแบบดั้งเดิมเป็นรูปแบบ PKCS#5 v2.0 โดยใช้ AES ที่มี 256 บิตใน CBC
โหมดและ hmacด้วยSHA256 พีอาร์เอฟ:
openssl pkcs8 -in key.pem -topk8 -v2 aes-256-cbc -v2prf hmacWithSHA256 - ออก enckey.pem
แปลงคีย์ส่วนตัวเป็น PKCS#8 โดยใช้อัลกอริทึมที่เข้ากันได้กับ PKCS#5 1.5 (DES):
opensl pkcs8 -in key.pem -topk8 -out enckey.pem
แปลงคีย์ส่วนตัวเป็น PKCS#8 โดยใช้อัลกอริธึมที่เข้ากันได้กับ PKCS#12 (3DES):
opensl pkcs8 -in key.pem -topk8 -out enckey.pem -v1 PBE-SHA1-3DES
อ่านคีย์ส่วนตัวรูปแบบ PKCS#8 ที่ไม่ได้เข้ารหัสของ DER:
openssl pkcs8 - แจ้ง DER -nocrypt -in key.der -out key.pem
แปลงคีย์ส่วนตัวจากรูปแบบ PKCS#8 เป็นรูปแบบดั้งเดิม:
opensl pkcs8 - เข้า pk8.pem - ออก key.pem
มาตรฐาน
เวกเตอร์ทดสอบจากการใช้งาน PKCS#5 v2.0 นี้ถูกโพสต์ไปยังรายการส่งเมล pkcs-tng
ใช้ DES สามตัว DES และ RC2 ที่มีจำนวนการวนซ้ำสูง หลายคนยืนยันว่า
พวกเขาสามารถถอดรหัสคีย์ส่วนตัวที่สร้างขึ้นและดังนั้นจึงสามารถสันนิษฐานได้ว่า
การใช้งาน PKCS#5 v2.0 นั้นถูกต้องตามสมควรอย่างน้อยก็เท่ากับอัลกอริทึมเหล่านี้
เกี่ยวข้อง
รูปแบบของคีย์ส่วนตัว PKCS#8 DSA (และอื่น ๆ ) ไม่ได้รับการบันทึกไว้อย่างดี: มันถูกซ่อนไว้
ห่างออกไปใน PKCS#11 v2.01, ส่วน 11.9. รูปแบบคีย์ส่วนตัว DSA PKCS#8 เริ่มต้นของ OpenSSL
เป็นไปตามมาตรฐานนี้
ใช้ pkcs8ssl ออนไลน์โดยใช้บริการ onworks.net
