กลุ่มที่ชื่อว่าPrivacyIdeaได้สร้างแพ็คเกจเล็ก ๆ เพื่อเพิ่มชุดคำตอบการตอบสนองต่อความท้าทายHMAC-SHA1ให้กับ initramfs ซึ่งหมายความว่าอูบุนตูสามารถสอบถามคุณเกี่ยวกับความท้าทายที่จะส่งผ่านไปยัง Yubikey จากนั้นใช้การตอบสนองเพื่อปลดล็อกระดับเสียง LUKS ส่วนใหญ่ฉันทำตามคำแนะนำเหล่านี้พร้อมกับความคิดเห็นที่เพิ่มเข้ามา กระบวนการนี้ง่ายมากที่จะทำ
ฉันได้ทดสอบสิ่งนี้บน Ubuntu 14.04, 16.04 และ 18.04; ใช้ Yubikey Neo มันควรจะทำงานร่วมกับ Yubikey ล่าสุดกับเฟิร์มแวร์ 2.0+ และ Ubuntu ทุกรุ่นหลังจาก 14.04 ฉันยังได้ทดสอบ Ubuntu 19.04 กับ Yubikey 5C จำเป็นต้องใช้งานเพิ่มเติมบางอย่าง แต่สามารถทำงานได้ นอกจากนี้ยังอาจมีฮาร์ดแวร์อื่น ๆ ของอุปกรณ์ตอบสนองการท้าทาย HMAC-SHA1 ที่ใช้งานได้ แต่ฉันไม่ทราบว่ามีสิ่งใดอยู่ ตรวจสอบให้แน่ใจเสมอว่าคุณมีข้อมูลสำรองของคุณก่อนที่จะดำเนินการต่อ - ไม่ควรมีปัญหาใด ๆ ที่นี่ แต่มีโอกาสเสมอที่จะทำลายทุกสิ่งในคอมพิวเตอร์ของคุณ คำแนะนำเหล่านี้ไม่มีการรับประกัน
อัปเดต:ตั้งแต่ Ubuntu 16.04 แพคเกจที่จำเป็นอยู่ในที่เก็บหลักและไม่จำเป็นต้องมี PPA
เพิ่มความคิดเห็นหากคุณมีคำถาม!
0. ข้อกำหนดเบื้องต้น
เพื่อให้สามารถใช้งานได้คุณจะต้องติดตั้งและใช้งานการเข้ารหัสดิสก์เต็มรูปแบบ LUKS คุณสามารถทำได้โดยเลือกตัวเลือกที่เหมาะสมเมื่อติดตั้ง Ubuntu เพื่อความปลอดภัยสูงสุดคุณควรมีวลีรหัสผ่านที่เข้มงวดมากที่เลือกระหว่างการติดตั้ง หากข้อความรหัสผ่านของคุณไม่เป็นรอยขีดข่วนคุณควรเปลี่ยนเป็นวลีที่ดีกว่าก่อนดำเนินการต่อ ( คำแนะนำเพิ่มเติมโดยละเอียดที่นี่ )
วิธีการด้านล่างจะไม่แทนที่ข้อความรหัสผ่านที่มีอยู่ แต่จะเพิ่มข้อความรหัสผ่านใหม่ลงในช่อง LUKS หนึ่งช่องแทน ดังนั้นหากคุณทำ Yubikey ของคุณหายคุณยังสามารถปลดล็อกคอมพิวเตอร์ของคุณโดยใช้ข้อความรหัสผ่านที่มีอยู่ - ฉันขอแนะนำให้คุณจดบันทึกและซ่อนมันไว้ในที่ปลอดภัย - คุณจะต้องใช้มันสองสามครั้งในระหว่างกระบวนการนี้ Yubikey ท้าทายข้อความรหัสผ่านใหม่ของคุณควรมีความแข็งแกร่งพอสมควร แต่ไม่จำเป็นต้องใช้ข้อความรหัสผ่านที่คุณใช้เมื่อติดตั้ง Ubuntu
1. เพิ่ม PrivacyIdea PPA และติดตั้งแพ็คเกจ
บน Ubuntu 14.04
เปิดเทอร์มินัลและเรียกใช้คำสั่งต่อไปนี้:
sudo add-apt-repository ppa:privacyidea/privacyidea
กด Enter เมื่อได้รับแจ้งจากนั้นเรียกใช้:
sudo apt-get update
จากนั้นติดตั้งแพ็คเกจด้วย:
sudo apt-get install yubikey-luks
บน Ubuntu 16.04, 18.04
ไม่จำเป็นต้องมี PPA คุณสามารถติดตั้งแพ็คเกจด้วย:
sudo apt-get install yubikey-luks
บน Ubuntu 19.04
ดูคำตอบนี้สำหรับวิธีสร้างyubikey-luks
แพ็คเกจจากซอร์สโค้ดสำหรับ Ubuntu 19.04
2. ติดตั้งซอฟต์แวร์ Yubikey
หากคุณกำลังใช้ฟังก์ชั่น HMAC-SHA1 ของ Yubikey คุณสามารถข้ามส่วนนี้ได้ มันจะลบการกำหนดค่าใด ๆ ในช่องเสียบ Yubikey ที่สองดังนั้นอย่าทำตามขั้นตอนนี้หากคุณใช้ HMAC-SHA1 เพื่อจุดประสงค์อื่นกับ Yubikey นี้
คุณจะต้องตั้งค่า Yubikey ของคุณให้ทำงานกับ Ubuntu ได้โดยติดตั้งซอฟต์แวร์ที่ต้องการทั้งจาก Yubico PPAบน Ubuntu 14.04 หรือจากที่เก็บหลักของ Ubuntu ใน 16.04 และใหม่กว่า
บน Ubuntu 14.04
หากคุณยังไม่เคยทำมาก่อนให้เพิ่ม PPA และติดตั้งแพ็คเกจด้วย:
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt-get install yubikey-personalization
บน Ubuntu 16.04, 18.04 (และใหม่กว่า)
sudo apt-get install yubikey-personalization
3. เริ่มต้น Yubikey Slot สำหรับ HMAC-SHA1
ตอนนี้เราต้องตั้งโปรแกรมสล็อตที่สองของ Yubikey ด้วยการกำหนดค่า HMAC-SHA1 การดำเนินการนี้จะลบการกำหนดค่าสล็อตก่อนหน้าของคุณซึ่งเป็นค่าว่าง อีกครั้งถ้าคุณใช้ HMAC-SHA1 เพื่อสิ่งอื่นไม่ต้องใช้คำสั่งนี้ - มันจะลบการกำหนดค่าของคุณ คุณสามารถใช้รหัสลับเดียวกันได้อย่างปลอดภัยภายใน Yubikey สำหรับการตั้งค่า LUKS นี้สำหรับการใช้งานอื่น ๆ ของคุณ (ตัวอย่างเช่นกับคอมพิวเตอร์เครื่องอื่นที่ใช้ LUKS + Yubikey)
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible
เทอร์มินัลจะแสดงข้อมูลบางอย่างเกี่ยวกับการเปลี่ยนแปลงที่เกิดขึ้น คุณไม่จำเป็นต้องจดบันทึกลงไป แต่จะแสดงคีย์ลับที่ใช้โดย Yubikey ในอัลกอริทึม HMAC-SHA1 เพื่อคำนวณการตอบสนองเมื่อได้รับการท้าทาย
4. ลงทะเบียน Yubikey เป็น LUKS Slot
ตอนนี้เราจะแก้ไขการกำหนดค่า LUKS เพื่อผนวกการตอบสนองจาก Yubikey เป็นหนึ่งในคีย์ถอดรหัส
พาร์ติชั่นที่เราต้องระบุนั้นขึ้นอยู่กับว่าคุณใช้ BIOS หรือ UEFI เพื่อบู๊ตเครื่อง สำหรับ BIOS ปริมาณการเข้ารหัสที่/dev/sda5
เป็นค่าเริ่มต้นสำหรับ UEFI /dev/sda3
มันอยู่ที่ คุณสามารถตรวจสอบโดยการเปิดdisks
ยูทิลิตี้และยืนยันเส้นทางของพาร์ทิชัน - มันก็ควรจะเป็นหรือsda3
หมายเหตุ:สำหรับคอมพิวเตอร์รุ่นใหม่ที่มีดิสก์ NVMe เส้นทางจะมีลักษณะดังนี้sda5
/dev/nvme0n1p3
รันสิ่งนี้ในเทอร์มินัล:
sudo yubikey-luks-enroll -d /dev/sda3 -s 7
สิ่งนี้จะเขียนลงในช่อง 7 ของการกำหนดค่า LUKS ทำตามคำแนะนำในโปรแกรมติดตั้ง
ถ้าอย่างนั้นคุณก็ทำได้หมด! คุณควรจะสามารถรีบูตเครื่องคอมพิวเตอร์ของคุณและหากใส่ Yubikey ของคุณแล้วคุณสามารถพิมพ์รหัสผ่านการท้าทายและใช้ Yubikey เป็นปัจจัยที่สองเพื่อปลดล็อกพาร์ติชัน LUKS และบูตระบบ เมื่อคุณถอดรหัสฮาร์ดไดรฟ์แล้วคุณสามารถลบ Yubikey ได้
หากคุณสูญเสีย Yubikey คุณยังสามารถป้อนข้อความรหัสผ่าน (หวังว่าจะยาวมาก) เพื่อถอดรหัสฮาร์ดไดรฟ์จากนั้นคุณสามารถทำตามขั้นตอนนี้อีกครั้งเพื่อลงทะเบียน Yubikey ใหม่
การเปลี่ยนข้อความรหัสผ่านความท้าทายการเข้ารหัส
การเปลี่ยนรหัสผ่านในภายหลังนั้นค่อนข้างง่ายเพียงแค่ใช้คำสั่งนี้เพื่อรีเซ็ตรหัสลับ ไม่จำเป็นต้องรีเซ็ตคีย์ลับทั้งหมด แต่จะไม่เจ็บ โปรดจำไว้ว่าสิ่งนี้จะทำลายรหัสลับก่อนหน้าอย่าทำเช่นนี้หากคุณใช้ HMAC-SHA1 เพื่อสิ่งอื่นใดกับ Yubikey นี้ (ตัวอย่างเช่นกับคอมพิวเตอร์เครื่องอื่นที่ใช้ LUKS + Yubikey)
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible
จากนั้นคล้ายกับขั้นตอนที่ 4ด้านบนเพื่อลงทะเบียนรหัสผ่านใหม่ลงในช่องเสียบ LUKS ยกเว้นเลือกที่จะล้างข้อมูลในช่อง 7 ด้วยคำสั่งนี้:
sudo yubikey-luks-enroll -d /dev/sda3 -s 7 -c
เมื่อได้รับแจ้งให้Enter any remaining passphrase
ใช้ข้อความรหัสผ่านสำรองของคุณไม่ใช่รหัสผ่านสำหรับ Yubikey จากนั้นป้อนข้อความรหัสผ่านสำหรับการท้าทาย Yubikey ใหม่สองครั้งจากนั้นในที่สุดคุณจะต้องป้อนข้อความรหัสผ่านการสำรองข้อมูลหนึ่งครั้งล่าสุด
ตอนนี้ข้อความรหัสผ่านสำหรับการท้าทาย Yubikey เก่าของคุณได้ถูกลบออกและมีเพียงอันใหม่ของคุณเท่านั้นที่จะถอดรหัสฮาร์ดไดรฟ์ ข้อความรหัสผ่านการสำรองข้อมูลก่อนหน้าของคุณจะยังคงเหมือนเดิม คุณสามารถเปลี่ยนรหัสผ่านสำหรับการว่าด้วยการเชื่อมโยงต่อไปในขั้นตอนที่ 0
หมายเหตุเกี่ยวกับผลกระทบด้านความปลอดภัย
การเพิ่ม Yubikey จะเพิ่มระดับความปลอดภัยให้กับระบบของคุณ - บางคนต้องรู้ทั้งข้อความรหัสผ่านที่ท้าทายและให้ Yubikey ของคุณสามารถปลดล็อกฮาร์ดไดรฟ์ของคุณ (หรือค้นหาข้อความรหัสผ่านเริ่มต้นซึ่งตอนนี้คุณใช้เป็นข้อมูลสำรอง) . อย่างไรก็ตามเป็นไปได้ในทางเทคนิคที่ผู้โจมตีจะถอดรหัสฮาร์ดไดรฟ์หากพวกเขารู้ข้อความรหัสผ่านที่ท้าทาย (เช่น "การท่องไหล่" ขณะที่คุณพิมพ์) และสามารถเข้าถึง Yubikey ได้ในเวลาสั้น ๆ การใช้วลีรหัสผ่านที่ท้าทายพวกเขาสามารถได้รับการตอบสนองจาก Yubikey และเก็บไว้แล้วใช้มันเพื่อถอดรหัสฮาร์ดไดรฟ์ได้ตลอดเวลาโดยไม่มี Yubikey หรืออีกครั้งหากผู้โจมตีหรือมัลแวร์รู้วลีรหัสผ่านของคุณและสามารถเรียกใช้รหัสบนเครื่องที่เชื่อมต่อกับ Yubikey ของพวกเขาพวกเขาก็สามารถท้าทายและเก็บการตอบสนองได้ ดังนั้นจึงเป็นเรื่องสำคัญอย่างยิ่งที่จะต้องระมัดระวังเมื่อเข้าสู่ข้อความรหัสผ่านที่ท้าทายของคุณและเพื่อให้แน่ใจว่าคุณมี Yubikey อยู่ในที่ปลอดภัยเสมอ คุณควรเสียบเข้ากับเครื่องที่คุณไว้ใจเท่านั้น หากคุณสูญเสียการติดตาม Yubikey ของคุณและสงสัยว่ามีผู้อื่นกำลังใช้งานอยู่เพื่อพยายามเรียนรู้คีย์ถอดรหัสให้ทำตามขั้นตอนที่ 2 และ 3 อีกครั้งเพื่อรีเซ็ตคีย์ลับภายใน Yubikey และเลือกข้อความรหัสผ่านสำหรับการท้าทายใหม่ โปรดทราบว่าหากฝ่ายตรงข้ามได้จัดการเรียนรู้วลีรหัสผ่านของคุณ (การตอบสนอง HMAC-SHA1 จาก Yubikey หรือการสำรองข้อมูลของคุณ) พวกเขาสามารถทำการสำรองคีย์หลักของ LUKS แล้วใช้เพื่อถอดรหัสฮาร์ดไดรฟ์ของคุณแม้ว่า คุณเปลี่ยนข้อความรหัสผ่านในอนาคต และเพื่อให้แน่ใจว่าคุณมี Yubikey อยู่เสมอในสถานที่ปลอดภัย คุณควรเสียบเข้ากับเครื่องที่คุณไว้ใจเท่านั้น หากคุณสูญเสียการติดตาม Yubikey ของคุณและสงสัยว่ามีผู้อื่นกำลังใช้งานอยู่เพื่อพยายามเรียนรู้คีย์ถอดรหัสให้ทำตามขั้นตอนที่ 2 และ 3 อีกครั้งเพื่อรีเซ็ตคีย์ลับภายใน Yubikey และเลือกข้อความรหัสผ่านสำหรับการท้าทายใหม่ โปรดทราบว่าหากฝ่ายตรงข้ามได้จัดการเรียนรู้วลีรหัสผ่านของคุณ (การตอบสนอง HMAC-SHA1 จาก Yubikey หรือการสำรองข้อมูลของคุณ) พวกเขาสามารถทำการสำรองคีย์หลักของ LUKS แล้วใช้เพื่อถอดรหัสฮาร์ดไดรฟ์ของคุณแม้ว่า คุณเปลี่ยนข้อความรหัสผ่านในอนาคต และเพื่อให้แน่ใจว่าคุณมี Yubikey อยู่เสมอในสถานที่ปลอดภัย คุณควรเสียบเข้ากับเครื่องที่คุณไว้ใจเท่านั้น หากคุณสูญเสียการติดตาม Yubikey ของคุณและสงสัยว่ามีใครบางคนอาจใช้มันเพื่อพยายามเรียนรู้คีย์ถอดรหัสให้ทำตามขั้นตอนที่ 2 และ 3 อีกครั้งเพื่อรีเซ็ตคีย์ลับภายใน Yubikey และเลือกข้อความรหัสผ่านสำหรับการท้าทายใหม่ โปรดทราบว่าหากฝ่ายตรงข้ามจัดการเพื่อเรียนรู้วลีรหัสผ่านของคุณ (ตอบสนอง HMAC-SHA1 จาก Yubikey หรือการสำรองข้อมูลของคุณ) พวกเขาสามารถทำการสำรองคีย์หลักของ LUKS แล้วใช้เพื่อถอดรหัสฮาร์ดไดรฟ์ของคุณแม้ว่า คุณเปลี่ยนข้อความรหัสผ่านในอนาคต ทำขั้นตอนที่ 2 และ 3 อีกครั้งเพื่อรีเซ็ตรหัสลับภายใน Yubikey และเลือกข้อความรหัสผ่านใหม่ที่มีความท้าทาย โปรดทราบว่าหากฝ่ายตรงข้ามจัดการเพื่อเรียนรู้วลีรหัสผ่านของคุณ (ตอบสนอง HMAC-SHA1 จาก Yubikey หรือการสำรองข้อมูลของคุณ) พวกเขาสามารถทำการสำรองคีย์หลักของ LUKS แล้วใช้เพื่อถอดรหัสฮาร์ดไดรฟ์ของคุณแม้ว่า คุณเปลี่ยนข้อความรหัสผ่านในอนาคต ทำขั้นตอนที่ 2 และ 3 อีกครั้งเพื่อรีเซ็ตรหัสลับภายใน Yubikey และเลือกข้อความรหัสผ่านใหม่ที่มีความท้าทาย โปรดทราบว่าหากฝ่ายตรงข้ามได้จัดการเรียนรู้วลีรหัสผ่านของคุณ (การตอบสนอง HMAC-SHA1 จาก Yubikey หรือการสำรองข้อมูลของคุณ) พวกเขาสามารถทำการสำรองคีย์หลักของ LUKS แล้วใช้เพื่อถอดรหัสฮาร์ดไดรฟ์ของคุณแม้ว่า คุณเปลี่ยนข้อความรหัสผ่านในอนาคตman page สำหรับ cryptsetupอธิบายสิ่งนี้ดูที่ส่วนluksHeaderBackup หากคุณสงสัยว่าเกิดเหตุการณ์นี้ขึ้นคุณจะต้องสร้างวอลลุ่มใหม่ทั้งหมดเพื่อปกป้องข้อมูลของคุณ