रोलिंग कोड स्पष्टीकरण


13

क्या कोई समझा सकता है कि रोल कोड प्रोटोकॉल जैसे कि कीलॉक कैसे काम करता है? मैं मूल आधार को समझता हूं कि वे हर बार एक अलग कोड का उपयोग करते हैं ताकि आप केवल रीप्ले अटैक का उपयोग न कर सकें, लेकिन मैं यह नहीं समझता कि एक पक्ष सही कोड का सत्यापन कैसे करता है आदि।

इसके अलावा, यदि वे रोलिंग कोड में सूचकांक को पहले से जानते / साझा नहीं करते हैं तो वे एक प्रारंभिक सिंक्रनाइज़ेशन कैसे करते हैं?

यदि आपको यह समझाने के लिए कियलोक का उपयोग एक उदाहरण के रूप में करना है, तो ठीक है, लेकिन मैं रोलिंग कोड की सामान्य व्याख्या करूंगा।


जवाबों:


10

रोलिंग कोड को सही ढंग से कार्य करने के लिए कई भाग की आवश्यकता होती है। यहाँ मैं एक सामान्य कार्यान्वयन का वर्णन करूँगा जो सभी भागों को एक विशिष्ट तरीके से उपयोग करता है। अन्य प्रणालियाँ इस विषय पर भिन्नताएं हैं, लेकिन आम तौर पर एक ही तरह से कई तकनीकों को नियोजित करती हैं। पूर्ण कार्यान्वयन का वर्णन करने की कोशिश करने के बजाय और यह एक ही बार में कैसे काम करता है, मैं एक सरल प्रणाली का वर्णन करूँगा, और जटिलता को जोड़ दूंगा जब तक हम एक गुप्त रूप से सुरक्षित प्रणाली तक नहीं पहुंच जाते।

एक गैर क्रिप्टोग्राफिक रोलिंग कोड बस एक ट्रांसमीटर और रिसीवर है जो दोनों एक ही छद्म यादृच्छिक संख्या जनरेटर (PRNG) का उपयोग करते हैं। इस जनरेटर में महत्वपूर्ण जानकारी के दो टुकड़े हैं: एक गणना, और पहले से उत्पन्न संख्या। गणना आम तौर पर एक रैखिक प्रतिक्रिया समीकरण है जिसे एक एकल संख्या द्वारा दर्शाया जा सकता है। पिछली संख्या के साथ PRNG को फीड करके, और फीडबैक नंबर को एक ही क्रम में रखने से संख्याओं का एक विशिष्ट अनुक्रम उत्पन्न होता है। अनुक्रम में कोई दोहराया अनुक्रम नहीं है जब तक कि यह हर संख्या के माध्यम से चला गया है, और फिर यह उसी अनुक्रम के साथ फिर से शुरू होता है।

यदि दूरस्थ और ट्रांसमीटर दोनों को फीडबैक नंबर, और वर्तमान संख्या पता है, तो जब रिमोट अगले नंबर को प्रसारित करता है, तो रिसीवर इसे अपने स्वयं के जनरेटर के खिलाफ परीक्षण कर सकता है। यदि यह मेल खाता है, तो यह सक्रिय हो जाता है। यदि ऐसा नहीं होता है, तो यह अनुक्रम के माध्यम से तब तक रोल करता है जब तक कि यह रिमोट भेजे गए नंबर का पता नहीं लगा लेता है। यदि आप रिमोट को फिर से दबाते हैं, तो इसे मेल खाना चाहिए, और यह सक्रिय हो जाएगा क्योंकि पिछले ट्रांसमिशन पहले से ही नंबर जनरेटर को सिंक्रनाइज़ करता है। यही कारण है कि आपको कभी-कभी अनलॉक बटन को दो बार दबाना पड़ता है - आपका रिसीवर या ट्रांसमीटर सिंक से बाहर है।

यह कोड का रोलिंग हिस्सा है। यदि PRNG काफी लंबा है, तो एक पंक्ति में अनुक्रम में कई संख्याओं के बिना प्रतिक्रिया संख्या का पता लगाना बहुत कठिन है, जो सामान्य उपयोग में प्राप्त करना कठिन है। लेकिन यह क्रिप्टोग्राफिक रूप से सुरक्षित नहीं है।

उसके शीर्ष पर आप विशिष्ट एन्क्रिप्शन जोड़ते हैं। वाहन निर्माता ट्रांसमीटर और रिसीवर के लिए एक विशिष्ट गुप्त कुंजी का उपयोग करता है। निर्माता के आधार पर आप पा सकते हैं कि प्रत्येक मॉडल और वर्ष का एक अलग कोड होता है, या वे कई मॉडल के वाहनों और कई वर्षों में कोड साझा कर सकते हैं। व्यापार बंद यह है कि हर एक को स्टॉक करने के लिए एक अलग रिमोट की आवश्यकता होती है, लेकिन कई मॉडलों पर एक कोड साझा करने के साथ समस्या यह है कि अगर यह टूट गया है तो अधिक कारें कमजोर होती हैं।

एन्क्रिप्शन के पीछे आपके पास बटन की जानकारी, PRNG जनरेट नंबर और फीडबैक नंबर के बारे में थोड़ी जानकारी है। PRNG को खरोंच से बनाने के लिए पर्याप्त नहीं है, लेकिन इतना है कि एक निश्चित संख्या में बटन दबाने के बाद, और सीमित स्थान के बारे में कुछ जानकारी के साथ एक फीडबैक नंबर शामिल हो सकता है (फिर से, निर्माता, विशिष्ट लाइन) तो रिसीवर कई प्रशिक्षण के बाद कर सकता है प्रसारण, प्रतिक्रिया संख्या निर्धारित करें, और उस रिमोट के लिए PRNG पर नज़र रखना शुरू करें।

रोलिंग कोड केवल रीप्ले हमलों को रोकने के लिए है। एन्क्रिप्शन का मतलब रोलिंग कोड को सुरक्षित करने से है ताकि इसे तोड़ा जा सके। केवल एक या दूसरे के साथ सिस्टम को तोड़ना बहुत आसान होगा। चूंकि निर्माता ट्रांसमीटर और रिसीवर दोनों को नियंत्रित करता है, प्रशिक्षण में सार्वजनिक कुंजी क्रिप्टोग्राफी या विशेष रूप से शामिल कुछ भी शामिल नहीं है। यह इस तरह की प्रणाली के साथ कारों में काम करने के बाद aftermarket के फोब्स को भी रोकता है।

रोलिंग कोड हालांकि अभेद्य नहीं है। पुराने कीलोकोक सिस्टम पर कुछ साल पहले (उपयोग के एक दशक बाद) सफलतापूर्वक हमला किया गया था ताकि निर्माता एन्क्रिप्शन कोड मिल सके, और रोलिंग कोड अधिक आसानी से मिल सके। इससे पहले यह उन तरीकों से हमला किया गया है जो लोगों को वास्तव में कोड को तोड़ने के बिना वाहनों को लेने की अनुमति देता है। जवाब में नई एन्क्रिप्शन कुंजी 60 बिट है। कई आधुनिक एन्क्रिप्शन सिस्टम के रूप में सुरक्षित नहीं है, लेकिन इतना सुरक्षित है कि शायद यह टूटने से पहले कई और वर्षों तक चलेगा।


आह, मैं PRNG के "कोई अनुक्रम दोहराया" भाग भूल गया हूँ, यह बहुत महत्वपूर्ण है। जानकारी को प्रसारित करने का क्या फायदा है जो रिसीवर को प्रतिक्रिया कोड निर्धारित करने की अनुमति देता है? यह एक फीडबैक कोड चुनने से कम सुरक्षित लगता है और इसके साथ ट्रांसमीटर और रिसीवर दोनों का निर्माण होता है ...
NickHalden

@NickHalden प्रतिक्रिया कोड प्रत्येक रिमोट के लिए अलग है, और ग्राहक बाद में अधिक रीमोट जोड़ना चाहेंगे, या लापता रीमोट्स को बदल सकते हैं। यह केवल प्रशिक्षण के लिए आवश्यक है। कुछ अधिक सुरक्षित संस्करणों को रिमोट फीड बटन के विशिष्ट अनुक्रम की आवश्यकता होती है, इससे पहले कि यह अतिरिक्त प्रतिक्रिया जानकारी का उत्सर्जन कर दे, लेकिन आम तौर पर समग्र प्रणाली इतनी सुरक्षित होती है कि भले ही आप एन्क्रिप्शन को तोड़ दें, फिर भी आपको उस छोटे से पहले बहुत अधिक जानकारी की आवश्यकता होती है पूरी प्रतिक्रिया कोड प्राप्त करने के लिए थोड़ी जानकारी पर्याप्त है।
एडम डेविस

8

गैरेज गेट ओपनर में चिप पर शोध करने के दौरान मैंने पहली बार KeeLoq का सामना किया। माइक्रोचिप डेटापत्रक समझा यह कैसे काम करता का एक अच्छा काम करता है।

संक्षेप में:

  • रिसीवर अपने सीरियल नंबर पर बंद सभी ट्रांसमीटरों का एक डेटाबेस रखता है।
  • प्रत्येक ट्रांसमीटर एक सममित एन्क्रिप्शन कुंजी (64 बिट) के साथ जुड़ा हुआ है, जो चिप पर है, और रिसीवर के डेटाबेस में भी है।
  • प्रत्येक ट्रांसमीटर 16 बिट चक्रीय अनुक्रम संख्या के साथ जुड़ा हुआ है, जिसे चिप पर और डेटाबेस में भी संग्रहीत किया गया है।
  • जब ट्रांसमीटर सक्रिय होता है, तो यह अपने अनुक्रम संख्या 65536 (रैपराउंड 16 बिट्स) को बढ़ाता है, और एक पैकेट भेजता है जिसमें एक बिटमास्क होता है जो दर्शाता है कि कौन से बटन दबाए गए हैं, इसकी सीरियल आईडी और सीरियल नंबर का एक एन्क्रिप्टेड संस्करण।
  • रिसीवर डेटाबेस में सीरियल नंबर से मेल खाता है, कुंजी को बाहर निकालता है और सीरियल नंबर को डिक्रिप्ट करता है।
  • सीरियल नंबर नया होना चाहिए; यह हाल ही में उपयोग किया गया सीरियल नंबर नहीं हो सकता है, जो फिर से खेलना हमलों के खिलाफ गार्ड है। (डेटाशीट में चित्र 7.3 देखें)।
  • यदि सीरियल नंबर सत्यापित करता है, तो रिसीवर बटन के बिट मास्क के आधार पर कार्यक्षमता को सक्रिय कर सकता है।
  • यदि नया सीरियल नंबर 16 से अधिक मानों से आगे है (उपयोगकर्ता ने रिसीवर से दूर होने पर गलती से कई बार बटन धकेल दिए) तो एक अतिरिक्त हैंड-शेक को resynchronize करना पड़ता है, जिसके लिए अतिरिक्त बटन प्रेस की आवश्यकता होती है। (उपयोगकर्ता अतिरिक्त बटन प्रेस करेगा, यह मानते हुए कि खराब रिसेप्शन है)।

रिसीवर डेटाबेस में एक नया ट्रांसमीटर जोड़ना एक उच्च स्तर पर, एक वाई-फाई एक्सेस बिंदु पर क्लाइंट को जोड़ने के लिए बटन-प्रेस कॉन्फ़िगरेशन विधि के लिए एक उच्च स्तर पर है। रिसीवर को किसी तरह एक मोड में रखा जाता है, जिससे यह एक नया ट्रांसमीटर स्वीकार करता है।

एक नया ट्रांसमीटर साधारण सक्रियण संदेशों में पारित जानकारी से स्वीकार किया जा सकता है, अगर रिसीवर और ट्रांसमीटर एक ही गुप्त निर्माता आईडी साझा करते हैं। ऐसा इसलिए है क्योंकि 64 बिट एन्क्रिप्शन कुंजी निर्माता आईडी और रिसीवर की सीरियल जानकारी से ली गई है। (सेकण्ड 7.1 देखें)।

इसके लिए एक अधिक सुरक्षित विकल्प है: "सिक्योर लर्न"। यह ट्रांसमीटर पर एक विशेष तरीके से शुरू किया गया है (एक ही बार में तीन बटन दबाए गए)। ट्रांसमीटर एक विशेष पैकेट भेजता है: 60 बिट बीज मान जिसमें से एन्क्रिप्शन कुंजी प्राप्त होती है, संभवतः निर्माता आईडी या सीरियल नंबर के आधार पर नहीं।

जब रिसीवर लर्निंग मोड में नहीं होता है, तो यह निश्चित रूप से ट्रांसमीटरों से प्रसारण को अस्वीकार कर देता है जिसके बारे में यह नहीं जानता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.