No.13 การป้องกัน (Protection) ในระบบปฏิบัติการ1
ข่าวสาร
ต้นกำเนิดของการละเมิดความปลอดภัยด้านคอมพิวเตอร์
ต้นกำเนิดของการละเมิดความปลอดภัยด้านคอมพิวเตอร์
   หากมองเป็นกลุ่มใหญ่ๆก็สามารถแบ่งได้เป็น 2 กลุ่มคือ จากบุคคลภายนอก และจากบุคคลภายใน ผู้บุกรุกก็คือ มักจะมีการติดต่อสื่อสารถึงกัน
ประวัติศาสตร์ความเป็นมา โน้ตบุ๊ค เอซุส
ประวัติศาสตร์ความเป็นมา โน้ตบุ๊ค เอซุส
   เอซุสจัดว่าเป็นหนึ่งในโน้ตบุ๊คยอดนิยมอันดับต้นๆในบรรดายี้ห้อโน้ตบุ๊คอีกมากมาย วันนี้ผมจะมาเล่าประวัติศาสตร์ความเป็นมาให้ฟังกัน
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์
   อุปกรณ์ทางอิเล็กทรอนิกส์ ที่ มนุษย์ใช้เป็นเครื่องมือช่วยในการ จัดการกับข้อมูล ทั้งตัวเลข ตัวอักษร หรือสัญลักษณ์อื่นที่ใช้ แทนความหมายในสิ่งต่าง ๆ
ASUS MEMO Pad smart10 ควอดคอร์โปรเซสเซอร์
ASUS MEMO Pad smart10 ควอดคอร์โปรเซสเซอร์
   ASUS MEMO Pad smart10 เพื่อนแห่งการทำงานและความบันเทิงที่พร้อมไปกับคุณที่ทุกเวลา โดดเด่นด้วย NVIDIA Tegra 3 ควอดคอร์โปรเซสเซอร์
ระวังการทำธุรกรรมทางอิเล็กทรอนิกส์
ระวังการทำธุรกรรมทางอิเล็กทรอนิกส์
   ในปัจจุบันการทำธุรกรรมการเงินทางอินเทอร์เน็ตถือว่าเป็นสิ่งที่ได้รับความนิยมเป็นอย่างมาก เพราะสะดวก รวดเร็ว แต่แฝงไปด้วยอันตราย
โน๊ตบุ๊ค รุ่นต่างๆ กล้องประเภทต่างๆ

วีดีโอน่ารู้ : ฟังก์ชั่นSUM การคำนวณทั่วไป ในExcelควรรู้


แจกโปรเจคPHPฟรี

ความรู้เกี่ยวกับโปรแกรมต่างๆ >> ระบบปฎิบัติการ OS (operating system) >> No.13 การป้องกัน (Protection) ในระบบปฏิบัติการ1

No.13 การป้องกัน (Protection) ในระบบปฏิบัติการ1

No.13 การป้องกัน(Protection) ในระบบปฏิบัติการ1

อัพเดทวันที่: 26 มี.ค. 2557

วีดีโอน่ารู้ : เทคโนโลยีน่ารู้ Ep2 อย่าตั้งรหัสผ่านเดียวกันกับทุกเว็บไซต์ หรือทุกAccount


เป้าหมายของการป้องกัน (Goals of Protection)

นับวันคอมพิวเตอร์จะมีการทำงานที่ซับซ้อนขึ้นและมีโปรแกรมประยุกต์หลากหลายทำงานอยู่ในเครื่องคอมพิวเตอร์

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

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

ไม่ไปใช้รีซอร์สอื่นที่ระบบไม่อนุญาตให้ใช้ ซึ่งถ้าระบบมีความสามารถนี้ก็จะเป็นการบอกได้ว่าระบบนั้นเป็นระบบที่เชื่อถือได้

กฎของการป้องกันของระบบคอมพิวเตอร์นั้นจะเป็นการสร้างกลไก (mechanism) เพื่อบังคับให้การใช้รีซอร์สของระบบเป็นไปตามข้อกำหนด (policy)

ข้อกำหนดในการใช้รีซอร์สจะต่างกันออกไปขึ้นอยู่กับโปรแกรม

ข้อกำหนดอาจจะเปลี่ยนแปลงได้ตลอดเวลา

การป้องกันระบบจะไม่ใช่หน้าที่ของระบบปฏิบัติการเพียงอย่างเดียว แต่จำเป็นที่จะต้องให้โปรแกรมเมอร์มีความสามารถในการจัดสรรรีซอร์สได้เหมือนกัน

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

การป้องกันโดเมน (Domain of Protection)

ในระบบคอมพิวเตอร์จะประกอบไปด้วยออปเจ็กต์ (object) มากมายที่จำเป็นจะต้องทำการป้องกัน

ซึ่งออปเจ็กต์เหล่านี้อาจจะเป็นฮาร์ดแวร์ เช่น ซีพียู หน่วยความจำ ดิสก์ไดร์ฟ เครื่องพิมพ์  หรืออาจจะเป็นซอฟต์แวร์ เช่น โปรเซส ไฟล์ ฐานข้อมูล

ออปเจ็กต์แต่ละออปเจ็กต์จะมีชื่อที่ใช้อ้างถึงไม่ซ้ำกัน และจะมีชุดคำสั่งของการปฏิบัติการ (operation) ที่สามารถจะกระทำได้กับออปเจ็กต์นั้น

จำเป็นที่จะต้องมีวิธีที่ต้องนำมาใช้เพื่อห้ามไม่ให้โปรเซสเรียกใช้ออปเจ็กต์ที่ไม่ได้อนุญาตให้สำหรับโปรเซสนั้น

ยิ่งไปกว่านั้นกลไกนี้จะต้องจำกัดการทำงานของโปรเซสให้อยู่ภายใต้การทำงานเฉพาะที่ได้รับอนุญาตเท่านั้น

โดเมนจะประกอบไปด้วยชื่อของออปเจ็กต์ (object-name) และสิทธิ(right) ที่อยู่กันเป็นคู่ คือ <object-name, rights>

แต่ละคู่จะระบุถึงชื่อของออปเจ็กต์

สิทธิจะหมายถึงชุดคำสั่งของการปฏิบัติการที่สามารถกระทำได้กับออปเจ็กต์นั้น

ตัวอย่างเช่น ในโดเมน A กำหนดว่า <file F,{read,write}> จะหมายถึงโปรเซสใด ๆ ที่ประมวลผลอยู่ในโดเมน A สามารถที่จะอ่านและเขียนไฟล์ F ได้  แต่ไม่สามารถกระทำการอย่างอื่นได้นอกจากอ่านและเขียนไฟล์ F เท่านั้น

โดเมนแต่ละโดเมนสามารถที่จะใช้สิทธิของการใช้คำสั่งของการปฏิบัติการร่วมกับโดเมนอื่นได้

ตัวอย่างภาพด้านล่าง จะประกอบไปด้วย 3 โดเมน คือ D1, D2 และ D3

แต่ละโดเมนก็จะประกอบไปด้วยออปเจ็กต์และสิทธิของการใช้คำสั่งปฏิบัติการ

ในส่วนของสิทธิการใช้คำสั่งปฏิบัติการ <O4, {print}> นั้นจะเป็นสิทธิที่สามารถใช้ร่วมกันได้ทั้งโดเมน D2 และ D3

หมายความว่าโปรเซสที่ประมวลผลในโดเมนใดโดเมนหนึ่งในสองโดเมนนี้สามารถที่จะพิมพ์ออปเจ็กต์ O4 ได้ 

ส่วนโปรเซสที่ประมวลผลอยู่ในโดเมน D1 โปรเซสนั้นสามารถที่จะอ่านและเขียนออปเจ็กต์ O1 ได้เท่านั้น

ถ้าโปรเซสนั้นประมวลผลอยู่ในโดเมน D3 โปรเซสนั้นก็จะสามารถเรียกออปเจ็กต์ O1 มาแอ็กซิคิวต์ได้

ในระหว่างที่แต่ละโปรเซสกำลังทำงานนั้น  โปรเซสจะทำงานอยู่ภายในขอบเขตของโดเมนที่มันอยู่เท่านั้น

หมายความว่ามันสามารถที่จะเรียกใช้ออปเจ็กต์ที่อยู่ภายในโดเมนเดียวกับโปรเซสนั้น

ตัวอย่างการป้องกันโดเมนของระบบ UNIX

ในระบบปฏิบัติการ UNIX แต่ละโดเมนจะประกอบไปด้วยผู้ใช้

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

เช่น ผู้ใช้ซึ่งมี user-id = A ต้องการที่จะประมวลผลโปรเซสของ B โดยจะต้องกำหนดสถานะของ setuid bit ของโปรเซสที่มี B เป็นเจ้าของให้มีค่าเป็น off

เมื่อมีค่าเป็น off ซึ่งจะทำให้ user-id ของโปรเซสที่มี B เป็นเจ้าของจะถูกเปลี่ยนให้  A เป็นเจ้าของและ A ก็สามารถที่จะประมวลผลโปรเซสนั้นได้

แต่เมื่อ setuid bit ถูกเปลี่ยนให้มีสถานะ on เมื่อไหร่ user-id ก็จะถูกเปลี่ยนให้กลับไปยังเจ้าของเดิมคือ user-id = B

และเมื่อโปรเซสออกจากการประมวลผลการเปลี่ยนเจ้าของโปรเซสแบบชั่วคราวก็จะเสร็จสิ้นลง

มีวิธีอื่น ๆ อีกที่โปรแกรมระบบใช้ในการเปลี่ยนโดเมนในระหว่างการประมวลผล  โดยการใช้ user-id เป็นตัวกำหนดโดเมน

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

ในกรณีของระบบ UNIX จะมีการกำหนดค่าsetuid bit ให้กับโปรแกรมในเน็ตเวิร์ค

อีกทางเลือกหนึ่งของวิธีนี้ที่ใช้ในระบบปฏิบัติการอื่นคือ ใช้วิธีของการเก็บโปรแกรมที่มีสิทธิพิเศษไว้ในไดเรกทอรีพิเศษ

โปรแกรมระบบจะทำหน้าที่เปลี่ยน user-id ให้กับโปรแกรมที่ประมวลผลที่อยู่ในไดเรกทอรีพิเศษนี้

จะเป็นการขจัดปัญหาในเรื่องของการกำหนดสถานะของ setuid bit  ให้กับโปรแกรม เพราะว่าโปรแกรมทั้งหมดจะรวมอยู่ในที่เดียวกัน  แต่วิธีนี้จะมีความยืดหยุ่นน้อยกว่าวิธีที่ใช้ในระบบ UNIX

ตารางเมตริกซ์ของการปฏิบัติการ (Access Matrix)

ตารางเมตริกซ์ของการปฏิบัติการ (access matrix) ซึ่งแต่ละแถวในตารางจะหมายถึงโดเมน (domain)

แต่ละคอลัมน์จะหมายถึงออปเจ็กต์ (object)  และข้อมูลที่อยู่ในแต่ละช่องของตารางจะหมายถึงสิทธิของการใช้คำสั่งปฏิบัติการ(right)

แต่เนื่องจากแต่ละคอลัมน์จะหมายถึงออปเจ็กต์ ดังนั้นเราจึงสามารถละชื่อของออปเจ็กต์ไว้ไม่ต้องเขียนลงไปในตาราง

ส่วนข้อมูล access(i,j) จะหมายถึงชุดของคำสั่งปฏิบัติการของโปรเซสใด ๆ ที่ทำการประมวลผลอยู่ในโดเมน Di ที่สามารถเรียกใช้ออปเจ็กต์ Oj  ได้

คำสั่ง switch จะเป็นคำสั่งที่ใช้สำหรับย้ายโปรเซสจากโดเมนหนึ่งไปอีกโดเมนหนึ่ง

สามารถทำการควบคุมการย้ายโดเมนของโปรเซสได้โดยกำหนดให้โดเมนเป็นออปเจ็กต์อยู่ในตารางเมตริกซ์ของการปฏิบัติการ

เนื่องจากแต่ละข้อมูลที่อยู่ในช่องตารางเมตริกซ์สามารถที่จะทำการเปลี่ยนแปลงได้โดยไม่กระทบกับข้อมูลในช่องตารางอื่น ๆ ฉะนั้นจึงถือว่าข้อมูลที่อยู่ในช่องตารางเมตริกซ์นั้นเป็นออปเจ็กต์ที่จะต้องมีการป้องกัน

การย้ายโดเมนจากโดเมน Di ไปยังโดเมน Dj  จะกระทำได้ก็ต่อเมื่อกำหนดสิทธิของการใช้คำสั่งปฏิบัติการเป็น switch Î access(i,j)

โปรเซสที่ประมวลผลอยู่ในโดเมน D2 สามารถที่จะย้ายไปประมวลผลในโดเมน D3 หรือโดเมน D4 ได้ ซึ่งโปรเซสที่อยู่ในโดเมน D4 ก็สามารถที่จะย้ายไปโดเมน D1 ได้

โปรเซสที่อยู่ในโดเมน D1 สามารถย้ายไปประมวลผลในโดเมน D2 ได้

สำหรับคำสั่งที่ใช้ควบคุมการเปลี่ยนข้อมูลในตารางเมตริกซ์ของการปฏิบัติการคือ copy, owner และ control

Access Control Lists (ACL)

จัดทำตารางเมตริกซ์ไม่ค่อยเป็นที่นิยมเนื่องจากเป็นการเปลืองเนื้อที่และข้อมูลในตารางจะอยู่กระจัดกระจาย

ดังนั้นการใช้ตารางเมตริกซ์ที่ใหญ่และว่างทำให้เปลืองเนื้อที่จัดเก็บบนดิสก์ มีอยู่ 2 วิธีที่ใช้กันในทางปฏิบัติคือ
      -การสร้างตารางเมตริกซ์ตามแนวแถวและตามแนวคอลัมน์
      -หลังจากนั้นถึงจะทำการจัดเก็บข้อมูลลงไปในตามแนวแถวและตามแนวคอลัมน์นั้น

เทคนิคที่นำมาใช้นี้จะประกอบด้วยรายการของออปเจ็กต์และโดเมนที่สามารถเรียกใช้งานแต่ละออปเจ็กต์ได้ ซึ่งรายการที่สร้างขึ้นนี้เรียกว่า Access Control List หรือ ACL

การเรียกคืนสิทธิการเข้าใช้งานระบบ (Revocation of Access Rights)

ในการป้องกันระบบบางครั้งจำเป็นที่จะต้องเรียกคืนสิทธิการเรียกใช้ออปเจ็กต์ที่ใช้งานร่วมกันกับผู้ใช้คนอื่น ๆ ในระบบ  โดยจะเกี่ยวข้องกับสิ่งต่าง ๆ ดังนี้
    -เรียกคืนสิทธิทันทีหรือเลื่อนการเรียกคืนสิทธิออกไป (Immediate versus delayed)  นั่นคือการเรียกคืนสิทธินั้นจะกระทำในทันทีทันใด หรือจะเลื่อนการคืนสิทธิไปก่อน
    -กระทบกับผู้ใช้ทั้งหมดหรือผู้ใช้บางคน (Selective versus general)  เมื่อมีการเรียกคืนสิทธิการเรียกใช้งานออปเจ็กต์  การเรียกคืนสิทธินั้นจะมีผลกระทบกับผู้ใช้ทั้งหมดที่มีสิทธิการเรียกใช้ออปเจกต์นั้นหรือไม่
    -เรียกคืนสิทธิเป็นบางส่วนหรือเรียกคืนสิทธิทั้งหมด (Partial versus Total)  การเรียกคืนสิทธินั้นจะเรียกคืนสิทธิทั้งหมดที่ผู้ใช้คนนั้นสามารถกระทำกับออปเจ็กต์หรือเรียกคืนสิทธิบางอย่างที่ผู้ใช้สามารถกระทำได้กับออปเจ็กต์
    -เป็นการเรียกคืนสิทธิชั่วคราวหรือถาวร (Temporary versus Permanent)  สิทธิการเรียกใช้ออปเจ็กต์สามารถเรียกคืนถาวรเลยหรือไม่  นั่นคือผู้ใช้จะไม่สามารถจะกลับมาใช้สิทธินั้นได้อีก

การใช้รูปแบบของ ACL การเรียกคืนสิทธินั้นจะกระทำได้ง่าย  โดยจะทำการค้นหาสิทธิของการเรียกใช้ออปเจ็กต์ใน access list  ที่จะเรียกคืนก่อน หลังจากนั้นก็จะทำการลบสิทธินั้นออกจาก access list   ซึ่งการเรียกคืนสิทธินั้นจะมีผลในทันทีทันใด ส่วน capability list  จะเป็นรูปแบบที่ก่อให้เกิดปัญหาในการเรียกคืนสิทธิของการใช้งานระบบ

เนื่องจาก capability จะกระจัดกระจายอยู่ในระบบซึ่งเราจะต้องหา capability ที่เกี่ยวข้องให้พบก่อนแล้วจึงจะสามารถเรียกคืนสิทธิในการเข้าใช้งานระบบได้

รูปแบบต่าง ๆ ที่สร้างขึ้นมาเพื่อใช้สำหรับการเรียกคืนการใช้สิทธิของ capability
      -การได้สิทธิคืนมาอีกครั้งหนึ่ง (Reacquisition)  การลบ capability ออกจากโดเมนนั้นจะมีการทำเป็นระยะ ๆ

การได้สิทธิคืนมาอีกครั้งหนึ่ง (Reacquisition)  การลบ capability ออกจากโดเมนนั้นจะมีการทำเป็นระยะ ๆ
      -ถ้าโปรเซสต้องการที่จะใช้ capability ที่ได้ถูกลบไปแล้ว  ก็จะทำให้โปรเซสนั้นหา capability ไม่พบ โปรเซสอาจจะทำการพยายามที่จะเรียก capability อีกครั้งหนึ่ง
      -แต่ถ้าโปรเซสนั้นได้ถูกเรียกคืนสิทธิในการใช้งานระบบแล้ว  โปรเซสนั้นก็ไม่สามารถที่จะใช้ capability นั้นได้อีก

ทางเดินพอยเตอร์(Back-pointers) แต่ละออปเจ็กต์จะประกอบด้วยพอยเตอร์(pointer) หลาย ๆ ตัว
       -พอยเตอร์ของแต่ละออปเจ็กต์จะชี้ไปยัง capability ทั้งหมดที่เกี่ยวข้องกับออปเจ็กต์นั้น
       -เมื่อต้องการที่จะเรียกคืนสิทธิการใช้งานออปเจ็กต์ใด  เราสามารถเดินตามไปยังเส้นทางเดินพอยเตอร์ของออปเจ็กต์นั้น
       -วิธีนี้ค่อนข้างเป็นวิธีที่ธรรมดาถึงแม้ว่าจะเป็นวิธีที่เสียค่าใช้สูงในการดูแลรักษา

โดยทางอ้อม (Indirection)  แต่ละ capability จะชี้ไปที่ข้อมูลที่ไม่ซ้ำกันในตาราง
       -เราจะทำการสร้างการเรียกคืนสิทธิโดยจะทำการค้นในตารางทั้งหมดเพื่อหาข้อมูลที่ต้องการและลบข้อมูลนั้นทิ้งไป

คีย์ (Keys)
       -แต่ละ capability จะมีบิตที่ทำหน้าที่เป็นคีย์โดยแต่ละคีย์จะมีค่าไม่ซ้ำกัน
       -ค่าของคีย์นี้ไม่สามารถจะถูกเปลี่ยนแปลงหรือถูกแก้ไขโดยโปรเซสที่เป็นเจ้าของ capability นั้น
       -คีย์หลัก(master key) จะมีความสัมพันธ์กับแต่ละออปเจ็กต์สามารถที่จะกำหนดค่าหรือแทนค่าโดยใช้คำสั่ง set-key เมื่อสร้าง capability ขึ้นมา
       -ค่าปัจจุบันของคีย์หลัก(master key)  จะถูกกำหนดให้มีความสัมพันธ์กับ capability เมื่อ capability ถูกเรียกใช้งานค่าคีย์ของ capability
       -จะถูกนำไปเปรียบเทียบกับค่าของคีย์หลัก (master key)
       -ถ้าค่าของคีย์ทั้งสองตรงกันก็จะสามารถทำงานต่อไปได้
       -แต่ถ้าไม่ตรงกันก็จะเกิดการเรียกคืนการใช้สิทธิโดยที่จะใช้คำสั่ง set-key เพื่อทำการแทนที่ค่าของคีย์หลัก(master key) ด้วยค่าใหม่

ระบบไฮดรา (Hydra)
        -ระบบไฮดราเป็นระบบที่ใช้การป้องกันที่เป็นแบบ capability  ซึ่งมีความยืดหยุ่นในการทำงานมาก
        -ในระบบไฮดรานี้จะมีการกำหนดชุดคำสั่งของสิทธิในการเรียกใช้งานระบบ
        -ซึ่งสิทธิการเรียกใช้งานระบบนี้ก็จะประกอบไปด้วยสิทธิการใช้งานพื้นฐานที่กระทำเกี่ยวกับหน่วยความจำ เช่น อ่าน, เขียน หรือเอ็กซิคิวต์
         -ยิ่งไปกว่านั้นระบบไฮดรายังมีวิธีการที่จะให้ผู้ใช้งานสามารถกำหนดสิทธิการใช้งานระบบเพิ่มเติมได้โดยที่ผู้ใช้สามารถเขียนโปรแกรมขึ้นมาใช้เอง  แต่ระบบจะมีกลไกในการป้องกันในการใช้สิทธิต่าง ๆ ของผู้ใช้แต่ละคน
         -ระบบไฮดรานี้ถือว่าเป็นระบบที่มีเทคโนโลยีของการป้องกันที่มีประสิทธิภาพมากระบบหนึ่ง 
         -การปฏิบัติการที่เกี่ยวกับออปเจ็กต์นั้นจะมีการกำหนดเป็นขั้นตอนอย่างมีระเบียบแบบแผน
         -แต่ละโปรซีเดอร์ (Procedure) ที่ประกอบไปด้วยชุดคำสั่งของการปฏิบัติการนั้นจะถือว่าเป็นออปเจ็กต์หนึ่ง และจะถูกเรียกใช้งานโดยทางอ้อมจาก capability ชื่อที่จะกำหนดให้กับโปรซีเดอร์นี้จะต้องเป็นชื่อที่ระบบการป้องกัน
         -เมื่อได้มีการกำหนดลักษณะของออปเจ็กต์ต่าง ๆ ให้ระบบไฮดรารู้จักแล้ว  สิทธิของการเรียกใช้คำลั่งปฏิบัติการจะเรียกว่า สิทธิสนับสนุน (auxiliary rights)
        -ขั้นตอนในการใช้คำสั่งปฏิบัติการเพื่อเรียกใช้งานออปเจ็กต์ capability ที่มีออปเจ็กต์นั้นจะต้องมีรายการของคำสั่งการปฏิบัติการที่อ้างถึงสิทธิสนับสนุน
        -แนวความคิดหนึ่งของระบบไฮดราซึ่งน่าสนใจก็คือ การขยายสิทธิ (right amplification) ซึ่งแนวความคิดนี้จะเป็นการให้การรับรองโปรซีเดอร์ว่าเป็นโปรซีเดอร์ที่ไว้ใจได้ (trustworthy)
        -การใช้สิทธิต่าง ๆ ที่กำหนดไว้ในโปรซีเดอร์ที่ไว้ใจได้นี้จะเป็นอิสระไม่ขึ้นกับใครและในบางครั้งอาจมีการละเมิดสิทธิได้ด้วย
        -อีกกลไกหนึ่งของระบบไฮดราที่ถูกออกแบบมาเพื่อแก้ปัญหาที่เรียกว่า  problem of mutually suspicious subsystems
        -ลักษณะของปัญหานี้ก็คือ สมมติว่ามีโปรแกรมหนึ่งซึ่งเขียนขึ้นมาเพื่อให้ผู้ใช้หลาย ๆ คนสามารถเรียกใช้โปรแกรมนี้ได้
        -ผู้ใช้นั้นอาจจะเสี่ยงต่อการที่โปรแกรมนั้นมีข้อบกพร่อง หรือโปรแกรมนั้นอาจจะทำให้ข้อมูลของผู้ใช้เสียหาย
        -ระบบย่อย ๆ ของไฮดราจะสร้างอยู่บน kernel ของมันเองและมีการป้องกันตัวเอง
        -ระบบย่อยจะทำการติดต่อกับเคอร์เนลโดยจะทำการเรียกชุดคำสั่งที่กำหนดไว้ใน kernel-defined
        -ในชุดคำสั่งนั้นจะเป็นการกำหนดสิทธิการใช้งานของผู้ใช้ที่กำหนดโดยระบบย่อย

ระบบเคมบริดจ์ (Cambridge CAP System)

ระบบนี้จะเป็นอีกระบบหนึ่งที่มีกลไกการป้องกันแบบ capability

แต่ระบบเคมบริดจ์นี้จะมีประสิทธิภาพในการทำงานน้อยกว่าระบบไฮดรา

ในระบบ CAP จะแบ่ง capability ออกเป็น 2 ประเภทคือ
         -เป็น capability ที่เป็นแบบธรรมดาเรียกว่า data capability  ซึ่งใช้สำหรับกำหนดสิทธิของการใช้งานออปเจ็กต์  แต่สิทธิการใช้งานออปเจ็กต์จะเป็นการอ่าน, เขียน หรือเอ็กซิคิวต์กับหน่วยความจำที่กำหนดไว้ให้สำหรับใช้ส่วนตัวเท่านั้น
         -software capability ซึ่ง capability ประเภทนี้จะถูกป้องกันโดย CAP ไมโครโค้ด(CAP microcode)  และจะถูกแปลโดยเมื่อโปรซีเดอร์นี้ถูกประมวลผล โปรซีเดอร์นั้นจะมีสิทธิชั่วคราวในการอ่านหรือเขียนข้อมูลที่อยู่ใน software capability


loginก่อนดาวน์โหลด
กรุณาสมัครสมาชิกหรือlogin ก่อนดาวน์โหลดไฟล์

กดlike เพื่อติดตามข่าวสารและโปรเจค โค้ดใหม่ๆอัพเดทอยู่เสมอ

วีดีโอน่ารู้ : โปรเจคปริมาตรทรงลูกบาศก์ Project PHP


Tag : การป้องกัน (Protection) ระบบปฏิบัติการ1 เป้าหมายของการป้องกัน การสร้างกลไก (mechanism)



แสดงความคิดเห็น

Error Query [SELECT * FROM m_member where m_b_id='1029' ]