Konu, kullanıcı ve müdür arasındaki anlam ve fark nedir?


173

Güvenlik çerçeveleri bağlamında, genellikle açık bir tanım ve aralarındaki farkı bulamadığım konu , kullanıcı ve müdür gibi birkaç terim ortaya çıkar .

Peki, bu terimler tam olarak ne anlama geliyor ve bu konu ve prensip ayrımlarına neden ihtiyaç duyuluyor?

Yanıtlar:


277

Bunlar, cins, tür ve bireyin hiyerarşik olduğu gibi hiyerarşiktir.

  • Konu - Güvenlik bağlamında, konu bir nesneye erişim isteyen herhangi bir varlıktır . Bunlar, erişim isteyen ve isteğin karşılandığı şeyi belirtmek için kullanılan genel terimlerdir. Bir uygulamada oturum açtığınızda konu sizsiniz ve uygulama nesnedir. Birisi kapınızı çaldığında, ziyaretçi erişim isteyen konudur ve eviniz nesneye erişim istenir.
  • Asıl - Bir hesap, rol veya başka bir benzersiz tanımlayıcı ile temsil edilen öznenin bir alt kümesi . Uygulama düzeyi düzeyine geldiğimizde, ilkeler erişim denetim listelerinde kullandığımız benzersiz anahtarlardır. İnsan kullanıcıları, otomasyonu, uygulamaları, bağlantıları vb. Temsil edebilirler.
  • Kullanıcı - Genellikle bir insan operatöre atıfta bulunan bir müdür alt kümesi . "Kullanıcı" veya "kullanıcı kimliği" kelimeleri genellikle "hesap" ile değiştirildiği için, ayrım zaman içinde bulanıklaşıyor. Ancak, temel olan şeylerin geniş sınıfı ile belirleyici olmayan bir şekilde işlemleri yürüten etkileşimli operatörler olan alt kümesi arasında ayrım yapmanız gerektiğinde , "kullanıcı" doğru kelimedir.

Konu / Nesne, gramerde kullanılan terimlerden miras kalır. Bir cümlede özne aktördür ve nesne üzerinde hareket edilen şeydir. Bu anlamda, bilgisayarlar icat edilmeden bu yana kullanım yaygın olmuştur. Güvenlik bağlamında, konu istekte bulunabilecek her şeydir. Yukarıda belirtildiği gibi, bunun BT güvenliği ile sınırlı olması gerekmemektedir ve bu nedenle çok geniş bir sınıflandırmadır. İlginç olan şey, öznenin nesneyi ima etmesidir. Nesne olmadan konu yoktur.

Prensipler, konuların çözdüğü şeydir. Kredi kartınızı sunduğunuzda konudur ve hesap numarası asıl kişidir. Diğer bağlamlarda, kullanıcı kimliğiniz veya devlet tarafından verilen kimliğiniz esastır. Ancak müdürler, insan olmayan birçok özne türüyle ilişkilendirilebilir. Uygulamalar sistem düzeyinde işlevler için istekte bulunduğunda, yönetici imzalı bir yürütülebilir kod modülünün imzacısı olabilir, ancak bu durumda bile isteği yönlendiren kullanıcı hala konudur.

Kullanıcı genellikle etkileşimli bir operatöre atıfta bulunduğundan, konudan veya prensipten daha spesifiktir. Bu yüzden bir Grafik Kullanıcı Arayüzümüz değil, bir Grafik Kullanıcı Arayüzümüz var. Kullanıcı, anapara çözümlenen konu örneğidir . Tek bir kullanıcı herhangi bir sayıda ilkeye karar verebilir, ancak herhangi bir yöneticinin tek bir kullanıcıya çözmesi beklenir (insanların kimlik paylaşmama gerekliliğine uyduğu varsayılarak). Yukarıdaki örnekte, bir çalıştırılabilir kod modülü imzalayan kesinlikle yok Kullanıcı, ama olan geçerli bir asıl. Modülü yüklemeye çalışan etkileşimli operatör kullanıcıdır.

Yorumlarda belirtildiği gibi, yetkili kaynaklar bile bu şartlar üzerinde anlaşmamaktadır. Bu yanıtı hazırlarken NIST, SANS, IEEE, MITER ve güvenlik sınav rehberleri gibi birçok "yarı yetkili" kaynak araştırdım. En azından yarı-yetkili olan bulduğum hiçbir kaynak üç terimi de kapsıyordu ve bunların kullanımında önemli farklılıklar vardı. Bu terimlerin nasıl kullanılması gerektiğini benimsemem, ancak pratik bir bakış açısıyla, gecenin ortasında bir el kitabını incelerken, tanımlar satıcı veya yazar ne derse desin. Umarım buradaki yanıtlar, sularda gezinmek ve bu şartları kullanarak herhangi bir güvenlik belgesini ayrıştırmak için yeterli bilgi sağlayacaktır.


3
Konu, Ana, Kullanıcı, ekstra karmaşıklığına bölünmenin faydası nedir? Bu ekstra karmaşıklıktan ne fayda sağlıyoruz?
ams

19
Doğru özgüllük seviyesini seçme yeteneği. Hedef ile kuyruk veya konu arasında ayrım yapabilmemizden elde ettiğimiz fayda da aynıdır. Bir sınıflandırmada farklı özgüllük düzeyleri arasında seçim yapabilme, bir yazarın niyetini bir okuyucuya daha iyi ileten bir ifade hassasiyeti sağlar. Programlama yaparken CPU'nun talimatlarımızı tek bir şekilde yorumlayacağı lüks / lanete sahibiz ve hassasiyet seviyesini kullanmak zorundayız. Fakat insan dilinde, anlamı verimli bir şekilde iletmek için nüans ve hassasiyete ihtiyacımız var.
T.Rob

1
T.Rob, harika, ama "Kullanıcı - anapara altkümesi" açıklayabilir misiniz? John özne ise ve onun müdürü "hesap # 123" ise kullanıcı kimdir? İki tane John var mı? Cins> Türler> Birey gittikçe daha spesifik olduğundan, John (kullanıcı) John'dan (konu) daha spesifik olmalıdır. Yoksa bir şey mi kaçırıyorum?
mellow-yellow

1
# 123'ün John ve # 124'ün bir hizmet hesabına atıfta bulunduğu iki prensibi düşünün. Muhtemelen bu farklıları şifre politikası, oturum açma yeteneği vb. Konularla ele almak istiyoruz. 'Kullanıcı' türündeki prensipler şifre karmaşıklığına ve süre sonu politikalarına tabiyken, 'hizmet hesabı' türündeki prensiplerin şifre bile olmayabilir. Temel türlerini kategorilere ayırmaya başladığımızda alt kümeler oluştururuz. Bu yardımcı olur mu? Yoksa daha fazla çamur mu karıştırdım?
T.Rob

Evet, yardımcı olur. Yani, somut olarak, aşağıdakilere yönelik herhangi bir düzeltme var mı? Notepad ++ gibi bir düzenleyiciye kopyalayıp yapıştırmak ve her John'dan önce bir satır aralığı koymak isteyebilirsiniz (SO, yorumlarda satır aralıklarına izin vermiyor): 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
sarı-sarı


19

Bence terminoloji JAAS'tan alınmıştır .

Bir uygulama kullanıcının (veya hizmet gibi başka bir varlığın) kimliğini doğrulamak için JAAS kimlik doğrulamasını kullandığında, sonuç olarak bir Konu oluşturulur. Konunun amacı kimliği doğrulanmış kullanıcıyı temsil etmektir. Bir Konu, her Müdürün o kullanıcı için bir kimliğini temsil ettiği bir dizi Müdürden oluşur . Örneğin, bir Konunun adı ("Susan Smith") ve Sosyal Güvenlik Numarası Müdürü ("987-65-4321") olabilir, böylece bu Konuyu diğer konulardan ayırt edebilir.


2
Bu tanımı daha önce görmüştüm, çok yoğun, özellikle bir kullanıcının bir prensipten ne kadar farklı olduğunu, neden terimin sadece kullanıcı değil, neden kullanıldığını ayrıntılandırabilir misiniz? Eğer bu terimler JAAS'ın ötesinde bir anlam taşıyorsa, bu anlama aşina olmak istiyorum, eğer bu terimler JAAS'ın icatları ise, o zaman onu yaratan Güneş Mühendisleri bu kavramların ne anlama geldiğini anlamadılar. Birkaç programcıya bu soruları sordum ve net cevaplar alamadım, her birinin bu terimler hakkında farklı bir anlayışı var gibi görünüyor.
ams

Müdür, bir Konuyu tanımlamanın sadece bir yolu gibi görünüyor. Başka bir deyişle, herhangi bir Müdür teorik olarak kullanıcı veritabanınızda birincil anahtar görevi görebilir.
Platinum Azure

3
Sözlük, uzun bir atışla JAAS'tan önce gelir. JAAS sadece bazılarını ve zaman zaman standart olmayan yollarla yeniden kullanır. Bu soruyu ortaya çıkaran sorunun bir kısmı, kavramların terminolojinin kullanıldığı bağlamlardan öğrenilmesi ve daha sonra biraz farklı şekillerde yeniden kullanılmasıdır. Yetkili kaynakların bulunması zor veya basitçe göz ardı edildiğinde, anlamlar zamanla kaymaktadır. Hassasiyetin mutlak bir gereklilik olduğu güvenlik söz konusu olduğunda, belirsizliğe doğru kayma, güvenli tasarımlar oluşturma ve uygulama yeteneğimizi bozar.
T.Rob

@ T.Rob, paylaşabileceğiniz herhangi bir kağıt başlığı veya yetkili referanslar yapıyor mu?
ams

Ne yazık ki, yetkili kaynaklar bile aynı fikirde değil. SANS, asıl veya konuyu hiç bit.ly/hl4rUP ve NIST bit.ly/fE7NJs olarak tanımlamaz, konuyu özellikle bir kişi olarak tanımlar. Diğer "yetkili" kaynaklar da benzer şekilde belirsizdir ve bu alandaki netliğin önemi göz önüne alındığında oldukça hayal kırıklığı yaratır. IEE'nin bir sözlüğü vardır, ancak bunu yalnızca üyelik veya abonelikle okuyabilirsiniz, böylece geniş bir kitleyle yapılan bir tartışmada kullanımı sınırlıdır. Yanıtımı kısmen Shon Harris'in CISSP Sınav Kılavuzu'na dayandırıyordum.
T.Rob

12

Konu , hizmet isteyen varlıktır. Bir kullanıcı veya bir işlem olabilir. Muhtemelen bu yüzden Kullanıcı yerine Konu adı seçildi.

Bir konu bir hizmete erişmeye çalıştığında, önce konunun kimliği doğrulanmalıdır. Başarılı kimlik doğrulaması , bu Konunun Güvenlik İlkelerinin yüklenmesi ile sona erer . Örneğin, Rol Tabanlı Erişim Kontrol sisteminde, kimliği doğrulanmış (oturum açmış) bir kullanıcının genellikle iki prensibi olacaktır - userId ve roleId. Bu tür sistemlerde, hem roller hem de kullanıcılar için ayrıcalıklar (yani neye erişebilecekleri) belirtilir. Yetkilendirme sırasında (örn. Talep edilen hizmete izin verilip verilmeyeceğini kontrol etmek), güvenlik sistemi her iki prensibe karşı erişilebilirliği kontrol edecektir.

Bu nedenle, yetkilendirme açısından, müdürler erişime izin verilen veya izin verilmeyen gerçek varlıklardır. Konu sadece bazı prensipleri tutan bir kullanıcı / evre / süreçtir.


Her konu için birden fazla ilkeye sahip olmanın yararı nedir?
ams

6
İki avantajı düşünebilirim: (1) Alice'i, bir hizmete (Nesne) erişen UserId ("Alice"), Rol ("Manager"), Department ("Sales") kullanıcılarıyla birlikte düşünün. Hizmet erişim denetimi daha sonra Alice'in erişip erişemeyeceğini belirtmek yerine "Rol için İzin Ver (Yönetici)" veya "Departmana İzin Verme (Satış)" vb. Olarak belirtilebilir. Bu tür erişim kontrol sistemlerinin yönetimi daha kolaydır, çünkü güvenlik yöneticisinin TÜM kullanıcılar için TÜM kullanıcılar için erişim ayrıcalıkları belirtmesi gerekmez.
rahulmohan

4
(2) Bir kurumsal sistemde, bazı kompozit hizmetlerin yürütülebilmesi için kullanıcıların genellikle birden fazla sistemle kimliğinin doğrulanması gerekir. Bu sistemlerin her birinin farklı ayrıntılar gerektiren kendi erişim kontrol mekanizmaları olabilir - bir sistem SSN, diğeri userId kullanır. Bu nedenle aynı konu her ikisine de erişmesi için her iki
ilkeye

1
Bu terminoloji ile olan karışıklığın% 99'unun, "bir prensip temelde bir grup" çizgisi boyunca bir cümle ile çözülebileceğini hissediyorum.
Trejkaz

1
?! ... neden Müdürün bir Grup olduğunu söyledin?
Rafael

10

T.Rob'un açıkladığı gibi, Konu bir nesneye erişim isteyen herhangi bir varlıktır. Bu noktadan başlayarak javax.security.auth.Subject koduna ÇOK yararlı ve anlaşılması kolay bulduğum bir yorum buldum:

"Özneler potansiyel olarak birden fazla kimliğe sahip olabilir. Her kimlik Özne içinde bir Asil olarak temsil edilir. Müdürler isimleri sadece bir Özneye bağlar. Örneğin, kişi olan bir Özne, Alice'in iki İlkesi olabilir: Alice Bar ", sürücü ehliyeti üzerindeki isim, Özne ve öğrenci kimlik kartındaki numarayı" 999-99-9999 "Özneye bağlayan bir diğeri. farklı bir ada sahip. "

Umarım yardımcı olur.


7

Bu, Oracle JAVA SE Documentation'ın aşağıdaki açıklaması için bir bağlantıdır .

Konular, İlkeler, Kimlik Doğrulama ve Kimlik Bilgileri Kaynaklara erişimi yetkilendirmek için, uygulamaların önce isteğin kaynağını doğrulaması gerekir. JAAS çerçevesi, talebin kaynağını temsil etmek için konu terimini tanımlar . Bir konu, kişi veya hizmet gibi herhangi bir varlık olabilir. Bir konu, javax.security.auth.Subject sınıfı tarafından temsil edilir .

Kimlik doğrulama , bir öznenin kimliğinin doğrulanma sürecini temsil eder ve güvenli bir şekilde gerçekleştirilmesi gerekir; aksi halde bir fail bir sisteme erişim elde etmek için başkalarını taklit edebilir. Kimlik doğrulama tipik olarak öznenin kimliğini kanıtlamak için bir tür kanıt göstermesini içerir. Bu tür kanıtlar yalnızca konunun büyük olasılıkla bileceği veya sahip olabileceği bilgiler (şifre veya parmak izi gibi) olabilir veya yalnızca konunun üretebileceği bilgiler olabilir (özel anahtar kullanarak imzalı veriler gibi).

Doğrulanmış sonra, bir Konusu ilişkili kimlikler veya doldurulur Müdürlerinin (tipi java.security.Principal ). Bir Konunun birçok İlkesi olabilir. Örneğin, bir kişi, diğer Konulardan ayıran bir Müdür ("John Doe") ve bir SSN Müdürüne ("123-45-6789") sahip olabilir.

İlgili İlkelere ek olarak, bir Öznenin kimlik bilgileri olarak adlandırılan güvenlikle ilgili öznitelikleri olabilir . Bir kimlik bilgisi, konuyu yeni hizmetlere doğrulamak için kullanılan bilgileri içerebilir. Bu kimlik bilgileri parolaları, Kerberos biletlerini ve ortak anahtar sertifikalarını içerir. Kimlik bilgileri, konunun belirli etkinlikleri gerçekleştirmesini sağlayan veriler de içerebilir. Örneğin, şifreleme anahtarları, konunun verileri imzalamasını veya şifrelemesini sağlayan kimlik bilgilerini temsil eder. Genel ve özel kimlik bilgisi sınıfları, temel J2SE API'sinin bir parçası değildir. Bu nedenle, herhangi bir sınıf bir kimlik bilgisini temsil edebilir.


T.Rob'un cevabını kabul etsem de, "konu herhangi bir varlık olabilir" diyen Aram'ın ERM: Çoğu veritabanını destekleyen Varlık-İlişki Modeli'ni ima ediyor. Bu modelde, "varlık" güvenlik bağlamında "konuya" karşılık gelir, ancak modellemenize bağlı olarak, Marinus'ta önerildiği gibi ana (banka hesabı, SSN #) veya kullanıcı (John Smith) olabilir ' Cevap. Vikipedi: en.wikipedia.org/wiki/Entity%E2%80%93relationship_model
yumuşak sarı

0

rahulmohan'a göre bence, Kimlik Doğrulama alt jet olmadan önce, Kimlik Doğrulama pricipal olduktan sonra, fark olarak, bir alt jet birçok pricipal olabilir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.