विषय, उपयोगकर्ता और प्रिंसिपल के बीच क्या अर्थ और अंतर है?


173

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

तो, वास्तव में इन शर्तों का क्या मतलब है, और विषय और प्रिंसिपल के इन भेदों की आवश्यकता क्यों है?

जवाबों:


277

ये इस तरह से पदानुक्रमित हैं कि जीनस, प्रजातियां और व्यक्ति पदानुक्रमित हैं।

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

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

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

उपयोगकर्ता विषय या प्रिंसिपल की तुलना में अधिक विशिष्ट है कि यह आमतौर पर एक इंटरैक्टिव ऑपरेटर को संदर्भित करता है। यही कारण है कि हमारे पास एक ग्राफिकल यूजर इंटरफेस है न कि ग्राफिकल प्रिंसिपल इंटरफेस। एक उपयोगकर्ता विषय का एक उदाहरण है जो एक प्रिंसिपल को हल करता है । कोई भी उपयोगकर्ता किसी भी प्रिंसिपल को हल कर सकता है, लेकिन किसी भी प्रिंसिपल से सिंगल यूजर को हल करने की अपेक्षा की जाती है (यह मानते हुए कि लोग आईडी साझा नहीं करने की आवश्यकता का पालन करते हैं)। उपरोक्त उदाहरण में, एक निष्पादन योग्य कोड मॉड्यूल के हस्ताक्षरकर्ता निश्चित रूप से है नहीं उपयोगकर्ता है, लेकिन यह है एक वैध प्रिंसिपल। मॉड्यूल को लोड करने की कोशिश करने वाला इंटरैक्टिव ऑपरेटर उपयोगकर्ता है।

जैसा कि टिप्पणियों में कहा गया है, यहां तक ​​कि आधिकारिक सूत्र भी इन शर्तों पर सहमत नहीं हैं। मैंने इस प्रतिक्रिया को तैयार करते समय सुरक्षा परीक्षा गाइड जैसे NIST, SANS, IEEE, MITER और कई "अर्ध-आधिकारिक" स्रोतों को खोजा। कोई भी स्रोत जो मुझे नहीं मिला, जो कम से कम अर्ध-आधिकारिक था, तीनों शब्दों को शामिल किया गया था और सभी उनके उपयोग में काफी भिन्न थे। शर्तों का उपयोग कैसे किया जाना चाहिए , इस पर मेरा ख्याल है, लेकिन व्यावहारिक दृष्टिकोण से, जब आप आधी रात को एक मैनुअल पर काम कर रहे होते हैं, तो परिभाषाएं विक्रेता या लेखक जो भी कहते हैं, वह हो जाती हैं। उम्मीद है कि हालांकि यहां प्रतिक्रियाएं पानी को नेविगेट करने और इन शर्तों का उपयोग करके किसी भी सुरक्षा दस्तावेज को पार्स करने के लिए पर्याप्त अंतर्दृष्टि प्रदान करेंगी।


3
सब्जेक्ट, प्रिंसिपल, यूजर, के लिए चीजों को तोड़ने का क्या फायदा है, इसकी अतिरिक्त जटिलता से हमें इस अतिरिक्त जटिलता का क्या फायदा मिलता है?
6:17

19
विशिष्टता के सही स्तर को चुनने की क्षमता। यह एक ही लाभ है जिसे हम एक गंतव्य बनाम एक कतार या विषय के बीच अंतर करने में सक्षम होने से प्राप्त करते हैं। एक वर्गीकरण में विशिष्टता के विभिन्न स्तरों के बीच चयन करने की क्षमता अभिव्यक्ति की सटीकता के लिए अनुमति देती है जो एक पाठक के लिए लेखक के इरादे को बेहतर ढंग से बताती है। प्रोग्रामिंग करते समय हमारे पास लक्जरी / शाप है कि सीपीयू हमारे निर्देशों को केवल एक ही तरीके से व्याख्या करेगा और हम इसे सटीक स्तर का उपयोग करने के लिए मजबूर हैं। लेकिन मानव भाषा में हमें कुशलता से अर्थ बताने के लिए बारीकियों और सटीकता की आवश्यकता होती है।
T.Rob

1
टी। रोब, कमाल, लेकिन क्या आप "उपयोगकर्ता - प्रिंसिपल का सबसेट" स्पष्ट कर सकते हैं? यदि जॉन विषय है और "खाता # 123" उसका प्रमुख है, तो उपयोगकर्ता कौन है? क्या दो जॉन हैं? चूंकि जीनस> प्रजाति> व्यक्तिगत रूप से विशिष्ट है, जॉन (उपयोगकर्ता) जॉन (विषय) की तुलना में अधिक विशिष्ट होना चाहिए। या क्या मैं कुछ न कुछ भूल रहा हूं?
मध्याह्न-पीला

1
दो सिद्धांतों पर विचार करें जहां # 123 जॉन है और # 124 एक सेवा खाते को संदर्भित करता है। हम शायद पासवर्ड पॉलिसी, लॉगिन क्षमता, आदि जैसी चीजों के बारे में इन अलग-अलग व्यवहार करना चाहते हैं, टाइप 'उपयोगकर्ता' के प्रिंसिपल पासवर्ड की जटिलता और समाप्ति की नीतियों के अधीन हैं, जबकि टाइप 'सर्विस अकाउंट' के प्रिंसिपलों के पास भी पासवर्ड नहीं हो सकता है। जब हम प्रिंसिपल के प्रकारों को वर्गीकृत करना शुरू करते हैं तो हम सबसेट बनाते हैं। क्या उससे मदद हुई? या मैंने अभी और कीचड़ उछाला है?
टी। आरओबी

हाँ, इससे मदद मिलती है। तो, संक्षेप में, निम्नलिखित में से कोई सुधार? आप इसे नोटपैड ++ जैसे संपादक को कॉपी और पेस्ट करना चाह सकते हैं और प्रत्येक जॉन के सामने एक लाइनब्रेक डाल सकते हैं (एसओ टिप्पणियों में लाइनब्रेक को नापसंद करते हैं): John (human) SUBJECT > username_1 PRINCIPAL > password_1 USER John (human) SUBJECT > username_1 PRINCIPAL > password_2 USER John (human) SUBJECT > username_1 PRINCIPAL > smartcard_1 USER John (human) SUBJECT > username_1 PRINCIPAL > cellphone_1 USER
मध्याह्न-पीला


19

मुझे लगता है कि शब्दावली JAAS से ली गई है ।

जब कोई एप्लिकेशन उपयोगकर्ता (या अन्य इकाई जैसे सेवा) को प्रमाणित करने के लिए जेएएएस प्रमाणीकरण का उपयोग करता है, तो एक परिणाम के रूप में एक विषय बनाया जाता है। विषय का उद्देश्य प्रमाणित उपयोगकर्ता का प्रतिनिधित्व करना है। एक विषय प्रिंसिपलों के एक सेट से मिलकर बनता है , जहाँ प्रत्येक प्रधानाचार्य उस उपयोगकर्ता के लिए एक पहचान का प्रतिनिधित्व करता है। उदाहरण के लिए, एक विषय में एक प्रिंसिपल ("सुसान स्मिथ") और एक सामाजिक सुरक्षा नंबर प्रिंसिपल ("987-65-4321") हो सकता है, जिससे इस विषय को अन्य विषयों से अलग किया जा सके।


2
मैंने पहले भी इस परिभाषा को देखा है, इसका बहुत घना, क्या आप इस पर विस्तार से बता सकते हैं, खासकर कि कैसे एक उपयोगकर्ता एक प्रिंसिपल से अलग है, क्यों विषय का उपयोग किया जाता है और न केवल उपयोगकर्ता। अगर इन शब्दों का जेएएएस से परे अर्थ है तो मैं उस अर्थ से परिचित होना चाहता हूं, अगर ये शब्द जेएएएस के आविष्कार हैं, तो मुझे लगता है कि सूर्य अभियंताओं ने इसे बनाया जो इन अवधारणाओं के लिए खराब नामों को उठाते हैं। मैंने बहुत से प्रोग्रामर से यह प्रश्न पूछे हैं और स्पष्ट उत्तर नहीं पा सके हैं, हर एक को इन शब्दों की एक अलग समझ है।
एम्स

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

3
लेक्सिकॉन JAAS को एक लंबे शॉट से पूर्ववर्ती करता है। जेएएएस केवल इसके कुछ और कई बार गैर-मानक तरीकों से पुन: उपयोग करता है। इस प्रश्न को प्रेरित करने वाली समस्या का एक हिस्सा यह है कि अवधारणाओं को संदर्भों से सीखा जाता है जिसमें शब्दावली का उपयोग किया जाता है और फिर थोड़ा अलग तरीकों से पुन: उपयोग किया जाता है। जब आधिकारिक स्रोतों को ढूंढना मुश्किल होता है या बस अनदेखा किया जाता है, तो अर्थ समय के साथ ढल जाते हैं। जब सुरक्षा की बात आती है, जहां सटीकता एक परम आवश्यकता है, तो अस्पष्टता की ओर यह बहाव सुरक्षित डिजाइन बनाने और लागू करने की हमारी क्षमता को क्षीण कर देता है।
T.Rob

@ T.ob आप किसी भी कागजी शीर्षक, या आधिकारिक संदर्भ जो आप साझा कर सकते हैं।
एम्स

दुर्भाग्य से, यहां तक ​​कि आधिकारिक सूत्र असहमत हैं। SANS सभी बिट पर मुख्य या विषय को परिभाषित नहीं करता है ।ly/hl4rUP और NIST bit.ly/fE7NJs व्यक्ति के रूप में विशेष रूप से विषय को परिभाषित करता है। अन्य "आधिकारिक" स्रोत समान रूप से अस्पष्ट हैं जो इस क्षेत्र में स्पष्टता के महत्व को देखते हुए, बल्कि निराशाजनक है। IEE की एक शब्दावली है लेकिन आप इसे केवल सदस्यता या सदस्यता के साथ पढ़ सकते हैं, इसलिए इसका व्यापक दर्शकों के साथ चर्चा में सीमित उपयोग है। मैं शॉन हैरिस के CISSP परीक्षा गाइड में भाग में अपनी प्रतिक्रिया को आधार बना रहा था।
T.ob

12

विषय वह इकाई है जो किसी सेवा का अनुरोध करता है। यह एक उपयोगकर्ता या एक प्रक्रिया हो सकती है। संभवतः इसीलिए उपयोगकर्ता के बजाय विषय को चुना गया था।

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

इसलिए, प्राधिकरण के दृष्टिकोण से, प्रिंसिपल वास्तविक इकाइयाँ हैं जिनके लिए उपयोग की अनुमति है या उन्हें अस्वीकृत किया गया है। विषय सिर्फ एक उपयोगकर्ता / थ्रेड / प्रक्रिया है जो कुछ प्रिंसिपल रखती है।


प्रति विषय एकाधिक सिद्धांत होने का क्या लाभ है?
एम्स

6
मैं दो लाभों के बारे में सोच सकता हूं: (1) प्रिंसिपल यूजरआईड ("एलिस"), रोल ("मैनेजर"), विभाग ("सेल्स") एक सेवा (ऑब्जेक्ट) का उपयोग करने वाले उपयोगकर्ता एलिस पर विचार करें। सेवा अभिगम नियंत्रण को तब निर्दिष्ट किया जा सकता है जैसे कि "अनुमति के लिए भूमिका (प्रबंधक)" या "विभाग के लिए अस्वीकृत (बिक्री)" आदि निर्दिष्ट करने के बजाय कि ऐलिस इसे एक्सेस कर सकता है या नहीं। इस तरह के एक्सेस कंट्रोल सिस्टम को प्रबंधित करना आसान है क्योंकि सुरक्षा व्यवस्थापक को सभी सेवाओं के लिए सभी उपयोगकर्ताओं के लिए एक्सेस विशेषाधिकारों को निर्दिष्ट करने की आवश्यकता नहीं है।
राहुलमोहन

4
(2) एक उद्यम प्रणाली में, उपयोगकर्ताओं को आमतौर पर कुछ मिश्रित सेवा निष्पादित होने से पहले कई प्रणालियों के साथ प्रमाणित करना पड़ता है। ऐसा हो सकता है कि उन प्रणालियों में से प्रत्येक के पास अलग-अलग विवरणों की आवश्यकता के लिए अपने स्वयं के एक्सेस कंट्रोल तंत्र हैं - एक सिस्टम एसएसएन का उपयोग करता है, और दूसरा उपयोगकर्ताआईड का उपयोग करता है। इस प्रकार एक ही विषय के लिए दोनों प्रिंसिपलों के पास दोनों का उपयोग करना चाहिए
rahulmohan

1
मुझे लगता है कि इस शब्दावली के साथ 99% भ्रम एक वाक्य के साथ हल किया जा सकता है, "एक मूल रूप से एक समूह है"।
तर्जका

1
?! ... आप क्यों कहते हैं कि एक प्रिंसिपल एक समूह है?
राफेल

10

जैसा कि T.ob ने समझाया, विषय कोई भी इकाई है जो किसी वस्तु तक पहुंच का अनुरोध करता है। उस बिंदु से शुरू करके मुझे javax.security.auth.Subject कोड पर एक टिप्पणी मिली है जो मुझे बहुत उपयोगी और समझने में आसान है:

"विषयों में संभावित रूप से कई पहचान हो सकती हैं। प्रत्येक पहचान को विषय के भीतर एक प्रधानाचार्य के रूप में दर्शाया जाता है। प्रधानाचार्य केवल एक विषय के लिए नामों को बाँधते हैं। उदाहरण के लिए, एक विषय जो एक व्यक्ति के रूप में होता है, ऐलिस, में दो प्रधानाध्यापक हो सकते हैं: एक जो बांधता है" ऐलिस बार ", उसके ड्राइवर लाइसेंस पर नाम, विषय के लिए, और दूसरा जो बांधता है," 999-99-9999 ", उसके छात्र पहचान पत्र पर नंबर, विषय के लिए। दोनों प्रधानाचार्य प्रत्येक के लिए भले ही एक ही विषय को देखें। एक अलग नाम है। "

आशा करता हूँ की ये काम करेगा।


7

यह Oracle JAVA SE दस्तावेज़ीकरण से नीचे की खोज के लिए लिंक है

विषय, संसाधन, प्रमाणीकरण, और क्रेडेंशियल संसाधनों तक पहुंच को अधिकृत करने के लिए, अनुप्रयोगों को पहले अनुरोध के स्रोत को प्रमाणित करने की आवश्यकता होती है। JAAS ढांचा एक अनुरोध के स्रोत का प्रतिनिधित्व करने के लिए विषय को परिभाषित करता है । एक विषय कोई भी इकाई हो सकती है, जैसे कि व्यक्ति या सेवा। किसी विषय को javax.security.auth.Subject वर्ग द्वारा दर्शाया जाता है ।

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

एक बार प्रमाणित होने के बाद, एक विषय संबंधित पहचान या प्रधानाध्यापकों (प्रकार java.security.Principal ) से भरा जाता है । एक विषय में कई प्रिंसिपल हो सकते हैं। उदाहरण के लिए, एक व्यक्ति का नाम प्रिंसिपल ("जॉन डो") और एक एसएसएन प्रिंसिपल ("123-45-6789") हो सकता है, जो इसे अन्य विषयों से अलग करता है।

संबद्ध प्रधानाध्यापकों के अलावा, एक विषय के पास सुरक्षा से संबंधित विशेषताएँ हो सकती हैं, जिन्हें प्रमाणिकता कहा जाता है । एक क्रेडेंशियल में नई सेवाओं के लिए विषय को प्रमाणित करने के लिए उपयोग की जाने वाली जानकारी हो सकती है। इस तरह के क्रेडेंशियल में पासवर्ड, करबरोस टिकट और सार्वजनिक कुंजी प्रमाणपत्र शामिल हैं। क्रेडेंशियल में डेटा भी हो सकता है जो विषय को कुछ गतिविधियों को करने में सक्षम बनाता है। क्रिप्टोग्राफिक कुंजी, उदाहरण के लिए, क्रेडेंशियल्स का प्रतिनिधित्व करते हैं जो विषय को डेटा पर हस्ताक्षर या एन्क्रिप्ट करने में सक्षम करते हैं। सार्वजनिक और निजी क्रेडेंशियल कक्षाएं कोर J2SE एपीआई का हिस्सा नहीं हैं। इसलिए, कोई भी वर्ग एक साख का प्रतिनिधित्व कर सकता है।


यद्यपि मैं टी। रब के उत्तर से सहमत हूं, यह अराम से - जो कहता है कि "एक विषय किसी भी इकाई हो सकता है" - ईआरएम पर संकेत: अधिकांश डेटाबेस को मिलाते हुए इकाई-संबंध मॉडल। उस मॉडल में, "संस्था" सुरक्षा के संदर्भ में "विषय" से मेल खाती है, लेकिन आप जो मॉडलिंग कर रहे हैं, उसके आधार पर यह प्रिंसिपल (बैंक खाता, एसएसएन #) या उपयोगकर्ता (जॉन स्मिथ) हो सकता है, जैसा कि मैरिनस में सुझाया गया है। 'जवाब दो। विकिपीडिया: en.wikipedia.org/wiki/Entity%E2%80%93relationship_model
मध्याह्न-पीला

0

rahulmohan के अनुसार, मुझे लगता है, ऑथेंटिकेशन से पहले सबजेट होता है, ऑथेंटिकेशन के बाद ऑथेंटिकेशन होता है, अंतर सेन्स में, एक सबजेट में कई सारे प्रिकिपल हो सकते हैं

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