หลังจากห้าเดือนของการพัฒนา
การเปลี่ยนแปลงที่สำคัญ:
- มีการเพิ่มการสนับสนุนการทดลองสำหรับวิธีการแลกเปลี่ยนคีย์ที่ทนทานต่อการโจมตีแบบ 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