
शुद्ध PQC दो-स्तरीय PKI पदानुक्रम: ML-DSA-65 (NIST FIPS 204) का उपयोग करते हुए EJBCA Community Edition पर — रूट CA + उप CA, CRL और OCSP के साथ
EJBCA सामुदायिक संस्करण का उपयोग करके दो-स्तरीय PKI पदानुक्रम में NIST FIPS 204 (ML-DSA) का एक व्यावहारिक कार्यान्वयन।
📖 पूर्ण वॉकथ्रू: एक पोस्ट-क्वांटम PKI का निर्माण: मैंने EJBCA पर ML-DSA का उपयोग करके रूट CA और उप CA पर हस्ताक्षर कैसे किया
दो अलग-अलग वर्चुअल मशीनों पर चलने वाला एक पूर्ण शुद्ध PQC PKI पदानुक्रम, प्रत्येक का अपना EJBCA कंटेनर है:
VM 1 — रूट CA
└─ ML-DSA-65 स्व-हस्ताक्षरित रूट CA
└─ CRL प्रकाशित और पहुँच योग्य
VM 2 — उप CA
└─ ML-DSA-65 उप CA, रूट CA द्वारा हस्ताक्षरित
└─ CRL प्रकाशित और पहुँच योग्य
└─ OCSP प्रतिक्रियाकर्ता सक्रिय
श्रृंखला में प्रत्येक प्रमाणपत्र — रूट CA, उप CA — विशेष रूप से ML-DSA-65 (NIST FIPS 204) के साथ हस्ताक्षरित है। कोई RSA नहीं। कोई ECDSA नहीं। पूरी तरह से शुद्ध PQC।
ML-DSA (पूर्व में CRYSTALS-Dilithium) NIST द्वारा FIPS 204 के तहत मानकीकृत पोस्ट-क्वांटम डिजिटल हस्ताक्षर एल्गोरिथ्म है। इस प्रयोगशाला के लिए Dilithium3 पैरामीटर सेट (ML-DSA-65) चुना गया था — यह 128-बिट पोस्ट-क्वांटम सुरक्षा प्रदान करता है और अधिकांश परिनियोजनों के लिए अनुशंसित सामान्य-उद्देश्य विकल्प है।
ejbca-pqc-lab/
├── README.md
├── root-ca/
│ └── setup-lab.sh # VM1 पर चलाएँ — रूट CA मशीन सेट करता है
└── sub-ca/
└── setup-lab.sh # VM2 पर चलाएँ — उप CA मशीन सेट करता है
chmod +x setup-lab.sh
sudo ./setup-lab.sh
पूरा होने पर, Admin UI तक पहुँचें:
https://<VM1_IP>:8443/ejbca/adminweb/
कंटेनर से superadmin.p12 को अपने ब्राउज़र में आयात करें:
docker cp ejbca:/opt/ejbca/p12/superadmin.p12 ~/superadmin.p12
डिफ़ॉल्ट पासवर्ड: ejbca
फिर रूट CA को मैन्युअल रूप से कॉन्फ़िगर करने के लिए Medium लेख का पालन करें।
chmod +x setup-lab.sh
sudo ./setup-lab.sh
पूरा होने पर, Admin UI तक पहुँचें:
https://<VM2_IP>:8443/ejbca/adminweb/
उसी तरह superadmin.p12 आयात करें, फिर उप CA को कॉन्फ़िगर करने के लिए Medium लेख का पालन करें।
ejbca-data वॉल्यूम बनाता हैdocker-compose.yml उत्पन्न करता हैसभी EJBCA कॉन्फ़िगरेशन Admin UI के माध्यम से मैन्युअल रूप से किया जाता है — प्रमाणपत्र प्रोफ़ाइल, क्रिप्टो टोकन, CA निर्माण, CRL सेटिंग्स, और OCSP। यह जानबूझकर है। स्क्रिप्ट प्लेटफ़ॉर्म को चलाने का काम करती है। Medium लेख प्रत्येक मैन्युअल निर्णय और उसके कारण का दस्तावेजीकरण करता है।
| घटक | CA | स्थिति |
|---|
ACME — ACME प्रोटोकॉल (RFC 8555) खाता कुंजी प्रमाणीकरण के लिए ML-DSA का समर्थन नहीं करता है। केवल RSA और ECDSA की अनुमति है। ACME को शामिल करने के लिए एक शास्त्रीय खाता कुंजी की आवश्यकता होगी, जो शुद्ध PQC कहानी को तोड़ देगी। IETF एक PQC ACME ड्राफ्ट पर काम कर रहा है। जब यह अंतिम रूप ले लेगा तो इस प्रयोगशाला को अपडेट किया जाएगा।
ब्राउज़र विश्वास — अभी तक कोई भी प्रमुख ब्राउज़र विश्वास भंडार ML-DSA को मान्यता नहीं देता है। यह एक निजी PKI प्रयोगशाला है, सार्वजनिक रूप से विश्वसनीय पदानुक्रम नहीं। यह अपेक्षित और सही है।
Mohammad Amin Kokash सुरक्षा अभियंता GitHub · Medium
MIT
| CRL | रूट CA | ✅ |
| CRL | उप CA | ✅ |
| OCSP | उप CA | ✅ |
| OCSP | रूट CA | ❌ लागू नहीं |