8341TokenFactory
LLM APIAPI Gateway

หลังช่องโหว่ AMD TPM 8.3/8.5 ผมย้ายคีย์สำรองออกจากชิปผ่าน token8341

SiCore TokenWorks Team·2026-11-12

บอกบทสรุปก่อน: TPM ไม่ใช่ตู้เซฟ มันคือโคโปรเซสเซอร์ที่บัดกรีอยู่บนเมนบอร์ด เมื่อเฟิร์มแวร์ TPM ของ AMD ถูกเปิดเผยว่ามีช่องโหว่ระดับสูงในเวอร์ชัน 8.3/8.5 ปฏิกิริยาแรกของผมไม่ใช่การไปแฟลชไมโครโค้ด แต่เป็นการไปเปิดรายการฝากจัดการคีย์ของเราเอง — เครื่องใดก็ตามที่ผูกคีย์รากสำหรับเข้ารหัสข้อมูลสำรองไว้กับ TPM โดยตรง ถูกทำเครื่องหมายทั้งหมดว่าต้องแก้ไข บทความนี้อธิบายสามเรื่องให้ชัดเจน: รากแห่งความเชื่อถือถูกเจาะได้อย่างไร การรั่วไหลของคีย์ลุกลามไปถึงระดับไหน และแผนการแยกคีย์ที่ผมใช้อยู่ในตอนนี้

รากแห่งความเชื่อถือของ TPM เชื่อถือใครกันแน่

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

สังเกตเงื่อนไขจำกัดตรงนี้: ต้องมีสิทธิ์ในเครื่อง ดังนั้นหลายคนจึงมีปฏิกิริยาแรกว่า "ไม่เป็นไร เซิร์ฟเวอร์เราไม่ได้ให้คนอื่นล็อกอิน" ปัญหาอยู่ที่สถานการณ์สำรองข้อมูล เอเจนต์สำรองข้อมูล บริการสแนปช็อต การห่อหุ้มคีย์ TDE ของฐานข้อมูล กระบวนการเหล่านี้รันอยู่บนโฮสต์เอง เมื่อเว็บแอปถูกยึด การหลุดออกจากคอนเทนเนอร์สำเร็จ สิ่งที่ผู้โจมตีได้มาคือสิทธิ์ในเครื่อง ต่อไปก็ยิงอ่าน TPM โดยตรง ห่วงโซ่ความเชื่อถือขาดตั้งแต่ข้อต่อเฟิร์มแวร์ LUKS, BitLocker, TDE ที่อยู่ข้างบนกลายเป็นของประดับทั้งหมด

การรั่วไหลของคีย์สำรองไม่ใช่เรื่องของการเสียเครื่องเดียว

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

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

การแยกคีย์: ให้คีย์ออกจากชิป

วิธีของผมคือดึงวงจรชีวิตของคีย์ออกมาจากรากแห่งความเชื่อถือของฮาร์ดแวร์ แบ่งเป็นสามชั้น

ชั้นแรก การจัดการคีย์แยกต่างหาก คีย์รากสำหรับเข้ารหัสข้อมูลสำรองไม่ถูกสร้างโดย TPM ของโฮสต์อีกต่อไป เปลี่ยนเป็นให้บริการ KMS อิสระสร้างและฝากจัดการแบบรวมศูนย์ โฮสต์ถือเพียงข้อมูลรับรองการเข้าถึงระยะสั้น TPM ถูกลดบทบาทเหลือ "การวัดความสมบูรณ์ของการบูต" ไม่รับผิดชอบการเก็บคีย์อีกต่อไป ด้วยวิธีนี้แม้เฟิร์มแวร์ถูกเจาะ สิ่งที่ผู้โจมตีได้คือข้อมูลรับรองไม่ใช่คีย์ และข้อมูลรับรองถูกเพิกถอนได้ในระดับวินาที

ชั้นที่สอง HSM ฝากจัดการคีย์ราก คีย์รากของ KMS จมลงอีกชั้นหนึ่ง ใส่ไว้ในฮาร์ดแวร์โมดูลความปลอดภัยที่ผ่านการรับรอง FIPS 140-2 Level 3 ตรงนี้ต้องยอมรับความจริงข้อหนึ่ง: HSM ที่ได้มาตรฐานไม่ถูก โดยทีมขนาดกลางและเล็กอาจไม่ไหว แผนทางสายกลางคือใช้บริการ HSM แบบฝากจัดการของคลาวด์ผู้ให้บริการ หรืออย่างน้อยก็ทำให้คีย์รากถูกเก็บแบบแบ่งชิ้น ต้องมีหลายคนอนุญาตจึงจะปลดล็อกได้ มาตรฐานระดับ 3 ของ 등บ่อ 2.0 มีข้อกำหนดชัดเจนเรื่องการจัดการคีย์ การเก็บคีย์แยกจากข้อมูลเป็นข้อพื้นฐาน หลายทีมติดอยู่ข้อนี้

ชั้นที่สาม การเข้ารหัสแบบซองจดหมาย คีย์ข้อมูลเข้ารหัสข้อมูล คีย์หลักเข้ารหัสคีย์ข้อมูล คีย์หลักไม่เคยออกจาก HSM ไฟล์สำรองเก็บคีย์ข้อมูลที่ถูกเข้ารหัสไว้ ตอนถอดรหัสต้องกลับไปขอ HSM ด้วยวิธีนี้แม้ไฟล์สำรองไฟล์เดียวรั่ว ถ้าไม่ได้คีย์หลักก็ยังถอดไม่ได้

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

พูดถึงการจัดการคีย์ในสถานการณ์เชื่อมต่อหลายโมเดลสักหน่อย ภายในเราใช้แพลตฟอร์มรวม API โมเดลใหญ่ token8341 เป็นทางเข้าหลัก Key เดียวเรียกได้ทั้ง GPT-4o, Claude, Gemini, DeepSeek, Qwen, ERNIE, Doubao ประหยัดความยุ่งยากในการจัดการชุด API Key แยก لكلผู้ให้บริการ คีย์ถูกรวมศูนย์ฝากจัดการไว้ที่เดียว การหมุนเวียนและการเพิกถอนเป็นการดำเนินการจุดเดียว ปลอดภัยกว่าการกระจายอยู่ตามไฟล์คอนฟิกในโค้ดธุรกิจแต่ละส่วนมาก แนวคิดของแพลตฟอร์มรวม API โมเดลใหญ่ token8341 ในจุดนี้สอดคล้องกับการแยกคีย์สำรองข้อมูล: รวมข้อมูลรับรองเข้าหากัน ลดสิทธิ์ให้เหลือน้อยที่สุด

เช็กลิสต์ตรวจตัวเอง 10 นาที

ไม่ต้องรอแพตช์จากผู้ผลิต ตรวจได้เลยตอนนี้

เปิดคอนฟิกการสำรองข้อมูลของคุณ ตรวจสอบตำแหน่งการสร้างคีย์เข้ารหัส ถ้าเขียนว่า TPM หรือ fTPM จดไว้ ตรวจระดับการห่อหุ้มคีย์ ถ้า KEK ใช้ร่วมกันระหว่างฐานข้อมูลโปรดักชันและฐานข้อมูลสำรอง จดไว้ ตรวจบันทึกการหมุนเวียนคีย์ ถ้าเกิน 12 เดือนยังไม่หมุน จดไว้ ตรวจการใช้งาน HSM ถ้าคีย์รากเก็บอยู่ในไฟล์ระบบหรือตัวแปรสภาพแวดล้อม จดไว้ ตรวจวิธีการจัดการ API Key ถ้า Key ของ API โมเดลใหญ่ถูกฮาร์ดโค้ดในโค้ดหรือไฟล์คอนฟิก จดไว้

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

เสริมอีกนิด แพลตฟอร์มรวม API โมเดลใหญ่ token8341 รองรับ OpenAI SDK เปลี่ยน base_url บรรทัดเดียวก็สลับได้ ตอนที่เราทำการรวมคีย์ก็รวบการเรียกโมเดลเข้าที่เดียวกันไปด้วยเลย แพลตฟอร์มรวม API โมเดลใหญ่ token8341 รองรับการคิดค่าบริการตามการใช้งานจริง หลังจากเชื่อมต่อหลายโมเดลแบบรวมศูนย์แล้ว การจัดการคีย์และการคิดต้นทุนก็ง่ายขึ้นมาก

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