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

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

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

  • มีการเพิ่มการสนับสนุนการทดลองสำหรับวิธีการแลกเปลี่ยนคีย์ที่ทนทานต่อการโจมตีแบบ brute-force บนคอมพิวเตอร์ควอนตัมใน ssh และ sshd คอมพิวเตอร์ควอนตัมเร็วกว่าอย่างมากในการแก้ปัญหาการแบ่งจำนวนธรรมชาติให้เป็นปัจจัยเฉพาะ ซึ่งรองรับอัลกอริธึมการเข้ารหัสแบบอสมมาตรสมัยใหม่ และไม่สามารถแก้ไขได้อย่างมีประสิทธิภาพบนโปรเซสเซอร์แบบคลาสสิก วิธีการที่เสนอจะขึ้นอยู่กับอัลกอริธึม เอ็นทีอาร์ยู ไพร์ม (ฟังก์ชัน ntrup4591761) พัฒนาขึ้นสำหรับระบบเข้ารหัสหลังควอนตัม และวิธีการแลกเปลี่ยนคีย์วงรี X25519
  • ใน sshd คำสั่ง ListenAddress และ PermitOpen ไม่รองรับไวยากรณ์ "โฮสต์/พอร์ต" แบบเดิมอีกต่อไป ซึ่งถูกนำมาใช้ในปี 2001 เป็นทางเลือกแทน "host:port" เพื่อทำให้การทำงานกับ IPv6 ง่ายขึ้น ในสภาวะสมัยใหม่ ไวยากรณ์ "[::6]:1" ถูกสร้างขึ้นสำหรับ IPv22 และ "โฮสต์/พอร์ต" มักจะสับสนกับการระบุเครือข่ายย่อย (CIDR)
  • ssh, ssh-agent และ ssh-add ตอนนี้รองรับคีย์แล้ว ECDSA ในโทเค็น PKCS#11;
  • ใน ssh-keygen ขนาดคีย์ RSA เริ่มต้นจะเพิ่มขึ้นเป็น 3072 บิต ตามคำแนะนำใหม่ของ NIST
  • ssh อนุญาตให้ใช้การตั้งค่า "PKCS11Provider=none" เพื่อแทนที่คำสั่ง PKCS11Provider ที่ระบุใน ssh_config;
  • sshd จัดให้มีการแสดงบันทึกของสถานการณ์เมื่อการเชื่อมต่อถูกยกเลิกเมื่อพยายามดำเนินการคำสั่งที่ถูกบล็อกโดยข้อ จำกัด “ForceCommand=internal-sftp” ใน sshd_config;
  • ใน ssh เมื่อแสดงคำขอเพื่อยืนยันการยอมรับคีย์โฮสต์ใหม่ แทนที่จะตอบกลับว่า "ใช่" ขณะนี้ระบบยอมรับลายนิ้วมือที่ถูกต้องของคีย์แล้ว (เพื่อตอบสนองต่อคำเชิญเพื่อยืนยันการเชื่อมต่อ ผู้ใช้สามารถคัดลอก รับแฮชอ้างอิงแยกต่างหากผ่านคลิปบอร์ดเพื่อไม่ให้ทำการเปรียบเทียบด้วยตนเอง)
  • ssh-keygen ให้การเพิ่มหมายเลขลำดับใบรับรองโดยอัตโนมัติเมื่อสร้างลายเซ็นดิจิทัลสำหรับใบรับรองหลายใบบนบรรทัดคำสั่ง
  • มีการเพิ่มตัวเลือกใหม่ "-J" ให้กับ scp และ sftp ซึ่งเทียบเท่ากับการตั้งค่า ProxyJump
  • ใน ssh-agent, ssh-pkcs11-helper และ ssh-add มีการเพิ่มการประมวลผลตัวเลือกบรรทัดคำสั่ง "-v" เพื่อเพิ่มเนื้อหาข้อมูลของเอาต์พุต (เมื่อระบุ ตัวเลือกนี้จะถูกส่งไปยังกระบวนการลูก สำหรับ ตัวอย่าง เมื่อ ssh-pkcs11-helper ถูกเรียกจาก ssh-agent )
  • เพิ่มตัวเลือก "-T" ใน ssh-add เพื่อทดสอบความเหมาะสมของคีย์ใน ssh-agent สำหรับการดำเนินการสร้างลายเซ็นดิจิทัลและการดำเนินการตรวจสอบ
  • sftp-server ใช้การสนับสนุนสำหรับส่วนขยายโปรโตคอล "lsetstat at openssh.com" ซึ่งเพิ่มการรองรับสำหรับการดำเนินการ SSH2_FXP_SETSTAT สำหรับ SFTP แต่ไม่มีลิงก์สัญลักษณ์
  • เพิ่มตัวเลือก "-h" ให้กับ sftp เพื่อรันคำสั่ง chown/chgrp/chmod พร้อมคำขอที่ไม่ใช้ลิงก์สัญลักษณ์
  • sshd จัดเตรียมการตั้งค่าตัวแปรสภาพแวดล้อม $SSH_CONNECTION สำหรับ PAM
  • สำหรับ sshd มีการเพิ่มโหมดการจับคู่ "Match สุดท้าย" ลงใน ssh_config ซึ่งคล้ายกับ "Match canonical" แต่ไม่จำเป็นต้องเปิดใช้งานการทำให้ชื่อโฮสต์เป็นมาตรฐาน
  • เพิ่มการรองรับคำนำหน้า '@' เป็น sftp เพื่อปิดการแปลเอาต์พุตของคำสั่งที่ดำเนินการในโหมดแบตช์
  • เมื่อคุณแสดงเนื้อหาของใบรับรองโดยใช้คำสั่ง
    "ssh-keygen -Lf /path/certificate" ตอนนี้แสดงอัลกอริทึมที่ CA ใช้ในการตรวจสอบใบรับรอง

  • การสนับสนุนที่ได้รับการปรับปรุงสำหรับสภาพแวดล้อม Cygwin เช่น การเปรียบเทียบชื่อกลุ่มและชื่อผู้ใช้โดยไม่คำนึงถึงขนาดตัวพิมพ์ กระบวนการ sshd ในพอร์ต Cygwin ถูกเปลี่ยนเป็น cygsshd เพื่อหลีกเลี่ยงการรบกวนกับพอร์ต OpenSSH ที่ Microsoft จัดหาให้
  • เพิ่มความสามารถในการสร้างด้วยสาขา OpenSSL 3.x รุ่นทดลอง
  • ตกรอบแล้ว จุดอ่อน (CVE-2019-6111) ในการใช้งานยูทิลิตี้ scp ซึ่งอนุญาตให้เขียนทับไฟล์ที่กำหนดเองในไดเร็กทอรีเป้าหมายบนฝั่งไคลเอ็นต์เมื่อเข้าถึงเซิร์ฟเวอร์ที่ควบคุมโดยผู้โจมตี ปัญหาคือเมื่อใช้ scp เซิร์ฟเวอร์จะตัดสินใจว่าจะส่งไฟล์และไดเร็กทอรีใดไปยังไคลเอ็นต์ และไคลเอ็นต์จะตรวจสอบความถูกต้องของชื่ออ็อบเจ็กต์ที่ส่งคืนเท่านั้น การตรวจสอบฝั่งไคลเอ็นต์จำกัดอยู่เพียงการบล็อกการเดินทางที่อยู่นอกไดเรกทอรีปัจจุบัน (“../”) เท่านั้น แต่ไม่ได้คำนึงถึงการถ่ายโอนไฟล์ที่มีชื่อแตกต่างจากที่ร้องขอในตอนแรก ในกรณีของการคัดลอกแบบเรียกซ้ำ (-r) นอกเหนือจากชื่อไฟล์แล้ว คุณยังสามารถจัดการชื่อของไดเร็กทอรีย่อยในลักษณะเดียวกันได้ ตัวอย่างเช่น หากผู้ใช้คัดลอกไฟล์ไปยังโฮมไดเร็กตอรี่ เซิร์ฟเวอร์ที่ควบคุมโดยผู้โจมตีสามารถสร้างไฟล์ชื่อ .bash_aliases หรือ .ssh/authorized_keys แทนไฟล์ที่ร้องขอ และไฟล์เหล่านั้นจะถูกบันทึกโดยยูทิลิตี scp ในไฟล์ของผู้ใช้ โฮมไดเร็กทอรี

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

ที่มา: opennet.ru

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