
प्रायोगिक RP2040 FIDO2/WebAuthn प्रमाणक, पैक्ड अटेस्टेशन और प्रलेखित Windows/Entra अंतर-संचालनीयता के साथ
Karaaslan Labs द्वारा प्रायोगिक ओपन-सोर्स RP2040 FIDO2/WebAuthn प्रमाणक इंजीनियरिंग और अंतर-संचालनीयता परियोजना।
स्थिति: इंजीनियरिंग/अनुसंधान परियोजना। FIDO Alliance प्रमाणित नहीं। वाणिज्यिक उच्च-आश्वासन सुरक्षा टोकन नहीं।
साक्ष्य सीमा: नीचे दिए गए वास्तविक-उपकरण अवलोकन फ़्रीज़ किए गए v5.2 से संबंधित हैं। v5.3 सुदृढ़ीकरण कार्य केवल ऑफ़-डिवाइस है और इसे भौतिक संदर्भ पर स्थापित या सत्यापित नहीं किया गया है।
KL सुरक्षा कुंजी polhenarejos/pico-fido का एक क्यूरेटेड व्युत्पन्न है। यह पता लगाती है कि पहचान, प्रमाणन, सत्यापन साक्ष्य और विश्वास सीमाओं को स्पष्ट रखते हुए एक कम लागत वाले RP2040 बोर्ड को भौतिक WebAuthn प्रमाणक के रूप में कितनी दूर तक ले जाया जा सकता है।
| क्षेत्र | फ़्रीज़ किया गया v5.2 भौतिक संदर्भ |
|---|---|
| हार्डवेयर | RP2040 USB विकास बोर्ड |
| ट्रांसपोर्ट | USB FIDO HID |
| CTAP/GetInfo संस्करण | FIDO_2_0, FIDO_2_1, FIDO_2_3 |
| उपयोगकर्ता उपस्थिति / सत्यापन | भौतिक बटन + PIN/UV समर्थन |
| प्रमाणन | Packed ES256, x5c, उपकरण-विशिष्ट प्रमाणपत्र |
| AAGUID | d9359dc7-6938-5822-b951-006507247d8f |
| अंतर-संचालनीयता | Windows WebAuthn + टेनेंट-स्थानीय Microsoft Entra सत्यापन |
| वितरण | स्रोत-प्रथम; कोई KL फ़र्मवेयर बाइनरी रिलीज़ नहीं |
| सुरक्षित तत्व | कोई नहीं |
| प्रमाणन | FIDO Alliance प्रमाणित नहीं |
main स्रोत-संदर्भ बिल्ड scripts/build-kl-reference.sh में -DPICO_BOARD=pico चुनता है, जो 2 MiB बाहरी फ़्लैश वाले मानक Raspberry Pi Pico बोर्ड कॉन्फ़िगरेशन को लक्षित करता है। पृथक v5.3 ऑफ़-डिवाइस बिल्डर भी -DPICO_BOARD=pico चुनता है; इसका UF2 आउटपुट सत्यापनकर्ता Pico 2 MiB फ़्लैश पता विंडो की जाँच करता है। ये स्रोत/बिल्ड बाधाएँ हैं, प्रत्येक RP2040 बोर्ड का भौतिक सत्यापन नहीं।
अन्य RP2040 बोर्डों में भिन्न फ़्लैश क्षमता या बोर्ड कॉन्फ़िगरेशन हो सकते हैं। अपस्ट्रीम Pico FIDO issue #278 एक बड़े-फ़्लैश बोर्ड पर पहले-WebAuthn-ऑपरेशन विफलता का दस्तावेज़ीकरण करता है जब फ़र्मवेयर की कंपाइल-टाइम फ़्लैश सीमा इसके रनटाइम लेआउट से मेल नहीं खाती थी। वह अपस्ट्रीम निष्कर्ष पुनरुत्पादित KL सुरक्षा कुंजी विफलता नहीं है, लेकिन यह दर्शाता है कि केवल RP2040 चिप का मिलान करना अनुकूलता का पर्याप्त साक्ष्य क्यों नहीं है।
यह न मानें कि KL संदर्भ फ़र्मवेयर मनमाने RP2040 बोर्डों पर काम करता है, या केवल सफल बिल्ड या वैध UF2 फ़्रेमिंग के आधार पर किसी उपकरण को फ़्लैश करें। यहाँ कोई वैकल्पिक-बोर्ड अनुकूलता, नया हार्डवेयर परीक्षण, या फ़र्मवेयर बाइनरी वितरण का दावा नहीं किया गया है। फ़्रीज़ किया गया v5.2 भौतिक संदर्भ नहीं बदला गया है।
परियोजना एक व्यावहारिक प्रश्न से शुरू हुई: क्या एक सस्ता विकास बोर्ड वास्तविक WebAuthn साइन-इन के लिए उपयोगी भौतिक सुरक्षा कुंजी बन सकता है, बिना इंजीनियरिंग समझौतों को छिपाए?
दिलचस्प काम केवल RP2040 पर FIDO2 चलाना नहीं निकला। कठिन हिस्से थे प्रमाणक पहचान, भौतिक उपयोगकर्ता उपस्थिति, प्रमाणन, Windows व्यवहार, पुनरुत्पादनीय स्रोत परिवर्तन, निर्भर-पक्ष अंतर-संचालनीयता और यह जानना कि साक्ष्य वास्तव में क्या सिद्ध करता है — और क्या नहीं।
इस अनुभाग के परिणाम संरक्षित v5.2 उपकरण के साथ प्राप्त किए गए थे और इन्हें बाद के स्रोत या प्रायोगिक फ़र्मवेयर बिल्डों के लिए नहीं ठहराया जाना चाहिए। फ़्रीज़ किए गए UF2 SHA-256 और परीक्षण सीमाओं के लिए docs/validation-evidence.md देखें।
MicrosoftCtapHidProvider।U2fProtocol=false के साथ CTAP2 पथ देखा गया।Entra परिणाम एक अंतर-संचालनीयता परिणाम है, Microsoft प्रमाणन या वैश्विक authenticator मान्यता नहीं। सटीक सीमा के लिए docs/interoperability-case-study.md देखें।
वर्तमान HID/APDU/OTP हार्डनिंग को Draft PR #7 में ट्रैक किया गया है। इसमें पैच-आधारित SDK एकीकरण पथ, होस्ट-साइड रिग्रेशन परीक्षण, और स्थानीय पृथक ARM बिल्ड साक्ष्य शामिल हैं। ये जाँचें लाइव-डिवाइस परीक्षण, पूर्ण FIDO अनुरूपता परीक्षण, प्रमाणन, या उत्पादन रिलीज़ नहीं हैं। GitHub Actions होस्ट/स्रोत परीक्षण और प्रकाशन जाँच चलाता है; पूर्ण ARM बिल्ड स्थानीय रूप से सत्यापित किए गए हैं, GitHub Actions में नहीं।
main शाखा और उसका संदर्भ बिल्ड स्वचालित रूप से अविलयित v5.3 पैच शामिल नहीं करते। वर्तमान प्रयोगात्मक साक्ष्य और शेष अवरोधकों के लिए, ऐतिहासिक UF2 हैश या व्यक्तिगत परीक्षण पास को नवीनतम हार्डवेयर स्थिति मानने के बजाय PR #7 का उपयोग करें। इस कार्य से कोई भी फर्मवेयर बाइनरी डाउनलोड या फ्लैशिंग के लिए प्रस्तुत नहीं की गई है।
flowchart LR
RP["Relying party / Microsoft Entra"] --> WA["Browser + Windows WebAuthn"]
WA --> CTAP["CTAP2 over USB HID"]
CTAP --> KEY["KL Security Key<br/>RP2040"]
KEY --> AT["Packed ES256 attestation<br/>device-specific key + x5c"]
AT --> ROOT["KL Security Key Root CA"]
मान्य रनटाइम जानबूझकर संकीर्ण है: FIDO HID सुरक्षा-कुंजी इंटरफ़ेस है; असंबंधित कीबोर्ड/CCID-शैली रनटाइम इंटरफ़ेस KL संदर्भ प्रोफ़ाइल का हिस्सा नहीं हैं।
main स्रोत संदर्भ प्रोफ़ाइल बनाएँgit clone --recurse-submodules https://github.com/karaaslanlabs/kl-security-key.git
cd kl-security-key
export PICO_SDK_PATH=/path/to/pico-sdk
export PICO_TOOLCHAIN_PATH=/path/to/arm-none-eabi-toolchain
./scripts/build-kl-reference.sh
main बिल्ड भौतिक उपयोगकर्ता-उपस्थिति प्रवर्तन, FIDO-केवल रनटाइम प्रोफ़ाइल और पैक्ड-एटेस्टेशन पथ को सक्षम करता है; यह असामान्यीकृत (unmerged) v5.3 परिवर्तनों का बिल्ड नहीं है। वैध एटेस्टेशन कुंजी/प्रमाणपत्र सामग्री अलग से प्रावधानित की जानी चाहिए; निजी एटेस्टेशन कुंजियाँ इस रिपॉज़िटरी द्वारा प्रकाशित या स्वतः-प्रावधानित नहीं की जाती हैं। UF2 बनाना किसी डिवाइस को फ़्लैश करने का अधिकार नहीं देता है।
यह रिपॉज़िटरी निम्नलिखित का दावा नहीं करती है:
संदर्भ को किसी इंजीनियरिंग/अनुसंधान प्रमाणक से परे कुछ भी मानने से पहले THREAT-MODEL.md पढ़ें।