ความหมายและความแตกต่างระหว่างหัวเรื่องผู้ใช้และอาจารย์ใหญ่คืออะไร


173

ในบริบทของกรอบการรักษาความปลอดภัย, คำไม่กี่มักเกิดขึ้นภายใต้ , ผู้ใช้และเงินต้นของที่ฉันยังไม่ได้สามารถที่จะหาคำนิยามที่ชัดเจนและความแตกต่างระหว่างพวกเขา

ดังนั้นคำเหล่านี้มีความหมายว่าอะไรกันแน่และทำไมความแตกต่างของหัวข้อและอาจารย์ใหญ่จึงเป็นสิ่งจำเป็น?

คำตอบ:


277

สิ่งเหล่านี้เป็นลำดับชั้นในลักษณะที่ชนิดและชนิดเป็นลำดับชั้น

  • เรื่อง - ในบริบทการรักษาความปลอดภัยเป็นเรื่องที่เป็นนิติบุคคลใด ๆ ที่ร้องขอการเข้าถึงวัตถุ เหล่านี้เป็นคำศัพท์ทั่วไปที่ใช้เพื่อแสดงถึงสิ่งที่ร้องขอการเข้าถึงและสิ่งที่ร้องขอนั้นทำขึ้น เมื่อคุณล็อกอินเข้าสู่แอปพลิเคชันคุณจะเป็นผู้ดำเนินการและแอปพลิเคชันนั้นเป็นวัตถุ เมื่อมีคนเคาะประตูของคุณผู้เข้าชมเป็นผู้ร้องขอการเข้าถึงและที่บ้านของคุณคือการขอเข้าถึงวัตถุ
  • เงินต้น - ส่วนย่อยของหัวเรื่องที่แสดงโดยบัญชีบทบาทหรือตัวระบุเฉพาะอื่น ๆ เมื่อเราไปถึงระดับของรายละเอียดการใช้งานผู้ว่าจ้างเป็นกุญแจสำคัญที่เราใช้ในรายการควบคุมการเข้าถึง พวกเขาอาจเป็นตัวแทนของผู้ใช้คนอัตโนมัติการใช้งานการเชื่อมต่อ ฯลฯ
  • ผู้ใช้ - ชุดย่อยของเงินต้นมักจะหมายถึงผู้ประกอบการมนุษย์ ความแตกต่างจะเบลอเมื่อเวลาผ่านไปเพราะคำว่า "ผู้ใช้" หรือ "ID ผู้ใช้" มักจะสลับกับ "บัญชี" แต่เมื่อคุณต้องการที่จะทำให้ความแตกต่างระหว่างชนชั้นกว้างของสิ่งที่เป็นครูใหญ่และย่อยของเหล่านี้ที่มีผู้ประกอบการโต้ตอบการขับรถการทำธุรกรรมในแฟชั่นที่ไม่ได้กำหนด "ผู้ใช้" เป็นคำที่เหมาะสม

หัวเรื่อง / วัตถุสืบทอดมาจากคำศัพท์เดียวกับที่ใช้ในไวยากรณ์ ในประโยคหนึ่งเรื่องเป็นนักแสดงและวัตถุคือสิ่งที่ดำเนินการ ในแง่นี้การใช้งานได้มีมาตั้งแต่ก่อนที่จะมีการคิดค้นคอมพิวเตอร์ ในบริบทความปลอดภัยหัวเรื่องคือสิ่งใดก็ตามที่สามารถร้องขอได้ ตามที่ระบุไว้ข้างต้นสิ่งนี้ไม่จำเป็นต้อง จำกัด อยู่ที่ความปลอดภัยด้านไอทีและดังนั้นจึงเป็นการจำแนกที่กว้างมาก สิ่งที่น่าสนใจคือตัวแบบมีความหมายว่าวัตถุ ไม่มีวัตถุก็ไม่มีหัวเรื่อง

อาจารย์ใหญ่เป็นสิ่งที่วิชาแก้ไขให้ เมื่อคุณแสดงบัตรเครดิตคุณเป็นเจ้าของเรื่องและหมายเลขบัญชีเป็นตัวการ ในบริบทอื่น ๆ ID ผู้ใช้ของคุณหรือบัตรประจำตัวที่ออกโดยรัฐเป็นตัวการหลักของคุณ แต่ผู้ว่าจ้างสามารถเชื่อมโยงกับหัวเรื่องหลายประเภทที่ไม่ใช่คน เมื่อแอพพลิเคชั่นทำการร้องขอฟังก์ชั่นระดับระบบอาจารย์ใหญ่อาจเป็นผู้ลงนามในโมดูลรหัสที่สามารถเรียกทำงานได้ซึ่งมีการลงชื่อ แต่แม้ในกรณีนั้น

ผู้ใช้มีความเฉพาะเจาะจงมากกว่าหัวเรื่องหรือตัวการซึ่งโดยปกติจะหมายถึงตัวดำเนินการแบบโต้ตอบ นั่นคือเหตุผลที่เรามีส่วนต่อประสานกราฟิกกับผู้ใช้และไม่ใช่ส่วนต่อประสานกราฟิกหลัก ผู้ใช้ที่เป็นตัวอย่างของเรื่องที่แก้ไขให้เป็นหลัก ผู้ใช้คนเดียวอาจแก้ปัญหาหลักการจำนวนเท่าใดก็ได้ แต่ผู้สอนหลักคนใดคาดว่าจะแก้ปัญหาให้กับผู้ใช้คนเดียว (สมมติว่าผู้คนปฏิบัติตามข้อกำหนดที่จะไม่แชร์ ID) ในตัวอย่างข้างต้นผู้ลงนามของโมดูลรหัสที่เรียกใช้งานได้นั้นไม่ใช่ผู้ใช้แน่นอนแต่เป็นตัวการที่ถูกต้อง ตัวดำเนินการโต้ตอบที่พยายามโหลดโมดูลนั้นเป็นผู้ใช้

ดังที่ระบุไว้ในความคิดเห็นแม้แหล่งข้อมูลที่เชื่อถือได้ไม่เห็นด้วยกับข้อกำหนดเหล่านี้ ฉันค้นหา NIST, SANS, IEEE, MITER และแหล่ง "quasi-authoritative" หลายรายการเช่นคู่มือการสอบเพื่อความปลอดภัยขณะเตรียมการตอบสนองนี้ ไม่มีแหล่งข้อมูลเดียวที่ฉันพบซึ่งอย่างน้อยกึ่งสิทธิครอบคลุมทั้งสามคำและทั้งหมดแตกต่างกันอย่างมีนัยสำคัญในการใช้งานของพวกเขา นี่คือเวลาของฉันเกี่ยวกับวิธีการเงื่อนไขควรนำมาใช้ แต่จากมุมมองในทางปฏิบัติเมื่อคุณไม่เห็นแก่เหน็ดเหนื่อยคู่มือในช่วงกลางของคืนนิยามมีแนวโน้มที่จะสิ่งที่ผู้ผลิตหรือนักเขียนกล่าวว่าพวกเขา หวังว่าคำตอบที่นี่จะให้ข้อมูลเชิงลึกมากพอที่จะนำทางน่านน้ำและแยกเอกสารความปลอดภัยโดยใช้คำเหล่านี้


3
อะไรคือประโยชน์ของการทำลายสิ่งต่างๆลงในหัวเรื่องครูใหญ่ผู้ใช้ความซับซ้อนพิเศษของมันเราจะได้ประโยชน์อะไรจากความซับซ้อนพิเศษนี้
ams

19
ความสามารถในการเลือกระดับที่เหมาะสมของความจำเพาะ มันเป็นผลประโยชน์แบบเดียวกันกับที่เราได้รับจากความสามารถในการสร้างความแตกต่างระหว่างปลายทางเมื่อเทียบกับคิวหรือหัวข้อ ความสามารถในการเลือกระหว่างระดับความเฉพาะเจาะจงที่แตกต่างกันในอนุกรมวิธานช่วยให้เกิดความแม่นยำในการแสดงออกซึ่งสื่อสารถึงเจตนาของนักเขียนต่อผู้อ่านได้ดีขึ้น เมื่อเขียนโปรแกรมเรามีความหรูหรา / คำสาปที่ซีพียูจะตีความคำสั่งของเราในทางเดียวและเราถูกบังคับให้ใช้ระดับความแม่นยำของมัน แต่ในภาษามนุษย์เราต้องการความแตกต่างกันนิดหน่อยและแม่นยำในการสื่อความหมายอย่างมีประสิทธิภาพ
T.Rob

1
T.Rob ยอดเยี่ยม แต่คุณสามารถอธิบาย "ผู้ใช้ - ชุดย่อยของเงินต้น" ได้หรือไม่? หาก John เป็นหัวเรื่องและ "บัญชี # 123" เป็นเงินต้นของเขาผู้ใช้จะเป็นใคร มีจอห์นสองคนหรือไม่? เนื่องจากสกุล> สปีชี่> บุคคลนั้นมีความเฉพาะเจาะจงมากขึ้นจอห์น (ผู้ใช้) จึงควรมีความเฉพาะเจาะจงมากกว่าจอห์น (หัวเรื่อง) หรือฉันกำลังพลาดอะไรอยู่?
สีเหลืองอ่อน

1
พิจารณาหลักการสองประการโดยที่ # 123 คือ John และ # 124 อ้างถึงบัญชีบริการ เราอาจต้องการปฏิบัติต่อสิ่งต่าง ๆ เหล่านี้เกี่ยวกับนโยบายรหัสผ่านความสามารถในการเข้าสู่ระบบเป็นต้นหลักการของประเภท 'ผู้ใช้' นั้นขึ้นอยู่กับความซับซ้อนของรหัสผ่านและนโยบายการหมดอายุในขณะที่ผู้ดูแลบัญชีประเภท 'บริการบัญชี' อาจไม่มีรหัสผ่าน เมื่อเราเริ่มจัดประเภทเงินต้นเราจะสร้างกลุ่มย่อย มันช่วยได้ไหม หรือว่าฉันแค่กวนโคลนให้มากกว่านี้?
T.Rob

ใช่นั่นช่วยได้ ดังนั้นการแก้ไขใด ๆ ต่อไปนี้อย่างเป็นรูปธรรม คุณอาจต้องการที่จะคัดลอกและวางมันเพื่อแก้ไขเช่น Notepad ++ และวางlinebreakก่อนที่Johnแต่ละคน(ดังนั้นไม่อนุญาตให้ linebreaks ในความคิดเห็น): 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

เมื่อแอปพลิเคชันใช้การพิสูจน์ตัวตน JAAS เพื่อตรวจสอบสิทธิ์ผู้ใช้ (หรือเอนทิตีอื่น ๆ เช่นบริการ) หัวเรื่องจะถูกสร้างขึ้นเป็นผลลัพธ์ วัตถุประสงค์ของหัวเรื่องคือเพื่อแสดงผู้ใช้ที่ผ่านการตรวจสอบความถูกต้อง หัวเรื่องประกอบด้วยชุดของอาจารย์ใหญ่โดยที่อาจารย์ใหญ่แต่ละคนเป็นตัวแทนของตัวตนสำหรับผู้ใช้นั้น ตัวอย่างเช่นหัวเรื่องอาจมีชื่ออาจารย์ใหญ่ ("Susan Smith") และอาจารย์ใหญ่หมายเลขประกันสังคม ("987-65-4321") ดังนั้นแยกแยะเรื่องนี้กับวิชาอื่น ๆ


2
ฉันเคยเห็นคำจำกัดความนี้มาก่อนมันมีความหนาแน่นสูงเกินไปคุณสามารถอธิบายอย่างละเอียดได้หรือไม่โดยเฉพาะอย่างยิ่งว่าผู้ใช้แตกต่างจากอาจารย์ใหญ่ทำไมจึงใช้คำว่าหัวเรื่องไม่ใช่แค่ผู้ใช้ หากข้อกำหนดเหล่านี้มีความหมายเกินกว่า JAAS ฉันต้องการทำความคุ้นเคยกับความหมายนั้นเป็นอย่างมากหากข้อกำหนดเหล่านี้เป็นสิ่งประดิษฐ์ของ JAAS ฉันเดาว่าวิศวกรของซันที่สร้างชื่อที่ไม่ดีสำหรับสิ่งที่แนวคิดเหล่านี้มีความหมาย ฉันได้ถามคำถามนี้กับโปรแกรมเมอร์สักสองสามคนและไม่สามารถรับคำตอบที่ชัดเจนได้ดูเหมือนว่าทุกคนจะมีความเข้าใจที่แตกต่างกันของคำศัพท์เหล่านี้
ams

ดูเหมือนว่าอาจารย์ใหญ่เป็นเพียงหนึ่งวิธีในการระบุหัวเรื่อง ในอีกทางหนึ่งหลักการใดก็ได้ที่สามารถใช้เป็นคีย์หลักในฐานข้อมูลผู้ใช้ของคุณได้
Platinum Azure

3
พจนานุกรมใช้ JAAS โดยการยิงยาว JAAS นำบางส่วนมาใช้ใหม่และในบางครั้งด้วยวิธีที่ไม่ได้มาตรฐาน ส่วนหนึ่งของปัญหาที่กระตุ้นคำถามนี้คือแนวคิดได้เรียนรู้จากบริบทที่ใช้คำศัพท์แล้วนำกลับมาใช้ใหม่ในวิธีที่แตกต่างกันเล็กน้อย เมื่อแหล่งข้อมูลที่เชื่อถือได้ยากที่จะค้นหาหรือไม่สนใจก็มีความหมายลอยไปตามกาลเวลา เมื่อพูดถึงเรื่องความปลอดภัยที่ความแม่นยำเป็นสิ่งจำเป็นอย่างแท้จริงการเบี่ยงเบนไปสู่ความคลุมเครือทำให้เราไม่สามารถสร้างและใช้งานการออกแบบที่ปลอดภัยได้
T.Rob

@ T.Rob คุณทำบทความเกี่ยวกับกระดาษหรือเอกสารอ้างอิงที่เชื่อถือได้ซึ่งคุณสามารถแบ่งปันได้
ams

น่าเสียดายที่แม้แต่แหล่งข้อมูลที่เชื่อถือได้ก็ไม่เห็นด้วย SANS ไม่ได้กำหนดหลักการหรือหัวเรื่องเลยbit.ly/hl4rUPและ NIST bit.ly/fE7NJsกำหนดหัวเรื่องเฉพาะบุคคล แหล่งข้อมูล "เชิงอำนาจ" อื่น ๆ นั้นค่อนข้างคลุมเครือซึ่งเมื่อพิจารณาถึงความสำคัญของความชัดเจนในด้านนี้แล้วก็ค่อนข้างน่าผิดหวัง IEE มีอภิธานศัพท์ แต่คุณสามารถอ่านได้ด้วยการเป็นสมาชิกหรือการสมัครสมาชิกเท่านั้นดังนั้นจึงมีข้อ จำกัด ในการพูดคุยกับผู้ชมจำนวนมาก ฉันได้รับคำตอบบางส่วนจากคู่มือสอบ CISSP ของ Shon Harris
T.Rob

12

Subjectเป็นหน่วยงานที่ร้องขอบริการ มันสามารถเป็นผู้ใช้หรือกระบวนการ อาจเป็นเหตุผลที่ชื่อเรื่องถูกเลือกแทนผู้ใช้

เมื่อหัวเรื่องพยายามเข้าถึงบริการหัวเรื่องต้องได้รับการรับรองความถูกต้องก่อน การรับรองความถูกต้องที่สำเร็จจะจบลงด้วยการโหลดหลักการรักษาความปลอดภัยสำหรับหัวเรื่องนั้น ตัวอย่างเช่นในระบบการควบคุมการเข้าถึงตามบทบาทผู้ใช้ที่ได้รับการพิสูจน์ตัวตน (เข้าสู่ระบบ) มักจะมีผู้บริหารสองคนคือ userId และ roleId ในระบบดังกล่าวจะมีการระบุสิทธิ์พิเศษ (เช่นใครสามารถเข้าถึงสิ่งใด) สำหรับทั้งบทบาทและสำหรับผู้ใช้ ในระหว่างการอนุญาต (เช่นการตรวจสอบว่าควรได้รับอนุญาตบริการที่ร้องขอหรือไม่) ระบบรักษาความปลอดภัยจะตรวจสอบความสามารถในการเข้าถึงของทั้งสองฝ่าย

ดังนั้นจากมุมมองของการอนุญาตผู้ว่าจ้างจึงเป็นเอนทิตีที่แท้จริงที่อนุญาตหรือไม่อนุญาตการเข้าถึง หัวเรื่องเป็นเพียงผู้ใช้ / เธรด / กระบวนการที่มีหลักการบางอย่าง


อะไรคือประโยชน์ของการมีหลายหลักการต่อวิชา
ams

6
ฉันคิดว่ามีประโยชน์สองอย่าง: (1) พิจารณาผู้ใช้ Alice โดยใช้หลักการ UserId ("Alice"), บทบาท ("ผู้จัดการ"), แผนก ("ฝ่ายขาย") เพื่อเข้าถึงบริการ (วัตถุ) การควบคุมการเข้าถึงบริการนั้นสามารถระบุเป็น "อนุญาตสำหรับบทบาท (ผู้จัดการ)" หรือ "ไม่อนุญาตสำหรับแผนก (ฝ่ายขาย)" ฯลฯ แทนการระบุว่าอลิซสามารถเข้าถึงได้หรือไม่ ระบบควบคุมการเข้าถึงประเภทนี้ง่ายต่อการจัดการเนื่องจากผู้ดูแลความปลอดภัยไม่จำเป็นต้องระบุสิทธิ์การเข้าถึงสำหรับผู้ใช้ทั้งหมดสำหรับบริการทั้งหมด
rahulmohan

4
(2) ในระบบองค์กรผู้ใช้มักจะต้องมีการรับรองความถูกต้องกับหลายระบบก่อนที่จะสามารถดำเนินการบริการคอมโพสิตบางอย่าง อาจเกิดขึ้นได้ว่าแต่ละระบบมีกลไกการควบคุมการเข้าถึงที่ต้องการรายละเอียดที่แตกต่างกัน - ระบบหนึ่งใช้ SSN และอีกระบบใช้ userId ดังนั้นหัวเรื่องเดียวกันควรมีทั้งผู้ว่าจ้างเพื่อเข้าถึงทั้งคู่
rahulmohan

1
ฉันรู้สึกว่า 99% ของความสับสนกับคำศัพท์นี้สามารถแก้ไขได้ด้วยประโยคเดียวตามบรรทัดของ "ครูใหญ่เป็นกลุ่ม"
Trejkaz

1
?! ... ทำไมคุณพูดว่าครูใหญ่เป็นกลุ่ม
Rafael

10

ตามที่ T.Rob อธิบาย Subject คือเอนทิตีที่ร้องขอการเข้าถึงวัตถุ เริ่มต้นจากจุดนั้นฉันพบความคิดเห็นในรหัส javax.security.auth.Subject ที่ฉันพบว่ามีประโยชน์และเข้าใจง่ายมาก:

"หัวเรื่องอาจมีตัวตนหลายตัวโดยแต่ละตัวจะถูกแสดงเป็นตัวหลักในหัวเรื่องผู้ว่าจ้างเพียงผูกชื่อกับหัวเรื่องตัวอย่างเช่นหัวเรื่องที่เกิดขึ้นกับบุคคลอลิซอาจมีตัวการสองตัว: หนึ่งที่ผูก" Alice Bar "ชื่อในใบขับขี่ของเธอกับหัวเรื่องและอีกอันหนึ่งซึ่งผูก" 999-99-9999 "หมายเลขบนบัตรประจำตัวนักเรียนของเธอกับหัวเรื่องทั้งสองอาจารย์ใหญ่อ้างถึงหัวเรื่องเดียวกัน มีชื่ออื่น "

หวังว่ามันจะช่วย


7

นี่คือลิงค์สำหรับคำอธิบายด้านล่างจากเอกสาร Oracle JAVA SE

หัวเรื่อง, หลักการ, การพิสูจน์ตัวตนและข้อมูลรับรองในการให้สิทธิ์การเข้าถึงทรัพยากรแอปพลิเคชันต้องตรวจสอบแหล่งที่มาของคำขอก่อน กรอบงาน JAAS กำหนดคำว่าsubjectเพื่อเป็นตัวแทนแหล่งที่มาของคำขอ หัวเรื่องอาจเป็นนิติบุคคลใด ๆ เช่นบุคคลหรือบริการ หัวเรื่องถูกแทนด้วยคลาสjavax.security.auth.Subject

การรับรองความถูกต้องหมายถึงกระบวนการที่มีการตรวจสอบตัวตนของวัตถุและต้องดำเนินการในลักษณะที่ปลอดภัย มิฉะนั้นผู้กระทำผิดอาจปลอมตัวเป็นบุคคลอื่นเพื่อเข้าใช้ระบบ โดยปกติแล้วการรับรองความถูกต้องเกี่ยวข้องกับเรื่องที่แสดงหลักฐานบางรูปแบบเพื่อพิสูจน์ตัวตน หลักฐานดังกล่าวอาจเป็นเพียงข้อมูลที่ผู้เข้าร่วมจะรู้หรือมี (เช่นรหัสผ่านหรือลายนิ้วมือ) หรืออาจเป็นข้อมูลที่ผู้เรียนสามารถสร้างได้ (เช่นข้อมูลที่เซ็นชื่อโดยใช้ไพรเวตคีย์)

เมื่อได้รับการรับรองความถูกต้องแล้วหัวเรื่องจะถูกเติมด้วยข้อมูลประจำตัวที่เกี่ยวข้องหรือตัวการ (ประเภทjava.security.Principal ) หัวเรื่องอาจมีผู้บริหารหลายคน ตัวอย่างเช่นบุคคลอาจมีชื่ออาจารย์ใหญ่ ("John Doe") และอาจารย์ใหญ่ SSN ("123-45-6789") ซึ่งแยกบุคคลนั้นออกจากวิชาอื่น ๆ

นอกเหนือจากการบริหารที่เกี่ยวข้องเป็นเรื่องอาจเป็นเจ้าของคุณลักษณะที่เกี่ยวข้องกับการรักษาความปลอดภัยซึ่งจะเรียกว่าเป็นข้อมูลประจำตัว ข้อมูลรับรองอาจมีข้อมูลที่ใช้ในการตรวจสอบสิทธิ์ของบริการใหม่ ข้อมูลรับรองดังกล่าวรวมถึงรหัสผ่านตั๋ว Kerberos และใบรับรองกุญแจสาธารณะ ข้อมูลรับรองอาจมีข้อมูลที่ช่วยให้หัวเรื่องสามารถทำกิจกรรมบางอย่างได้ ตัวอย่างเช่นคีย์การเข้ารหัสแสดงถึงข้อมูลรับรองที่เปิดใช้งานหัวเรื่องที่จะลงชื่อหรือเข้ารหัสข้อมูล คลาสหนังสือรับรองสาธารณะและส่วนตัวไม่ได้เป็นส่วนหนึ่งของ Core J2SE API ดังนั้นคลาสใดสามารถแทนหนังสือรับรองได้


แม้ว่าฉันจะเห็นด้วยกับคำตอบของ T.Rob แต่เรื่องนี้มาจาก Aram - ซึ่งบอกว่า "หัวเรื่องอาจเป็นเอนทิตี้ใด ๆ " - บอกใบ้ที่ ERM: รูปแบบความสัมพันธ์แบบเอนทิตี้ของหนุนฐานข้อมูลส่วนใหญ่ ในโมเดลนั้น "เอนทิตี" สอดคล้องกับ "หัวเรื่อง" ในบริบทของความปลอดภัย แต่ขึ้นอยู่กับสิ่งที่คุณกำลังสร้างโมเดลมันอาจเป็นเงินต้น (บัญชีธนาคาร SSN #) หรือผู้ใช้ (จอห์นสมิ ธ ) ตามที่แนะนำใน Marinus 'คำตอบ Wikipedia: en.wikipedia.org/wiki/Entity%E2%80%93relationship_model
mellow-yellow

0

ตาม rahulmohan think ฉันคิดว่าก่อนการรับรองความถูกต้องเป็น subjet หลังจากการรับรองความถูกต้องเป็น pricipal ในแง่ที่แตกต่างกัน subjet อาจมี pricipal มากมาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.