Gói PKCS #12 (.p12)

IETF Tiêu chuẩn

PKCS #12 (P12/PFX) là định dạng vùng chứa có thể lưu trữ khóa riêng, chứng chỉ và dữ liệu liên quan. Tùy cách tạo, tệp có thể được bảo vệ bằng mật khẩu hoặc không được mã hóa.

Chuyển đổi P12 sang PEM

Trình chuyển đổi từ P12 sang PEM miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạn.

Kiểm tra & Siêu dữ liệu

Các hệ điều hành và trình phân tích tệp nhận dạng tệp P12 bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

Chọn hoặc thả tệp vào đây

Riêng tư - tệp không bao giờ rời khỏi thiết bị của bạn

Hoặc dán Ctrl+V
Cam kết bảo vệ quyền riêng tư, không truyền dữ liệu qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

Chữ ký ở đầu tệp (mẫu byte nhận diện)

Các hệ điều hành và trình phân tích tệp nhận dạng tệp P12 bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

CHỮ KÝ HEX (OFFSET 0):

30

BIỂU DIỄN ASCII: 0

Tiêu chuẩn hóa: IETF RFC 7292 / PKCS #12 v1.1

Thông số kỹ thuật

Kiến trúc ContainerCấu trúc PFX ASN.1 mã hóa bằng mật khẩu, chứa SafeBag lưu khóa riêng, chứng chỉ và CRL
NénDữ liệu mật mã không nén
Thứ tự byteASN.1 DER big-endian
Không gian màuKhông áp dụng (kho khóa mã hóa)
Kênh & Cấu trúcKhóa riêng, chứng chỉ công khai, chuỗi CA trung gian và chứng chỉ CA gốc
Kích thước tối đaThông thường 5 KB đến 25 KB
Độ trong suốtVùng chứa được mã hóa (bảo vệ bằng mật khẩu)
Truyền phát & Tăng dầnTrích xuất kho lưu trữ mã hóa nguyên tử

Ma trận so sánh kỹ thuật: P12 so với các đối thủ

Thuộc tính kỹ thuậtP12 (Hiện tại)PEMCRTDER
Khả năng góiKhóa riêng tư + chuỗi chứng chỉ trong cùng một góiCó thể kết hợp trong văn bản, khóa chưa mã hóaChỉ chứng chỉMột khóa hoặc chứng chỉ nhị phân
Mã hóaMã hóa bằng mật khẩu (AES-256)Cụm mật khẩu tùy chọn trên khóa riêng tưChứng chỉ công khai chưa mã hóaNhị phân chưa mã hóa
Apple iOS & macOSTiêu chuẩn xuất định danh gốcSử dụng qua dòng lệnhĐược nhập dưới dạng chứng chỉĐược nhập dưới dạng khóa thô
Có thể thay thế cho.pfx (định dạng giống hệt).crt, .key.cer.asn1

Các dạng hỏng thường gặp và hướng dẫn khôi phục bằng mã hex

Lỗi trích xuất: 'Mac verify error: invalid password' mặc dù đã gõ đúng mật khẩu.

Nguyên nhân gốc rễ: Cài đặt mặc định của OpenSSL 3.0 từ chối các thuật toán mã hóa 3DES/RC2 cũ bên trong các tệp P12 cũ hơn.

Khắc phục: Mã hóa lại bằng AES-256 hiện đại sử dụng Công cụ Chứng chỉ File2File.app.

Phân tích bảo mật và các đường tấn công nhằm vào bộ phân tích cú pháp

Các vùng chứa P12 lưu giữ các khóa riêng tư quan trọng; các mật mã mã hóa cũ phải được cập nhật theo tiêu chuẩn AES hiện đại.

Các véc-tơ tấn công đã biết

  • Tấn công vét cạn mật khẩu đối với các kho lưu trữ P12 được mã hóa yếu với số vòng lặp thấp.
  • Khai thác các mật mã yếu RC2-40-CBC cũ trong các tệp P12 cổ điển.
  • Rò rỉ bộ nhớ của các khóa riêng tư đã giải nén trong các bộ đệm bộ nhớ không được bảo vệ.

Biện pháp phòng thủ tốt nhất: Luôn sử dụng mật khẩu mạnh và mã hóa AES-256 hiện đại với PBKDF2/SHA-256 cho các tệp P12.

Nguồn gốc lịch sử và các cột mốc

2014IETF xuất bản RFC 7292, chuẩn hóa PKCS #12 v1.1 hiện đại với tính năng mã hóa AES.
2000Apple macOS Keychain và Microsoft Windows chuẩn hóa sử dụng PKCS #12 để truyền tải định danh kỹ thuật số người dùng.
1999RSA Laboratories phát hành PKCS #12 v1.0, thay thế cho định dạng PFX trước đó của Microsoft.

Ưu điểm & Lợi ích chính

  • Đóng gói tất cả trong một: gom khóa riêng tư, chứng chỉ công khai và toàn bộ chuỗi CA trung gian vào một tệp an toàn duy nhất.
  • Mã hóa bảo vệ bằng mật khẩu: khóa riêng tư được mã hóa bằng AES-256 hoặc 3DES, giúp truyền tải an toàn.
  • Định dạng chứng chỉ khách hàng tiêu chuẩn để xác thực trình duyệt web và cấu hình ký mã nhà phát triển Apple iOS.

Hạn chế & Nhược điểm kỹ thuật

  • Yêu cầu mật khẩu để giải nén: quên mật khẩu sẽ khiến khóa riêng tư không thể khôi phục vĩnh viễn.
  • Các tệp P12 cũ sử dụng thuật toán mã hóa 3DES hoặc RC2 yếu, gây ra cảnh báo trên OpenSSL 3.0 hiện đại.
  • Định dạng nhị phân không thể kiểm tra bằng trực quan mà không có các công cụ trích xuất mật mã.

Thông tin kỹ thuật thú vị

  • Phần mở rộng tệp '.p12' và '.pfx' có thể thay thế cho nhau 100% và trỏ đến cùng một định dạng chính xác.
  • Chứng chỉ và cấu hình cung cấp cho nhà phát triển Apple iOS được phân phối dưới dạng tệp .p12 để ký ứng dụng iPhone.
  • OpenSSL 3.0 đã ngừng hỗ trợ các thuật toán PKCS#12 cũ (RC2-40-CBC), yêu cầu cờ '-legacy' để mở các tệp P12 cũ.

Các câu hỏi kỹ thuật thường gặp

Sự khác biệt giữa .p12 và .pfx là gì?

Không có sự khác biệt. .pfx là định dạng tiền thân của Microsoft được chuẩn hóa bởi RSA Laboratories thành PKCS #12 (.p12). Ngày nay, cả hai phần mở rộng đều đề cập đến cùng một định dạng.

Làm cách nào để trích xuất khóa riêng tư từ tệp .p12?

Bạn có thể trích xuất khóa riêng tư và chứng chỉ công khai thành các tệp .pem sạch sẽ trong vài giây bằng cách sử dụng File2File.app trực tiếp trong trình duyệt web của bạn.

Tại sao tệp P12 của tôi cần mật khẩu?

Bởi vì các tệp P12 chứa khóa riêng tư nhạy cảm của bạn, chúng được mã hóa bằng mật khẩu để ngăn những người không có quyền truy cập đánh cắp danh tính kỹ thuật số của bạn.