
ब्लूटूथ पर उपयोगकर्ता-अनुकूल लाइटवेट TPM रिमोट अटेस्टेशन
Ultrablue (ब्लूटूथ पर उपयोगकर्ता-अनुकूल हल्का टीपीएम रिमोट अटेस्टेशन) एक समाधान है जो व्यक्तिगत उपयोगकर्ताओं को अपने फ़ोन के साथ बूट स्टेट अटेस्टेशन करने की सुविधा देता है। इसमें एक सर्वर, जो कंप्यूटर पर चलता है और अटेस्टर के रूप में कार्य करता है, तथा एक ग्राफिकल क्लाइंट एप्लिकेशन, जो एक विश्वसनीय फ़ोन पर चलता है और वेरिफायर के रूप में कार्य करता है, शामिल है।
एक सामान्य उपयोग-मामला आपके कंप्यूटर को अनलॉक करने से पहले आपके बूटचेन की अखंडता को सत्यापित करना है, ताकि एक बिना निगरानी वाले लैपटॉप पर ऑफ़लाइन हमलों को रोका जा सके। यह फर्मवेयर अपग्रेड के बाद सिक्योर बूट समस्याओं के लिए एक डिबगिंग टूल या डिस्क एन्क्रिप्शन के लिए दूसरे कारक के रूप में भी काम कर सकता है।
एक बार इंस्टॉल हो जाने पर, क्लासिक Ultrablue नियंत्रण प्रवाह में कई चरण होते हैं:
Ultrablue का उपयोग करने के लिए एक Linux कंप्यूटर की आवश्यकता होती है जिसकी बूट स्थिति का अटेस्टेशन आप करना चाहते हैं, जिसमें एक TPM और एक Bluetooth इंटरफ़ेस (आमतौर पर एक लैपटॉप) हो, साथ ही एक मोबाइल फ़ोन भी।
किसी फ़ोन को वेरिफायर के रूप में नामांकित करने के लिए, सर्वर को एनरोल मोड में प्रारंभ करें:
sudo ultrablue-server -enroll -pcr-extend
यह टर्मिनल पर एक QR कोड प्रदर्शित करेगा। फ़ोन से, क्लाइंट ऐप चलाएँ, और QR कोड स्कैनर दिखाने के लिए ऊपर दाईं ओर स्थित + आइकन पर टैप करें। स्कैन करने पर, एक Bluetooth Low Energy चैनल स्थापित हो जाएगा, और नामांकन स्वचालित रूप से चलेगा। सफल होने पर, क्लाइंट एप्लिकेशन के होम पेज पर एक डिवाइस कार्ड दिखाई देगा।
Ultrablue नामांकन के समय एक यादृच्छिक रूप से उत्पन्न मान का उपयोग करके आपके TPM2 PCR9 को एक्सटेंड कर सकता है। यह उपयोगी है यदि आप, उदाहरण के लिए, अपने डिस्क एन्क्रिप्शन को TPM2 सीलिंग से बाँधना चाहते हैं। उस स्थिति में, ultrablue बूट-समय के दौरान PCR9 रजिस्टर को वापस एक्सटेंड करेगा यदि अटेस्टेशन सफल और विश्वसनीय हो। PCR-एक्सटेंशन नामांकन के समय कॉन्फ़िगर किया जाता है (अटेस्टेशन मोड में फ्लैग का कोई प्रभाव नहीं होता):
sudo ultrablue-server -enroll -pcr-extend
यदि आप चाहते हैं कि ultrablue आपके बूट प्रवाह के हिस्से के रूप में निष्पादित हो, तो आपको इसे शामिल करने के लिए अपने initramfs को पुनः जनरेट करना होगा। हम Dracut और systemd एकीकरण प्रदान करके इसे आसान बनाते हैं। दिए गए VM स्क्रिप्ट भी देखें, जो इसे परीक्षण करने का और भी आसान तरीका प्रदान करते हैं।
सबसे पहले, server/dracut/90ultrablue को /usr/lib/dracut/modules.d/ मॉड्यूल निर्देशिका में इंस्टॉल करें,
फिर आप निम्न dracut कमांड चला सकते हैं:
dracut --add ultrablue /path/to/initrd --force
यदि आपने नामांकन चरण के दौरान --pcr-extend विकल्प का उपयोग किया है, तो आपको crypt dracut मॉड्यूल जोड़ना होगा, और server/dracut/90crypttab.conf को /etc/dracut.conf.d में कॉपी करें (dracut बग #751640 के समाधान के लिए):
cp server/dracut/90crypttab.conf /etc/dracut.conf.d
dracut --add "crypt ultrablue" /path/to/initrd --force
ध्यान दें कि ये विकल्प स्थायी नहीं हैं और अगली बार initramfs जनरेट होने पर ultrablue को इससे हटा दिया जाएगा। स्थायी कॉन्फ़िगरेशन के लिए dracut.conf(5) मैन पेज देखें।
यदि आपने initramfs कॉन्फ़िगरेशन चरण किया है, तो Ultrablue सर्वर बूट के दौरान स्वचालित रूप से चलेगा। अन्यथा, सर्वर को अटेस्टेशन मोड में मैन्युअल रूप से प्रारंभ करें:
sudo ultrablue-server
प्रारंभ होने के बाद, सर्वर कनेक्ट होने के लिए एक वेरिफायर (फ़ोन) की प्रतीक्षा करेगा। फ़ोन से, डिवाइस कार्ड के ▶️ आइकन पर क्लिक करें। यह अटेस्टेशन चलाएगा। समाप्त होने पर, क्लाइंट एप्लिकेशन अटेस्टेशन परिणाम प्रदर्शित करेगा।
बूट समय पर ultrablue चलाने का मुख्य लक्ष्य इसे डिस्क डिक्रिप्शन के लिए उपयोग करना है। यह कैसे करना है इसका एक उदाहरण सर्वर टेस्टबेड में प्रदान और प्रलेखित किया गया है।
Ultrablue परियोजना ANSSI (ssi.gouv.fr) में Loïc Buckwell द्वारा, Nicolas Bouchinet और Gabriel Kerneis के पर्यवेक्षण में विकसित की गई है।
यदि आपके कोई प्रश्न हैं, तो GitHub issue के माध्यम से, या सीधे Gabriel Kerneis [email protected] से संपर्क करें।