การเปิดตัว OpenSSH 8.7

หลังจากสี่เดือนของการพัฒนา ได้มีการนำเสนอ OpenSSH 8.7 ซึ่งเป็นการใช้งานแบบเปิดของไคลเอ็นต์และเซิร์ฟเวอร์สำหรับการทำงานบนโปรโตคอล SSH 2.0 และ SFTP

การเปลี่ยนแปลงที่สำคัญ:

  • โหมดการถ่ายโอนข้อมูลทดลองได้ถูกเพิ่มให้กับ SCP โดยใช้โปรโตคอล SFTP แทนโปรโตคอล SCP/RCP แบบเดิม SFTP ใช้วิธีการจัดการชื่อที่คาดเดาได้มากขึ้น และไม่ใช้การประมวลผลเชลล์ของรูปแบบ glob ในฝั่งของโฮสต์อื่น ซึ่งทำให้เกิดปัญหาด้านความปลอดภัย หากต้องการเปิดใช้งาน SFTP ใน scp มีการเสนอแฟล็ก "-s" แต่ในอนาคตมีแผนที่จะเปลี่ยนไปใช้โปรโตคอลนี้ตามค่าเริ่มต้น
  • sftp-server ใช้ส่วนขยายกับโปรโตคอล SFTP เพื่อขยายเส้นทาง ~/ และ ~user/ ซึ่งจำเป็นสำหรับ scp
  • ยูทิลิตี scp ได้เปลี่ยนลักษณะการทำงานเมื่อคัดลอกไฟล์ระหว่างโฮสต์ระยะไกลสองโฮสต์ (เช่น “scp host-a:/path host-b:”) ซึ่งขณะนี้ดำเนินการตามค่าเริ่มต้นผ่านโฮสต์ภายในเครื่องระดับกลาง เช่นเดียวกับเมื่อระบุ “ -3” ธง วิธีนี้ช่วยให้คุณหลีกเลี่ยงการส่งข้อมูลรับรองที่ไม่จำเป็นไปยังโฮสต์แรกและการตีความชื่อไฟล์ในเชลล์สามครั้ง (บนฝั่งต้นทาง ปลายทาง และระบบภายในเครื่อง) และเมื่อใช้ SFTP จะช่วยให้คุณใช้วิธีการตรวจสอบสิทธิ์ทั้งหมดเมื่อเข้าถึงระยะไกล โฮสต์ และไม่ใช่แค่วิธีการที่ไม่โต้ตอบเท่านั้น เพิ่มตัวเลือก "-R" เพื่อคืนค่าลักษณะการทำงานแบบเก่า
  • เพิ่มการตั้งค่า ForkAfterAuthentication เป็น ssh ที่สอดคล้องกับแฟล็ก "-f"
  • เพิ่มการตั้งค่า StdinNull เป็น ssh ซึ่งสอดคล้องกับแฟล็ก "-n"
  • มีการเพิ่มการตั้งค่า SessionType ลงใน ssh ซึ่งคุณสามารถตั้งค่าโหมดที่สอดคล้องกับแฟล็ก "-N" (ไม่มีเซสชัน) และ "-s" (ระบบย่อย)
  • ssh-keygen ช่วยให้คุณระบุช่วงเวลาความถูกต้องของคีย์ในไฟล์คีย์
  • เพิ่มการตั้งค่าสถานะ "-Oprint-pubkey" ใน ssh-keygen เพื่อพิมพ์รหัสสาธารณะแบบเต็มซึ่งเป็นส่วนหนึ่งของลายเซ็น sshsig
  • ใน ssh และ sshd ทั้งไคลเอ็นต์และเซิร์ฟเวอร์ถูกย้ายเพื่อใช้ตัวแยกวิเคราะห์ไฟล์การกำหนดค่าที่เข้มงวดมากขึ้น ซึ่งใช้กฎคล้ายเชลล์สำหรับจัดการเครื่องหมายคำพูด ช่องว่าง และอักขระหลีก ตัวแยกวิเคราะห์ใหม่จะไม่ละเลยสมมติฐานที่ทำไว้ก่อนหน้านี้ เช่น การละเว้นอาร์กิวเมนต์ในตัวเลือก (เช่น คำสั่ง DenyUsers ไม่สามารถเว้นว่างได้อีกต่อไป) เครื่องหมายคำพูดที่ไม่ปิด และการระบุอักขระ = หลายตัว
  • เมื่อใช้บันทึก SSHFP DNS เมื่อตรวจสอบคีย์ ตอนนี้ ssh จะตรวจสอบบันทึกที่ตรงกันทั้งหมด ไม่ใช่แค่รายการที่มีลายเซ็นดิจิทัลประเภทใดประเภทหนึ่งโดยเฉพาะ
  • ใน ssh-keygen เมื่อสร้างคีย์ FIDO ด้วยตัวเลือก -Ochallenge เลเยอร์ในตัวจะถูกใช้สำหรับการแฮช แทนที่จะเป็น libfido2 ซึ่งอนุญาตให้ใช้ลำดับการท้าทายที่ใหญ่กว่าหรือเล็กกว่า 32 ไบต์
  • ใน sshd เมื่อประมวลผลคำสั่งสภาพแวดล้อม = "..." ในไฟล์authorized_keys ระบบจะยอมรับการจับคู่รายการแรกและจำกัดชื่อตัวแปรสภาพแวดล้อมไว้ที่ 1024 ชื่อ

นักพัฒนา OpenSSH ยังเตือนเกี่ยวกับการสลายตัวของอัลกอริทึมโดยใช้แฮช SHA-1 เนื่องจากประสิทธิภาพที่เพิ่มขึ้นของการโจมตีการชนกันด้วยคำนำหน้าที่กำหนด (ค่าใช้จ่ายในการเลือกการชนกันประมาณ 50 ดอลลาร์) ในรุ่นถัดไป เราวางแผนที่จะปิดใช้งานความสามารถในการใช้อัลกอริธึมลายเซ็นดิจิทัลของคีย์สาธารณะ "ssh-rsa" ตามค่าเริ่มต้น ซึ่งถูกกล่าวถึงใน RFC ดั้งเดิมสำหรับโปรโตคอล SSH และยังคงใช้กันอย่างแพร่หลายในทางปฏิบัติ

หากต้องการทดสอบการใช้ ssh-rsa บนระบบของคุณ คุณสามารถลองเชื่อมต่อผ่าน ssh ด้วยตัวเลือก “-oHostKeyAlgorithms=-ssh-rsa” ในเวลาเดียวกันการปิดใช้งานลายเซ็นดิจิทัล "ssh-rsa" ตามค่าเริ่มต้นไม่ได้หมายความว่าจะละทิ้งการใช้คีย์ RSA โดยสิ้นเชิง เนื่องจากนอกเหนือจาก SHA-1 แล้ว โปรโตคอล SSH ยังอนุญาตให้ใช้อัลกอริธึมการคำนวณแฮชอื่น ๆ โดยเฉพาะอย่างยิ่ง นอกเหนือจาก “ssh-rsa” แล้ว ยังคงสามารถใช้บันเดิล “rsa-sha2-256” (RSA/SHA256) และ “rsa-sha2-512” (RSA/SHA512) ได้

เพื่อให้การเปลี่ยนไปใช้อัลกอริธึมใหม่ราบรื่นขึ้น ก่อนหน้านี้ OpenSSH ได้เปิดใช้งานการตั้งค่า UpdateHostKeys เป็นค่าเริ่มต้น ซึ่งช่วยให้ไคลเอ็นต์สลับไปใช้อัลกอริธึมที่เชื่อถือได้มากขึ้นได้โดยอัตโนมัติ เมื่อใช้การตั้งค่านี้ ส่วนขยายโปรโตคอลพิเศษจะถูกเปิดใช้งาน “[ป้องกันอีเมล]" อนุญาตให้เซิร์ฟเวอร์แจ้งไคลเอ็นต์เกี่ยวกับคีย์โฮสต์ที่มีอยู่ทั้งหมดหลังจากการตรวจสอบสิทธิ์แล้ว ไคลเอ็นต์สามารถสะท้อนถึงคีย์เหล่านี้ในไฟล์ ~/.ssh/known_hosts ซึ่งอนุญาตให้อัปเดตคีย์โฮสต์และทำให้เปลี่ยนคีย์บนเซิร์ฟเวอร์ได้ง่ายขึ้น

การใช้ UpdateHostKeys ถูกจำกัดด้วยคำเตือนหลายประการที่อาจถูกลบออกในอนาคต: คีย์จะต้องอ้างอิงใน UserKnownHostsFile และไม่ได้ใช้ใน GlobalKnownHostsFile กุญแจจะต้องอยู่ภายใต้ชื่อเดียวเท่านั้น ไม่ควรใช้ใบรับรองคีย์โฮสต์ ในknown_hostsมาสก์ตามชื่อโฮสต์ไม่ควรใช้ ต้องปิดใช้งานการตั้งค่า VerifyHostKeyDNS พารามิเตอร์ UserKnownHostsFile ต้องใช้งานอยู่

อัลกอริธึมที่แนะนำสำหรับการย้ายข้อมูล ได้แก่ rsa-sha2-256/512 ที่ใช้ RFC8332 RSA SHA-2 (รองรับตั้งแต่ OpenSSH 7.2 และใช้เป็นค่าเริ่มต้น), ssh-ed25519 (รองรับตั้งแต่ OpenSSH 6.5) และ ecdsa-sha2-nistp256/384/521 บน RFC5656 ECDSA (รองรับตั้งแต่ OpenSSH 5.7)

ที่มา: opennet.ru

เพิ่มความคิดเห็น