วลีรหัสของคีย์ SSH ปกป้องไฟล์ ไม่ใช่เส้นทาง
วลีรหัสเข้ารหัสไฟล์คีย์ส่วนตัว แต่ไม่เพิกถอนตัวตนและไม่รักษาความปลอดภัยของเส้นทาง การเก็บแยก อายุของเอเจนต์ และการใช้โดยไม่มีผู้ดูแล
ฮาร์ดดิสก์สำรองจากแล็ปท็อปเครื่องเก่ายังมีคีย์ SSH ส่วนตัวอยู่ และมีคนถามว่า VPN ปกป้องมันหรือไม่ คำตอบคือไม่ และไม่เคยปกป้อง VPN ปกป้องเส้นทางระหว่างสองเครือข่าย วลีรหัสปกป้องไฟล์ เอเจนต์ปกป้องเซสชันที่กำลังทำงาน กลไกสามอย่างที่ต่างกัน รูปแบบความล้มเหลวสามแบบที่ต่างกัน และสำเนาที่ถูกขโมยสนใจเพียงสองอย่างแรก
วลีรหัสเป็นของไฟล์
วลีรหัสของคีย์ SSH เข้ารหัสวัสดุคีย์ส่วนตัวขณะพักอยู่ ไม่ใช่ว่าผ่านของบัญชีที่ส่งไปยังเซิร์ฟเวอร์ และไม่ใช่ข้อมูลรับรองที่ใช้เชื่อมต่อกับ VPN การสับสนระหว่างสองสิ่งนี้นำไปสู่การเปลี่ยนแปลงที่ไม่แก้ไขการเปิดเผย
คู่มือ ssh-keygen ของ OpenSSH ครอบคลุมการจัดการวลีรหัส รวมถึงสวิตช์ -p ที่ตั้งวลีรหัสใหม่บนคีย์ที่มีอยู่แล้ว
สำหรับคีย์ที่มีอยู่ รูปแบบคำสั่งนั้นเรียบง่าย และมันเขียนไฟล์ใหม่:
ssh-keygen -p -f ~/.ssh/id_ed25519
ใช้กระบวนการบำรุงรักษาและกู้คืนที่ได้รับอนุมัติจากเจ้าของคีย์ เพราะนี่คือการเขียน ไม่ใช่การตรวจสอบ อย่าเผยแพร่ไฟล์ส่วนตัว และอย่าวางวลีรหัสจริงบนบรรทัดคำสั่งที่ใช้ร่วมกัน การเปลี่ยนวลีรหัสไม่ได้เข้ารหัสสำเนาที่ถูกเก็บไว้ก่อนหน้านี้ใหม่ บันทึกตำแหน่งของสำเนาเก่าไว้ในตั๋ว เพื่อให้เจ้าของตัดสินใจว่าจะทำลายมันหรือไม่
สำเนาอยู่ได้นานกว่าแล็ปท็อปและอุโมงค์
เมื่อไฟล์คีย์ถูกคัดลอกแล้ว การเชื่อมต่อ VPN ที่ใช้งานอยู่ของแล็ปท็อปไม่ได้บอกอะไรเกี่ยวกับมันอีก สิ่งที่สำคัญคือ ไฟล์เองได้รับการปกป้องดีเพียงใด และเซิร์ฟเวอร์ใดยังไว้วางใจคีย์สาธารณะที่ตรงกัน
การเปลี่ยนวลีรหัสของไฟล์ปัจจุบันไม่ได้แตะสำเนา และไม่ได้ลบคีย์สาธารณะเดียวกันออกจาก authorized_keys บนเซิร์ฟเวอร์ การเพิกถอนและการเข้ารหัสใหม่เป็นการกระทำที่แยกจากกัน
ดังนั้นจงถือว่าคีย์ส่วนตัวที่รั่วไหลเป็นเหตุการณ์ด้านตัวตน ไม่ใช่เหตุการณ์ด้านเครือข่าย ลบคีย์ที่ได้รับการยอมรับหรือแทนที่มันผ่านเซิร์ฟเวอร์และกระบวนการลงทะเบียนที่เป็นเจ้าของ การหยุด VPN จำกัดเส้นทางหนึ่งเส้นทางในขณะหนึ่ง ไม่ใช่การเพิกถอน
การปลดล็อกย้ายความลับเข้าไปในเอเจนต์
เอเจนต์เก็บตัวตนที่ถอดรหัสแล้วไว้สำหรับการพิสูจน์ตัวตนในภายหลัง ผู้ใช้จึงไม่ต้องพิมพ์วลีรหัสซ้ำทุกการเชื่อมต่อ นี่คือความสะดวกที่มีขอบเขตความปลอดภัยของตัวเอง
ssh-agent จำกัดได้ว่าตัวตนจะถูกโหลดไว้นานเท่าใดผ่านตัวเลือก -t และการตั้งค่าของแต่ละตัวตนอาจเกินขอบเขตนั้นได้ จงเลือกนโยบายสำหรับเอเจนต์ที่คุณใช้งานจริง แทนที่จะสันนิษฐานว่าการตัดการเชื่อมต่อ VPN จะลืมคีย์ที่โหลดไว้ทุกตัว
กระบวนการที่ถูกบุกรุกหลังจากปลดล็อกคีย์เป็นปัญหาที่ต่างจากไฟล์ที่เข้ารหัสซึ่งถูกขโมย การส่งต่อเอเจนต์ไปยังโฮสต์อื่นมอบความสามารถในการพิสูจน์ตัวตนโดยไม่คัดลอกไฟล์คีย์ ดังนั้นเปิดใช้เฉพาะเมื่อมีความจำเป็นที่ได้รับอนุมัติ
ระบุสิ่งที่เอเจนต์ถืออยู่ในขณะนี้ก่อนและหลังการเปลี่ยนแปลง:
ssh-add -l
งานที่ไม่มีผู้ดูแลต้องมีแผนของตัวเอง
งานตามกำหนดเวลาไม่สามารถตอบพรอมต์ได้ ต้องมีข้อตกลงข้อมูลรับรองของเครื่องที่ได้รับอนุมัติ และการเก็บความลับในการปลดล็อกไว้ในไดเรกทอรีเดียวกับคีย์ ซึ่งบัญชีเดียวกันอ่านได้ ไม่ได้สร้างขอบเขตที่สอง
ทำงานร่วมกับเจ้าของบริการเกี่ยวกับการส่งมอบความลับที่ได้รับการสนับสนุนหรือการทำงานบนฮาร์ดแวร์ และครอบคลุมการต่ออายุ ความล้มเหลว และการกู้คืน การอยากให้มีคนอยู่ที่แป้นพิมพ์เปลี่ยนรูปลักษณ์ของความล้มเหลวเมื่อเทียบกับโฮสต์ที่บูตโดยไม่มีใครเฝ้าดู
รักษาการตรวจสอบตัวตนของโฮสต์บนเซิร์ฟเวอร์และข้อจำกัดของบัญชีไว้ด้วย เส้นทาง VPN ให้เส้นทางส่วนตัว แต่ไม่ได้พิสูจน์ว่าผู้ฟัง SSH ทุกรายที่คุณเข้าถึงคือโฮสต์ที่คุณตั้งใจ บันทึกผู้ฟังและลายนิ้วมือของคีย์โฮสต์ไว้ในทะเบียนเดียวกับคีย์เอง
ตรวจสอบขอบเขตแยกจากกัน
ทดสอบแต่ละขอบเขตด้วยคำถามของมันเอง ไฟล์เปิดได้โดยไม่มีวลีรหัสหรือไม่ เอเจนต์ยังถือตัวตนอยู่หลังตัดการเชื่อมต่อหรือไม่ เซิร์ฟเวอร์ยังยอมรับคีย์สาธารณะหรือไม่
สองคำสั่งตอบคำถามแรกและคำถามที่สาม:
ssh-keygen -y -f ~/.ssh/id_ed25519
ssh -v [email protected]
บันทึกการปกป้องไฟล์ การใช้คีย์ที่ได้รับอนุญาต และการลบบนฝั่งเซิร์ฟเวอร์เป็นสามรายการแยกกัน อุโมงค์ วลีรหัส และเอเจนต์ต่างปกป้องส่วนที่ต่างกันของความสัมพันธ์ และมีเพียงหนึ่งในนั้นที่เกี่ยวกับเครือข่าย