ฉันจะเก็บข้อมูลที่สำคัญภายใน Active Directory ได้ที่ไหน


11

ฉันกำลังจัดเก็บคีย์ส่วนตัว (แฮ) ในแอตทริบิวต์ OctetString ใด ๆ ภายใน Active Directory

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

นี่คือจุดเริ่มต้นของรายการแอตทริบิวต์ที่เปิดใช้งานโดยค่าเริ่มต้นในโดเมน Windows 2008R2 + Exchange 2010

ข้อความแสดงแทน

ปรับปรุง:

มีใครรู้บ้างเกี่ยวกับแอตทริบิวต์สตริงของอ็อตเต็ทต์ที่ไม่เปิดเผยการอนุญาต "อ่าน" แก่ผู้ใช้ทั้งหมดในโดเมนโดยค่าเริ่มต้น ฉันไม่ต้องการจัดเก็บแฮชของฉันต่อสาธารณะและอนุญาตให้บางคนสร้างตารางสายรุ้งตามแฮช

คำตอบ:


11

ปัญหาที่คนส่วนใหญ่เผชิญเมื่อจัดเก็บข้อมูลใน AD คือ

  • การขยาย Schema (ซึ่งมักจะมีผลกระทบทางการเมืองของ บริษัท )

  • ใช้แอตทริบิวต์ที่มีอยู่และแก้ไขการอนุญาต (ซึ่งส่งผลให้ AD / ACL bloat ที่เพิ่ม DIT และขนาดการจำลองแบบที่ตามมาของคุณ)

มีทางเลือกอื่น ... ทางเลือกที่ดีที่สุดในใจของฉันคือการใช้คุณสมบัติที่รู้จักกันน้อยของ AD นี้เพื่อใช้คุณสมบัติที่มีอยู่และตั้งค่าสถานะเป็นความลับ

นี่คือรายละเอียดเกี่ยวกับกระบวนการ


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

เพื่อลดสิ่งนี้ Windows 2003 SP1 แนะนำวิธีการทำเครื่องหมายแอตทริบิวต์เป็นความลับ คุณลักษณะนี้ทำได้โดยการแก้ไขค่า searchFlags บนแอตทริบิวต์ใน schema SearchFlags มีหลายบิตแทนคุณสมบัติต่าง ๆ ของคุณลักษณะ เช่นบิต 1 หมายถึงแอตทริบิวต์นั้นได้รับการจัดทำดัชนี บิตใหม่ 128 (บิตที่ 7) กำหนดแอตทริบิวต์เป็นความลับ

หมายเหตุ: คุณไม่สามารถตั้งค่าสถานะนี้ในแอตทริบิวต์ของ base-schema (ที่ได้มาจาก "top" เช่นชื่อสามัญ) คุณสามารถตรวจสอบว่าวัตถุเป็นวัตถุสคีฐานโดยใช้ LDP เพื่อดูวัตถุและตรวจสอบแอตทริบิวต์ systemFlags ของวัตถุ ถ้าเป็นบิตที่ 10 ถูกตั้งค่ามันเป็นวัตถุฐานสคี

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

โดยค่าเริ่มต้นเฉพาะผู้ดูแลระบบเท่านั้นที่สามารถเข้าถึง CONTROL_ACCESS วัตถุทั้งหมด ดังนั้นผู้ดูแลระบบเท่านั้นจึงจะสามารถอ่านแอตทริบิวต์ที่เป็นความลับได้ ผู้ใช้มีอิสระที่จะมอบสิทธิ์นี้ให้กับกลุ่มเฉพาะที่พวกเขาต้องการ สิ่งนี้สามารถทำได้ด้วยเครื่องมือ DSACLs การเขียนสคริปต์หรือ LDP R2 ADAM เวอร์ชัน เนื่องจากการเขียนนี้ไม่สามารถใช้ ACL UI Editor เพื่อกำหนดสิทธิ์เหล่านี้ได้

กระบวนการของการทำเครื่องหมายแอตทริบิวต์ที่เป็นความลับและการเพิ่มผู้ใช้ที่ต้องดูแอตทริบิวต์นั้นมี 3 ขั้นตอน

  1. การพิจารณาว่าจะทำเครื่องหมายแอตทริบิวต์ที่เป็นความลับหรือเพิ่มแอตทริบิวต์เพื่อทำเครื่องหมายลับ

  2. การทำเครื่องหมายว่าเป็นความลับ

  3. ให้สิทธิ์แก่ผู้ใช้ที่ถูกต้องในการควบคุม Control_Access เพื่อให้พวกเขาสามารถดูแอตทริบิวต์

สำหรับรายละเอียดเพิ่มเติมและคำแนะนำทีละขั้นตอนโปรดดูบทความต่อไปนี้:

922836 วิธีการทำเครื่องหมายแอตทริบิวต์เป็นความลับใน Windows Server 2003 Service Pack 1

http://support.microsoft.com/default.aspx?scid=kb;EN-US;922836


1
Downvoter: ทำไมนี่ถึงได้ -1
goodguys_activate

ฉันได้ยินมาว่าบิตที่เป็นความลับอาจส่งผลต่อประสิทธิภาพ คุณรู้จักเอกสารที่สนับสนุนหรือลบล้างเอกสารนั้นหรือไม่?
Nic

@ ไม่มีโพสต์ว่าเป็นคำถาม ... ครั้งแรกที่ฉันได้ยินมัน
goodguys_activate

2

คุณสามารถขยาย Active Directory ด้วยฟิลด์ใหม่เพื่อจุดประสงค์นี้ได้เสมอ

นี่คือเอกสารที่มีคำแนะนำในการเพิ่มแอททริบิวใหม่และการ จำกัด สิทธิ์ในแอททริบิวต์


ขอบคุณ. เป้าหมายของฉันคือใช้แอตทริบิวต์ที่มีอยู่หากเป็นไปได้เนื่องจากลูกค้าของฉันหวาดระแวงเกี่ยวกับการทำเช่นนี้ ... พวกเขามี FUD มากเกินไปในแนวทางดังกล่าว ... ฉันหวังว่าจะมีบางสิ่งที่เป็นของพื้นเมือง
goodguys_activate

ฉันสามารถเข้าใจการฝืนใจของพวกเขา แต่ฉันไม่เชื่อว่ามีคุณสมบัติผู้สมัครที่ดีที่ไม่ได้ใช้และปลอดภัยตามที่ต้องการ
Zoredache

1

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

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

ไม่มีสิ่งใดที่คุณสามารถป้องกันไม่ให้ผู้ดูแลโดเมนออกจากใน AD หากคุณลบสิทธิ์หรือแม้กระทั่งปฏิเสธผู้ดูแลระบบโดเมนสามารถเป็นเจ้าของและเพิ่มตัวเองกลับเข้ามาได้นี่คือสิ่งที่ตรงกันข้ามกับ NDS ของ Novell ซึ่งผู้ดูแลระบบของ OU อาจล็อคผู้ดูแลระบบระดับสูงเอาคืนไม่ได้

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


ฉันกำลังจัดเก็บแฮชของรหัสผ่านเฉพาะแอปพลิเคชันของฉันทางเดียว
goodguys_activate

สิ่งนี้เป็นความคิดเห็นเนื่องจากไม่ตอบคำถาม แต่อย่างใด
MDMarra

ทำเครื่องหมาย - สองประโยคสุดท้ายของฉันคือคำตอบสำหรับคำถาม "ฉันจะเก็บข้อมูลที่สำคัญภายใน Active Directory ได้อย่างไร"
mfinni

@Maker - มันสมเหตุสมผลและเป็นสถานการณ์ที่คล้ายกันมากกับลิงก์ที่ @Zoredache โพสต์ไว้ด้านบน นั่นคือคำตอบดั้งเดิม: ใช้แอตทริบิวต์ที่มีอยู่หรือใหม่และ จำกัด การเข้าถึง ข้อเสนอแนะเพิ่มเติมของฉันหากลูกค้าของคุณให้ความสำคัญกับความปลอดภัยคือการเปิดใช้งานการตรวจสอบสำหรับแอตทริบิวต์นั้นด้วย
mfinni

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