
प्रायोगिक RP2040 FIDO2/WebAuthn प्रमाणक, पैक्ड अटेस्टेशन और प्रलेखित Windows/Entra अंतर-संचालनीयता के साथ
Karaaslan Labs द्वारा प्रायोगिक ओपन-सोर्स RP2040 FIDO2/WebAuthn प्रमाणक इंजीनियरिंग और अंतर-संचालनीयता परियोजना।
स्थिति: इंजीनियरिंग/अनुसंधान परियोजना। FIDO Alliance प्रमाणित नहीं। यह वाणिज्यिक उच्च-आश्वासन सुरक्षा टोकन नहीं है।
KL सुरक्षा कुंजी polhenarejos/pico-fido का एक क्यूरेटेड व्युत्पन्न है। यह पता लगाता है कि पहचान, प्रमाणन, सत्यापन साक्ष्य और विश्वास सीमाओं को स्पष्ट रखते हुए एक कम-लागत वाले RP2040 बोर्ड को भौतिक WebAuthn प्रमाणक के रूप में कितनी दूर तक ले जाया जा सकता है।
| क्षेत्र | वर्तमान इंजीनियरिंग संदर्भ |
|---|---|
| हार्डवेयर | 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 प्रमाणित नहीं |
परियोजना एक व्यावहारिक प्रश्न से शुरू हुई: क्या एक सस्ता डेवलपमेंट बोर्ड वास्तविक WebAuthn साइन-इन के लिए एक उपयोगी भौतिक सुरक्षा कुंजी बन सकता है, बिना इंजीनियरिंग समझौतों को छिपाए?
दिलचस्प काम केवल RP2040 पर FIDO2 चलाना नहीं निकला। कठिन हिस्से थे प्रमाणक पहचान, भौतिक उपयोगकर्ता उपस्थिति, प्रमाणन, Windows व्यवहार, पुनरुत्पादनीय स्रोत परिवर्तन, निर्भर-पक्ष अंतर-संचालनीयता और यह जानना कि साक्ष्य वास्तव में क्या सिद्ध करता है — और क्या नहीं।
MicrosoftCtapHidProvider।U2fProtocol=false के साथ CTAP2 पथ देखा गया।Entra परिणाम एक अंतर-संचालनीयता परिणाम है, Microsoft प्रमाणन या वैश्विक प्रमाणक मान्यता नहीं। सटीक सीमा के लिए docs/interoperability-case-study.md देखें।
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 संदर्भ प्रोफ़ाइल का हिस्सा नहीं हैं।
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
बिल्ड भौतिक उपयोगकर्ता-उपस्थिति प्रवर्तन, FIDO-केवल रनटाइम प्रोफ़ाइल और packed-प्रमाणन पथ को सक्षम करता है। वैध प्रमाणन कुंजी/प्रमाणपत्र सामग्री अलग से प्रावधानित की जानी चाहिए; निजी प्रमाणन कुंजियाँ इस रिपॉजिटरी द्वारा प्रकाशित या स्वतः-प्रावधानित नहीं की जाती हैं।
यह रिपॉजिटरी दावा नहीं करती:
संदर्भ को इंजीनियरिंग/अनुसंधान प्रमाणक से परे कुछ भी मानने से पहले THREAT-MODEL.md पढ़ें।
| दस्तावेज़ | उद्देश्य |
|---|---|
docs/architecture.md | रनटाइम प्रोफ़ाइल, स्रोत लेआउट और इंजीनियरिंग सीमाएँ |
docs/attestation-and-pki.md | AAGUID, packed प्रमाणन और PKI मॉडल |
docs/validation-evidence.md | भौतिक-संदर्भ और क्यूरेटेड-स्रोत सत्यापन साक्ष्य |
docs/interoperability-case-study.md | निर्भर-पक्ष / Microsoft Entra अंतर-संचालनीयता साक्ष्य और सीमाएँ |
docs/windows-webauthn-debugging.md | साक्ष्य-नेतृत्व वाला Windows/WebAuthn डिबगिंग वर्कफ़्लो |
THREAT-MODEL.md | खतरा मॉडल और सुरक्षा गैर-दावे |
UPSTREAM.md | अपस्ट्रीम उद्गम और व्युत्पन्न परिवर्तन |
SECURITY.md | भेद्यता रिपोर्टिंग और सुरक्षा नीति |
pico-keys-sdk सबमॉड्यूल एक ज्ञात अपस्ट्रीम कमिट पर पिन किया गया है। KL-विशिष्ट SDK परिवर्तन scripts/apply-sdk-overlay.py द्वारा लागू किए जाते हैं, जो सटीक-कमिट-पिन किया गया है और अप्रत्याशित स्रोत स्थिति पर फेल-क्लोज़ करता है।
यह सार्वजनिक रिपॉजिटरी जानबूझकर KL सुरक्षा कुंजी संदर्भ पथ के आसपास क्यूरेट की गई है। असंबंधित विरासत अनुसंधान आर्टिफैक्ट और लीगेसी रिलीज़ हेल्पर प्रकाशित KL सतह का हिस्सा नहीं हैं; अपस्ट्रीम उद्गम UPSTREAM.md और Git इतिहास में प्रलेखित रहता है।
बाइनरी वितरण जानबूझकर प्रारंभिक प्रकाशन लक्ष्य नहीं है जब तक USB पहचान/वितरण आवश्यकताएँ अनसुलझी रहती हैं। स्रोत, दस्तावेज़ीकरण और सत्यापन पद्धति प्राथमिक आर्टिफैक्ट हैं।
सार्वजनिक प्रमाणन रूट प्रमाणपत्र certs/KL-Security-Key-Root-CA-v1.cert.pem पर उपलब्ध है। निजी रूट/डिवाइस कुंजियाँ कभी प्रकाशित नहीं की जाती हैं।
योगदान का स्वागत है जब वे छोटे, ऑडिट-योग्य और सुरक्षा प्रभाव के बारे में स्पष्ट हों। CONTRIBUTING.md से शुरू करें। अनपैच्ड भेद्यता के लिए सार्वजनिक इश्यू न खोलें; SECURITY.md का पालन करें।
KL सुरक्षा कुंजी polhenarejos/pico-fido से व्युत्पन्न है और polhenarejos/pico-keys-sdk का उपयोग करती है। स्रोत GNU Affero General Public License v3.0 के अंतर्गत रहता है; LICENSE, NOTICE.md और UPSTREAM.md देखें।
Karaaslan Labs अपस्ट्रीम Pico FIDO / Pico Keys SDK कार्य के लेखकत्व का दावा नहीं करता। मूल सूचनाएँ संरक्षित हैं और KL-विशिष्ट संशोधन अलग से प्रलेखित हैं।