การรักษาความปลอดภัยขั้นสุดท้ายเป็นปัญหาสำคัญขององค์กรจำนวนมาก เช่น รหัส root ของเครื่องเซิร์ฟเวอร์หลักในระบบ รหัสผ่านเพื่อเข้าถึง private key บนสมาร์ตการ์ด การเก็บรักษาข้อมูลเหล่านี้ส่วนมากต้องอาศัยการพิมพ์ออกมาเป็นกระดาษแล้วนำไปเก็บรักษาไว้ที่ปลอดภัยเช่นตู้เซฟธนาคารที่ต้องการกุญแจสองดอกให้เปิดพร้อมกันจึงนำข้อมูลออกมาใช้งานได้ ตอนนี้ CloudFlare ผู้ให้บริการ reverse proxy รายใหญ่ก็นำโครงการภายในที่ชื่อว่า Red October เปิดซอร์สออกมาให้ใช้งานกัน
Red October คือเซิร์ฟเวอร์เข้ารหัสและถอดรหัส โดยไม่มีข้อมูลที่ต้องการเก็บรักษาอยู่บนเซิร์ฟเวอร์จริง ในตัวเซิร์ฟเวอร์ของ Red October นั้นจะเก็บกุญแจ RSA ของผู้ใช้ทุกคนเอาไว้ เมื่อมีการร้องขอให้เข้ารหัสข้อมูลใดๆ เซิร์ฟเวอร์จะ
กระบวนการถอดรหัสนั้นกลับข้างกัน โดยผู้ใช้จะต้องล็อกอินในระบบแล้ว "ให้สิทธิ์" (delegate) ในการเข้าถึงกุญแจส่วนตัว (private key) กับเซิร์ฟเวอร์โดยระบุระยะเวลา การให้สิทธิ์ต้องระบุระยะเวลาและจำนวนครั้งที่ใช้งานได้ เมื่อมีผู้ใช้ร้องขอการถอดรหัสข้อมูล ข้อมูลที่ใส่เข้ามาจะมีข้อมูลอยู่แล้วว่าใครเป็นผู้ถอดรหัสได้บ้าง เซิร์ฟเวอร์จะเข้าไปตามหาว่าผู้ใช้เหล่านั้นได้ให้สิทธิ์ไว้หรือไม่ หากให้สิทธิ์ไว้ครบจำนวนคนก็จะถอดรหัสไปได้
ในการใช้งานจริง เช่น ผู้ดูแลระบบต้องการเข้าถึงรหัส root ของเซิร์ฟเวอร์ตัวหนึ่ง เขาอาจจะต้องเดินไปบอกหัวหน้าฝ่ายสองคนพร้อมกัน หัวหน้าฝ่ายทั้งสองคนก็ล็อกอินเข้ามาให้สิทธิ์กับเซิร์ฟเวอร์คนละสิบนาที เราสามารถดึงไฟล์รหัสผ่านที่เข้ารหัสไว้ แล้วนำมาขอถอดรหัสได้
กระบวนการนี้เลียนแบบการปล่อยอาวุธนิวเคลียร์ที่มีกฎ two-man rule คือ ห้ามมีใครคนใดคนหนึ่งมีสิทธิ์ปล่อยอาวุธนิวเคลียร์ด้วยตัวเอง
Red October คงมีจุดอ่อนสำคัญคือการวางกุญแจส่วนตัว RSA ไว้ในเซิร์ฟเวอร์ หากเซิร์ฟเวอร์ถูกเจาะไปได้และมีการดัดแปลงโค้ดเพื่อเก็บรหัสผ่านสำหรับการเปิดไฟล์กุญแจลับนี้ก็คงทำให้แฮกเกอร์ดึงข้อมูลออกไปได้ แต่ทั้งนี้มันเป็นระบบจัดการสิทธิ์ที่พึ่งรหัสวิทยาอย่างมากเทียบกับระบบ workflow อื่นๆ ที่มักไม่มีการเข้ารหัสใดๆ
ทาง CloudFlare เปิดให้ดาวน์โหลด Red October ไปใช้งานได้ฟรี รวมถึงนำซอร์สโค้ดไปตรวจสอบความปลอดภัยกันได้
ที่มา - CloudFlare
Comments
มี่มี => ที่มี
เห็นในหนังขโมยกุญแจไปสองอันแล้วเอาไปใช้ แสดงว่ายังไม่ปลอดภัย
ขอเสนอให้หลังจากไขกุญแจแล้ว ต้องเต้นเข้าจังหวะทั้งสองคนด้วยครับ!
กฎข้อแรกของกระบวนการรักษาความปลอดภัยคือ "ไม่มีอะไรปลอดภัยสมบูรณ์จริงๆ" ครับ
เป้าหมายของระบบรักษาความปลอดภัยไม่ใช่การสร้างระบบที่ปลอดภัยสมบูรณ์ แต่สร้างระบบที่ปลอดภัยจนกระทั่ง "ไม่คุ้มที่จะฝ่าระบบรักษาความปลอดภัย" ในกรณีนี้สองคนก็อาจจะถูกขโมยกุญแจได้ แต่ก็มีความเสี่ยงน้อยกว่าที่ให้คนเดียวถือข้อมูลลับทั้งบริษัท แล้ววันดีคืนดีลาออกไปโดยไม่มีใครรู้ว่าถือข้อมูลอะไรอยู่แน่ๆ
lewcpe.com, @wasonliw
Synchronized key stroke! เหมือนเคยเห็นในหนัง
คุ้นๆ ตรงที่ "ต้องเต้นเข้าจังหวะทั้งสองคน"
เป็นแนวคิดที่ไม่เลวเลย
เอา pki ที่มีอยู่แล้ว มา encrypt ข้อมูลโดย user a จากนั้น encrypt ต่อด้วย user b
เวลาถอดรหัสก็ decrypt ด้วย user b ตามด้วย user a
ใช้กุญแจสาธารณะของแต่คนในแต่ละกลุ่ม => ใช้กุญแจสาธารณะของแต่ละคนในแต่ละกลุ่ม
หรือ
ใช้กุญแจสาธารณะของแต่คนในแต่ละกลุ่ม => ใช้กุญแจสาธารณะของคนในแต่ละกลุ่ม
ไม่รู้ว่าอันไหนถูก
เหมือนในหนังเรื่อง white house down ที่ใช้การเข้าถึงระบบขีปนาวุธต้องใช้ระบบ Cerberus ในการเข้าถึงระบบ
เจ๋ง เลิศ ... etc. แต่เสียอย่างเดียว ไม่มี Node ในไทย T.T