क्षमता-आधारित सुरक्षा: Difference between revisions
(Created page with "{{short description|Computer safety concept}} क्षमता-आधारित सुरक्षा कंप्यूटर सुरक्षा प्रणा...") |
No edit summary |
||
Line 1: | Line 1: | ||
{{short description|Computer safety concept}} | {{short description|Computer safety concept}} | ||
क्षमता-आधारित सुरक्षा [[ कंप्यूटर सुरक्षा ]] प्रणालियों | क्षमता-आधारित सुरक्षा [[ कंप्यूटर सुरक्षा |कंप्यूटर सुरक्षा]] प्रणालियों की डिजाइन में ऐसी अवधारणा है, जो सम्मलित [[ कंप्यूटर सुरक्षा मॉडल |कंप्यूटर सुरक्षा मॉडल]] में से मुख्य है। एक क्षमता (कुछ प्रणालियों में एक कुंजी के रूप में जानी जाती है) प्राधिकरण एक संचारी, अक्षम्य [[ एक्सेस टोकन |एक्सेस टोकन]] है। यह किसी मान को इस प्रकार संदर्भित करता है जैसे अभिगम नियंत्रण के संबद्ध प्रणाली के साथ किसी [[ वस्तु (कंप्यूटर विज्ञान) |वस्तु (कंप्यूटर विज्ञान)]] को संदर्भित करता है। क्षमता-आधारित ऑपरेटिंग सिस्टम पर [[ उपयोगकर्ता (कंप्यूटिंग) |उपयोगकर्ता (कंप्यूटिंग)]] [[ कंप्यूटर प्रोग्राम |कंप्यूटर प्रोग्राम]] को किसी वस्तु तक पहुँचने के लिए क्षमता का उपयोग करता है। क्षमता-आधारित सुरक्षा उपयोगकर्ता कार्यक्रमों को डिजाइन करने के सिद्धांत को संदर्भित करती है जैसे कि कम से कम विशेषाधिकार के सिद्धांत के अनुसार एक दूसरे के साथ क्षमताओं को सीधे साझा करते हैं, और ऐसे लेनदेन को कुशल और सुरक्षित बनाने के लिए आवश्यक ऑपरेटिंग सिस्टम के बुनियादी ढांचे के लिए इसका उपयोग करते हैं। क्षमता-आधारित सुरक्षा को यूनिक्स अनुमतियों और अभिगम नियंत्रण सूचियों का उपयोग करने वाले दृष्टिकोण से अलग किया जाता है। | ||
चूंकि अधिकांश ऑपरेटिंग सिस्टम ऐसी सुविधा को लागू करते हैं जो क्षमताओं से मिलती-जुलती है, वे सामान्यतः पर्याप्त समर्थन प्रदान नहीं करते हैं जिससे कि संभवतः मौलिक रूप से अविश्वसनीय संस्थाओं के बीच क्षमताओं के आदान-प्रदान की अनुमति दी जा सके और पूरी प्रणाली में अभिगम अधिकार वितरित करने का प्राथमिक साधन प्रदान कर सकें। किसी क्षमता-पर आधारित प्रणाली, इसके विपरीत उस लक्ष्य को ध्यान में रखकर बनाई गई है। | |||
== परिचय == | == परिचय == | ||
क्षमताएं | ये क्षमताएं क्षम्य संदर्भ (कंप्यूटर साइंस) के स्थान पर इसका उपयोग करके प्रणाली की सुरक्षा में सुधार करने के अपने उद्देश्य को प्राप्त करती हैं। किसी क्षम्य संदर्भ (उदाहरण के लिए, [[ पथ (कंप्यूटिंग) |पथ (कंप्यूटिंग)]] ) एक वस्तु की पहचान करता है, लेकिन यह निर्दिष्ट नहीं करता है कि उस वस्तु के लिए कौन से एक्सेस अधिकार उपयुक्त हैं और उपयोगकर्ता प्रोग्राम जो उस संदर्भ को अपने साथ रखता है। परिणाम स्वरुप, संदर्भित ऑब्जेक्ट तक पहुंचने के किसी भी प्रयास को ऑपरेटिंग सिस्टम द्वारा मान्य किया जाना आवश्यक होता है, इस प्रकार अनुरोध करने वाले प्रोग्राम के [[ परिवेश प्राधिकरण |परिवेश प्राधिकरण]] के आधार पर, सामान्यतः [[ कंट्रोल सूची को खोलो |कंट्रोल सूची को खोलो]] (एसीएल) के उपयोग के माध्यम से उपयोग किया जाता है। इसके अतिरिक्त, क्षमताओं के साथ किसी प्रणाली में, मात्र तथ्य यह है कि उपयोगकर्ता प्रोग्राम के पास वह क्षमता रखता है जो उस क्षमता द्वारा निर्दिष्ट अधिकारों के अनुसार संदर्भित वस्तु का उपयोग करने का अधिकार देता है। सैद्धांतिक रूप में, विशेष क्षमताओं वाली किसी प्रणाली के सभी संस्थानों को सभी को केवल ये क्षमताएँ देकर किसी भी अभिगम नियंत्रण सूची या समान तंत्र की आवश्यकता को हटा देती है जिसकी उन्हें वास्तव में आवश्यकता होगी। | ||
किसी क्षमता को विशेष रूप से [[ विशेषाधिकार (कंप्यूटर विज्ञान) |विशेषाधिकार (कंप्यूटर विज्ञान)]] [[ डेटा संरचना |डेटा संरचना]] के रूप में लागू किया जाता है जिसमें एक खंड होता है जो एक्सेस अधिकारों को निर्दिष्ट करता है, और एक अनुभाग जो विशिष्ट रूप से एक्सेस की जाने वाली वस्तु की पहचान करता है। उपयोगकर्ता डेटा संरचना या ऑब्जेक्ट को सीधे एक्सेस नहीं करता है, बल्कि एक [[ हैंडल (कंप्यूटिंग) |हैंडल (कंप्यूटिंग)]] के माध्यम से करता है। व्यवहारिक रूप से, इसका उपयोग पारंपरिक ऑपरेटिंग सिस्टम (पारंपरिक हैंडल) में [[ फाइल डिस्क्रिप्टर |फाइल डिस्क्रिप्टर]] की तरह किया जाता है, लेकिन इस प्रणाली पर हर वस्तु तक पहुंचने के लिए विशेषकर क्षमताओं को सामान्यतः एक सूची में ऑपरेटिंग सिस्टम द्वारा संग्रहीत किया जाता है, प्रोग्राम को क्षमता की सामग्री को सीधे संशोधित करने से रोकने के लिए कुछ तंत्र के साथ (जिससे कि पहुंच अधिकारों को बनाने या उस वस्तु को बदलने के लिए जो इसे इंगित करता है)। कुछ प्रणालियाँ क्षमता-आधारित एड्रेसिंग (क्षमताओं के लिए हार्डवेयर समर्थन) पर भी आधारित हैं, जैसे कि [[ प्लेसी सिस्टम 250 |प्लेसी सिस्टम 250]] । | |||
क्षमता रखने वाले कार्यक्रम उन पर कार्य कर सकते हैं, जैसे उन्हें अन्य कार्यक्रमों में भेजना, उन्हें कम-विशेषाधिकार प्राप्त संस्करण में परिवर्तित करना, या उन्हें हटाना। ऑपरेटिंग सिस्टम को यह सुनिश्चित करना चाहिए कि सुरक्षा नीति की अखंडता को बनाए रखने के लिए सिस्टम में क्षमताओं के लिए केवल विशिष्ट संचालन ही हो सकते हैं। | '''क्षमता रखने वाले कार्यक्रम''' उन पर कार्य कर सकते हैं, जैसे उन्हें अन्य कार्यक्रमों में भेजना, उन्हें कम-विशेषाधिकार प्राप्त संस्करण में परिवर्तित करना, या उन्हें हटाना। ऑपरेटिंग सिस्टम को यह सुनिश्चित करना चाहिए कि सुरक्षा नीति की अखंडता को बनाए रखने के लिए सिस्टम में क्षमताओं के लिए केवल विशिष्ट संचालन ही हो सकते हैं। | ||
इस आलेख में चर्चा की गई क्षमताओं को पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस ([[ POSIX ]]) 1e/2c #POSIX क्षमताओं के साथ भ्रमित नहीं होना चाहिए। बाद वाले मोटे अनाज वाले विशेषाधिकार हैं जिन्हें प्रक्रियाओं के बीच स्थानांतरित नहीं किया जा सकता है। | इस आलेख में चर्चा की गई क्षमताओं को पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस ([[ POSIX ]]) 1e/2c #POSIX क्षमताओं के साथ भ्रमित नहीं होना चाहिए। बाद वाले मोटे अनाज वाले विशेषाधिकार हैं जिन्हें प्रक्रियाओं के बीच स्थानांतरित नहीं किया जा सकता है। | ||
== उदाहरण == | == उदाहरण == | ||
एक क्षमता को एक संरक्षित वस्तु (कंप्यूटर विज्ञान) संदर्भ के रूप में परिभाषित किया गया है, जो एक उपयोगकर्ता प्रक्रिया द्वारा अपने कब्जे के आधार पर अनुदान देता है जो किसी वस्तु के साथ कुछ तरीकों से बातचीत करने की क्षमता (इसलिए नाम) को संसाधित करता है। उन तरीकों में ऑब्जेक्ट से जुड़े डेटा को पढ़ना, ऑब्जेक्ट को संशोधित करना, ऑब्जेक्ट में डेटा को एक प्रक्रिया के रूप में निष्पादित करना और अन्य बोधगम्य एक्सेस अधिकार | एक क्षमता को एक संरक्षित वस्तु (कंप्यूटर विज्ञान) संदर्भ के रूप में परिभाषित किया गया है, जो एक उपयोगकर्ता प्रक्रिया द्वारा अपने कब्जे के आधार पर अनुदान देता है जो किसी वस्तु के साथ कुछ तरीकों से बातचीत करने की क्षमता (इसलिए नाम) को संसाधित करता है। उन तरीकों में ऑब्जेक्ट से जुड़े डेटा को पढ़ना, ऑब्जेक्ट को संशोधित करना, ऑब्जेक्ट में डेटा को एक प्रक्रिया के रूप में निष्पादित करना और अन्य बोधगम्य एक्सेस अधिकार सम्मलित हो सकते हैं। क्षमता में तार्किक रूप से एक संदर्भ होता है जो विशिष्ट रूप से किसी विशेष वस्तु की पहचान करता है और इनमें से एक या अधिक अधिकारों का एक सेट होता है। | ||
मान लीजिए कि, उपयोगकर्ता प्रक्रिया की मेमोरी स्पेस में, निम्न स्ट्रिंग | मान लीजिए कि, उपयोगकर्ता प्रक्रिया की मेमोरी स्पेस में, निम्न स्ट्रिंग सम्मलित है: | ||
/ | /etc/passwd | ||
चूंकि यह सिस्टम पर एक अनूठी वस्तु की पहचान करता है, यह एक्सेस अधिकारों को निर्दिष्ट नहीं करता है और इसलिए यह क्षमता नहीं है। मान लीजिए कि इसके अतिरिक्त मानों की निम्नलिखित जोड़ी है: | |||
/ | /etc/passwd/ | ||
O_RDWR | O_RDWR | ||
यह जोड़ी पहुँच अधिकारों के एक सेट के साथ एक वस्तु की पहचान करती है। जोड़ी, | यह जोड़ी पहुँच अधिकारों के एक सेट के साथ एक वस्तु की पहचान करती है। जोड़ी, चूंकि, अभी भी एक क्षमता नहीं है क्योंकि इन मानों पर उपयोगकर्ता प्रक्रिया का कब्ज़ा इस बारे में कुछ नहीं कहता है कि क्या वह पहुंच वास्तव में वैध होगी। | ||
अब मान लीजिए कि उपयोगकर्ता प्रोग्राम निम्नलिखित कथन को सफलतापूर्वक निष्पादित करता है: | अब मान लीजिए कि उपयोगकर्ता प्रोग्राम निम्नलिखित कथन को सफलतापूर्वक निष्पादित करता है: | ||
<syntaxhighlight lang= c >int fd = open( /etc/passwd , O_RDWR);</syntaxhighlight> | <syntaxhighlight lang= c >int fd = open( /etc/passwd , O_RDWR);</syntaxhighlight> | ||
चर <code>fd</code> अब प्रक्रिया की फ़ाइल डिस्क्रिप्टर तालिका में फ़ाइल डिस्क्रिप्टर की अनुक्रमणिका | चर <code>fd</code> अब प्रक्रिया की फ़ाइल डिस्क्रिप्टर तालिका में फ़ाइल डिस्क्रिप्टर की अनुक्रमणिका सम्मलित है। यह फाइल डिस्क्रिप्टर एक क्षमता है। प्रक्रिया की फाइल डिस्क्रिप्टर तालिका में इसका अस्तित्व यह दिखाने के लिए पर्याप्त है कि प्रक्रिया वास्तव में वस्तु तक वैध पहुंच रखती है। इस व्यवस्था की एक प्रमुख विशेषता यह है कि फाइल डिस्क्रिप्टर टेबल कर्नेल (कंप्यूटर साइंस) में है और उपयोगकर्ता प्रोग्राम द्वारा सीधे हेरफेर नहीं किया जा सकता है। | ||
== प्रक्रियाओं के बीच साझा करना == | == प्रक्रियाओं के बीच साझा करना == | ||
पारंपरिक ऑपरेटिंग सिस्टम में, प्रोग्राम | पारंपरिक ऑपरेटिंग सिस्टम में, प्रोग्राम अधिकांशतः पहले दो उदाहरणों की तरह संदर्भों का उपयोग करके एक दूसरे के साथ और भंडारण के साथ संवाद करते हैं। पथ नाम अधिकांशतः कमांड-लाइन पैरामीटर के रूप में पास किए जाते हैं, सॉकेट के माध्यम से भेजे जाते हैं, और डिस्क पर संग्रहीत होते हैं। ये संदर्भ क्षमताएं नहीं हैं, और इनका उपयोग करने से पहले इन्हें सत्यापित किया जाना चाहिए। इन प्रणालियों में, एक केंद्रीय प्रश्न यह है कि किसके अधिकार का मानांकन किया जाना है? यह विशेष रूप से उन प्रक्रियाओं के लिए एक महत्वपूर्ण मुद्दा बन जाता है जिन्हें दो अलग-अलग प्राधिकरण-धारक संस्थाओं की ओर से कार्य करना चाहिए। वे एक प्रोग्रामिंग त्रुटि के लिए अतिसंवेदनशील हो जाते हैं जिसे भ्रमित उप समस्या के रूप में जाना जाता है, जिसके परिणामस्वरूप अधिकांशतः [[ सुरक्षा छेद |सुरक्षा छेद]] होता है। | ||
एक क्षमता-आधारित प्रणाली में, क्षमताओं को एक तंत्र का उपयोग करके प्रक्रियाओं और भंडारण के बीच पारित किया जाता है जो ऑपरेटिंग सिस्टम द्वारा उन क्षमताओं की अखंडता को बनाए रखने के लिए जाना जाता है। | एक क्षमता-आधारित प्रणाली में, क्षमताओं को एक तंत्र का उपयोग करके प्रक्रियाओं और भंडारण के बीच पारित किया जाता है जो ऑपरेटिंग सिस्टम द्वारा उन क्षमताओं की अखंडता को बनाए रखने के लिए जाना जाता है। | ||
इस समस्या को हल करने के लिए एक उपन्यास दृष्टिकोण में [[ ऑर्थोगोनल दृढ़ता ]] ऑपरेटिंग सिस्टम का उपयोग | इस समस्या को हल करने के लिए एक उपन्यास दृष्टिकोण में [[ ऑर्थोगोनल दृढ़ता |ऑर्थोगोनल दृढ़ता]] ऑपरेटिंग सिस्टम का उपयोग सम्मलित है। ऐसी प्रणाली में, संस्थाओं को खारिज करने और उनकी क्षमताओं को अमान्य करने की कोई आवश्यकता नहीं है, और इसलिए बाद में उन क्षमताओं को बहाल करने के लिए एसीएल जैसी तंत्र की आवश्यकता होती है। ऑपरेटिंग सिस्टम हर समय अस्थिर और गैर-वाष्पशील दोनों तरह के सभी भंडारण के भीतर निहित क्षमताओं की अखंडता और सुरक्षा को बनाए रखता है; उपयोगकर्ता प्रोग्राम को ऐसा करने की आवश्यकता के अतिरिक्त, जैसा कि अधिकांश ऑपरेटिंग सिस्टम में होता है, सभी क्रमांकन कार्यों को स्वयं निष्पादित करके। चूंकि उपयोगकर्ता कार्यक्रम इस जिम्मेदारी से मुक्त हो गए हैं, केवल कानूनी क्षमताओं को पुन: उत्पन्न करने के लिए उन पर भरोसा करने की कोई आवश्यकता नहीं है, न ही अभिगम नियंत्रण तंत्र का उपयोग करके पहुंच के अनुरोधों को मान्य करने के लिए। 1980 के दशक की शुरुआत से एक उदाहरण कार्यान्वयन [[ फ्लेक्स मशीन |फ्लेक्स मशीन]] है। | ||
== पॉज़िक्स क्षमताएं == | == पॉज़िक्स क्षमताएं == | ||
पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस (POSIX) ड्राफ्ट 1003.1e क्षमताओं नामक अनुमतियों की अवधारणा को निर्दिष्ट करता है। | पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस (POSIX) ड्राफ्ट 1003.1e क्षमताओं नामक अनुमतियों की अवधारणा को निर्दिष्ट करता है। चूंकि, POSIX क्षमताएँ इस आलेख की क्षमताओं से भिन्न हैं। POSIX क्षमता किसी वस्तु से संबद्ध नहीं है; CAP_NET_BIND_SERVICE क्षमता वाली एक प्रक्रिया 1024 के अनुसार किसी भी TCP पोर्ट पर सुन सकती है। यह सिस्टम Linux में पाया जाता है।<ref>{{man|7|capabilities|Linux}}</ref> | ||
इसके विपरीत, [[ शिमला मिर्च (यूनिक्स) ]] यूनिक्स यूनिक्स डिजाइन और पॉज़िक्स एपीआई के साथ एक वास्तविक क्षमता-प्रणाली मॉडल को संकरणित करता है। कैप्सिकम क्षमताएं फाइल डिस्क्रिप्टर का एक परिष्कृत रूप है, प्रक्रियाओं के बीच एक प्रत्यायोजित अधिकार और क्लासिक POSIX से परे अतिरिक्त वस्तु प्रकार, जैसे प्रक्रियाओं, को क्षमताओं के माध्यम से संदर्भित किया जा सकता है। कैप्सिकम क्षमता मोड में, प्रक्रियाएं ऑब्जेक्ट्स को देखने के लिए ग्लोबल नेमस्पेस (जैसे फाइल सिस्टम नेमस्पेस) का उपयोग करने में असमर्थ हैं, और इसके | इसके विपरीत, [[ शिमला मिर्च (यूनिक्स) |शिमला मिर्च (यूनिक्स)]] यूनिक्स यूनिक्स डिजाइन और पॉज़िक्स एपीआई के साथ एक वास्तविक क्षमता-प्रणाली मॉडल को संकरणित करता है। कैप्सिकम क्षमताएं फाइल डिस्क्रिप्टर का एक परिष्कृत रूप है, प्रक्रियाओं के बीच एक प्रत्यायोजित अधिकार और क्लासिक POSIX से परे अतिरिक्त वस्तु प्रकार, जैसे प्रक्रियाओं, को क्षमताओं के माध्यम से संदर्भित किया जा सकता है। कैप्सिकम क्षमता मोड में, प्रक्रियाएं ऑब्जेक्ट्स को देखने के लिए ग्लोबल नेमस्पेस (जैसे फाइल सिस्टम नेमस्पेस) का उपयोग करने में असमर्थ हैं, और इसके अतिरिक्त उन्हें इनहेरिट या प्रत्यायोजित किया जाना चाहिए। यह सिस्टम FreeBSD में मूल रूप से पाया जाता है, लेकिन अन्य सिस्टम के लिए पैच उपलब्ध हैं।<ref>{{man|4|capsicum|FreeBSD}}</ref> | ||
== कार्यान्वयन == | == कार्यान्वयन == | ||
क्षमता-आधारित सुरक्षा को नियोजित करने वाले उल्लेखनीय अनुसंधान और वाणिज्यिक प्रणालियों में निम्नलिखित | क्षमता-आधारित सुरक्षा को नियोजित करने वाले उल्लेखनीय अनुसंधान और वाणिज्यिक प्रणालियों में निम्नलिखित सम्मलित हैं: | ||
* ताहो-एलएएफएस, एक ओपन-सोर्स क्षमता-आधारित फाइल सिस्टम | * ताहो-एलएएफएस, एक ओपन-सोर्स क्षमता-आधारित फाइल सिस्टम | ||
* GNOSIS, [[ Tymshare ]] में विकसित एक ऑपरेटिंग सिस्टम | * GNOSIS, [[ Tymshare |Tymshare]] में विकसित एक ऑपरेटिंग सिस्टम | ||
**[[ कीकोस ]], [[ ज्ञान की ]] का उत्तराधिकारी | **[[ कीकोस ]], [[ ज्ञान की |ज्ञान की]] का उत्तराधिकारी | ||
*** EROS, [[ अत्यधिक विश्वसनीय ऑपरेटिंग सिस्टम ]], KeyKOS का उत्तराधिकारी | *** EROS, [[ अत्यधिक विश्वसनीय ऑपरेटिंग सिस्टम |अत्यधिक विश्वसनीय ऑपरेटिंग सिस्टम]] , KeyKOS का उत्तराधिकारी | ||
**** [[ CapROS ]], व्यावसायिक उपयोग के लिए EROS कोड बेस को और विकसित करने की परियोजना | **** [[ CapROS ]], व्यावसायिक उपयोग के लिए EROS कोड बेस को और विकसित करने की परियोजना | ||
* [[ कैम्ब्रिज सीएपी कंप्यूटर ]] | * [[ कैम्ब्रिज सीएपी कंप्यूटर ]] | ||
* [[ हाइड्रा (ऑपरेटिंग सिस्टम) ]], [[ करनेगी मेलों विश्वविद्याल ]] में C.mmp प्रोजेक्ट का हिस्सा है | * [[ हाइड्रा (ऑपरेटिंग सिस्टम) ]], [[ करनेगी मेलों विश्वविद्याल |करनेगी मेलों विश्वविद्याल]] में C.mmp प्रोजेक्ट का हिस्सा है | ||
* स्टारओएस, कार्नेगी मेलॉन यूनिवर्सिटी में सीएम* प्रोजेक्ट का हिस्सा है | * स्टारओएस, कार्नेगी मेलॉन यूनिवर्सिटी में सीएम* प्रोजेक्ट का हिस्सा है | ||
* आईबीएम सिस्टम/38 और एएस/400 | * आईबीएम सिस्टम/38 और एएस/400 | ||
Line 61: | Line 59: | ||
**ओकेएल4 ओपन कर्नेल लैब्स से | **ओकेएल4 ओपन कर्नेल लैब्स से | ||
**निक्टा से SEL4 | **निक्टा से SEL4 | ||
** [[ टीयू ड्रेसडेन ]] से Fiasco.OC और NOVA | ** [[ टीयू ड्रेसडेन | टीयू ड्रेसडेन]] से Fiasco.OC और NOVA | ||
* [[ अमीबा (ऑपरेटिंग सिस्टम) ]] वितरित ऑपरेटिंग सिस्टम | * [[ अमीबा (ऑपरेटिंग सिस्टम) | अमीबा (ऑपरेटिंग सिस्टम)]] वितरित ऑपरेटिंग सिस्टम | ||
* [[ FreeBSD ]] शिमला मिर्च (यूनिक्स)<ref>{{Cite web|url=https://www.freebsd.org/cgi/man.cgi?capsicum(4)|title = शिमला मिर्च(4)}}</रेफरी><ref>https://www.cl.cam.ac.uk/research/security/capsicum/papers/2010usenix-security-capsicum-website.pdf {{Bare URL PDF|date=March 2022}}</ref> | * [[ FreeBSD | FreeBSD]] शिमला मिर्च (यूनिक्स)<ref>{{Cite web|url=https://www.freebsd.org/cgi/man.cgi?capsicum(4)|title = शिमला मिर्च(4)}}</रेफरी><ref>https://www.cl.cam.ac.uk/research/security/capsicum/papers/2010usenix-security-capsicum-website.pdf {{Bare URL PDF|date=March 2022}}</ref> | ||
* [[ जीनोड ]]<ref>{{cite web|url=https://rudd-o.com/linux-and-free-software/genode-os-a-breath-of-fresh-air-in-operating-system-and-software-security|title=जेनोड ओएस: ऑपरेटिंग सिस्टम और सॉफ्टवेयर सुरक्षा में ताजा हवा की सांस}}</ref> | * [[ जीनोड ]]<ref>{{cite web|url=https://rudd-o.com/linux-and-free-software/genode-os-a-breath-of-fresh-air-in-operating-system-and-software-security|title=जेनोड ओएस: ऑपरेटिंग सिस्टम और सॉफ्टवेयर सुरक्षा में ताजा हवा की सांस}}</ref> | ||
* [[ गूगल फुकिया ]]<ref>{{Cite web|url=https://www.engadget.com/2016/08/13/google-fuchsia-operating-system/|title = Google का Fuchsia ऑपरेटिंग सिस्टम वस्तुतः किसी भी चीज़ पर चलता है}}</ref> | * [[ गूगल फुकिया ]]<ref>{{Cite web|url=https://www.engadget.com/2016/08/13/google-fuchsia-operating-system/|title = Google का Fuchsia ऑपरेटिंग सिस्टम वस्तुतः किसी भी चीज़ पर चलता है}}</ref> | ||
* [[ Webविधानसभा ]] सिस्टम इंटरफेस (डब्ल्यूएएसआई) | * [[ Webविधानसभा | Webविधानसभा]] सिस्टम इंटरफेस (डब्ल्यूएएसआई) | ||
==संदर्भ== | ==संदर्भ== |
Revision as of 20:55, 2 December 2022
क्षमता-आधारित सुरक्षा कंप्यूटर सुरक्षा प्रणालियों की डिजाइन में ऐसी अवधारणा है, जो सम्मलित कंप्यूटर सुरक्षा मॉडल में से मुख्य है। एक क्षमता (कुछ प्रणालियों में एक कुंजी के रूप में जानी जाती है) प्राधिकरण एक संचारी, अक्षम्य एक्सेस टोकन है। यह किसी मान को इस प्रकार संदर्भित करता है जैसे अभिगम नियंत्रण के संबद्ध प्रणाली के साथ किसी वस्तु (कंप्यूटर विज्ञान) को संदर्भित करता है। क्षमता-आधारित ऑपरेटिंग सिस्टम पर उपयोगकर्ता (कंप्यूटिंग) कंप्यूटर प्रोग्राम को किसी वस्तु तक पहुँचने के लिए क्षमता का उपयोग करता है। क्षमता-आधारित सुरक्षा उपयोगकर्ता कार्यक्रमों को डिजाइन करने के सिद्धांत को संदर्भित करती है जैसे कि कम से कम विशेषाधिकार के सिद्धांत के अनुसार एक दूसरे के साथ क्षमताओं को सीधे साझा करते हैं, और ऐसे लेनदेन को कुशल और सुरक्षित बनाने के लिए आवश्यक ऑपरेटिंग सिस्टम के बुनियादी ढांचे के लिए इसका उपयोग करते हैं। क्षमता-आधारित सुरक्षा को यूनिक्स अनुमतियों और अभिगम नियंत्रण सूचियों का उपयोग करने वाले दृष्टिकोण से अलग किया जाता है।
चूंकि अधिकांश ऑपरेटिंग सिस्टम ऐसी सुविधा को लागू करते हैं जो क्षमताओं से मिलती-जुलती है, वे सामान्यतः पर्याप्त समर्थन प्रदान नहीं करते हैं जिससे कि संभवतः मौलिक रूप से अविश्वसनीय संस्थाओं के बीच क्षमताओं के आदान-प्रदान की अनुमति दी जा सके और पूरी प्रणाली में अभिगम अधिकार वितरित करने का प्राथमिक साधन प्रदान कर सकें। किसी क्षमता-पर आधारित प्रणाली, इसके विपरीत उस लक्ष्य को ध्यान में रखकर बनाई गई है।
परिचय
ये क्षमताएं क्षम्य संदर्भ (कंप्यूटर साइंस) के स्थान पर इसका उपयोग करके प्रणाली की सुरक्षा में सुधार करने के अपने उद्देश्य को प्राप्त करती हैं। किसी क्षम्य संदर्भ (उदाहरण के लिए, पथ (कंप्यूटिंग) ) एक वस्तु की पहचान करता है, लेकिन यह निर्दिष्ट नहीं करता है कि उस वस्तु के लिए कौन से एक्सेस अधिकार उपयुक्त हैं और उपयोगकर्ता प्रोग्राम जो उस संदर्भ को अपने साथ रखता है। परिणाम स्वरुप, संदर्भित ऑब्जेक्ट तक पहुंचने के किसी भी प्रयास को ऑपरेटिंग सिस्टम द्वारा मान्य किया जाना आवश्यक होता है, इस प्रकार अनुरोध करने वाले प्रोग्राम के परिवेश प्राधिकरण के आधार पर, सामान्यतः कंट्रोल सूची को खोलो (एसीएल) के उपयोग के माध्यम से उपयोग किया जाता है। इसके अतिरिक्त, क्षमताओं के साथ किसी प्रणाली में, मात्र तथ्य यह है कि उपयोगकर्ता प्रोग्राम के पास वह क्षमता रखता है जो उस क्षमता द्वारा निर्दिष्ट अधिकारों के अनुसार संदर्भित वस्तु का उपयोग करने का अधिकार देता है। सैद्धांतिक रूप में, विशेष क्षमताओं वाली किसी प्रणाली के सभी संस्थानों को सभी को केवल ये क्षमताएँ देकर किसी भी अभिगम नियंत्रण सूची या समान तंत्र की आवश्यकता को हटा देती है जिसकी उन्हें वास्तव में आवश्यकता होगी।
किसी क्षमता को विशेष रूप से विशेषाधिकार (कंप्यूटर विज्ञान) डेटा संरचना के रूप में लागू किया जाता है जिसमें एक खंड होता है जो एक्सेस अधिकारों को निर्दिष्ट करता है, और एक अनुभाग जो विशिष्ट रूप से एक्सेस की जाने वाली वस्तु की पहचान करता है। उपयोगकर्ता डेटा संरचना या ऑब्जेक्ट को सीधे एक्सेस नहीं करता है, बल्कि एक हैंडल (कंप्यूटिंग) के माध्यम से करता है। व्यवहारिक रूप से, इसका उपयोग पारंपरिक ऑपरेटिंग सिस्टम (पारंपरिक हैंडल) में फाइल डिस्क्रिप्टर की तरह किया जाता है, लेकिन इस प्रणाली पर हर वस्तु तक पहुंचने के लिए विशेषकर क्षमताओं को सामान्यतः एक सूची में ऑपरेटिंग सिस्टम द्वारा संग्रहीत किया जाता है, प्रोग्राम को क्षमता की सामग्री को सीधे संशोधित करने से रोकने के लिए कुछ तंत्र के साथ (जिससे कि पहुंच अधिकारों को बनाने या उस वस्तु को बदलने के लिए जो इसे इंगित करता है)। कुछ प्रणालियाँ क्षमता-आधारित एड्रेसिंग (क्षमताओं के लिए हार्डवेयर समर्थन) पर भी आधारित हैं, जैसे कि प्लेसी सिस्टम 250 ।
क्षमता रखने वाले कार्यक्रम उन पर कार्य कर सकते हैं, जैसे उन्हें अन्य कार्यक्रमों में भेजना, उन्हें कम-विशेषाधिकार प्राप्त संस्करण में परिवर्तित करना, या उन्हें हटाना। ऑपरेटिंग सिस्टम को यह सुनिश्चित करना चाहिए कि सुरक्षा नीति की अखंडता को बनाए रखने के लिए सिस्टम में क्षमताओं के लिए केवल विशिष्ट संचालन ही हो सकते हैं।
इस आलेख में चर्चा की गई क्षमताओं को पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस (POSIX ) 1e/2c #POSIX क्षमताओं के साथ भ्रमित नहीं होना चाहिए। बाद वाले मोटे अनाज वाले विशेषाधिकार हैं जिन्हें प्रक्रियाओं के बीच स्थानांतरित नहीं किया जा सकता है।
उदाहरण
एक क्षमता को एक संरक्षित वस्तु (कंप्यूटर विज्ञान) संदर्भ के रूप में परिभाषित किया गया है, जो एक उपयोगकर्ता प्रक्रिया द्वारा अपने कब्जे के आधार पर अनुदान देता है जो किसी वस्तु के साथ कुछ तरीकों से बातचीत करने की क्षमता (इसलिए नाम) को संसाधित करता है। उन तरीकों में ऑब्जेक्ट से जुड़े डेटा को पढ़ना, ऑब्जेक्ट को संशोधित करना, ऑब्जेक्ट में डेटा को एक प्रक्रिया के रूप में निष्पादित करना और अन्य बोधगम्य एक्सेस अधिकार सम्मलित हो सकते हैं। क्षमता में तार्किक रूप से एक संदर्भ होता है जो विशिष्ट रूप से किसी विशेष वस्तु की पहचान करता है और इनमें से एक या अधिक अधिकारों का एक सेट होता है।
मान लीजिए कि, उपयोगकर्ता प्रक्रिया की मेमोरी स्पेस में, निम्न स्ट्रिंग सम्मलित है:
/etc/passwd
चूंकि यह सिस्टम पर एक अनूठी वस्तु की पहचान करता है, यह एक्सेस अधिकारों को निर्दिष्ट नहीं करता है और इसलिए यह क्षमता नहीं है। मान लीजिए कि इसके अतिरिक्त मानों की निम्नलिखित जोड़ी है:
/etc/passwd/ O_RDWR
यह जोड़ी पहुँच अधिकारों के एक सेट के साथ एक वस्तु की पहचान करती है। जोड़ी, चूंकि, अभी भी एक क्षमता नहीं है क्योंकि इन मानों पर उपयोगकर्ता प्रक्रिया का कब्ज़ा इस बारे में कुछ नहीं कहता है कि क्या वह पहुंच वास्तव में वैध होगी।
अब मान लीजिए कि उपयोगकर्ता प्रोग्राम निम्नलिखित कथन को सफलतापूर्वक निष्पादित करता है:
int fd = open( /etc/passwd , O_RDWR);
चर fd
अब प्रक्रिया की फ़ाइल डिस्क्रिप्टर तालिका में फ़ाइल डिस्क्रिप्टर की अनुक्रमणिका सम्मलित है। यह फाइल डिस्क्रिप्टर एक क्षमता है। प्रक्रिया की फाइल डिस्क्रिप्टर तालिका में इसका अस्तित्व यह दिखाने के लिए पर्याप्त है कि प्रक्रिया वास्तव में वस्तु तक वैध पहुंच रखती है। इस व्यवस्था की एक प्रमुख विशेषता यह है कि फाइल डिस्क्रिप्टर टेबल कर्नेल (कंप्यूटर साइंस) में है और उपयोगकर्ता प्रोग्राम द्वारा सीधे हेरफेर नहीं किया जा सकता है।
प्रक्रियाओं के बीच साझा करना
पारंपरिक ऑपरेटिंग सिस्टम में, प्रोग्राम अधिकांशतः पहले दो उदाहरणों की तरह संदर्भों का उपयोग करके एक दूसरे के साथ और भंडारण के साथ संवाद करते हैं। पथ नाम अधिकांशतः कमांड-लाइन पैरामीटर के रूप में पास किए जाते हैं, सॉकेट के माध्यम से भेजे जाते हैं, और डिस्क पर संग्रहीत होते हैं। ये संदर्भ क्षमताएं नहीं हैं, और इनका उपयोग करने से पहले इन्हें सत्यापित किया जाना चाहिए। इन प्रणालियों में, एक केंद्रीय प्रश्न यह है कि किसके अधिकार का मानांकन किया जाना है? यह विशेष रूप से उन प्रक्रियाओं के लिए एक महत्वपूर्ण मुद्दा बन जाता है जिन्हें दो अलग-अलग प्राधिकरण-धारक संस्थाओं की ओर से कार्य करना चाहिए। वे एक प्रोग्रामिंग त्रुटि के लिए अतिसंवेदनशील हो जाते हैं जिसे भ्रमित उप समस्या के रूप में जाना जाता है, जिसके परिणामस्वरूप अधिकांशतः सुरक्षा छेद होता है।
एक क्षमता-आधारित प्रणाली में, क्षमताओं को एक तंत्र का उपयोग करके प्रक्रियाओं और भंडारण के बीच पारित किया जाता है जो ऑपरेटिंग सिस्टम द्वारा उन क्षमताओं की अखंडता को बनाए रखने के लिए जाना जाता है।
इस समस्या को हल करने के लिए एक उपन्यास दृष्टिकोण में ऑर्थोगोनल दृढ़ता ऑपरेटिंग सिस्टम का उपयोग सम्मलित है। ऐसी प्रणाली में, संस्थाओं को खारिज करने और उनकी क्षमताओं को अमान्य करने की कोई आवश्यकता नहीं है, और इसलिए बाद में उन क्षमताओं को बहाल करने के लिए एसीएल जैसी तंत्र की आवश्यकता होती है। ऑपरेटिंग सिस्टम हर समय अस्थिर और गैर-वाष्पशील दोनों तरह के सभी भंडारण के भीतर निहित क्षमताओं की अखंडता और सुरक्षा को बनाए रखता है; उपयोगकर्ता प्रोग्राम को ऐसा करने की आवश्यकता के अतिरिक्त, जैसा कि अधिकांश ऑपरेटिंग सिस्टम में होता है, सभी क्रमांकन कार्यों को स्वयं निष्पादित करके। चूंकि उपयोगकर्ता कार्यक्रम इस जिम्मेदारी से मुक्त हो गए हैं, केवल कानूनी क्षमताओं को पुन: उत्पन्न करने के लिए उन पर भरोसा करने की कोई आवश्यकता नहीं है, न ही अभिगम नियंत्रण तंत्र का उपयोग करके पहुंच के अनुरोधों को मान्य करने के लिए। 1980 के दशक की शुरुआत से एक उदाहरण कार्यान्वयन फ्लेक्स मशीन है।
पॉज़िक्स क्षमताएं
पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस (POSIX) ड्राफ्ट 1003.1e क्षमताओं नामक अनुमतियों की अवधारणा को निर्दिष्ट करता है। चूंकि, POSIX क्षमताएँ इस आलेख की क्षमताओं से भिन्न हैं। POSIX क्षमता किसी वस्तु से संबद्ध नहीं है; CAP_NET_BIND_SERVICE क्षमता वाली एक प्रक्रिया 1024 के अनुसार किसी भी TCP पोर्ट पर सुन सकती है। यह सिस्टम Linux में पाया जाता है।[1] इसके विपरीत, शिमला मिर्च (यूनिक्स) यूनिक्स यूनिक्स डिजाइन और पॉज़िक्स एपीआई के साथ एक वास्तविक क्षमता-प्रणाली मॉडल को संकरणित करता है। कैप्सिकम क्षमताएं फाइल डिस्क्रिप्टर का एक परिष्कृत रूप है, प्रक्रियाओं के बीच एक प्रत्यायोजित अधिकार और क्लासिक POSIX से परे अतिरिक्त वस्तु प्रकार, जैसे प्रक्रियाओं, को क्षमताओं के माध्यम से संदर्भित किया जा सकता है। कैप्सिकम क्षमता मोड में, प्रक्रियाएं ऑब्जेक्ट्स को देखने के लिए ग्लोबल नेमस्पेस (जैसे फाइल सिस्टम नेमस्पेस) का उपयोग करने में असमर्थ हैं, और इसके अतिरिक्त उन्हें इनहेरिट या प्रत्यायोजित किया जाना चाहिए। यह सिस्टम FreeBSD में मूल रूप से पाया जाता है, लेकिन अन्य सिस्टम के लिए पैच उपलब्ध हैं।[2]
कार्यान्वयन
क्षमता-आधारित सुरक्षा को नियोजित करने वाले उल्लेखनीय अनुसंधान और वाणिज्यिक प्रणालियों में निम्नलिखित सम्मलित हैं:
- ताहो-एलएएफएस, एक ओपन-सोर्स क्षमता-आधारित फाइल सिस्टम
- GNOSIS, Tymshare में विकसित एक ऑपरेटिंग सिस्टम
- कीकोस , ज्ञान की का उत्तराधिकारी
- EROS, अत्यधिक विश्वसनीय ऑपरेटिंग सिस्टम , KeyKOS का उत्तराधिकारी
- CapROS , व्यावसायिक उपयोग के लिए EROS कोड बेस को और विकसित करने की परियोजना
- EROS, अत्यधिक विश्वसनीय ऑपरेटिंग सिस्टम , KeyKOS का उत्तराधिकारी
- कीकोस , ज्ञान की का उत्तराधिकारी
- कैम्ब्रिज सीएपी कंप्यूटर
- हाइड्रा (ऑपरेटिंग सिस्टम) , करनेगी मेलों विश्वविद्याल में C.mmp प्रोजेक्ट का हिस्सा है
- स्टारओएस, कार्नेगी मेलॉन यूनिवर्सिटी में सीएम* प्रोजेक्ट का हिस्सा है
- आईबीएम सिस्टम/38 और एएस/400
- इंटेल आईएपीएक्स 432
- प्लेसी 250
- फ्लेक्स मशीन
- L4 माइक्रोकर्नेल परिवार :
- ओकेएल4 ओपन कर्नेल लैब्स से
- निक्टा से SEL4
- टीयू ड्रेसडेन से Fiasco.OC और NOVA
- अमीबा (ऑपरेटिंग सिस्टम) वितरित ऑपरेटिंग सिस्टम
- FreeBSD शिमला मिर्च (यूनिक्स)Cite error: Closing
</ref>
missing for<ref>
tag - जीनोड [3]
- गूगल फुकिया [4]
- Webविधानसभा सिस्टम इंटरफेस (डब्ल्यूएएसआई)
संदर्भ
- ↑ Linux Programmer's Manual – Overview, Conventions and Miscellanea –
- ↑ FreeBSD Kernel Interfaces Manual –
- ↑ "जेनोड ओएस: ऑपरेटिंग सिस्टम और सॉफ्टवेयर सुरक्षा में ताजा हवा की सांस".
- ↑ "Google का Fuchsia ऑपरेटिंग सिस्टम वस्तुतः किसी भी चीज़ पर चलता है".
- Levy, Henry M., *Capability-Based Computer Systems, Digital Equipment Corporation 1984. ISBN 0-932376-22-3. An electronic version is available here.
- The EROS Project
- E, a programming language based around capability security (ERights.org)
- Mark S. Miller, Ka-Ping Yee, Jonathan Shapiro. Capability Myths Demolished, Technical Report SRL2003-02, Systems Research Laboratory, Johns Hopkins University. Available online.
- The Cambridge CAP Computer, Levy, 1988
अग्रिम पठन
- Capability-based addressing: Theodore A. Linden (December 1976). "Operating System Structures to Support Security and Reliable Software". ACM Computing Surveys. 8 (4): 409–445. doi:10.1145/356678.356682. hdl:2027/mdp.39015086560037. ISSN 0360-0300. S2CID 16720589.
- Li Gong, A Secure Identity-Based Capability System, sp, p. 56, 1989 IEEE Symposium on Security and Privacy, 1989
- Capability-based addressing
- A hardware implementation of capability-based addressing
- An implementation of capabilities on the PDP-11/45
- IBM System/38 support for capability-based addressing
- EROS: a fast capability system
POSIX "capabilities" in Linux:
- POSIX Capabilities & Files
- POSIX file capabilities: Parceling the power of root
- Making Root Unprivileged
- Security issues and new risks linked to POSIX file capabilities
- Linux manual page for "capabilities(7)"
- Working with Linux capabilities
इस पेज में लापता आंतरिक लिंक की सूची
- कम से कम विशेषाधिकार का सिद्धांत
- क्षमता आधारित ऑपरेटिंग सिस्टम
- यूनिक्स अनुमतियाँ
- संदर्भ (कंप्यूटर विज्ञान)
- अभिगम नियंत्रण सूची
- पहुँच नियंत्रण
- क्षमता-आधारित संबोधन
- कर्नेल (कंप्यूटर विज्ञान)
- भ्रमित डिप्टी समस्या
- क्रमबद्धता
- तेहो-एलएएफएस