TPM เป็นรากของการรักษาความปลอดภัยทั้งหมด ไม่มี TPM = ไม่มีความปลอดภัย

 

คุณสามารถดาวน์โหลดสำเนาของเอกสารข้อมูลทางเทคนิคในรูปแบบ PDF ได้ที่นี่

TPM (Trusted Platform Modules หรือโมดูลแพลตฟอร์มที่เชื่อถือได้) เป็นอุปกรณ์เซมิคอนดักเตอร์ที่ฝังตัวภายในเครื่อง PC ทุกเครื่องและในบางครั้งถูกนำไปใช้ภายในตัว CPU ด้วย อุปกรณ์นี้เป็นตู้นิรภัยสำหรับคีย์การเข้ารหัส คล้ายกับหลายวิธีการที่ใช้กับชิปบนบัตรชำระเงิน TPM จัดส่งพร้อมกับเครื่อง PC และโน้ตบุ๊กมาเป็นเวลานาน แต่ยังไม่เคยนำมาปรับใช้ในเครือข่าย ATM ของธนาคาร ซึ่งมักมีสาเหตุมาจากแรงเฉื่อยในการนำสถาปัตยกรรมความปลอดภัยใหม่มาใช้ เป็นเรื่องที่น่าประหลาดใจที่ว่าเครือข่าย ATM ต้องการสถาปัตยกรรมความปลอดภัยที่เข้ารหัสมากกว่าอุตสาหกรรมส่วนใหญ่

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

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

บทนำ

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

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

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

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

เรามาดูภาพรวมดังกล่าวด้วยตัวอย่างด่วน เราทุกคนเคยใช้ระบบ PC ที่จำเป็นต้องป้อนชื่อผู้ใช้และรหัสผ่านเพื่อเข้าสู่ระบบ เนื่องจากระบบการรักษาความปลอดภัยด้วยรหัสผ่านจะมาพร้อมกับการโจมตีจากผู้ไม่ประสงค์ดี องค์กรที่สร้างกฎรหัสผ่านที่ซับซ้อนมากยิ่งขึ้นที่ผู้ใช้จดจำได้ยาก การเปลี่ยนรหัสผ่านเป็นประจำ การไม่ใช้รหัสผ่าน x ครั้งล่าสุด การรวมกันขอรหัสผ่านที่ซับซ้อนและจดจำได้ยาก เป็นต้น ด้วยเหตุนี้ Microsoft จึงได้ตัดทอนให้สั้นลงด้วยคุณสมบัติ “Windows Hello”

Windows Hello ผนวกรวมอุปกรณ์ฮาร์ดแวร์รักษาความปลอดภัยแบบเข้ารหัส TPM ที่จะรู้จำบุคคลด้วยการรู้จำผ่านข้อมูลชีวมาตรทางใบหน้า ซึ่งในความเป็นจริงจะคล้ายกับหลักการของการรักษาความปลอดภัยที่อุตสาหกรรม ATM ได้เข้าใจกันมา นั้นคือ ชิปและรหัส ด้วย Windows Hello ชิปจะเป็นอุปกรณ์ TPM ซึ่งเป็นตัวประมวลผลแบบเข้ารหัสเหมือนกับชิปบนบัตรชำระเงิน และข้อมูลชีวมาตรที่มาแทนการป้อนรหัส ระบบนี้ไม่เพียงมีความปลอดภัยมากขึ้นกว่าระบบที่ใช้ชื่อผู้ใช้ + รหัสผ่านแบบเดิมเท่านั้น แต่ยังใช้งานได้ง่ายสำหรับผู้ใช้ด้วย ผมไม่เพียงแต่เข้าสู่ระบบของแท็บเล็ต Surface ของผมเพียงแค่จ้องมองเท่านั้น ผมยังสามารถทำได้แบบทันที เร็วกว่าที่เคยพิมพ์ตัวอักษรรหัสผ่านแบบเดิม ระบบจะมีความปลอดภัยมากขึ้นและใช้งานได้ง่ายขึ้นพร้อมกันใช่หรือไม่ แน่นอน เราจะต้องหลีกห่างจากแนวคิดที่ว่าไม่มีอะไรได้มาโดยไม่เจ็บปวด ซึ่งการรักษาความปลอดภัยที่แท้จริงไม่จำเป็นต้องทำให้ผู้ใช้ยุ่งยาก

คุณจะสังเกตได้ว่าเรากำลังแนะนำแนวคิดของ TPM ในย่อหน้าก่อนหน้าแล้ว เอกสารข้อมูลทางเทคนิคนี้อธิบายเกี่ยวกับ TPM ในฐานะ “รากแก้วของความเชื่อถือได้” ในการประมวลผล TPM เป็นชิปเซมิคอนดักเตอร์ที่ปลอดภัยที่ประกอบด้วยสถาปัตยกรรมความปลอดภัยที่ออกแบบโดย กลุ่มการประมวลผลที่เชื่อถือได้ (TCG) ที่ประกอบด้วย บริษัทกว่า 100 แห่งที่, รวมถึงบริษัทรายสำคัญอย่างเช่น Intel, Microsoft, HP และ IBM กลุ่มนี้ทำงานเริ่มตั้งแต่ช่วงต้นปี 1999 โดยมีจุดมุ่งหมายที่จะสร้างแกนการรักษาความปลอดภัยสำหรับอุปกรณ์ประมวลผลเพื่อให้สามารถสร้างความปลอดภัยของการประมวลผลทั้งหมดจากภายในแกนความปลอดภัยดังกล่าวได้ ข่าวดีคือ TPM เป็นมาตรฐานอย่างสมบูรณ์ในอุปกรณ์ PC ใหม่ทุกเครื่องและถูกใช้มานานหลายปี ข่าวร้ายคือองค์กรจำนวนมากไม่แม้แต่รู้ว่าพวกเขามีอัญมณีด้านความปลอดภัยดังกล่าวอยู่ภายในอุปกรณ์ประมวลผลของพวกเขาและไม่ได้ใช้ประโยชน์จากสิ่งดังกล่าว เอกสารข้อมูลทางเทคนิคนี้พยายามที่จะเปลี่ยนแปลงสถานการณ์ดังกล่าวโดยเฉพาะสำหรับอุตสาหกรรม ATM อย่างไรก็ตาม เราจำเป็นต้องมีการประมวลผลที่ปลอดภัยมากกว่าอุตสาหกรรมส่วนใหญ่

TPMs – “รากแก้วของความเชื่อถือได้”

“รากแก้วของความเชื่อถือได้” หมายถึงอะไรและทำไม TPM จึงมีความสำคัญสำหรับการรักษาความปลอดภัยของการประมวลผล เพื่อทำความเข้าใจเรื่องนี้ สิ่งสำคัญจะต้องเข้าใจว่าการรักษาความปลอดภัยของการประมวลผลทั้งหมดนั้นพึ่งพาการใช้วิธีเข้ารหัสอย่างชาญฉลาด การเข้ารหัสเป็นวิธีการประมวลผลที่แปลงข้อมูลจากรูปแบบที่ “ชัดเจน” ไปเป็นรูปแบบสุ่มให้ปรากฎและแปลงกลับมา

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

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

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

CRTM — การวัดรากแก้วของความเชื่อถือได้

ผมสัญญาว่า TPM ไม่ใช่แค่ที่เก็บคีย์ที่ดีเท่านั้น คิดเกี่ยวกับปัญหาช่วงแรกๆ เกี่ยวกับที่เก็บคีย์ที่ปลอดภัยในวันแรกของการทำงาน หากใครสักคนบอกกับ TPM ว่า: “โปรดส่งคีย์ที่ชัดเจนให้ฉันหน่อย” คุณจะรู้ไหมว่าใครกำลังขอรับคีย์ อาจเป็นที่เก็บคีย์ที่ปลอดภัยมากจริงๆ แต่สำหรับใครกันล่ะ การร้องขอคีย์ดังกล่าวเป็นการร้องขอคีย์อย่างถูกต้องหรือเป็นการร้องขอโดยมัลแวร์ หากผู้โจมตีได้แก้ไขซอฟต์แวร์บน PC ด้วยมัลแวร์ แล้วกล่าวอย่างสุภาพว่า: “คุณ TPM โปรดส่งคีย์ให้ฉันด้วยครับ” นั่นคือคุณพบปัญหาแล้ว นี่ไม่ใช่ที่เก็บคีย์ที่ปลอดภัยสูงสุดแล้ว คุณจะต้องรับรองความถูกต้องของซอฟต์แว์ที่ขอรับคีย์เหล่านั้นเพื่อนำไปใช้ ตอนนี้มาดูด้านที่สองของ TPM เรื่องการวัดรากแก้วของความเชื่อถือได้ (CRTM) CRTM ทำงานร่วมกับสายโซ่ของความเชื่อถือได้ที่เริ่มต้นเมื่อเปิดเครื่อง ฮาร์ดแวร์และ TPM ทำงานร่วมกันเพื่อ “วัดผล” ลำดับการบูทเครื่อง PC จากการบูทเริ่มต้น จากนั้นไปยัง BIOS/UEFI และตลอดเส้นทางจนถึงการเริ่มทำงานของระบบปฏิบัติการ เป็น “การวัดผล” ว่ามีซอฟต์แวร์ใดๆ บนเครื่อง PC ถูกแก้ไขหรือดัดแปลงในระหว่างกระบวนการเริ่มทำงานของระบบหรือไม่ กระบวนการนี้เรียกว่า Secure Boot ซึ่งปัจจุบันเป็นฟีเจอร์มาตรฐานของแกนประมวลผล PC รุ่นใหม่ที่ใช้เฟิร์มแวร์ UEFI เพื่อเริ่มทำงานของระบบ PC

เพื่อช่วยเหลือขั้นตอนของ Secure Boot การออกแบบ TPM ได้แนะนำหลักการที่เรียกว่า PCR (Platform Configuration Registers). ค่า PCR ถูกคำนวณโดย TPM ในกระบวนการที่เรียกว่า “การขยาย PCR” ในลักษณะที่คล้ายกับการสร้างบล็อกเชน ส้งผลให้ PCR มีลายนิ้วมือที่ไม่ซ้ำกัน (นั่นคือชุดของแฮช) ของลำดับการเริ่มทำงานของ PC ถ้า PCR ไม่ถูกแก้ไขจากที่ผ่านมา แสดงว่าซอฟต์แวร์การเริ่มทำงานใน PC ไม่มีการแก้ไข และนั้นคือรับประกันการเข้ารหัสได้ มัลแวร์จะไม่สามารถแก้ไขแม้แต่ไบต์เดียวของซอฟต์แวร์การเริ่มทำงานที่วัดค่าแล้วโดยไม่ส่งผลกระทบต่อค่า PCR

tpm diagram 1

นี่คือหลักการที่สำคัญอย่างยิ่งในการเข้ารหัส สิ่งที่เรียกว่า “secure hash function” เป็นฟังก์ชันคล้ายกับการเข้ารหัสที่จะแปลงบล็อกของข้อมูลไปเป็นสตริงตัวอักขระที่มีความยาวคงที่ซึ่งจะทำหน้าที่เป็นลายนิ้วมือของข้อมูลดั้งเดิม ถ้าข้อมูลมีการเปลี่ยนแปลง ลายนิ้วมือจะเปลี่ยนแปลงด้วย ดังนั้นนี่จึงเป็นวิธีการที่แน่นอนในการตรวจจับได้แม้แต่การแก้ไขที่น้อยที่สุดในส่วนเนื้อหาขนาดใหญ่ของซอฟต์แวร์ TPM ใช้ตัวแปรของการแฮชที่เรียกว่า HMAC. An HMAC เป็นแฮชที่เป็น “แฮชที่มีคีย์” ซึ่งหมายความว่ามีเพียงคนที่มีคีย์ความปลอดภัยที่ถูกต้องเท่านั้นที่สามารถสร้างหรือยืนยันแฮช HMAC ได้ นี่เป็นลักษณะของ “แฮชเข้ารหัส” ชนิดหนึ่ง

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

ตอนนี้เรามีแกนซอฟต์แวร์ที่ปลอดภัยแล้ว แล้วแอปพลิเคชันซอฟต์แวร์จะทำอย่างไร

บนเครื่อง ATM ระบบ Windows 10 มีสองเทคโนโลยีของ Microsoft ที่สำคัญที่เกี่ยวข้องในเรื่องนี้: Bitlocker และ Device Guard (ปัจจุบันชื่อ Windows Defender Application Control ‒ WDAC) Bitlocker เป็นเทคโนโลยีการเข้ารหัสของไดรฟ์จาก Microsoft โดยสามารถเข้ารหัสฮาร์ดดิสก์หรือ SSD ทั้งชุดและที่สำคัญคือบันทึกคีย์การเข้ารหัสไดรฟ์ “ใน TPM” จริงๆ แล้วซอฟต์แวรนี้จะมีความซับซ้อนมากกว่าแค่เพียงเก็บบันทึกคีย์ใน TPM เราจะอธิบายเพิ่มอีกเล็กน้อย

พึงทราบว่าเพียงซอฟต์แวร์นี้ไม่เพียงพอที่จะจัดเก็บคีย์ได้อย่างปลอดภัย เราจำเป็นต้องทำงานกับ “ใครก็ตาม” ที่ร้องขอคีย์ก่อนที่จะมอบคีย์ให่ TPM มีคุณสมบัติอีกตัวที่เรียกว่า “การปิดผนึก” คีย์ เมื่อไดรฟ์ของ ATM ถูกเข้ารหัสครั้งแรกในสภาพแวดล้อมที่ปลอดภัย และคีย์ใหม่ถูกสร้างโดยระบบ Windows คีย์นั้นจะถูกเข้ารหัสโดยใช้ “คีย์การเข้ารหัสคีย์” แยกที่เรียกว่า KEK ตัว KEK เองจะถูกเข้ารหัสในภายหลังในกระบวนการที่เรียกว่า “การปิดผนึก” โดยใช้ค่า PCR และคีย์ส่วนตัวของ TPM เมื่อ ATM บูทระบบ คีย์ KEK จะใช้งานได้เฉพาะเมื่อลายนิ้วมือซอฟต์แวร์แกนทั้งหมดที่วัดค่าโดย PCR ได้รับการตรวจสอบว่าถูกต้องแล้วเท่านั้น ซึ่งหมายความว่า BIOS และโค้ด Windows ไม่ถูกแก้ไข ตามที่ได้อธิบายไว้ก่อนหน้า เมื่อใช้ KEK ระบบ Windows จะถอดรหัสคีย์การถอดรหัสไดรฟ์และใช้คีย์นั้นเพื่อถอดรหัสไดรฟ์ทั้งชุด เมื่อ KEK ถูกเรียกใช้ ระบบ Windows จะปิดประตู KEK ด้านหลัง ซึ่งทำงานนี้โดย “การขยาย” PCR 11 — ซึ่งหมายความว่า PCR 11 มีการแก้ไขหลังจาก KEK ไม่มีการปิดผนึก ดังนั้นไม่มีใครสามารถเรียกใช้ KEK หลังจากนั้นได้ KEK เป็นตู้เซฟที่ปลอดภัยโดย TPM จนกระทั่งถึงลำดับการบูทครั้งถัดไปและถูกทำให้พร้อมใช้งานอีกครั้งก็ต่อเมื่อ PCR ได้ยืนยันว่าไม่มีการแก้ไขใดๆ ในซอฟต์แวร์แกน จากนั้นจะล็อกประตูอีกครั้งเมื่อ KEK ถูกทำให้พร้อมใช้งานโดย Bitlocker เพื่อถอดรหัสไดรฟ์

ตามที่คุณเห็น เราได้สร้างขั้นตอนของซอฟต์แวร์แกน ตรวจสอบแต่ละขั้นตอนโดยใช้ PCR เพื่อให้แน่ใจว่าไม่มีการแก้ไขเกิดขึ้น จนกว่าเราจะเสร็จสิ้นกระบวนการบูทและโหลด Windows ขึ้นมา ถึงตอนนี้เราจะต้องเริ่มการทำงานของแอปพลิเคชันซอฟต์แวร์ ATM และยืนยันว่าโปรแกรมที่ดำเนินการได้ทั้งหมดที่เรารันนั้นไม่มีการแก้ไขก่อนที่เราจะใช้งาน กล่าวอีกนัยหนึ่งคือ เราได้ขยายขอบเขตของหลักการเดียวกันในการตรวจสอบลายนิ้วมือของการเข้ารหัสของทุกส่วนประกอบซอฟต์แวร์ก่อนที่เราจะใช้งานนั่นเอง ส่วนสุดท้ายนี้ของสายโซ่การเริ่มระบบถูกเรียกใช้งานโดย Windows WDAC (หรือซอฟต์แวร์ของบุคคลที่สามที่มีคุณสมบัติการทำงานคล้ายกัน) กระบวนการนี้มักเรียกว่าการจัดทำรายการอนุญาต และส่งผลลัพธ์เป็นแฮช (นั่นคือ ลายนิ้วมือที่ประมวลผลแล้ว) ของทุกการเรียกใช้งานที่ได้ตรวจสอบก่อนที่จะอนุญาตให้รัน

การจัดทำรายการอนุญาตของ ATM

วิธีที่ดีที่สุดในการจัดทำรายการอนุญาตของซอฟต์แวร์ ATM โดยใช้ Windows WDAC (หรือซอฟต์แวร์การจัดทำรายการอนุญาตอื่นๆ) คือการใช้สิ่งที่เรียกว่า “กฎใบรับรอง” ซึ่งกำหนดให้ซอฟต์แวร์ที่คุณจะใช้งานบน ATM นั้นจะต้องได้รับการลงนามล่วงหน้าโดยนักพัฒนาของซอฟต์แวร์นั้น ตัวอย่างเข่น Windows 10 ที่ดำเนินการได้ถูกลงนามมาโดย Microsoft พร้อมคีย์ส่วนตัว ซึ่งหมายความว่าใครก็ได้ก็สามารถยืนยันว่าโปรแกรมที่เรียกใช้งานได้ของ Windows ไม่ถูกแก้ไขหรือดัดแปลงในระหว่างการขนส่งข้อมูลและอยู่ในสถานะเดียวกับที่อยู่ในตอนที่มีการลงนามโดย Microsoft เพียงยืนยันโดยใช้คีย์ส่วนตัวเพื่อลงนามโค้ดของ Microsoft เพื่อที่จะให้ WDAC ได้รับการยืนยันดังกล่าวได้ สิ่งที่ต้องทำคือการสร้าง “กฎของใบรับรอง” ที่ระบุว่าโปรแกรมที่ดำเนินการได้ที่ลงนามโดย Microsoft มีความปลอดภัยมที่จะใช้งาน

ในทำนองเดียวกัน ซอฟต์แวร์ของ KAL ได้รับการลงนามด้วยคีย์ส่วนตัวเพื่อการลงนามโค้ดของ KAL เสมอ ลูกค้าของเราสามารถยืนยันว่าซอฟต์แวร์ของ KAL ไม่ถูกแก้ไขได้ด้วยการติดตั้งใบรับรองการลงนามโค้ดของ KAL บนตู้ ATM แต่ละเครื่อง

แล้วจะทำอย่างไรกับซอฟต์แวร์ที่อาจไม่ได้ลงนามล่วงหน้าในลักษณะดังกล่าว มีสามตัวเลือกสำหรับธนาคาร:

  1. ขอให้ผู้ผลิตซอฟต์แวร์ของคุณลงนามโค้ดของพวกเขา
  2. ไล่ผู้ผลิตซอฟต์แวร์ออก (ยังมีผู้ผลิตซอฟต์แวร์ ATM ที่ไม่ได้ลงนามโค้ดของพวกเขาเหลืออยู่ในปี 2020 ใช่หรือไม่ จริงๆ แล้วมี)
  3. ใช้ “กฎของแฮช”

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

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

เราไปถึงจุดนั้นแล้วใช่หรือไม่

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

TPM ไม่ใช่แค่เพียงการรักษาความปลอดภัยกระบวนการบูทระบบของ ATM แต่ยังเป็นรากแก้วของความเชื่อถือได้ที่อนุญาตให้ทุกสิ่งได้รับการรักษาความปลอดภัยด้วย มาพิจารณาหนังสือที่ยอดเยี่ยมที่เขียนโดยสมาชิกในกลุ่ม Trusted Computing Group คือ Will Arthur, David Challener และ Kenneth Goldman หนังสือชื่อ “A practical guide to TPM 2.0” เป็นหนังสือที่ยอดเยี่ยมและเป็นขุมทรัพย์ของแนวคิดที่ยอดเยี่ยมเป็นแรงบันดาลใจให้ผมเขียนเอกสารข้อมูลทางเทคนิคนี้ขึ้นมา หนังสือนี้มีให้ดาวน์โหลดฟรีที่นี่

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

1. การจัดเก็บพารามิเตอร์การบูท

2. การเข้าถึงคีย์ VPN

3. การปรับปรุงคีย์หลัก

4. การเตรียมใช้งานคีย์ข้อมูลประจำตัว

5. การอนุญาตให้ตัวจัดการทรัพยากรสามารถจัดการคีย์ TPM อย่างปลอดภัย

6. ผู้โจมตีเปลี่ยนคีย์ที่ตัวจัดการเดียวกัน

7. UEFI

8. การตรวจจับการรีบูทระหว่างการรับรองความถูกต้อง

9. การกำหนดแฮชไฟล์ขนาดใหญ่

10. บูทที่เชื่อถือได้ — 1

11. บูทที่เชื่อถือได้ — 2

12. อัลกอริทึมการสรุป TPM พร้อมกันหลายตัว

13. การจัดเก็บรหัสผ่านเข้าสู่ระบบ

14. การยืนยันลายเซ็นรากแก้วของความเชื่อถือได้

15. คีย์หลักหลายตัว

16. คีย์หลักแบบกำหนดเอง

17. การออกใบรับรองคีย์อ้างอิง TPM

18. การสร้างสายโซ่ใบรับรอง

19. การรับประกันการอนุญาตของคีย์ที่ต้องใช้ลายเซ็นดิจิทัล

20. การรับประกันการอนุญาตของคีย์ที่ต้องใช้ข้อมูลชีวมาตร

21. การรับประกันข้อมูลที่ไม่ลบเลือน

22. การอ้างอิงที่เทียบเท่าสำหรับดัชนีการขยายที่ไม่ลบเลือน

23. การจัดเก็บข้อมูลลับ

24. การจัดเก็บใบรับรอง

25. การจัดเก็บรหัสผ่านคำสั่ง

26. การจัดเก็บคีย์สาธารณะราก

27. การจัดเก็บคีย์ HMAC

 

28. การเพิกถอนการเข้าถึงคีย์

29. การยกเลิกคีย์สำหรับผู้ใช้หลายราย

30. บันทึกการตรวจสอบที่ปลอดภัยของการใช้คีย์ CA

31. PCR เพิ่มเติม

32. PCR ที่มีแอตทริบิวต์ต่างกัน

33. การจำลองเสมือน

34. ดัชนีการไม่ลบเลือนเมื่อเขียน

35. ใบรับรองมาตรฐาน

36. ดัชนี NV ที่สร้างเสมอเมื่อเขียน อ่าน

37. การรักษาความปลอดภัยของข้อมูลลับของนโยบาย

38. การทำซ้ำชุดของคีย์

39. การปิดผนึกคีย์การเข้ารหัสฮาร์ดดิสก์ไปยังสถานะแพลตฟอร์ม

40. คีย์ VPN

41. การป้อนรหัสผ่านอย่างปลอดภัยจากระบบปฏิบัติการที่แสดงต่อสภาพแวดล้อมการไม่มีอยู่ของระบบปฏิบัติการ

42. การอ้างอิง

43. การตรวจจับการรีบูทระหว่างธุรกรรม

44. ไม่มี PCR แอตทริบิวต์ที่เพิ่มทีละชั้นสำหรับ VM

45. ไม่มี PCR แอตทริบิวต์ที่เพิ่มทีละชั้นสำหรับการตรวจสอบ

46. การสร้าง SrKs ที่ต่างกันสำหรับผู้ใช้ที่ต่างกัน

47. ชุดของเซิร์ฟเวอร์ที่ทำหน้าที่เป็นหนึ่งเดียว

48. ฉันกำลังเชื่อมต่อกับ TPM อะไร

49. สถานะของดัชนี NV ตัวนับ หรือดัชนีฟิลด์บิตคืออะไร

50. ดัชนี NV ที่ใช้เป็น PCR

51. การตรวจสอบ TPM ที่ใช้เป็นการอนุญาตใบรับรอง

52. การใช้ TPM เพื่อรักษาความปลอดภัยของบันทึกการตรวจสอบแอปพลิเคชัน

53. การตรวจสอบให้แน่ใจว่า PCR ไม่เปลี่ยนแปลงในระหว่างลำดับของคำสั่ง

 

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

ดังนั้น มาดูตัวอย่างของรายการหมายเลข 40 “คีย์ VPN” ในการใช้งานปกติ VPN จะถูกตั้งค่าระหว่าง ATM และเซิร์ฟเวอร์โดยการติดตั้งใบรับรองดิจิทัล (นั่นคือคีย์สาธารณะที่ลงนาม) บนทั้งสองระบบ แต่อะไรจะเกิดขึ้นถ้ามีใครบางคนแฮ็คใบรับรอง ในความเป็นจริงนั้นใบรับรองที่จัดเก็บไว้ในสภาพแวดล้อมระบบ Windows ที่มีการป้องกันด้วย TPM จะมีการล็อกตามที่อธิบายไว้ในดเอกสารข้อมูลทางเทคนิคนี้ ซึ่งจะไม่สามารถแก้ไขได้ อย่างไรก็ตาม เราจะอธิบายเพิ่มเติม คีย์ VPN อาจถูกปิดผนึกไว้ตามค่า PCR โดยใช้ TPM ซึ่งหมายความว่าในช่วงเวลาที่จะตั้งค่า VPN ระบบสาสามารถจัดทำคีย์ที่จำเป็นในการตั้งค่า VPN ให้พร้อมใช้งานเฉพาะเมื่อค่า PCR อยู่ในสถานะที่ถูกต้องเท่านั้น ความแตกต่างใดๆ และการเชื่อมต่อ VPN จะถูกปฏิเสธ ตอนนี้พิจารณาที่หลักการดังกล่าวที่สามารถนำไปใช้กับทั้งสองฝั่งของท่อข้อมูล VPN PCR ไม่เพียงต้องอยู่ในสถานะที่ถูกต้องบนฝั่งเครื่อง ATM เท่านั้น แต่รวมถึงสามารถกำหนดเป็นค่าที่จะต้องอยู่ในสถานะที่ถูกต้องสำหรับเซิร์ฟเวอร์ ATM ในศูนย์ข้อมูลเช่นกัน ถ้ายืนยันสถานะดังกล่าวได้แล้ว เราจะยืนยันได้ว่าทั้งเครื่อง ATM และเซิร์ฟเวอร์ ATM อยู่ในสถานะที่ปลอดภัยก่อนการเชื่อมต่อแล้ว เราจะต้องทราบว่าโปรแกรมที่เรียกใช้ได้ทั้งหมดทื่รันบนเครื่อง ATM และเซิร์ฟเวอร์ ATM นั่นขึ้นอยู่กับจุดดังกล่าวจะอยู่ในสถานะเริ่มต้นและไม่มีการดัดแปลงแก้ไข และเราอนุญาตให้ทั้งสองเครื่องเชื่อมต่อกันได้ ถ้าและก็ต่อเมื่อทั้งสองระบบเป็นไปตามเงื่อนไขดังกล่าวเท่านั้น

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

การรักษาความปลอดภัยในการเชื่อมต่อเครือข่าย

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

 

tpm diagram 2

 

แผนผังแสดงสถานการณ์การเชื่อมต่อในธนาคารขนาดใหญ่ที่มีบริการ ATM ที่ซับซ้อน ATM จะเชื่อมต่อกับตัวจัดกสรเทอร์มินอลที่จะประสานการทำงานกับบริการต่างๆ จากเซิร์ฟเวอร์ส่วนหลังหลายตัว HSM (โมดูลความปลอดภัยของฮาร์ดแวร์) ให้บริการการเข้ารหัสและช่วยเหลือกในการกำหนดโซนการป้อนรหัส เมื่อธุรกรรมได้รับการกำหนดลำดับขั้นและจำเป็นต้องได้รับอนุญาต ระบบจะส่งไปยังระบบการธนาคารหลักก็ต่อเมื่อมันเป็นธุรกรรม “ของเรา” หรือไปยังแบบแผนบัตรเมื่อเป็นธุรกรรม “ไม่ใช่ของเรา”

ตอนนี้พิจารณาที่โลกอุดมคติของการรักษาความปลอดภัยที่ซึ่ง ATM ทุกเครื่องและเซิร์ฟเวอร์ทุกเครื่องมี TPM (ซึ่งเป็นกรณีสำหรับฮาร์ดแวร์ล่าสุดทั้งหมด) ระบบทั้งหมดได้รับการยืนยันจากการบูทด้วยการวัดค่า PCR และการเชื่อมต่อ TLS รวมถึง VPN ทั้งหมดได้รับการตั้งค่าโดยใช้ใบรับรองที่ไม่ได้ปิดผนึกโดย TPM และด้วยเหตุนี้สามารถรับประกันการเข้ารหัสว่าจะไม่มีการดัดแปลงแก้ไขได้ นั่นคือโลกอุดมคติที่แท้จริง สถานการณ์ที่น่าเศร้าในเดือนสิงหาคม 2020 คือว่ามีธนราคารไม่กี่แห่งเท่านั้นที่บรรลุเป้าหมายด้านระดับความปลอดภัยดังกล่าว

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

การรักษาความปลอดภัยการเชื่อมต่ออุปกรณ์ฮาร์ดแวร์ ATM

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

 

tpm diagram 3

 

ตามที่คุณเห็น ผมได้วาดการเชื่อมต่อ USB เป็นก้อนเมฆเพื่อบ่งชี้ว่ามีความเสี่ยงในการถูกโจมตี TPM รักษาความปลอดภัยให้แกน PC แต่สาย USB มีความเสี่ยงในการถูกโจมตีถ้าไม่มีการป้องกัน ที่แน่ๆ คือ การป้องกันการเชื่อมต่อเหล่านี้เป็นความรับผิดชอบของผู้ผลิตฮาร์ดแวร์ ATM อย่างไรก็ตาม สถานการณ์ไม่ได้ง่ายนัก เนื่องจากยังขึ้นอยู่กับข้อกำหนดของการทำงานร่วมกันได้ระหว่างอุปกรณ์ฮาร์ดแวร์และส่วนประกอบที่เหลือของระบบ ตัวอย่างเช่น ถ้าข้อความไปยัง CDM (เครื่องจ่ายเงินสด) ถูกเข้ารหัสแบบปลายต่อปลาย แล้ว “ปลายอีกด้าน” ควรจะเป็นที่ไหน ตัวอย่างเช่น ถ้าเทอร์มินอลอีกฝั่งหนึ่งอยู่ที่ตัวจัดการเทอร์มินอล เราจำเป็นจะต้องหารือและทำความตกลงกันเกี่ยวกับข้อกำหนดของการทำงานร่วมกันหลายข้อ

นอกจากนี้เป็นที่ชัดเจนว่าแม้แต่เครื่องจ่ายเงินสดก็ยังไม่ปลอดภัยบนเครื่อง ATM หลายเครื่อง ตามรายงานข่าวที่เผยแพร่เกี่ยวกับ “การโจมตีกล่องดำ” หลายครั้ง การโจมตีกล่องดำของ ATM เกิดขึ้นเมื่อผู้โจมตีได้ดักจับข้อมูลการเชื่อมต่อกับ CDM และสั่งจ่ายเงินสดโดยใช้ PC ของพวกเขา เครื่อง ATM สมัยใหม่ส่วนใหญ่มีการเชื่อมต่อที่เข้ารหัสจาก PC ไปยัง CDM แต่ KAL สงสัยว่าการออกแบบระบบความปลอดภัยยังห่างจากความคาดหวังอีกมากเนื่องจาก ATM บางรุ่นยังไม่มี TPM โปรดเข้าใจให้ชัดเจนว่า: ไม่มี TPM = ไม่มีความปลอดภัย วิธีการที่คลุมเคลือของการเข้ารหัสการเชื่อมต่อโดยใช้คีย์ที่ได้รับการป้องกันโดยความมหัศจรรย์นั้นไม่ใช่ความปลอดภัย แต่เป็นความคลุมเคลือและความคาดหวัง ถ้าผู้ผลิตฮาร์ดแวร์ของคุณไม่สามารถเผยแพร่ข้อมูลเกี่ยวกับวิธีการป้องกันคีย์การเข้ารหัสได้ ก็เป็นที่ชัดเจนว่าเพราะว่าคีย์ไม่ได้รับการป้องกันอย่างเหมาะสม

XFS4IoT และการป้องกันอุปกรณ์ฮาร์ดแวร์

ข่าวดีคือคณะกรรมการ XFS ของอุตสาหกรรม ATM กำลังหารือถึงวิธีการป้องกันอุปกรณ์ ATM เจนเนอเรชันใหม่ คุณอาจเคยได้ยินเกี่ยวกับการเผยแพร่ XFS 4.0 ที่จะมาถึงซึ่งใช้ชื่อ XFS4IoT องค์ประกอบ IoT ที่แสดงถึงเจตจำนงของสเปกเครื่องที่พร้อมจะรองรับโลกแห่ง IoT สมัยใหม่ มีเป้าหมายหลักหลายประการสำหรับ XFS4IoT:

    1. สเปกคือการทำงานได้กับทุกระบบปฏิบัติการ ซึ่งหมายถึงเครื่อง ATM ที่สามารถใช้ระบบ Windows รวมไปถึง Linux หรือระบบปฏิบัติการใดๆ ภายในเครื่อง ATM
    2. เป็นระบบคลาวด์ที่ใช้ง่าย อุปกรณ์ ATM สามารถแสดงบริการต่างๆ โดยตรงบนระบบคลาวด์ ส่วนสมองของ ATM อาจอยู่ในระบบคลาวด์และไม่ใช่แค่ภายในเครื่อง ATM เหมือนทุกวันนี้ ตัวอย่างเช่น เครื่องอ่านบัตรที่สามารถแสดงบริการเครื่องอ่านบัตรบนระบบคลาวด์ เครื่องจ่ายเงินสดสามารถแสดงบริการจ่ายเงินสดบนระบบคลาวด์
    3. บริการทางเว็บที่สามารถแสดงในลักษณะที่มีความปลอดภัย XFS4IoT จะมีระบบความปลอดภัยในตัวเพื่อให้แน่ใจในการรักษาความปลอดภัยแบบปลายต่อปลายสำหรับอุปกรณ์ โปรโตคอลการขนส่งข้อมูลถูกเลือกเป็น Web Sockets ที่มีการรักษาความปลอดภัยโดย TLS พร้อมใบรับรองทั้งสองฝั่ง นอกจากนี้อุปกรณ์ XFS4IoT แต่ละตัวสามารถมีองค์ประกอบการรักษาความปลอดภัยฮาร์ดแวร์เพื่ออนุญาตการรักษาความปลอดภัยแบบปลายต่อปลายสำหรับการเชื่อมต่อได้ การเชื่อมต่อดังกล่าวสามารถสิ้นสุดภายในเครื่อง ATM เอง (เหมือนเช่นทั่วไปในทุกวันนี้) หรือสามารถสิ้นสุดบนเซิร์ฟเวอร์ระบบคลาวด์ได้

แผงผังด้านล่างแสดงหลักการดังกล่าว:

tpm diagram 4

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

สิ่งที่สำคัญที่สุดที่ควรทราบคือกล่องที่ติดป้ายเป็น “HSE” HSE ย่อมาจาก “องค์ประกอบความปลอดภัยฮาร์ดแวร์” และ XFS ตามสเปกนั้นเป็นระบบเปิดเพื่อให้ผู้ผลิตฮาร์ดแวร์สามารถกำหนดวิธีการใช้งานที่เหมาะสมที่สุดได้ เป็นที่ชัดเจนว่า HSE จะต้องเป็น TPM หรือประกอบด้วยชุดย่อยของคุณสมบัติ TPM โดยขั้นต่ำแล้ว HSE จะต้องสามารถ:

  • จัดเก็บคีย์ส่วนตัวได้อย่างปลอดภัย
  • ใช้แนวคิด “การวัดรากแก้วของความเชื่อถือได้” (CRTM) พื้นฐานเพื่อให้แน่ใจว่ามีเพียงเฟิร์มแวร์ปลอดภัยเท่านั้นที่สามารถใช้ HSE ได้
  • ใช้งานบริการการเข้ารหัสและการลงนาม

KAL ได้พูดคุยเรื่องนี้กับคณะกรรมการ TCG และพวกเขาได้บ่งชี้ว่าพวกเขาพร้อมที่จะช่วยเหลืออุตสาหกรรม ATM ในการระดมความคิดเพื่อตัวเลือกต่างๆ อันที่จริง TCG มีการดำเนินการคืบหน้าบางอย่างเกี่ยวกับหลักการ “mini TPM” หนึ่งในนั้นคือการออกแบบ DICE ของ TCG และตัวอื่นคือการออกแบบ MARS ของ TCG DICE และ MARS พร้อมสำหรับการใช้งานในอุตสาหกรรม ATM แล้วใช่หรือไม่ เราจะต้องตรวจสอบก่อน

สิ่งที่น่าสนใจตรงนี้คือสามารถนำ TPM มาตรฐานมาใช้เป็น HSE ภายในอุปกรณ์แต่ละตัวได้ใช่หรือไม่ จากมุมมองด้านค่าใช้จ่าย คำตอบอาจเป็น ใช่ เนื่องจาก TPM มีต้นทุนน้อยกว่า 1 ดอลลาร์สหรัฐฯ ต่อชิ้นสำหรับการสั่งซื้อปริมาณมากของ OEM DICE ก็อาจมีต้นทุนน้อยกว่านั้น สำหรับอุตสาหกรรมของเราที่ให้การปกป้องเงินทุนของผู้บริโภคหลายล้านดอลลาร์ ต้นทุนของ TPM หรือ HSE ประเภทอื่นๆ ไม่ถือว่าเป็นอุปสรรค

ATM มีรากของความเชื่อถือได้ลำดับที่สอง นั่นคือ EPP

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

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

EPP จะไม่พร้อมใช้งานเมื่อ ATM บูทเครื่องและยังคงไม่พร้อมใช้งานจนกว่า Windows จะบูทระบบสำเร็จและ XFS SP (ไดรเวอร์ฮาร์ดแวร์ของ ATM) เริ่มการทำงานแล้ว ซึ่งหมายความว่า EPP ไม่มีผลอะไรเกี่ยวกับการมีผลใช้งานได้ของซอฟต์แวร์ภายใน ATM ถ้าแอปพลิเคชัน ATM ที่ติดมัลแวร์ต้องการยอมรับรหัสหรือที่อยู่ MAC จะส่งข้อความไปยังโฮสต์ ATM และ EPP จะทำขั้นตอนการออกคำสั่ง ขอบเขตการป้องกันของ EPP มีขนาดเล็กเกินกว่าที่จะสามารถช่วยเหลือการรักษาความปลอดภัยของ ATM โดยรวมทั้งระบบ นี่เป็นอัญมณีของการรักษาความปลอดภัยในการใช้ซอฟต์แวร์ปริมาณมากที่อาจไม่มีการป้องกันซึ่งไม่มี TPM ภายใน

คุณจะอัปเดตซอฟต์แวร์ที่มีการป้องกันโดย TPM ได้อย่างไร

บางทีผู้อ่านอาจคิดในขั้นตอนนี้ว่าหากไม่สามารถเปลี่ยนแปลงซอฟต์แวร์ใดๆ ภายในระบบ ATM ที่ได้รับการป้องกันโดย TPM แล้ว จะเป็นเรื่องยุ่งยากในการดำเนินการอัปเดตซอฟต์แวร์ที่ถูกต้องใช่หรือไม่ จดจำว่าแอปพลิเคชันซอฟต์แวร์ได้รับการป้องกันโดยใช้กฎของใบรับรอง โดยจะมีการลงนามโดยนักพัฒนาแอปพลิเคชัน (ซึ่งอาจเป็นตัวอธนาคารเองหรือผู้ผลิตซอฟต์แวร์ที่เชื่อถือได้ของธนาคาร) ทั้งหมดที่จำเป็นต้องทำสำหรับซอฟต์แวร์ที่อัปเดตแล้วคือการลงนามด้วยคีย์ส่วนตัวที่ปลอดภัยขององค์กรผู้พัฒนาซอฟต์แวร์ และเครื่อง ATM จะยอมรับการเปลี่ยนแปลง นี่เป็นวิธีที่ง่ายเช่นกัน

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

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

การป้องกันต่อการโจมตีทางกายภาพ

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

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

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

ระวังโซลูชันที่มหัศจรรย์เกินจริง

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

คำบอกเล่า: “ไม่จำเป็นต้องมีองค์ประกอบการรักษาความปลอดภัยฮาร์ดแวร์”

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

ลองคิดถึงสิ่งนี้ในอีกทาง ถ้าสามารถจัดเก็บคีย์ไว้อย่างปลอดภัยในระบบ ATM โดยใช้เทคนิคของซอฟต์แวร์อย่างเดียวแล้ว อุตสาหกรรมของเราก็จะไม่พบกับปัฐหาในการสร้างอุปกรณ์ EPP...

คำบอกเล่า: “ไม่จำเป็นต้องมีองค์ประกอบความปลอดภัยของฮาร์ดแวร์เนื่องจากคีย์ถูกจัดเก็บไว้บนเครือข่ายแล้ว”

ถ้าเครื่อง ATM ไม่ปลอดภัยเพียงพอที่จะจัดเก็บคีย์อย่างปลอดภัย เนื่องจากไม่มี TPM แล้ว ก็จะไม่สามารถแก้ปัญหาโดยการย้ายคีย์ไปยังตำแหน่งที่ตั้งบนเครือข่ายได้ เหตุผลก็คือ: เมื่อ ATM บูทระบบ มันจำเป็นต้องเข้าถึงเครือข่ายเพื่อรับคีย์ความปลอดภัย ระบบจะไม่มีวิธีการรักษาความปลอดภัยด้วยการเข้ารหัสเพื่อยืนยันตัวตนของตัวมันเองบนเครือข่าย เนื่องจากไม่มีที่เก็บคีย์ ซึ่งหมายความว่าเซิร์ฟเวอร์เครือข่ายไม่รู้จักว่า “ใครกำลังขอรับคีย์” ตัวอย่างเช่น เมื่อ Bitlocker จัดเก็บคีย์ไว้บนเครือข่าย มันยังต้องการ TPM เพื่อยืนยันตัวตนกับเครือข่ายด้วย ไม่มี TPM = ไม่มีความปลอดภัย

คำบอกเล่า: “ไม่จำเป็นต้องมีคีย์การเข้ารหัส”

ผู้ผลิตฮาร์ดแวร์หรือซอฟต์แวร์ที่อ้างว่าคีย์การจัดเก็บเป็นสิ่งที่ไม่จำเป็นนั้น เพราะพวกเขามีเทคโนโลยีมหัศจรรย์ที่ช่วยให้การเข้ารหัสเกิดขึ้นโดยไม่ใช้คีย์ได้ อืม ฟังดูเหมือนจะดีเกินกว่าที่จะเป็นจริงได้ แล้วทำไมโลกมักจะพบปัญหากับเทคนิคการจัดการคีย์อยู่่เสมอ ในเมื่อคุณไม่จำเป็นต้องมีคีย์ เทคนิคการเข้ารหัสที่รู้จักกันทั้งหมด เช่น 3DES, AES และ RSA ล้วนต้องใช้คีย์ส่วนตัว คีย์นี้เรียกกว่าคีย์ส่วนตัวเนื่องจากจะต้องจัดเก็บไว้อย่างปลอดภัย สิ่งที่ทำให้ระบบการเข้ารหัสมีความปลอดภัยก็คือคีย์ที่ถูกเลือกจากตัวเลขจำนวนมากมายที่สุดเท่าที่เป็นไปได้ ตัวอย่างเช่น 3DES มีคีย์อย่างน้อย 2112 รายการ ซึ่งอาจต้องใช้เวลาถึง 30 ปี เพื่อลองใช้คีย์ทั้งหมดหากอัตราความพยายามอยู่ที่ 5 ล้านครั้งต่อวินาที สำหรับ AES อาจต้องใช้เวลาถึง 1022 ปีในอัตราเดียวกัน.

คำบอกเล่า: “อัลกอริทึมของเราเป็นความลับ”

ระบบรักษาความปลอดภัยที่แท้จริงจะสร้างบนอัลกอริทึมแบบเปิดและมาตรฐานเปิดพร้อมด้วยคีย์ข้อมูลลับ ลักษณะเพียงอย่างเดียวของระบบการรักษาความปลอดภัยที่ควรเป็นความลับคือคีย์ ถ้าคึย์ถูกละเมิด คุณสามารถเปลี่ยนแปลง และระบบก็จะปลอดภัยอีกครั้ง

คำบอกเล่า: “รายชื่อควบคุมการเข้าถึง (ACL) ทำให้เราปลอดภัยเสมอ”

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

ข้อสรุป

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

ผมหวังว่าเอกสารนี้จะเป็นจุดเริ่มต้นของกระบวนการที่จะช่วยพัฒนาข้อกำหนดด้านการรักษาความปลอดภัยที่ทำงานร่วมกันได้หลายฝ่ายโดยใช้พื้นฐานของการเข้ารหัสที่เราสามารถใช้ได้จาก TPM กลุ่ม Trusted Computing Group ได้เสนอให้ความช่วยเหลือแก่เรา ต่อจากนี้ก็ขึ้นอยู่กับคณะกรรมการที่หลากหลายในอุตสาหกรรมของเราไม่ว่าจะเป็น XFS4IoT, ATMIA and EAST ทำงานร่วมกับธนาคารต่างๆ และผู้ผลิตฮาร์ดแวร์และซอฟต์แวร์เพื่อการออกแบบที่มุ่งไปข้างหน้า

ขอขอบคุณ

ผมขอขอบคุณบุคคลต่อไปนี้ที่มีส่วนร่วมในโครงการนี้:

  • Michael Moltke (NCC Group Denmark)
  • Kit Patterson (KAL)
  • Will Arthur, David Challener ละ Kenneth Goldman สำหรับการเขียนอีบุ๊คเรื่อง TPM และ David Challener สำหรับการจัดการเรื่องการสนับสนุนจาก TCG

สำหรับข้อมูลเพิ่มเติม โปรดอีเมลถึงเราที่ This email address is being protected from spambots. You need JavaScript enabled to view it.

 

 

Jump to:

Download the whitepaper

Download a copy of the whitepaper in PDF format by clicking here.

 hypervisor pdf thumnail EN