सामग्री पर जाएँ

पहचान और सदस्यता

bae में कहीं भी खाता प्रणाली नहीं है। उपकरण की पहचान वह Ed25519 keypair है जिसे वह अपने लिए बनाता है और OS keyring में रखता है; public कुंजी ही पहचान है। किसी लाइब्रेरी में कौन शामिल है, यह क्लाउड घर में हस्ताक्षरित records का समूह है, जिसे वे records रखने वाला कोई भी सत्यापित कर सकता है; इन्हें कोई सर्वर जारी नहीं करता। व्यवस्था coven की है; यह पेज बताता है कि bae उसे कैसे उपयोग करता है।

हर स्वामी क्लाउड घर में हस्ताक्षरित membership entries की केवल-जोड़ने वाली स्ट्रीम लिखता है: यह कुंजी इस भूमिका के साथ जोड़ी गई, यह कुंजी हटाई गई। हर entry पिछली entry से जुड़ती है, और हर स्वामी अपनी स्ट्रीम के सिरे की घोषणा करने वाला head sign करता है, इसलिए records गिराने या फिर से क्रम लगाने वाला प्रदाता पकड़ा जाता है, माना नहीं जाता। लाइब्रेरी जिसे स्वीकार करती है वह हर स्वामी की सत्यापित स्ट्रीम का मेल है।

हर pull पर, हर changeset का लेखक इसी record से जांचा जाता है: मौजूदा सदस्य द्वारा signed, लिख सकने वाली भूमिका के साथ। हटाए गए उपकरणों, कभी न जोड़ी गई कुंजियों, या अमान्य signatures वाले changeset लागू नहीं होते। प्रदाता records रखता है, पर उन्हें गढ़ नहीं सकता; सदस्यता केवल स्वामी कुंजियां रखने वाले बदल सकते हैं।

स्वामी और सदस्य दोनों लाइब्रेरी पढ़ और लिख सकते हैं; स्वामी इसके अलावा उपकरण स्वीकृत और हटाते हैं। bae का पहला उपकरण स्वामी होता है और वह जिन उपकरणों को स्वीकृत करता है वे सदस्य के रूप में जुड़ते हैं। (नीचे की व्यवस्था में तीसरी भूमिका, केवल-पढ़ने वाला अनुयायी, मौजूद है, जिसे bae अभी नहीं देता।)

जुड़ने की प्रक्रिया

इस अनुभाग का लिंक

डिवाइस जोड़ना स्पष्ट मानव सत्यापन के साथ एक स्थानीय युग्मन सत्र है:

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

समाप्त हो चुकी, बाधित या अस्वीकृत जोड़ी से कुछ नहीं मिलता।

किसी सदस्य को हटाना signed removal जोड़ता है और लाइब्रेरी कुंजी को ऐसी नई पीढ़ी पर घुमाता है जो हटाई गई कुंजी को कभी नहीं मिलती (देखें एन्क्रिप्शन)। जहां संग्रहण पहुंच हटाई जा सकती है, वहां वह भी हटाई जाती है। हटाए गए उपकरण पर जो पहले ही समन्वय हो चुका था वह उसके पास रहता है; डेटा वापस नहीं लिया जा सकता। घुमाव के बाद की हर चीज उसकी पहुंच से बाहर होती है।

रिकवरी कोड जानबूझकर सदस्यता को पार करता है: यह क्लाउड घर के coordinates और लाइब्रेरी कुंजी को एक bearer string में रखता है, ताकि कोई जीवित स्वीकर्ता न होने पर अपनी लाइब्रेरी बहाल की जा सके। यह मांगने पर बनता है, Apple platforms पर अपने-आप iCloud Keychain में रखा जाता है, और लाइब्रेरी जितना ही संवेदनशील है।