ชุดข้อมูล PKCS #12 (.p12)
IETF มาตรฐานPKCS #12 (P12 หรือที่รู้จักกันในชื่อ PFX) คือรูปแบบคลังเก็บที่เข้ารหัสและป้องกันด้วยรหัสผ่าน ซึ่งออกแบบมาเพื่อจัดเก็บและขนส่งคีย์ส่วนตัวอย่างปลอดภัยควบคู่ไปกับใบรับรองสาธารณะ X.509 ที่ตรงกันและห่วงโซ่ CA
แปลง P12 เป็น PEM
ตัวแปลงจาก P12 เป็น PEM ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบและดู Metadata
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ P12 โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ P12 โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
30 82การแสดงผลรูปแบบ ASCII: 0\x82
มาตรฐาน: IETF RFC 7292 / PKCS #12 v1.1
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | Password-encrypted ASN.1 PFX structure encapsulating SafeBags holding private keys, certificates, and CRLs |
| การบีบอัด | Uncompressed cryptographic data |
| การจัดลำดับไบต์ (Byte Endianness) | Big-Endian ASN.1 DER |
| พื้นที่สี | N/A (Encrypted Key Store) |
| ช่องสัญญาณและโครงสร้าง | Private keys, Public certificates, Intermediate CA chains, and Root CA certificates |
| ขนาดสูงสุด | Typically 5 KB to 25 KB |
| ความโปร่งใส | Encrypted container (password-protected) |
| การสตรีมและแบบโปรเกรสซีฟ | Atomic encrypted archive extraction |
ตารางเปรียบเทียบทางเทคนิค: P12 กับคู่แข่ง
| คุณลักษณะทางเทคนิค | P12 (ปัจจุบัน) | PEM | CRT | DER |
|---|---|---|---|---|
| ความสามารถในการรวมชุด | คีย์ส่วนตัว + ห่วงโซ่ใบรับรองรวมอยู่ในที่เดียว | สามารถรวมกันในข้อความ, คีย์ที่ไม่ได้เข้ารหัส | เฉพาะใบรับรองเท่านั้น | คีย์ไบนารีเดี่ยวหรือใบรับรอง |
| การเข้ารหัส | ป้องกันด้วยรหัสผ่าน (AES-256) | รหัสผ่านเสริมบนคีย์ส่วนตัว | ใบรับรองสาธารณะที่ไม่ได้เข้ารหัส | ไบนารีที่ไม่ได้เข้ารหัส |
| Apple iOS & macOS | มาตรฐานการส่งออกตัวตนดั้งเดิม | ใช้ผ่านบรรทัดคำสั่ง | นำเข้าเป็นใบรับรอง | นำเข้าเป็นคีย์ดิบ |
| สามารถใช้แทนกันได้กับ | .pfx (รูปแบบเดียวกัน) | .crt, .key | .cer | .asn1 |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ข้อผิดพลาดในการแยก: 'Mac verify error: invalid password' ทั้งๆ ที่พิมพ์รหัสผ่านถูกต้อง
สาเหตุหลัก: การตั้งค่าเริ่มต้นของ OpenSSL 3.0 ปฏิเสธ algorithm การเข้ารหัส 3DES/RC2 รุ่นเก่าที่อยู่ภายในไฟล์ P12 ที่เก่ากว่า
การกู้คืน: เข้ารหัสใหม่ด้วย AES-256 สมัยใหม่โดยใช้เครื่องมือใบรับรอง File2File
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
คอนเทนเนอร์ P12 บรรจุคีย์ส่วนตัวที่สำคัญ โดยต้องอัปเดตตัวเข้ารหัสรุ่นเก่าให้เป็นมาตรฐาน AES สมัยใหม่
เวกเตอร์การโจมตีที่ทราบ
- การโจมตีด้วยรหัสผ่านแบบ Brute-force กับคลังเก็บ P12 ที่เข้ารหัสอย่างอ่อนแอโดยใช้จำนวนรอบต่ำ
- การใช้ประโยชน์จากตัวเข้ารหัส RC2-40-CBC รุ่นเก่าที่อ่อนแอในไฟล์ P12 เก่า
- การรั่วไหลของหน่วยความจำของคีย์ส่วนตัวที่ถอดรหัสแล้วในบัฟเฟอร์หน่วยความจำที่ไม่ได้ป้องกัน
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- การรวมแพ็กเกจแบบ All-in-one: รวมคีย์ส่วนตัว, ใบรับรองสาธารณะ และห่วงโซ่ CA ระดับกลางที่สมบูรณ์ไว้ในไฟล์เดียวที่ปลอดภัย
- การเข้ารหัสที่ป้องกันด้วยรหัสผ่าน: คีย์ส่วนตัวถูกเข้ารหัสโดยใช้ AES-256 หรือ 3DES ทำให้ปลอดภัยในการถ่ายโอน
- รูปแบบใบรับรองไคลเอ็นต์มาตรฐานสำหรับการตรวจสอบความถูกต้องของเว็บเบราว์เซอร์และโปรไฟล์การลงนามโค้ดสำหรับนักพัฒนา Apple iOS
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ต้องใช้รหัสผ่านในการแยก: การลืมรหัสผ่านจะทำให้คีย์ส่วนตัวไม่สามารถกู้คืนได้ถาวร
- ไฟล์ P12 รุ่นเก่าใช้อัลกอริทึมการเข้ารหัส 3DES หรือ RC2 ที่อ่อนแอ ซึ่งทริกเกอร์คำเตือนใน OpenSSL 3.0 สมัยใหม่
- รูปแบบไบนารีไม่สามารถตรวจสอบด้วยสายตาได้โดยไม่มีเครื่องมือสกัดทางเข้ารหัสลับ
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- นามสกุลไฟล์ '.p12' และ '.pfx' สามารถใช้แทนกันได้ 100% และอ้างอิงถึงรูปแบบเดียวกันทุกประการ
- ใบรับรองนักพัฒนา Apple iOS และโปรไฟล์การจัดเตรียมจะถูกแจกจ่ายเป็นไฟล์ .p12 เพื่อลงนามแอป iPhone
- OpenSSL 3.0 เลิกใช้ PKCS#12 รุ่นเก่า (RC2-40-CBC) แล้ว ซึ่งต้องใช้แฟล็ก '-legacy' เพื่อเปิดไฟล์ P12 รุ่นเก่า
คำถามทางเทคนิคที่พบบ่อย
ความแตกต่างระหว่าง .p12 และ .pfx คืออะไร
ไม่มีความแตกต่างกัน .pfx เป็นรูปแบบเดิมของ Microsoft ซึ่งได้รับการมาตรฐานโดย RSA Laboratories เป็น PKCS #12 (.p12) ปัจจุบันนามสกุลทั้งสองอ้างถึงรูปแบบเดียวกันทุกประการ
ฉันจะดึงคีย์ส่วนตัวออกจากไฟล์ .p12 ได้อย่างไร
คุณสามารถดึงคีย์ส่วนตัวและใบรับรองสาธารณะออกมาเป็นไฟล์ .pem ที่สะอาดได้ในเวลาไม่กี่วินาทีโดยใช้ File2File.app บนเว็บเบราว์เซอร์ของคุณ
เหตุใดไฟล์ P12 ของฉันจึงต้องมีรหัสผ่าน
เนื่องจากไฟล์ P12 มีคีย์ส่วนตัวที่ละเอียดอ่อนของคุณ จึงได้รับการเข้ารหัสด้วยรหัสผ่านเพื่อป้องกันไม่ให้ผู้ที่ไม่ได้รับอนุญาตขโมยตัวตนดิจิทัลของคุณ
คู่การแปลงไฟล์ P12 ที่เกี่ยวข้อง
การแปลงชุดข้อมูล PKCS #12 เป็นใบรับรอง PEM จะดึงคีย์สาธารณะและคีย์ส่วนตัวออกจากคลังเก็บไฟล์ไบนารีที่ถูกล็อกให้อยู่ในรูปไฟล์ข้อความธรรมดาสำหรับเว็บเซิร์ฟเวอร์
การแปลงใบรับรอง PEM เป็นชุดข้อมูล PKCS #12 จะรวมใบรับรองสาธารณะและคีย์ส่วนตัวของคุณไว้ในไฟล์เดียวที่มีรหัสผ่านป้องกัน เพื่อความสะดวกในการติดตั้งบนเซิร์ฟเวอร์ Windows และเว็บเบราว์เซอร์