ในโปรโตคอลนี้ ผู้ใช้จะต้องได้รับการรับรองความถูกต้อง พวกเขาสามารถทำได้โดยใช้รหัสผ่าน ไฟล์ที่มีคีย์ RSA ส่วนตัว อุปกรณ์ฮาร์ดแวร์ เช่น Ledger Nano S และ Ledger Nano X เป็นต้น
วิธีการรับรองความถูกต้องบางอย่างมีความปลอดภัยมากกว่าวิธีอื่น: การใช้อุปกรณ์ฮาร์ดแวร์ที่ออกแบบมาเพื่อจัดเก็บคีย์ส่วนตัวโดยไม่ทำให้สามารถแตกไฟล์ได้จะปลอดภัยกว่าการเก็บคีย์ส่วนตัวไว้ในไฟล์ น่าเสียดายที่คนที่ปลอดภัยที่สุดก็เจ็บปวดมากกว่าที่จะใช้เช่นกัน ผู้ใช้ที่มีกุญแจอยู่ในอุปกรณ์จำเป็นต้องพกพาอุปกรณ์ไปด้วย ต้องพิมพ์รหัส PIN ทุกครั้งที่เริ่มเซสชัน SSH เป็นต้น ทำให้ค่อนข้างยากที่จะสนับสนุนวิธีที่ปลอดภัยกว่ารหัสผ่านและไฟล์สำหรับกรณีการใช้งาน ความปลอดภัยของการเข้าถึงไม่ใช่สิ่งสำคัญ
ดังนั้นคำถามคือ เป็นไปได้ไหมที่จะจัดเก็บเนื้อหาการตรวจสอบสิทธิ์ไว้อย่างปลอดภัยมากกว่าในไฟล์ (ซึ่งมัลแวร์บางตัวอาจขโมยได้) โดยไม่เปลี่ยนประสบการณ์ของผู้ใช้
และคำตอบคือ ใช่ โดยใช้ TPM!
ประวัติศาสตร์บางอย่าง
เป็นเวลานานแล้วที่คอมพิวเตอร์สามารถฝังชิปความปลอดภัยได้โดยตรง ชิปนี้มีชื่อว่า Trusted Platform Module (TPM) มีคุณสมบัติมากมาย รวมถึงความสามารถในการปกป้องคีย์ส่วนตัวที่ใช้ในการเข้ารหัสคีย์สาธารณะ
เนื่องจากฝังอยู่ในคอมพิวเตอร์ จึงไม่จำเป็นต้องเสียบอุปกรณ์เข้ากับคอมพิวเตอร์เพื่อใช้งาน ดังนั้นจึงถือว่ามีความปลอดภัยน้อยกว่าอุปกรณ์ฮาร์ดแวร์ที่สามารถจัดเก็บไว้ในที่อื่นจากคอมพิวเตอร์ได้ (ทำให้สามารถบังคับใช้หลักการที่ว่าในขณะที่อุปกรณ์ไม่ได้เชื่อมต่อกับคอมพิวเตอร์ ไม่มีมัลแวร์ใดที่สามารถใช้ความลับที่จัดเก็บไว้ในนั้น)
ดังนั้น TPM จึงไม่ใช่ "การรักษาความปลอดภัยที่ดีที่สุด" แต่ก็ยังมีความปลอดภัยมากกว่าการใช้ไฟล์เช่น $HOME/.ssh/id_rsa
เพื่อจัดเก็บคีย์ส่วนตัว
TPM ใช้กับ OpenSSH บน Linux ได้อย่างไร กับโครงการชื่อ tpm2-pkcs11
ทำตามคำแนะนำที่มีอยู่ในหลาย ๆ เว็บไซต์เป็นเวลาหลายปีรวมถึงบน เอกสารอย่างเป็นทางการจากที่เก็บรหัส.
ตอนนี้ข่าวเป็นอย่างไร? ในที่สุดซอฟต์แวร์นี้ได้รับการบรรจุใน Ubuntu และ Debian ซึ่งทำให้ผู้ใช้ Linux ส่วนใหญ่สามารถใช้งานได้ในที่สุด!
แม่นยำยิ่งขึ้น นี่คือไทม์ไลน์:
- ในปี 2014 มีการเผยแพร่ข้อกำหนดหลักสำหรับ TPM 2.0 ในการโต้ตอบกับ TPM จากซอฟต์แวร์ มีความพยายามในการกำหนดมาตรฐาน และสร้างชุดซอฟต์แวร์ที่เข้ากันไม่ได้สองชุด: ชุดหนึ่งจาก Trusted Computing Group (TCG) ซึ่งเรียกว่า กองซอฟต์แวร์ TPM (TSS) และจาก IBM เรียกอีกอย่างว่า กองซอฟต์แวร์ TPM.
- ในปี 2018 โครงการ
tpm2-pkcs11
ถูกสร้างขึ้นเพื่อให้อินเทอร์เฟซ PKCS#11 กับ TPM 2.0 โดยใช้ TSS ของ TCG PKCS # 11 เป็นมาตรฐานที่กำหนดชื่อ Application Programming Interface (API) คริปโตกิ เพื่อใช้โทเค็นที่จัดเก็บคีย์เข้ารหัส เนื่องจาก OpenSSH รองรับการใช้อินเทอร์เฟซ PKCS#11 เพื่อดำเนินการตรวจสอบสิทธิ์ผู้ใช้ จึงเปิดใช้ TPM เพื่อจัดเก็บคีย์ที่ใช้สำหรับการตรวจสอบสิทธิ์ SSH - ในเดือนกุมภาพันธ์ 2019,
tpm2-pkcs11
ถูกเพิ่มไปที่ Fedora 29. - ในเดือนกันยายน 2019 CentOS 8 เปิดตัวพร้อมกับแพ็คเกจนี้
- ในเดือนเมษายน 2020,
tpm2-pkcs11
ถูกเพิ่มไปที่ เดเบียนซิด. น่าเสียดายที่มันไม่มีโปรแกรมtpm2_ptool
ซึ่งจำเป็นต่อการสร้างกุญแจอย่างง่ายดาย ปัญหานี้ได้รับการรายงานใน ข้อบกพร่องของเดเบียน #968310. - ในเดือนมกราคม 2021 แพ็คเกจของ Debian คือ การแก้ไข (และผู้ดูแลรับทราบความช่วยเหลือของฉัน!)
- ในเดือนเมษายน 2021 Ubuntu 21.04 ฮิปโป Hirsute ถูกปล่อยออกมาพร้อมกับ แพ็คเกจคงที่.
- ในเดือนสิงหาคม 2021 Debian 11 Bullseye ถูกปล่อยออกมาพร้อมกับ แพ็คเกจคงที่
tpm2-pkcs11
พร้อมใช้งานบน Debian, Ubuntu และลีนุกซ์รุ่นอื่นๆ ที่แสดงรายการอยู่ ทำซ้ำ.
ใช้ tpm2-pkcs11
บน Debian 11 ต่อไปนี้เป็นขั้นตอนในการสร้างและใช้คีย์ SSH ใหม่ที่จัดเก็บอย่างปลอดภัยโดย TPM:
- ติดตั้งคำสั่ง
tpm2_ptool
และห้องสมุดlibtpm2_pkcs11.so.1
ซึ่งมีให้โดยสองแพ็คเกจ:
2. ตรวจสอบว่าระบบสามารถใช้ TPM 2.0 ได้ หากหนึ่งในการตรวจสอบต่อไปนี้ล้มเหลว อาจหมายความว่าระบบไม่มี TPM หรือมี TPM 1.2 หรือมี TPM 2.0 ซึ่งปิดใช้งานในการตั้งค่า BIOS:
3. เพิ่มผู้ใช้ปัจจุบันในกลุ่มที่สามารถเข้าถึงอุปกรณ์ TPM /dev/tpmrm0
. บน Debian และ Ubuntu ผู้ใช้ต้องอยู่ในกลุ่มชื่อ tss
(ขอบคุณการกำหนดค่าโดย tpm-udev
แพ็คเกจ). คำสั่งต่อไปนี้เพิ่มผู้ใช้ปัจจุบันในกลุ่มนี้:
เริ่มต้นการจัดเก็บผู้ใช้ ป้องกันด้วยรหัสผ่านและก โซปิน และสร้างคีย์ เช่น คีย์ Elliptic Curve บนเส้นโค้งชื่อ “NIST P-256” (หรือที่เรียกว่า “secp256r1”):
4. คำย่อ โซปิน วิธี หมายเลขประจำตัวเจ้าหน้าที่รักษาความปลอดภัย และเป็นแนวคิดจากข้อกำหนดของ PKCS#11 ในกรณีการใช้งานทั่วไป อาจถูกมองว่าเป็น “รหัสผ่านสำหรับการกู้คืน” ซึ่งช่วยให้สามารถแก้ไขรหัสผ่านได้ เช่น เมื่อรหัสผ่านสูญหาย
5. แสดงรหัสสาธารณะของรหัสใหม่นี้:
6. กำหนดค่ารหัสสาธารณะใหม่ในเซิร์ฟเวอร์ เช่น โดยการเขียนรหัสดังกล่าว $HOME/.ssh/authorized_keys
หรือในการตั้งค่าบัญชีของ GitHub หรือในตำแหน่งอื่นๆ ที่ใช้คีย์สาธารณะ SSH
7. กำหนดค่าไคลเอนต์ SSH ที่จะใช้ tpm2-pkcs11
เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ เช่น โดยเขียนสิ่งนี้ลงไป $HOME/.ssh/config
(ด้านลูกค้า):
เชื่อมต่อกับเซิร์ฟเวอร์ (สามารถข้ามขั้นตอนก่อนหน้าได้:
งานในอนาคต
ส่วนก่อนหน้านี้ได้นำเสนอวิธีการสร้างคีย์ใหม่ใน TPM แม้ว่าสิ่งนี้จะเปิดใช้งานการใช้ TPM เพื่อป้องกันการตรวจสอบความถูกต้องของ SSH แต่ก็มีสองคุณสมบัติที่จำเป็นในการทำให้สิ่งนี้เป็นทางเลือกแทนการใช้ไฟล์เพื่อจัดเก็บคีย์ส่วนตัว:
- คุณลักษณะ #1: การนำเข้าคีย์ SSH ที่มีอยู่ไปยัง TPM แทนการสร้างคีย์ใหม่ (ซึ่งช่วยให้การเปลี่ยนไปใช้ที่เก็บข้อมูล TPM เป็นไปอย่างราบรื่น การสำรองคีย์ ในกรณีที่คอมพิวเตอร์เสียหรือสูญหาย เป็นต้น)
- ฟีเจอร์ #2: การใช้คีย์ SSH โดยไม่มีรหัสผ่าน เช่น ไฟล์คีย์ส่วนตัวที่ไม่มีการป้องกัน (ฟีเจอร์นี้มีความปลอดภัยมากกว่าไฟล์คีย์เนื่องจากไม่สามารถแยกคีย์ที่มีการป้องกันออกจาก TPM)
ฉันใช้คุณสมบัติทั้งสองใน tpm2-pkcs11
และส่งพวกเขาในคำขอดึง #681 และ #695. ฟีเจอร์ #1 ถูกนำเสนอในเดือนพฤษภาคมระหว่างการโทรออนไลน์รายสัปดาห์ของ ชุมชน tpm.dev และบันทึกได้บน https://developers.tpm.dev/posts/14389750.
ดังนั้นคุณสมบัติทั้งสองจึงมีแนวโน้มที่จะมีให้ใช้งานในอนาคตของ tpm2-pkcs11
.
อย่างไรก็ตาม สำหรับผู้อ่านที่อยากรู้อยากเห็นที่ต้องการเข้าใจเนื้อหาภายในของ tpm2-pkcs11
ฉันเผยแพร่บทความเกี่ยวกับพวกเขาในการประชุม SSTIC 2021 ชื่อ การป้องกันการรับรองความถูกต้อง SSH ด้วย TPM 2.0 (บทความเป็นภาษาอังกฤษ การนำเสนอเป็นภาษาฝรั่งเศส). นอกจากนี้ ผู้อ่านที่ต้องการลองสิ่งต่าง ๆ โดยไม่ต้องสัมผัสกับ TPM จริงสามารถสนใจในส่วน “การเลียนแบบ TPM 2.0” ของบทความนี้
(ภาพประกอบ: Rainer Knäpper ใบอนุญาตศิลปะฟรี)
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- เพลโตไอสตรีม. ข้อมูลอัจฉริยะ Web3 ขยายความรู้ เข้าถึงได้ที่นี่.
- การสร้างอนาคตโดย Adryenn Ashley เข้าถึงได้ที่นี่.
- ซื้อและขายหุ้นในบริษัท PRE-IPO ด้วย PREIPO® เข้าถึงได้ที่นี่.
- ที่มา: https://www.ledger.com/blog/ssh-with-tpm
- :มี
- :เป็น
- :ไม่
- :ที่ไหน
- $ ขึ้น
- 1
- 11
- 13
- 14
- ลด 15%
- 2014
- 2018
- 2019
- 2020
- 2021
- 30
- 8
- 80
- a
- ความสามารถ
- สามารถ
- เกี่ยวกับเรา
- เข้า
- ลงชื่อเข้าใช้
- ที่ยอมรับ
- เพิ่ม
- ที่เพิ่ม
- เพิ่ม
- ผู้สนับสนุน
- ด้วย
- ทางเลือก
- an
- และ
- คำตอบ
- ใด
- API
- การใช้งาน
- เมษายน
- เป็น
- ศิลปะ
- บทความ
- AS
- At
- สิงหาคม
- รับรองความถูกต้อง
- การยืนยันตัวตน
- ใช้ได้
- การสนับสนุน
- BE
- กลายเป็น
- รับ
- ทั้งสอง
- แตก
- Bug
- แต่
- by
- โทรศัพท์
- CAN
- ไม่ได้
- พกพา
- กรณี
- กรณี
- CGI
- เปลี่ยนแปลง
- ตรวจสอบ
- การตรวจสอบ
- ชิป
- ไคลเอนต์
- รหัส
- คอมพิวเตอร์
- คอมพิวเตอร์
- การคำนวณ
- แนวคิด
- การประชุม
- องค์ประกอบ
- เชื่อมต่อ
- งานที่เชื่อมต่อ
- ถือว่า
- ได้
- สร้าง
- ที่สร้างขึ้น
- การสร้าง
- การเข้ารหัสลับ
- การอ่านรหัส
- อยากรู้อยากเห็น
- ปัจจุบัน
- เส้นโค้ง
- กำหนด
- ได้รับการออกแบบ
- dev
- เครื่อง
- อุปกรณ์
- DID
- ต่าง
- ยาก
- โดยตรง
- พิการ
- แสดง
- การกระจาย
- do
- เอกสาร
- ทำ
- ในระหว่าง
- อย่างง่ายดาย
- ความพยายาม
- รูปไข่
- ฝัง
- ที่ฝัง
- เปิดการใช้งาน
- ช่วยให้
- การบังคับใช้
- ภาษาอังกฤษ
- ฯลฯ
- เคย
- ทุกๆ
- ตัวอย่าง
- ที่มีอยู่
- ประสบการณ์
- สารสกัด
- ล้มเหลว
- ลักษณะ
- คุณสมบัติ
- กุมภาพันธ์
- เนื้อไม่มีมัน
- ไฟล์
- ในที่สุด
- การแก้ไข
- ดังต่อไปนี้
- สำหรับ
- ฟรี
- ภาษาฝรั่งเศส
- ราคาเริ่มต้นที่
- อนาคต
- สร้าง
- GitHub
- บัญชีกลุ่ม
- ฮาร์ดแวร์
- อุปกรณ์ฮาร์ดแวร์
- อุปกรณ์ฮาร์ดแวร์
- มี
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- HTML
- ที่ http
- HTTPS
- i
- ไอบีเอ็ม
- ประจำตัว
- if
- การดำเนินการ
- การนำเข้า
- in
- รวมทั้ง
- เข้ากันไม่ได้
- เริ่มต้น
- แทน
- คำแนะนำการใช้
- โต้ตอบ
- สนใจ
- อินเตอร์เฟซ
- เข้าไป
- ปัญหา
- IT
- ITS
- มกราคม
- มกราคม
- jpg
- คีย์
- กุญแจ
- ที่รู้จักกัน
- บัญชีแยกประเภท
- Ledger Nano
- Ledger Nano S
- Ledger Nano X
- น้อยลง
- กดไลก์
- น่าจะ
- ลินุกซ์
- จดทะเบียน
- ที่ตั้ง
- สูญหาย
- หลัก
- ทำ
- ทำให้
- การทำ
- มัลแวร์
- หลาย
- วัสดุ
- ความกว้างสูงสุด
- อาจ..
- หมายความ
- วิธี
- โมดูล
- ข้อมูลเพิ่มเติม
- ยิ่งไปกว่านั้น
- มากที่สุด
- มาก
- my
- ที่มีชื่อ
- นาโน
- จำเป็น
- จำเป็นต้อง
- จำเป็น
- ใหม่
- ข่าว
- ไม่
- ตอนนี้
- of
- เจ้าหน้าที่
- on
- ONE
- คน
- ออนไลน์
- or
- ใบสั่ง
- อื่นๆ
- ผลิตภัณฑ์อื่นๆ
- แพ็คเกจ
- แพคเกจ
- แพคเกจ
- เจ็บปวด
- รหัสผ่าน
- รหัสผ่าน
- ดำเนินการ
- ส่วนบุคคล
- สถานที่
- เวที
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- ปลั๊ก
- เป็นไปได้
- อย่างแม่นยำ
- การเสนอ
- นำเสนอ
- ก่อน
- หลัก
- ลำดับความสำคัญ
- ส่วนตัว
- คีย์ส่วนตัว
- คีย์ส่วนตัว
- การเขียนโปรแกรม
- โครงการ
- ป้องกัน
- การป้องกัน
- ปกป้อง
- โปรโตคอล
- ให้
- ให้
- ให้
- สาธารณะ
- คีย์สาธารณะ
- กุญแจสาธารณะ
- การตีพิมพ์
- คำถาม
- ผู้อ่าน
- จริง
- การบันทึก
- ปล่อย
- การเผยแพร่
- รายงาน
- จำเป็นต้องใช้
- อาร์เอส
- s
- Section
- ปลอดภัย
- อย่างปลอดภัย
- ความปลอดภัย
- เห็น
- กันยายน
- เซสชั่น
- การตั้งค่า
- หลาย
- ด้าน
- ง่าย
- So
- ซอฟต์แวร์
- บาง
- สเปค
- ข้อกำหนด
- สแต็ค
- มาตรฐาน
- ขั้นตอน
- ขั้นตอน
- ยังคง
- ที่ถูกขโมย
- การเก็บรักษา
- จัดเก็บ
- เก็บไว้
- ส่ง
- อย่างเช่น
- ที่สนับสนุน
- ระบบ
- กว่า
- ขอบคุณ
- ที่
- พื้นที่
- รายสัปดาห์
- ของพวกเขา
- พวกเขา
- ที่นั่น
- ดังนั้น
- พวกเขา
- สิ่ง
- นี้
- เวลา
- ไทม์ไลน์
- ไปยัง
- ราชสกุล
- สัมผัส
- การเปลี่ยนแปลง
- ที่เชื่อถือ
- ลอง
- สอง
- ชนิด
- อูบุนตู
- เข้าใจ
- น่าเสียดาย
- ใช้
- มือสอง
- ผู้ใช้งาน
- ประสบการณ์ของผู้ใช้
- ผู้ใช้
- การใช้
- ต้องการ
- คือ
- ทาง..
- วิธี
- เว็บไซต์
- รายสัปดาห์
- คือ
- เมื่อ
- ที่
- ในขณะที่
- WHO
- กับ
- ไม่มี
- การเขียน
- X
- ปี
- ใช่
- ลมทะเล