Type of Security Threats

  • Interception บุคคลที่ไม่ได้รับอนุญาติเข้ามาใช้งาน service หรือเข้าถึงข้อมูลได้
  • Interruption service หรือข้อมูลไม่สามารถเข้าถึงได้ หรืออาจจะถูกทำลายเนื่องจากการโจมตี
  • Modification มีการแก้ไขข้อมูลโดยไม่ได้รับอนุญาติ
  • Fabrication มีการสร้างข้อมูลหลอกๆขึ้นมาในระบบ เช่นการเพิ่ม user ใหม่ลงไปในระบบ

การจะทำระบบให้ปลอดภัยจะต้องมีการวาง security policy ไว้ซึ้งจะต้องครอบคลุมถึง user, service, data, machine, … หลังจากนั้นก็ต้องมาจัดตั้ง security mecahnism ซึ่งแบ่งได้ออกเป็นดังนี้

  • Encryption การเข้ารหัสข้อมูลให้อยู่ในรูปที่เข้าใจไม่ได้
  • Authentication กระบวนการตรวจสอบ identity ของ client เช่นการใช้ password
  • Authorization การอนุญาติให้ client เข้าใช้งาน โดยดูว่า client มีสิทธิในการเข้าถึงข้อมูลหรือไม่
  • Auditing  การเก็บ log ว่า client ได้เข้าใช้งานส่วนใดในระบบบ้าง

การออกแบบระบบ (Focus of Control) จะแบ่งได้เป็นส่วนของ ข้อมูล method และผู้ใช้

  • ป้องกันข้อมูลที่เกี่ยวเนื่องกับ application เพื่อรักษา integrity เช่นการป้องกันในระบบ DB
  • ป้องกันการกระทำที่จะถูกสั่งให้ทำงาน เช่น การอนุญาติให้ผู้ใช้ ใช้งาน method ใดได้บ้าง (accessible to user)
  • ป้องกันตามผู้ใช้งาน โดยกำหนดว่าใครสามารถเข้าใช้ข้อมูลหรือ app ตัวใดได้บ้าง

หลักการที่ใช้สำหับการควบคุมมีสองหลักการ

1.       Access control matrix (Subject, Object)  ไว้กำกับสิทธิการใช้งานระหว่าง subject และ object ทำให้ขนาดใหญ่ และในช่องส่วนใหญ่จะเป็นช่องไม่มีสิทธิ ซึ่งเปลืองพื้นที่ในการเก็บ จึงพัฒนามาเป็น Access control list จะมี resource manager คอยดูแลการรับคำขอกระทำจาก subject

2.       Capabilities เป็นตั๋วสำหรับการเข้าใช้ทรัพยาการ โดย user จะส่งข้อมูล capability ให้ server (resource manager) ถ้าตั๋วนี้ถูกต้องก็จะให้ใช้ทรัพยากรได้

เปรียบเทียบ ACL กับ Capabilities

1.       ACL : server จะต้องเก็บสิทธิการใช้งานอยู่ใน server ซึ่งต้องมีคนคอย maintain แต่ ACL สามารถควบคุมทรัพยากรได้ละเอียดกว่า ระบุได้ให้ใช้ได้แค่ไหน

2.       ฝั่ง server ไม่ต้องเก็บข้อมูล เพียงแค่รู้วิธีตรวจสอบก capability ว่าถูกต้องหรือไม่ เพราะผลลัพธ์ที่ได้คือ YES/NO

Security Management

เป็นการเข้าและถอดหรัสระหว่างคู่สนทนา ซึ่งปัจจัยสำคัญขึ้นกับ Key ที่ใช้ ซึ่งความยุ่งยากของ security ก็คือการจัดการ Key ในปัจจุบันการจัดการ Key จะอยู่ในรูปของ Certificate

Certificate คือการรับรอง Key โดยจะต้องมีการตั้ง Certificate Server – CA (Key Distribution) โดยอาจจะเก็บ key ไว้ในรูปแบบที่กำหนดไว้เช่น ออกโดยใคร เมื่อไหร่ หมดอายุเมื่อไหร่ โดย CA จะมีการรับรองเป็นลำดับชั้น มีตั้งแต่ root CA ซึ่งจะไปรับรอง CA server ตัวอื่นๆ ทำให้ผู้ใช้มั่นใจได้ว่า Server CA ถูกต้อง ไม่ได้ปลอมแปลงมา โดยเมื่อ Certificate หมดอายจะมีการทำ CRL เพื่อ renew certificate อีกครั้ง

Kerberos (ตัวอย่างการนำไปใช้)

Server ทั้งหมดจะไว้ใจ Kerberos เปรียบเสมือนศูนย์กลางการจัดการความปลอดภัยของระบบ DS ซึ่งจะมีกระบวนการที่ทำให้การสนทนาระหว่าง Client-Server มีความปลอดภัย โดยจะต้องใช้ Secure Channel โดยจะเข้ารหัสด้วย session key ซึ่งก่อนจะมีการสนทนา client-server จะต้องมั่นใจว่าไม่ได้ปลอมแปลงมา ซึ่งต้อง authentication ซึ่งกันและกัน โดยใช้หลักการของ Needham-Schroeder

ส่วนประกอบของ Kerberos

1.       Authentication service (AS) ทำหน้าที่ดูแล client เป็น service ให้ user/client เข้ามา login เมื่อ login สำเร็จจะได้ตั๋ว

2.       Ticket Granting Service (TGS) จะดูแลฝั่ง server ก่อนการทำงานจะต้องมีการลงทะเบียนกับ TGS

ขั้นตอนการทำงาน

1.       Client จะทำการ login ผ่านทาง AS

2.       AS จะทำการส่งข้อมูลกลับมาให้ client โดยจะเข้ารหัสด้วย key ระหว่าง client – AS ข้อมูลข้างในคือ Key ที่ใช้สำหรับการคุยกับ TGS ของ client และ Ticket ที่ถูก gen ออกมาจาก AS ซึ่งจะถูกตรวจสอบโดย TGS

3.       …

4.       ….

จะใช้ตั๋วไปต่อตั๋วใหม่สำหรับการร้องขอใช้งานเครื่องอื่นๆ