OpenSSH เป็นโครงการซอฟต์แวร์โอเพนซอร์สและแจกจ่ายฟรีไลบรารีและโปรแกรมบรรทัดคำสั่งที่ทำงานในเบื้องหลังระบบปฏิบัติการ GNU / Linux ของคุณและปกป้องเครือข่ายทั้งหมดของคุณจากผู้บุกรุกและผู้บุกรุก เป็นเวอร์ชันโอเพ่นซอร์สของข้อกำหนด SSH (Secure Shell) ที่ออกแบบมาเฉพาะสำหรับ
คุณสมบัติได้อย่างรวดเร็ว
OpenSSH เป็นโครงการโอเพ่นซอร์สที่แจกจ่ายภายใต้สัญญาอนุญาตฟรี มีการเข้ารหัสตามคีย์สาธารณะคีย์การรับรองความถูกต้อง Kerberos และ One-Time Password การเข้ารหัสที่แข็งแกร่งตามขั้นตอนวิธี AES, Blowfish, Arcfour และ 3DES การสนับสนุนการส่งต่อ X11 จะสนับสนุนการเข้ารหัสข้อมูลการรับส่งข้อมูล X Window System ตลอดจน AFS และ บัตรผ่าน Kerberos
นอกจากนี้ซอฟต์แวร์ยังมีคุณลักษณะการสนับสนุนการส่งต่อพอร์ตด้วยการเข้ารหัสแชแนลสำหรับโปรโตคอลเดิมการสนับสนุนการบีบอัดข้อมูลการสนับสนุนการส่งต่อตัวแทนโดยใช้มาตรฐานการตรวจสอบสิทธิ์ Single-Sign-On (SSO) และเซิร์ฟเวอร์ SFTP (Secure FTP) และการสนับสนุนไคลเอ็นต์ทั้ง SSH2 หรือ SSH1 โปรโตคอล
คุณลักษณะที่น่าสนใจอีกประการหนึ่งคือการทำงานร่วมกันซึ่งหมายความว่าโครงการสอดคล้องกับโปรโตคอล SSH (Secure Shell) เวอร์ชัน 1.3, 1.5 และ 2.0 หลังจากการติดตั้ง OpenSSH จะแทนที่โปรแกรม FTP, Telnet, RCP และ rlogin มาตรฐานด้วยเวอร์ชันที่ปลอดภัยเช่น SFTP, SCP และ SSH
ภายใต้ฝากระโปรงความพร้อมใช้งานและระบบปฏิบัติการที่รองรับ
โครงการ OpenSSH เขียนขึ้นโดยใช้ภาษาซี (C) ประกอบด้วยการใช้ SSH หลักและภูต SSH ซึ่งทำงานอยู่เบื้องหลัง ซอฟต์แวร์นี้มีการแจกจ่ายเป็นแหล่งข้อมูลสากลซึ่งจะทำงานร่วมกับระบบปฏิบัติการ GNU / Linux บนสถาปัตยกรรม 32 บิตและ 64 บิต
OpenSSH แบบพกพา
โปรโตคอล OpenSSH แบบพกพาสามารถดาวน์โหลดได้จาก Softoware โดยไม่เสียค่าใช้จ่ายเรียกว่า OpenSSH แบบพกพา เป็นเวอร์ชันโอเพ่นซอร์สของ SSH เวอร์ชัน 1 และ SSH เวอร์ชัน 2 สำหรับโปรโตคอล Linux, BSD และ Solaris
มีอะไรใหม่ ในรุ่นนี้:
- การเปลี่ยนแปลงที่อาจเข้ากันไม่ได้:
- ฉบับนี้มีการเปลี่ยนแปลงหลายอย่างที่อาจส่งผลต่อการกำหนดค่าที่มีอยู่:
- รุ่นนี้จะยกเลิกการสนับสนุนเซิร์ฟเวอร์สำหรับโปรโตคอล SSH v.1
- ssh (1): ลบ 3des-cbc จากข้อเสนอเริ่มต้นของไคลเอ็นต์ รหัสลับของ 64 บิตไม่ปลอดภัยในปี 2016 และเราไม่ต้องการรอจนกว่าการโจมตีแบบ SWEET32 จะถูกขยายไปยัง SSH เนื่องจาก 3des-cbc เป็นตัวเลขที่บังคับเพียงอย่างเดียวใน RFC ของ SSH อาจทำให้เกิดปัญหาในการเชื่อมต่อกับอุปกรณ์รุ่นเก่าโดยใช้การกำหนดค่าเริ่มต้น แต่มีความเป็นไปได้สูงว่าอุปกรณ์ดังกล่าวจำเป็นต้องมีการกำหนดค่าที่ชัดเจนสำหรับอัลกอริธึมการแลกเปลี่ยนคีย์และคีย์โฮสก์อยู่แล้ว sshd (8): ลบการสนับสนุนสำหรับการบีบอัดข้อมูลรับรองก่อน การบีบอัดโปรโตคอลในช่วงต้นอาจดูเหมือนเหมาะสมในทศวรรษที่ 1990 แต่วันนี้เห็นได้ชัดว่าเป็นแนวคิดที่ไม่ดีทั้งด้านการเข้ารหัส (cf. การบีบอัด oracle attacks ใน TLS) และพื้นผิวการโจมตี การสนับสนุนการบีบอัดข้อมูลพร็อพเพอร์ตี้ถูกปิดใช้งานเป็นค่าเริ่มต้นสำหรับ & gt; 10 ปี การสนับสนุนยังคงอยู่ในไคลเอ็นต์ ssh-agent จะปฏิเสธที่จะโหลดโมดูล PKCS # 11 นอกเขตที่อนุญาตพิเศษของเส้นทางที่เชื่อถือได้โดยค่าเริ่มต้น รายการเส้นทางที่อนุญาตอาจระบุได้ในขณะดำเนินการ
- sshd (8): เมื่อคำสั่งบังคับปรากฏในทั้งใบรับรองและคำสั่ง / ข้อ จำกัด ของคีย์ / ผู้บังคับหลักที่ได้รับอนุญาต sshd จะปฏิเสธที่จะยอมรับใบรับรองเว้นแต่จะเหมือนกัน ลักษณะการทำงานก่อนหน้า (เอกสาร) ของการมีใบรับรองบังคับคำสั่งแทนที่อื่นอาจเป็นบิตสับสนและข้อผิดพลาดได้ง่าย sshd (8): ลบ directive การกำหนดค่า UseLogin และสนับสนุนการมี / bin / login จัดการเซสชันการเข้าสู่ระบบ
- การเปลี่ยนแปลงตั้งแต่ OpenSSH 7.3:
- การรักษาความปลอดภัย:
- ssh-agent (1): ตอนนี้จะปฏิเสธการโหลดโมดูล PKCS # 11 จากเส้นทางภายนอกที่เชื่อถือได้ (กำหนดเวลาทำงาน) การร้องขอการโหลดโมดูลอาจถูกส่งผ่านการส่งต่อตัวแทนและผู้บุกรุกสามารถโหลดโมดูล PKCS # 11 ที่ไม่เป็นมิตรไปยังช่องตัวแทนส่งต่อได้: โมดูล PKCS # 11 เป็นไลบรารีที่ใช้ร่วมกันดังนั้นจะทำให้เกิดการเรียกใช้โค้ดบนระบบที่รัน ssh -entent ถ้าผู้โจมตีมีสิทธิ์ควบคุมเซิร์ฟเวอร์ส่งต่อ (sshd server) และความสามารถในการเขียนลงในระบบไฟล์ของโฮสต์ที่รัน ssh-agent รายงานโดย Jann Horn โครงการ Zero.
- sshd (8): เมื่อการแยกสิทธิพิเศษถูกปิดใช้งานซ็อกเก็ตโดเมน Unix จะถูกสร้างขึ้นโดย sshd (8) โดยมีสิทธิพิเศษสำหรับ 'root' แทนผู้ใช้ที่ได้รับการรับรอง รุ่นนี้ปฏิเสธการส่งต่อซ็อกเก็ตโดเมนยูนิกซ์เมื่อมีการปิดใช้งานการแยกสิทธิพิเศษ (การแยกสิทธิพิเศษได้เปิดใช้งานเป็นค่าเริ่มต้นเป็นเวลา 14 ปี) รายงานโดย Jann Horn โครงการ Zero.
- sshd (8): หลีกเลี่ยงการรั่วไหลทางทฤษฎีของเนื้อหาคีย์ส่วนตัวของโฮสต์ไปสู่กระบวนการลูกที่แยกย่อยจากสิทธิพิเศษผ่านทาง realloc () เมื่ออ่านคีย์ ไม่มีการรั่วไหลดังกล่าวได้รับการปฏิบัติในทางปฏิบัติสำหรับคีย์ขนาดปกติหรือการรั่วไหลของกระบวนการเด็กโดยตรงเผยเนื้อหาที่สำคัญให้กับผู้ใช้ที่ไม่มีสิทธิ์ รายงานโดย Jann Horn โครงการ Zero.
- sshd (8): ตัวจัดการหน่วยความจำที่ใช้ร่วมกันที่ใช้โดยการสนับสนุนการบีบอัดข้อมูลก่อนการตรวจสอบมีการตรวจสอบขอบเขตที่อาจถูก elided โดยคอมไพเลอร์ optimizing บางอย่าง นอกจากนี้ตัวจัดการหน่วยความจำนี้ไม่สามารถเข้าถึงได้อย่างถูกต้องเมื่อมีการปิดใช้งานการบีบอัดก่อนการรับรองความถูกต้อง การดำเนินการนี้อาจทำให้เกิดการโจมตีจากกระบวนการตรวจสอบที่ได้รับการยกเว้นจากกระบวนการแยกส่วนสิทธิ์แบบแซนด์บ็อกซ์ (ต้องมีการประนีประนอมก่อน) รุ่นนี้นำการสนับสนุนสำหรับการบีบอัดข้อมูลก่อนการตรวจสอบจาก sshd (8) รายงานโดย Guido Vranken โดยใช้เครื่องมือระบุเอกลักษณ์การเพิ่มประสิทธิภาพ Stack ที่ไม่เสถียร (http://css.csail.mit.edu/stack/)
- sshd (8): แก้ไขเงื่อนไขการปฏิเสธการให้บริการโดยผู้โจมตีที่ส่งข้อความ KEXINIT หลายข้อความอาจใช้งานได้ถึง 128MB ต่อการเชื่อมต่อ รายงานโดย Shi Lei of Gear Team, Qihoo 360
- sshd (8): ตรวจสอบช่วงที่อยู่สำหรับผู้ใช้ AllowUser และ DenyUsers ในขณะโหลดคอนฟิกูเรชันและปฏิเสธที่จะยอมรับข้อมูลที่ไม่ถูกต้อง ก่อนหน้านี้สามารถระบุช่วงที่อยู่ CIDR ที่ไม่ถูกต้องได้ (เช่น user@127.1.2.3/55) และข้อมูลเหล่านี้มักจะตรงกันซึ่งอาจทำให้เกิดการเข้าถึงที่ไม่ได้ตั้งใจ รายงานโดย Laurence Parry
- คุณลักษณะใหม่:
- ssh (1): เพิ่มโหมดพร็อกซี multiplexing ลงใน ssh (1) โดยได้รับแรงบันดาลใจจาก PuTTY ของ Simon Tatham ซึ่งจะช่วยให้ลูกค้ามัลติเพล็กซ์สามารถสื่อสารกับกระบวนการหลักโดยใช้เซ็ตย่อยของโปรโตคอล SSH packet และโปรโตคอลช่องทางผ่านซ็อกเก็ตโดเมนยูนิกซ์โดยมีกระบวนการหลักที่ทำหน้าที่เป็นพร็อกซี่ที่แปลรหัสช่อง ฯลฯ ซึ่งจะช่วยให้โหมดมัลติเพล็กซ์สามารถทำงานได้ (ที่ใช้โดยรหัสมัลติเพิลปัจจุบัน) และอาจร่วมกับการส่งต่อซ็อกเก็ตโดเมนยูนิกซ์กับไคลเอนต์และกระบวนการต้นแบบมัลติเพล็กซิ่งบนเครื่องอื่น โหมดพร็อกซีแบบหลายสายอาจถูกเรียกใช้โดยใช้ & quot; ssh -O proxy ... & quot;
- sshd (8): เพิ่มตัวเลือก DisableForwarding ของ sshd_config ที่ปิดใช้งานการส่งต่อโดเมนซ็อกเก็ต X11, ตัวแทน, TCP, อุโมงค์และโดเมน Unix ตลอดจนสิ่งอื่นที่เราอาจใช้ในอนาคต เช่นเดียวกับแฟล็ก authorized_keys 'restrict' นี่เป็นเพียงวิธีที่ง่ายและไม่ จำกัด ในการ จำกัด บัญชี
- sshd (8), ssh (1): สนับสนุน & quot; curve25519-sha256 & quot; วิธีการแลกเปลี่ยนคีย์ วิธีนี้เหมือนกับวิธีที่ได้รับการสนับสนุนในปัจจุบันที่ชื่อว่า & quot; curve25519-sha256@libssh.org".
- sshd (8): ปรับปรุงการจัดการ SIGHUP โดยการตรวจสอบเพื่อดูว่า sshd มีอยู่แล้ว daemonised เมื่อเริ่มต้นและข้ามสายไปยัง daemon (3) ถ้ามีอยู่ ซึ่งจะทำให้แน่ใจได้ว่าการรีสตาร์ท SIGHUP ของ sshd (8) จะเก็บรหัสกระบวนการเดียวกันไว้ในการดำเนินการครั้งแรก sshd (8) จะยกเลิกการเชื่อมโยงไฟล์ PidFile ก่อนรีสตาร์ท SIGHUP และสร้างใหม่หลังจากรีสตาร์ทสำเร็จแทนที่จะปล่อยไฟล์ค้างไว้ในกรณีที่มีข้อผิดพลาดในการกำหนดค่า BZ # 2641
- sshd (8): อนุญาตให้ directive ClientAliveInterval และ ClientAliveCountMax ปรากฏในบล็อคการจับคู่ sshd_config
- sshd (8): เพิ่ม% -escapes to AuthorizedPrincipalsCommand เพื่อจับคู่กับ AuthenticKeysCommand (คีย์ประเภทคีย์ลายนิ้วมือ ฯลฯ ) และอีกสองสามข้อเพื่อให้สามารถเข้าถึงเนื้อหาของใบรับรองที่นำเสนอ
- เพิ่มการทดสอบการถดถอยสำหรับการจับคู่สตริงการจับคู่ที่อยู่และฟังก์ชันการล้างข้อมูลสตริง
- ปรับปรุงชุดสายรัดที่มีการแลกเปลี่ยนกุญแจแล้ว
- การแก้ไขข้อบกพร่อง:
- ssh (1): อนุญาตให้ IdentityFile โหลดและใช้งานใบรับรองที่ไม่มีคีย์สาธารณะแบบเปลือยที่สอดคล้องกัน bz # 2617 certificate id_rsa-cert.pub (และไม่มี id_rsa.pub)
- ssh (1): แก้ไขการรับรองความถูกต้องของคีย์สาธารณะเมื่อมีการใช้การตรวจสอบสิทธิ์หลายรายการและ publickey ไม่ใช่วิธีแรกที่พยายาม BZ # 2642
- ถอยหลัง: อนุญาตให้การทดสอบ interop ของ PuTTY ทำงานโดยไม่ต้องใส่ BZ # 2639
- ssh-agent (1), ssh (1): ปรับปรุงรายงานเมื่อพยายามโหลดคีย์จากโทเค็น PKCS # 11 ด้วยข้อความบันทึกที่ไร้ประโยชน์น้อยกว่าและรายละเอียดเพิ่มเติมในข้อความดีบัก BZ # 2610
- ssh (1): เมื่อฉีกขาดการเชื่อมต่อ ControlMaster อย่าก่อให้เกิดมลพิษเมื่อ stderr เมื่อ LogLevel = quiet
- sftp (1): เมื่อ ^ Z รอให้ ssh (1) อยู่ภายใต้การระงับชั่วคราวก่อนที่จะระงับ SFTP (1) เพื่อให้แน่ใจว่า ssh (1) คืนค่าโหมดเทอร์มินัลอย่างถูกต้องหากถูกระงับไว้ในระหว่างการป้อนรหัสผ่าน
- ssh (1): หลีกเลี่ยงการรอสักครู่เมื่อ ssh (1) ถูกระงับในระหว่างการถามรหัสผ่าน
- ssh (1), sshd (8): รายงานข้อผิดพลาดอย่างถูกต้องระหว่างการส่งข้อความเสริม
- sshd (8): แก้ไข NULL-deref crash ถ้า sshd (8) ได้รับข้อความ NEWKEYS แบบไม่อยู่ในลำดับต่อไป
- sshd (8): แก้ไขรายการอัลกอริทึมลายเซ็นที่ได้รับการสนับสนุนที่ส่งมาในส่วนขยาย server-sig-algs BZ # 2547
- sshd (8): แก้ไขข้อความที่ส่ง ext_info ถ้า privsep ถูกปิดใช้งาน
- sshd (8): บังคับให้ใช้การตรวจสอบการตรวจสอบการแยกส่วนสิทธิ์ที่กำหนดไว้สำหรับการตรวจสอบสิทธิ์และอนุญาตให้ใช้เฉพาะเมื่อมีการเปิดใช้งานวิธีการตรวจสอบสิทธิ์ในการกำหนดค่า
- sshd (8): แก้ไข unlenitialised optlen ใน getsockopt () call; ไม่เป็นอันตรายต่อ Unix / BSD แต่อาจเกิดปัญหา Cygwin ได้
- แก้ไขรายงานเชิงบวกที่เกิดจาก explicit_bzero (3) ไม่ได้รับการยอมรับว่าเป็นผู้ริเริ่มหน่วยความจำเมื่อคอมไพล์ด้วย -fsanitize-memory sshd_config (5): ใช้ 2001: db8 :: / 32, subnet IPv6 อย่างเป็นทางการสำหรับตัวอย่างการกำหนดค่า
- Portability:
- ในสภาพแวดล้อมที่กำหนดค่าไว้ในตำแหน่งที่ตั้งของตุรกีโปรดย้อนกลับไปที่ตำแหน่ง C / POSIX เพื่อหลีกเลี่ยงข้อผิดพลาดในการแยกวิเคราะห์คอนฟิกูเรชันเนื่องจากการจัดการตัวอักษร 'i' และ 'i' ของที่ต่างๆใน locale BZ # 2643
- sftp-server (8), ssh-agent (1): ปฏิเสธ ptrace บน OS X โดยใช้ ptrace (PT_DENY_ATTACH, .. )
- ssh (1), sshd (8): ยับยั้ง AES-CTR ของ Cipher บนเวอร์ชันเก่า (~ 0.9.8) OpenSSL
- แก้ไขการคอมไพล์สำหรับ libcrypto ที่รวบรวมโดยไม่สนับสนุน RIPEMD160
- contrib: เพิ่ม gnome-ssh-askpass3 ด้วยการสนับสนุน GTK + 3 bz # 2640 sshd (8): ปรับปรุง PRng reseeding ในการแยกสิทธิและบังคับ libcrypto เพื่อให้ได้เมล็ดที่มีคุณภาพสูงก่อน chroot หรือ sandboxing
- ทั้งหมด: ทดสอบโดยชัดแจ้งสำหรับ strnvis ที่เสีย NetBSD เพิ่ม strnvis และน่าเสียดายที่ทำให้ไม่สามารถใช้งานได้กับ OpenBSD และ Linux libbsd (เดิมเคยมีมานานกว่าสิบปี) พยายามตรวจหาระเบียบนี้และถือว่าเป็นตัวเลือกที่ปลอดภัยเฉพาะเมื่อเรารวบรวมข้อมูลข้าม
มีอะไรใหม่ ในเวอร์ชัน:
- การเปลี่ยนแปลงที่อาจเข้ากันไม่ได้:
- ฉบับนี้มีการเปลี่ยนแปลงหลายอย่างที่อาจส่งผลต่อการกำหนดค่าที่มีอยู่:
- รุ่นนี้จะยกเลิกการสนับสนุนเซิร์ฟเวอร์สำหรับโปรโตคอล SSH v.1
- ssh (1): ลบ 3des-cbc จากข้อเสนอเริ่มต้นของไคลเอ็นต์ รหัสลับของ 64 บิตไม่ปลอดภัยในปี 2016 และเราไม่ต้องการรอจนกว่าการโจมตีแบบ SWEET32 จะถูกขยายไปยัง SSH เนื่องจาก 3des-cbc เป็นตัวเลขที่บังคับเพียงอย่างเดียวใน RFC ของ SSH อาจทำให้เกิดปัญหาในการเชื่อมต่อกับอุปกรณ์รุ่นเก่าโดยใช้การกำหนดค่าเริ่มต้น แต่มีความเป็นไปได้สูงว่าอุปกรณ์ดังกล่าวจำเป็นต้องมีการกำหนดค่าที่ชัดเจนสำหรับอัลกอริธึมการแลกเปลี่ยนคีย์และคีย์โฮสก์อยู่แล้ว sshd (8): ลบการสนับสนุนสำหรับการบีบอัดข้อมูลรับรองก่อน การบีบอัดโปรโตคอลในช่วงต้นอาจดูเหมือนเหมาะสมในทศวรรษที่ 1990 แต่วันนี้เห็นได้ชัดว่าเป็นแนวคิดที่ไม่ดีทั้งด้านการเข้ารหัส (cf. การบีบอัด oracle attacks ใน TLS) และพื้นผิวการโจมตี การสนับสนุนการบีบอัดข้อมูลพร็อพเพอร์ตี้ถูกปิดใช้งานเป็นค่าเริ่มต้นสำหรับ & gt; 10 ปี การสนับสนุนยังคงอยู่ในไคลเอ็นต์ ssh-agent จะปฏิเสธที่จะโหลดโมดูล PKCS # 11 นอกเขตที่อนุญาตพิเศษของเส้นทางที่เชื่อถือได้โดยค่าเริ่มต้น รายการเส้นทางที่อนุญาตอาจระบุได้ในขณะดำเนินการ
- sshd (8): เมื่อคำสั่งบังคับปรากฏในทั้งใบรับรองและคำสั่ง / ข้อ จำกัด ของคีย์ / ผู้บังคับหลักที่ได้รับอนุญาต sshd จะปฏิเสธที่จะยอมรับใบรับรองเว้นแต่จะเหมือนกัน ลักษณะการทำงานก่อนหน้า (เอกสาร) ของการมีใบรับรองบังคับคำสั่งแทนที่อื่นอาจเป็นบิตสับสนและข้อผิดพลาดได้ง่าย sshd (8): ลบ directive การกำหนดค่า UseLogin และสนับสนุนการมี / bin / login จัดการเซสชันการเข้าสู่ระบบ
- การเปลี่ยนแปลงตั้งแต่ OpenSSH 7.3:
- การรักษาความปลอดภัย:
- ssh-agent (1): ตอนนี้จะปฏิเสธการโหลดโมดูล PKCS # 11 จากเส้นทางภายนอกที่เชื่อถือได้ (กำหนดเวลาทำงาน) การร้องขอการโหลดโมดูลอาจถูกส่งผ่านการส่งต่อตัวแทนและผู้บุกรุกสามารถโหลดโมดูล PKCS # 11 ที่ไม่เป็นมิตรไปยังช่องตัวแทนส่งต่อได้: โมดูล PKCS # 11 เป็นไลบรารีที่ใช้ร่วมกันดังนั้นจะทำให้เกิดการเรียกใช้โค้ดบนระบบที่รัน ssh -entent ถ้าผู้โจมตีมีสิทธิ์ควบคุมเซิร์ฟเวอร์ส่งต่อ (sshd server) และความสามารถในการเขียนลงในระบบไฟล์ของโฮสต์ที่รัน ssh-agent รายงานโดย Jann Horn โครงการ Zero.
- sshd (8): เมื่อการแยกสิทธิพิเศษถูกปิดใช้งานซ็อกเก็ตโดเมน Unix จะถูกสร้างขึ้นโดย sshd (8) โดยมีสิทธิพิเศษสำหรับ 'root' แทนผู้ใช้ที่ได้รับการรับรอง รุ่นนี้ปฏิเสธการส่งต่อซ็อกเก็ตโดเมนยูนิกซ์เมื่อมีการปิดใช้งานการแยกสิทธิพิเศษ (การแยกสิทธิพิเศษได้เปิดใช้งานเป็นค่าเริ่มต้นเป็นเวลา 14 ปี) รายงานโดย Jann Horn โครงการ Zero.
- sshd (8): หลีกเลี่ยงการรั่วไหลทางทฤษฎีของเนื้อหาคีย์ส่วนตัวของโฮสต์ไปสู่กระบวนการลูกที่แยกย่อยจากสิทธิพิเศษผ่านทาง realloc () เมื่ออ่านคีย์ ไม่มีการรั่วไหลดังกล่าวได้รับการปฏิบัติในทางปฏิบัติสำหรับคีย์ขนาดปกติหรือการรั่วไหลของกระบวนการเด็กโดยตรงเผยเนื้อหาที่สำคัญให้กับผู้ใช้ที่ไม่มีสิทธิ์ รายงานโดย Jann Horn โครงการ Zero.
- sshd (8): ตัวจัดการหน่วยความจำที่ใช้ร่วมกันที่ใช้โดยการสนับสนุนการบีบอัดข้อมูลก่อนการตรวจสอบมีการตรวจสอบขอบเขตที่อาจถูก elided โดยคอมไพเลอร์ optimizing บางอย่าง นอกจากนี้ตัวจัดการหน่วยความจำนี้ไม่สามารถเข้าถึงได้อย่างถูกต้องเมื่อมีการปิดใช้งานการบีบอัดก่อนการรับรองความถูกต้อง การดำเนินการนี้อาจทำให้เกิดการโจมตีจากกระบวนการตรวจสอบที่ได้รับการยกเว้นจากกระบวนการแยกส่วนสิทธิ์แบบแซนด์บ็อกซ์ (ต้องมีการประนีประนอมก่อน) รุ่นนี้นำการสนับสนุนสำหรับการบีบอัดข้อมูลก่อนการตรวจสอบจาก sshd (8) รายงานโดย Guido Vranken โดยใช้เครื่องมือระบุเอกลักษณ์การเพิ่มประสิทธิภาพ Stack ที่ไม่เสถียร (http://css.csail.mit.edu/stack/)
- sshd (8): แก้ไขเงื่อนไขการปฏิเสธการให้บริการโดยผู้โจมตีที่ส่งข้อความ KEXINIT หลายข้อความอาจใช้งานได้ถึง 128MB ต่อการเชื่อมต่อ รายงานโดย Shi Lei of Gear Team, Qihoo 360
- sshd (8): ตรวจสอบช่วงที่อยู่สำหรับผู้ใช้ AllowUser และ DenyUsers ในขณะโหลดคอนฟิกูเรชันและปฏิเสธที่จะยอมรับข้อมูลที่ไม่ถูกต้อง ก่อนหน้านี้สามารถระบุช่วงที่อยู่ CIDR ที่ไม่ถูกต้องได้ (เช่น user@127.1.2.3/55) และข้อมูลเหล่านี้มักจะตรงกันซึ่งอาจทำให้เกิดการเข้าถึงที่ไม่ได้ตั้งใจ รายงานโดย Laurence Parry
- คุณลักษณะใหม่:
- ssh (1): เพิ่มโหมดพร็อกซี multiplexing ลงใน ssh (1) โดยได้รับแรงบันดาลใจจาก PuTTY ของ Simon Tatham ซึ่งจะช่วยให้ลูกค้ามัลติเพล็กซ์สามารถสื่อสารกับกระบวนการหลักโดยใช้เซ็ตย่อยของโปรโตคอล SSH packet และโปรโตคอลช่องทางผ่านซ็อกเก็ตโดเมนยูนิกซ์โดยมีกระบวนการหลักที่ทำหน้าที่เป็นพร็อกซี่ที่แปลรหัสช่อง ฯลฯ ซึ่งจะช่วยให้โหมดมัลติเพล็กซ์สามารถทำงานได้ (ที่ใช้โดยรหัสมัลติเพิลปัจจุบัน) และอาจร่วมกับการส่งต่อซ็อกเก็ตโดเมนยูนิกซ์กับไคลเอนต์และกระบวนการต้นแบบมัลติเพล็กซิ่งบนเครื่องอื่น โหมดพร็อกซีแบบหลายสายอาจถูกเรียกใช้โดยใช้ & quot; ssh -O proxy ... & quot;
- sshd (8): เพิ่มตัวเลือก DisableForwarding ของ sshd_config ที่ปิดใช้งานการส่งต่อโดเมนซ็อกเก็ต X11, ตัวแทน, TCP, อุโมงค์และโดเมน Unix ตลอดจนสิ่งอื่นที่เราอาจใช้ในอนาคต เช่นเดียวกับแฟล็ก authorized_keys 'restrict' นี่เป็นเพียงวิธีที่ง่ายและไม่ จำกัด ในการ จำกัด บัญชี
- sshd (8), ssh (1): สนับสนุน & quot; curve25519-sha256 & quot; วิธีการแลกเปลี่ยนคีย์ วิธีนี้เหมือนกับวิธีที่ได้รับการสนับสนุนในปัจจุบันที่ชื่อว่า & quot; curve25519-sha256@libssh.org".
- sshd (8): ปรับปรุงการจัดการ SIGHUP โดยการตรวจสอบเพื่อดูว่า sshd มีอยู่แล้ว daemonised เมื่อเริ่มต้นและข้ามสายไปยัง daemon (3) ถ้ามีอยู่ ซึ่งจะทำให้แน่ใจได้ว่าการรีสตาร์ท SIGHUP ของ sshd (8) จะเก็บรหัสกระบวนการเดียวกันไว้ในการดำเนินการครั้งแรก sshd (8) จะยกเลิกการเชื่อมโยงไฟล์ PidFile ก่อนรีสตาร์ท SIGHUP และสร้างใหม่หลังจากรีสตาร์ทสำเร็จแทนที่จะปล่อยไฟล์ค้างไว้ในกรณีที่มีข้อผิดพลาดในการกำหนดค่า BZ # 2641
- sshd (8): อนุญาตให้ directive ClientAliveInterval และ ClientAliveCountMax ปรากฏในบล็อคการจับคู่ sshd_config
- sshd (8): เพิ่ม% -escapes to AuthorizedPrincipalsCommand เพื่อจับคู่กับ AuthenticKeysCommand (คีย์ประเภทคีย์ลายนิ้วมือ ฯลฯ ) และอีกสองสามข้อเพื่อให้สามารถเข้าถึงเนื้อหาของใบรับรองที่นำเสนอ
- เพิ่มการทดสอบการถดถอยสำหรับการจับคู่สตริงการจับคู่ที่อยู่และฟังก์ชันการล้างข้อมูลสตริง
- ปรับปรุงชุดสายรัดที่มีการแลกเปลี่ยนกุญแจแล้ว
- การแก้ไขข้อบกพร่อง:
- ssh (1): อนุญาตให้ IdentityFile โหลดและใช้งานใบรับรองที่ไม่มีคีย์สาธารณะแบบเปลือยที่สอดคล้องกัน bz # 2617 certificate id_rsa-cert.pub (และไม่มี id_rsa.pub)
- ssh (1): แก้ไขการรับรองความถูกต้องของคีย์สาธารณะเมื่อมีการใช้การตรวจสอบสิทธิ์หลายรายการและ publickey ไม่ใช่วิธีแรกที่พยายาม BZ # 2642
- ถอยหลัง: อนุญาตให้การทดสอบ interop ของ PuTTY ทำงานโดยไม่ต้องใส่ BZ # 2639
- ssh-agent (1), ssh (1): ปรับปรุงรายงานเมื่อพยายามโหลดคีย์จากโทเค็น PKCS # 11 ด้วยข้อความบันทึกที่ไร้ประโยชน์น้อยกว่าและรายละเอียดเพิ่มเติมในข้อความดีบัก BZ # 2610
- ssh (1): เมื่อฉีกขาดการเชื่อมต่อ ControlMaster อย่าก่อให้เกิดมลพิษเมื่อ stderr เมื่อ LogLevel = quiet
- sftp (1): เมื่อ ^ Z รอให้ ssh (1) อยู่ภายใต้การระงับชั่วคราวก่อนที่จะระงับ SFTP (1) เพื่อให้แน่ใจว่า ssh (1) คืนค่าโหมดเทอร์มินัลอย่างถูกต้องหากถูกระงับไว้ในระหว่างการป้อนรหัสผ่าน
- ssh (1): หลีกเลี่ยงการรอสักครู่เมื่อ ssh (1) ถูกระงับในระหว่างการถามรหัสผ่าน
- ssh (1), sshd (8): รายงานข้อผิดพลาดอย่างถูกต้องระหว่างการส่งข้อความเสริม
- sshd (8): แก้ไข NULL-deref crash ถ้า sshd (8) ได้รับข้อความ NEWKEYS แบบไม่อยู่ในลำดับต่อไป
- sshd (8): แก้ไขรายการอัลกอริทึมลายเซ็นที่ได้รับการสนับสนุนที่ส่งมาในส่วนขยาย server-sig-algs BZ # 2547
- sshd (8): แก้ไขข้อความที่ส่ง ext_info ถ้า privsep ถูกปิดใช้งาน
- sshd (8): บังคับให้ใช้การตรวจสอบการตรวจสอบการแยกส่วนสิทธิ์ที่กำหนดไว้สำหรับการตรวจสอบสิทธิ์และอนุญาตให้ใช้เฉพาะเมื่อมีการเปิดใช้งานวิธีการตรวจสอบสิทธิ์ในการกำหนดค่า
- sshd (8): แก้ไข unlenitialised optlen ใน getsockopt () call; ไม่เป็นอันตรายต่อ Unix / BSD แต่อาจเกิดปัญหา Cygwin ได้
- แก้ไขรายงานเชิงบวกที่เกิดจาก explicit_bzero (3) ไม่ได้รับการยอมรับว่าเป็นผู้ริเริ่มหน่วยความจำเมื่อคอมไพล์ด้วย -fsanitize-memory sshd_config (5): ใช้ 2001: db8 :: / 32, subnet IPv6 อย่างเป็นทางการสำหรับตัวอย่างการกำหนดค่า
- Portability:
- ในสภาพแวดล้อมที่กำหนดค่าไว้ในตำแหน่งที่ตั้งของตุรกีโปรดย้อนกลับไปที่ตำแหน่ง C / POSIX เพื่อหลีกเลี่ยงข้อผิดพลาดในการแยกวิเคราะห์คอนฟิกูเรชันเนื่องจากการจัดการตัวอักษร 'i' และ 'i' ของที่ต่างๆใน locale BZ # 2643
- sftp-server (8), ssh-agent (1): ปฏิเสธ ptrace บน OS X โดยใช้ ptrace (PT_DENY_ATTACH, .. )
- ssh (1), sshd (8): ยับยั้ง AES-CTR ของ Cipher บนเวอร์ชันเก่า (~ 0.9.8) OpenSSL
- แก้ไขการคอมไพล์สำหรับ libcrypto ที่รวบรวมโดยไม่สนับสนุน RIPEMD160
- contrib: เพิ่ม gnome-ssh-askpass3 ด้วยการสนับสนุน GTK + 3 bz # 2640 sshd (8): ปรับปรุง PRng reseeding ในการแยกสิทธิและบังคับ libcrypto เพื่อให้ได้เมล็ดที่มีคุณภาพสูงก่อน chroot หรือ sandboxing
- ทั้งหมด: ทดสอบโดยชัดแจ้งสำหรับ strnvis ที่เสีย NetBSD เพิ่ม strnvis และน่าเสียดายที่ทำให้ไม่สามารถใช้งานได้กับ OpenBSD และ Linux libbsd (เดิมเคยมีมานานกว่าสิบปี) พยายามตรวจหาระเบียบนี้และถือว่าเป็นตัวเลือกที่ปลอดภัยเฉพาะเมื่อเรารวบรวมข้อมูลข้าม
- การเปลี่ยนแปลงที่อาจเข้ากันไม่ได้:
- ฉบับนี้มีการเปลี่ยนแปลงหลายอย่างที่อาจส่งผลต่อการกำหนดค่าที่มีอยู่:
- รุ่นนี้จะยกเลิกการสนับสนุนเซิร์ฟเวอร์สำหรับโปรโตคอล SSH v.1
- ssh (1): ลบ 3des-cbc จากข้อเสนอเริ่มต้นของไคลเอ็นต์ รหัสลับของ 64 บิตไม่ปลอดภัยในปี 2016 และเราไม่ต้องการรอจนกว่าการโจมตีแบบ SWEET32 จะถูกขยายไปยัง SSH เนื่องจาก 3des-cbc เป็นตัวเลขที่บังคับเพียงอย่างเดียวใน RFC ของ SSH อาจทำให้เกิดปัญหาในการเชื่อมต่อกับอุปกรณ์รุ่นเก่าโดยใช้การกำหนดค่าเริ่มต้น แต่มีความเป็นไปได้สูงว่าอุปกรณ์ดังกล่าวจำเป็นต้องมีการกำหนดค่าที่ชัดเจนสำหรับอัลกอริธึมการแลกเปลี่ยนคีย์และคีย์โฮสก์อยู่แล้ว sshd (8): ลบการสนับสนุนสำหรับการบีบอัดข้อมูลรับรองก่อน การบีบอัดโปรโตคอลในช่วงต้นอาจดูเหมือนเหมาะสมในทศวรรษที่ 1990 แต่วันนี้เห็นได้ชัดว่าเป็นแนวคิดที่ไม่ดีทั้งด้านการเข้ารหัส (cf. การบีบอัด oracle attacks ใน TLS) และพื้นผิวการโจมตี การสนับสนุนการบีบอัดข้อมูลพร็อพเพอร์ตี้ถูกปิดใช้งานเป็นค่าเริ่มต้นสำหรับ & gt; 10 ปี การสนับสนุนยังคงอยู่ในไคลเอ็นต์ ssh-agent จะปฏิเสธที่จะโหลดโมดูล PKCS # 11 นอกเขตที่อนุญาตพิเศษของเส้นทางที่เชื่อถือได้โดยค่าเริ่มต้น รายการเส้นทางที่อนุญาตอาจระบุได้ในขณะดำเนินการ
- sshd (8): เมื่อคำสั่งบังคับปรากฏในทั้งใบรับรองและคำสั่ง / ข้อ จำกัด ของคีย์ / ผู้บังคับหลักที่ได้รับอนุญาต sshd จะปฏิเสธที่จะยอมรับใบรับรองเว้นแต่จะเหมือนกัน ลักษณะการทำงานก่อนหน้า (เอกสาร) ของการมีใบรับรองบังคับคำสั่งแทนที่อื่นอาจเป็นบิตสับสนและข้อผิดพลาดได้ง่าย sshd (8): ลบ directive การกำหนดค่า UseLogin และสนับสนุนการมี / bin / login จัดการเซสชันการเข้าสู่ระบบ
- การเปลี่ยนแปลงตั้งแต่ OpenSSH 7.3:
- การรักษาความปลอดภัย:
- ssh-agent (1): ตอนนี้จะปฏิเสธการโหลดโมดูล PKCS # 11 จากเส้นทางภายนอกที่เชื่อถือได้ (กำหนดเวลาทำงาน) การร้องขอการโหลดโมดูลอาจถูกส่งผ่านการส่งต่อตัวแทนและผู้บุกรุกสามารถโหลดโมดูล PKCS # 11 ที่ไม่เป็นมิตรไปยังช่องตัวแทนส่งต่อได้: โมดูล PKCS # 11 เป็นไลบรารีที่ใช้ร่วมกันดังนั้นจะทำให้เกิดการเรียกใช้โค้ดบนระบบที่รัน ssh -entent ถ้าผู้โจมตีมีสิทธิ์ควบคุมเซิร์ฟเวอร์ส่งต่อ (sshd server) และความสามารถในการเขียนลงในระบบไฟล์ของโฮสต์ที่รัน ssh-agent รายงานโดย Jann Horn โครงการ Zero.
- sshd (8): เมื่อการแยกสิทธิพิเศษถูกปิดใช้งานซ็อกเก็ตโดเมน Unix จะถูกสร้างขึ้นโดย sshd (8) โดยมีสิทธิพิเศษสำหรับ 'root' แทนผู้ใช้ที่ได้รับการรับรอง รุ่นนี้ปฏิเสธการส่งต่อซ็อกเก็ตโดเมนยูนิกซ์เมื่อมีการปิดใช้งานการแยกสิทธิพิเศษ (การแยกสิทธิพิเศษได้เปิดใช้งานเป็นค่าเริ่มต้นเป็นเวลา 14 ปี) รายงานโดย Jann Horn โครงการ Zero.
- sshd (8): หลีกเลี่ยงการรั่วไหลทางทฤษฎีของเนื้อหาคีย์ส่วนตัวของโฮสต์ไปสู่กระบวนการลูกที่แยกย่อยจากสิทธิพิเศษผ่านทาง realloc () เมื่ออ่านคีย์ ไม่มีการรั่วไหลดังกล่าวได้รับการปฏิบัติในทางปฏิบัติสำหรับคีย์ขนาดปกติหรือการรั่วไหลของกระบวนการเด็กโดยตรงเผยเนื้อหาที่สำคัญให้กับผู้ใช้ที่ไม่มีสิทธิ์ รายงานโดย Jann Horn โครงการ Zero.
- sshd (8): ตัวจัดการหน่วยความจำที่ใช้ร่วมกันที่ใช้โดยการสนับสนุนการบีบอัดข้อมูลก่อนการตรวจสอบมีการตรวจสอบขอบเขตที่อาจถูก elided โดยคอมไพเลอร์ optimizing บางอย่าง นอกจากนี้ตัวจัดการหน่วยความจำนี้ไม่สามารถเข้าถึงได้อย่างถูกต้องเมื่อมีการปิดใช้งานการบีบอัดก่อนการรับรองความถูกต้อง การดำเนินการนี้อาจทำให้เกิดการโจมตีจากกระบวนการตรวจสอบที่ได้รับการยกเว้นจากกระบวนการแยกส่วนสิทธิ์แบบแซนด์บ็อกซ์ (ต้องมีการประนีประนอมก่อน) รุ่นนี้นำการสนับสนุนสำหรับการบีบอัดข้อมูลก่อนการตรวจสอบจาก sshd (8) รายงานโดย Guido Vranken โดยใช้เครื่องมือระบุเอกลักษณ์การเพิ่มประสิทธิภาพ Stack ที่ไม่เสถียร (http://css.csail.mit.edu/stack/)
- sshd (8): แก้ไขเงื่อนไขการปฏิเสธการให้บริการโดยผู้โจมตีที่ส่งข้อความ KEXINIT หลายข้อความอาจใช้งานได้ถึง 128MB ต่อการเชื่อมต่อ รายงานโดย Shi Lei of Gear Team, Qihoo 360
- sshd (8): ตรวจสอบช่วงที่อยู่สำหรับผู้ใช้ AllowUser และ DenyUsers ในขณะโหลดคอนฟิกูเรชันและปฏิเสธที่จะยอมรับข้อมูลที่ไม่ถูกต้อง ก่อนหน้านี้สามารถระบุช่วงที่อยู่ CIDR ที่ไม่ถูกต้องได้ (เช่น user@127.1.2.3/55) และข้อมูลเหล่านี้มักจะตรงกันซึ่งอาจทำให้เกิดการเข้าถึงที่ไม่ได้ตั้งใจ รายงานโดย Laurence Parry
- คุณลักษณะใหม่:
- ssh (1): เพิ่มโหมดพร็อกซี multiplexing ลงใน ssh (1) โดยได้รับแรงบันดาลใจจาก PuTTY ของ Simon Tatham ซึ่งจะช่วยให้ลูกค้ามัลติเพล็กซ์สามารถสื่อสารกับกระบวนการหลักโดยใช้เซ็ตย่อยของโปรโตคอล SSH packet และโปรโตคอลช่องทางผ่านซ็อกเก็ตโดเมนยูนิกซ์โดยมีกระบวนการหลักที่ทำหน้าที่เป็นพร็อกซี่ที่แปลรหัสช่อง ฯลฯ ซึ่งจะช่วยให้โหมดมัลติเพล็กซ์สามารถทำงานได้ (ที่ใช้โดยรหัสมัลติเพิลปัจจุบัน) และอาจร่วมกับการส่งต่อซ็อกเก็ตโดเมนยูนิกซ์กับไคลเอนต์และกระบวนการต้นแบบมัลติเพล็กซิ่งบนเครื่องอื่น โหมดพร็อกซีแบบมัลติเพล็กซ์อาจถูกเรียกใช้ "ssh -O proxy ... "
- sshd (8): เพิ่มตัวเลือก DisableForwarding ของ sshd_config ที่ปิดใช้งานการส่งต่อโดเมนซ็อกเก็ต X11, ตัวแทน, TCP, อุโมงค์และโดเมน Unix ตลอดจนสิ่งอื่นที่เราอาจใช้ในอนาคต เช่นเดียวกับแฟล็ก authorized_keys 'restrict' นี่เป็นเพียงวิธีที่ง่ายและไม่ จำกัด ในการ จำกัด บัญชี
- sshd (8), ssh (1): สนับสนุนวิธีการแลกเปลี่ยนคีย์ "curve25519-sha256" วิธีนี้เหมือนกับวิธีที่สนับสนุนในปัจจุบันชื่อ "curve25519-sha256@libssh.org"
- sshd (8): ปรับปรุงการจัดการ SIGHUP โดยการตรวจสอบเพื่อดูว่า sshd มีอยู่แล้ว daemonised เมื่อเริ่มต้นและข้ามสายไปยัง daemon (3) ถ้ามีอยู่ ซึ่งจะทำให้แน่ใจได้ว่าการรีสตาร์ท SIGHUP ของ sshd (8) จะเก็บรหัสกระบวนการเดียวกันไว้ในการดำเนินการครั้งแรก sshd (8) จะยกเลิกการเชื่อมโยงไฟล์ PidFile ก่อนรีสตาร์ท SIGHUP และสร้างใหม่หลังจากรีสตาร์ทสำเร็จแทนที่จะปล่อยไฟล์ค้างไว้ในกรณีที่มีข้อผิดพลาดในการกำหนดค่า BZ # 2641
- sshd (8): อนุญาตให้ directive ClientAliveInterval และ ClientAliveCountMax ปรากฏในบล็อคการจับคู่ sshd_config
- sshd (8): เพิ่ม% -escapes to AuthorizedPrincipalsCommand เพื่อจับคู่กับ AuthenticKeysCommand (คีย์ประเภทคีย์ลายนิ้วมือ ฯลฯ ) และอีกสองสามข้อเพื่อให้สามารถเข้าถึงเนื้อหาของใบรับรองที่นำเสนอ
- เพิ่มการทดสอบการถดถอยสำหรับการจับคู่สตริงการจับคู่ที่อยู่และฟังก์ชันการล้างข้อมูลสตริง
- ปรับปรุงชุดสายรัดที่มีการแลกเปลี่ยนกุญแจแล้ว
- การแก้ไขข้อบกพร่อง:
- ssh (1): อนุญาตให้ IdentityFile โหลดและใช้งานใบรับรองที่ไม่มีคีย์สาธารณะแบบเปลือยที่สอดคล้องกัน bz # 2617 certificate id_rsa-cert.pub (และไม่มี id_rsa.pub)
- ssh (1): แก้ไขการรับรองความถูกต้องของคีย์สาธารณะเมื่อมีการใช้การตรวจสอบสิทธิ์หลายรายการและ publickey ไม่ใช่วิธีแรกที่พยายาม BZ # 2642
- ถอยหลัง: อนุญาตให้การทดสอบ interop ของ PuTTY ทำงานโดยไม่ต้องใส่ BZ # 2639
- ssh-agent (1), ssh (1): ปรับปรุงรายงานเมื่อพยายามโหลดคีย์จากโทเค็น PKCS # 11 ด้วยข้อความบันทึกที่ไร้ประโยชน์น้อยกว่าและรายละเอียดเพิ่มเติมในข้อความดีบัก BZ # 2610
- ssh (1): เมื่อฉีกขาดการเชื่อมต่อ ControlMaster อย่าก่อให้เกิดมลพิษเมื่อ stderr เมื่อ LogLevel = quiet
- sftp (1): เมื่อ ^ Z รอให้ ssh (1) อยู่ภายใต้การระงับชั่วคราวก่อนที่จะระงับ SFTP (1) เพื่อให้แน่ใจว่า ssh (1) คืนค่าโหมดเทอร์มินัลอย่างถูกต้องหากถูกระงับไว้ในระหว่างการป้อนรหัสผ่าน
- ssh (1): หลีกเลี่ยงการรอสักครู่เมื่อ ssh (1) ถูกระงับในระหว่างการถามรหัสผ่าน
- ssh (1), sshd (8): รายงานข้อผิดพลาดอย่างถูกต้องระหว่างการส่งข้อความเสริม
- sshd (8): แก้ไข NULL-deref crash ถ้า sshd (8) ได้รับข้อความ NEWKEYS แบบไม่อยู่ในลำดับต่อไป
- sshd (8): แก้ไขรายการอัลกอริทึมลายเซ็นที่ได้รับการสนับสนุนที่ส่งมาในส่วนขยาย server-sig-algs BZ # 2547
- sshd (8): แก้ไขข้อความที่ส่ง ext_info ถ้า privsep ถูกปิดใช้งาน
- sshd (8): บังคับให้ใช้การตรวจสอบการตรวจสอบการแยกส่วนสิทธิ์ที่กำหนดไว้สำหรับการตรวจสอบสิทธิ์และอนุญาตให้ใช้เฉพาะเมื่อมีการเปิดใช้งานวิธีการตรวจสอบสิทธิ์ในการกำหนดค่า
- sshd (8): แก้ไข unlenitialised optlen ใน getsockopt () call; ไม่เป็นอันตรายต่อ Unix / BSD แต่อาจเกิดปัญหา Cygwin ได้
- แก้ไขรายงานเชิงบวกที่เกิดจาก explicit_bzero (3) ไม่ได้รับการยอมรับว่าเป็นผู้ริเริ่มหน่วยความจำเมื่อคอมไพล์ด้วย -fsanitize-memory sshd_config (5): ใช้ 2001: db8 :: / 32, subnet IPv6 อย่างเป็นทางการสำหรับตัวอย่างการกำหนดค่า
- Portability:
- ในสภาพแวดล้อมที่กำหนดค่าไว้ในตำแหน่งที่ตั้งของตุรกีโปรดย้อนกลับไปที่ตำแหน่ง C / POSIX เพื่อหลีกเลี่ยงข้อผิดพลาดในการแยกวิเคราะห์คอนฟิกูเรชันเนื่องจากการจัดการตัวอักษร 'i' และ 'i' ของที่ต่างๆใน locale BZ # 2643
- sftp-server (8), ssh-agent (1): ปฏิเสธ ptrace บน OS X โดยใช้ ptrace (PT_DENY_ATTACH, .. )
- ssh (1), sshd (8): ยับยั้ง AES-CTR ของ Cipher บนเวอร์ชันเก่า (~ 0.9.8) OpenSSL
- แก้ไขการคอมไพล์สำหรับ libcrypto ที่รวบรวมโดยไม่สนับสนุน RIPEMD160
- contrib: เพิ่ม gnome-ssh-askpass3 ที่มีการสนับสนุน GTK + 3 bz # 2640 sshd (8): ปรับปรุง PRng reseeding ในการแยกสิทธิและบังคับ libcrypto เพื่อให้ได้เมล็ดที่มีคุณภาพสูงก่อน chroot หรือ sandboxing
- ทั้งหมด: ทดสอบโดยชัดแจ้งสำหรับ strnvis ที่เสีย NetBSD เพิ่ม strnvis และน่าเสียดายที่ทำให้ไม่สามารถใช้งานได้กับ OpenBSD และ Linux libbsd (เดิมเคยมีมานานกว่าสิบปี) พยายามตรวจหาระเบียบนี้และถือว่าเป็นตัวเลือกที่ปลอดภัยเฉพาะเมื่อเรารวบรวมข้อมูลข้าม
- การรักษาความปลอดภัย:
- sshd (8): ลดการโจมตีแบบปฏิเสธการให้บริการที่อาจเกิดขึ้นกับระบบฝังศพใต้ถุนโบสถ์ (3) ผ่านทาง sshd (8) ผู้บุกรุกสามารถส่งรหัสผ่านที่ยาวมากซึ่งอาจทำให้เกิดการใช้งาน CPU มากเกินไปในห้องฝังศพ (3) sshd (8) ปฏิเสธที่จะยอมรับคำขอการตรวจสอบรหัสผ่านที่มีความยาวมากกว่า 1024 ตัว รายงานอย่างเป็นอิสระจาก Tomas Kuthan (Oracle) Andres Rojas และ Javier Nieto
- sshd (8): ลดความแตกต่างของเวลาในการตรวจสอบสิทธิ์รหัสผ่านซึ่งสามารถใช้เพื่อแยกแยะได้จากชื่อบัญชีที่ไม่ถูกต้องเมื่อมีการใช้รหัสผ่านที่ยาวนานและใช้อัลกอริทึมการเข้ารหัสลับรหัสผ่านเฉพาะบนเซิร์ฟเวอร์ CVE-2016-6210 รายงานโดย EddieEzra.Harari ที่ verint.com
- ssh (1), sshd (8): แก้ไขจุดอ่อนเวลาที่สังเกตเห็นได้ในการตอบโต้ของ Oracle Craft padding รายงานโดย Jean Paul Degabriele, Kenny Paterson, Torben Hansen และ Martin Albrecht โปรดทราบว่า ciphers CBC จะถูกปิดใช้งานโดยค่าเริ่มต้นและรวมเฉพาะสำหรับความเข้ากันได้เก่า
- ssh (1), sshd (8): ปรับปรุงการสั่งการของ MAC การตรวจสอบสำหรับโหมดการเข้ารหัส MAC แบบเข้ารหัสลับ - แล้ว - MAC (EtM) เพื่อยืนยัน MAC ก่อนถอดรหัส ciphertext ใด ๆ นี้จะลบความเป็นไปได้ของความแตกต่างเวลารั่วข้อเท็จจริงเกี่ยวกับ plaintext แม้ว่าจะไม่มีการรั่วไหลดังกล่าวได้รับการปฏิบัติ รายงานโดย Jean Paul Degabriele, Kenny Paterson, Torben Hansen และ Martin Albrecht sshd (8): (แบบพกพาเท่านั้น) ละเว้น VAR สภาพแวดล้อมของ PAM เมื่อ UseLogin = ใช่ ถ้า PAM มีการกำหนดค่าให้อ่านตัวแปรสภาพแวดล้อมที่ระบุโดยผู้ใช้และ UseLogin = yes ใน sshd_config ผู้ใช้ท้องถิ่นที่ไม่เป็นมิตรอาจโจมตี / bin / ล็อกอินผ่าน LD_PRELOAD หรือตัวแปรสภาพแวดล้อมที่คล้ายคลึงกันซึ่งกำหนดผ่าน PAM CVE-2015-8325 พบโดย Shayan Sadigh
- คุณลักษณะใหม่:
- ssh (1): เพิ่มตัวเลือก ProxyJump และธงบรรทัดคำสั่งที่สอดคล้องกันของ J เพื่อให้การกำหนดเส้นทางที่ง่ายขึ้นผ่านหนึ่งหรือหลายศุลกากร SSH หรือ "กระโดดโฮสต์"
- ssh (1): เพิ่มตัวเลือก IdentityAgent เพื่ออนุญาตให้ระบุซ็อกเก็ตตัวแทนเฉพาะแทนที่จะยอมรับหนึ่งจากสภาวะแวดล้อม ssh (1): อนุญาตให้ ExitOnForwardFailure และ ClearAllForwardings ที่จะถูกแทนที่ด้วยเมื่อใช้ ssh -W BZ # 2577
- ssh (1), sshd (8): ใช้การสนับสนุนโหมดเทอร์มินัล IUTF8 ตาม draft-sgtatham-secsh-iutf8-00 ssh (1), sshd (8): เพิ่มการสนับสนุนสำหรับ Diffie-Hellman เพิ่มเติม 2K, 4K และ 8K จาก draft-ietf-curdle-ssh-kex-sha2-03
- ssh-keygen (1), ssh (1), sshd (8): สนับสนุนลายเซ็น RSA ของ SHA256 และ SHA512 ในใบรับรอง ssh (1): เพิ่มคำสั่ง Include สำหรับไฟล์ ssh_config (5)
- ssh (1): อนุญาตอักขระ UTF-8 ในแบนเนอร์การตรวจสอบสิทธิ์ที่ส่งมาจากเซิร์ฟเวอร์ BZ # 2058
- การแก้ไขข้อบกพร่อง:
- ssh (1), sshd (8): ลดระดับ syslog ของเหตุการณ์โปรโตคอลทั่วไปบางอย่างจาก LOG_CRIT BZ # 2585
- sshd (8): Refuse AuthenticationMethods = "" ในการกำหนดค่าและยอมรับ AuthenticationMethods = ใด ๆ สำหรับการทำงานดีฟอลต์โดยไม่ต้องมีการตรวจสอบสิทธิ์หลายรายการ BZ # 2398
- sshd (8): ลบข้อมูลที่ล้าสมัยและทำให้เข้าใจผิด "โอกาสที่จะได้รับการอัปโหลด!" ข้อผิดพลาดเมื่อ DNS ส่งต่อและย้อนกลับไม่ตรงกัน BZ # 2585
- ssh (1): ปิด Controller พื้นหลังกระบวนการ stderr ยกเว้นในโหมดดีบักหรือเมื่อเข้าสู่ระบบ syslog BZ # 1988
- misc: สร้างคำอธิบาย PROTOCOL สำหรับ direct -streamlocal@openssh.com ข้อความเปิดช่องให้ตรงกับรหัสที่มีการใช้งาน BZ # 2529
- ssh (1): ล้างข้อมูลรายการ LocalForward และ RemoteForward เพื่อแก้ไขความล้มเหลวเมื่อเปิดใช้งานทั้งระบบ ExitOnForwardFailure และการตั้งชื่อผู้ดูแลระบบ (hostname canonicalisation) BZ # 2562
- sshd (8): ลบ fallback จาก modul ไปเป็นไฟล์ "primes" ล้าสมัยซึ่งเลิกใช้แล้วในปี 2001 bz # 2559
- sshd_config (5): คำอธิบายที่ถูกต้องของ UseDNS: มีผลต่อการประมวลผล SSH host_name สำหรับ authorized_keys ไม่ใช่ known_hosts; bz # 2554 ssh (1): แก้ไขการตรวจสอบสิทธิ์โดยใช้คีย์ใบรับรองเดี่ยวในเอเจนต์โดยไม่มีคีย์ส่วนตัวในระบบแฟ้ม BZ # 2550
- sshd (8): ส่ง Ping ClientAliveInterval เมื่อตั้ง RekeyLimit ตามเวลา; แพ็คเก็ต keepalive ก่อนหน้านี้ไม่ได้ถูกส่ง BZ # 2252
- การรักษาความปลอดภัย:
- ssh (1), sshd (8): ลบรหัสสัญจรที่ยังไม่ใช้และไม่ได้ใช้ (ถูกปิดใช้งานอยู่แล้วใน OpenSSH 7.1p2)
- ssh (1): ลดการถอยกลับจากการส่งต่อ X11 ที่ไม่น่าเชื่อถือไปยังการส่งต่อที่เชื่อถือได้เมื่อเซิร์ฟเวอร์ X ปิดใช้งานการขยาย SECURITY
- ssh (1), sshd (8): เพิ่มขนาดโมดูลัสต่ำสุดที่รองรับสำหรับ diffie-hellman-group-exchange ถึง 2048 บิต
- sshd (8): sandboxing ก่อนการเปิดใช้งานถูกเปิดใช้งานโดยค่าเริ่มต้น (ก่อนหน้าเผยแพร่เปิดใช้งานการติดตั้งใหม่ผ่านทาง sshd_config)
- คุณลักษณะใหม่:
- ทั้งหมด: เพิ่มการสนับสนุนลายเซ็น RSA โดยใช้อัลกอริทึมแฮช SHA-256/512 ตาม draft-rsa-dsa-sha2-256-03.txt และ draft-ssh-ext-info-04.txt
- ssh (1): เพิ่มตัวเลือกไคลเอ็นต์ AddKeysToAgent ซึ่งสามารถตั้งค่าเป็น 'yes', 'no', 'ask' หรือ 'confirm' และค่าเริ่มต้นเป็น 'no' เมื่อเปิดใช้งานคีย์ส่วนตัวที่ใช้ระหว่างการรับรองความถูกต้องจะถูกเพิ่มลงใน ssh-agent ถ้าทำงานอยู่ (โดยมีการยืนยันการเปิดใช้งานหากตั้งค่าเป็น 'confirm')
- sshd (8): เพิ่มตัวเลือก authorized_keys ใหม่ "restrict" ซึ่งรวมถึงข้อ จำกัด ที่สำคัญในปัจจุบันและในอนาคต (no - * - forwarding ฯลฯ ) นอกจากนี้โปรดเพิ่มข้อ จำกัด ที่มีอยู่ในเวอร์ชันที่อนุญาตเช่น "no-pty" - & gt; "Pty" การดำเนินการนี้จะช่วยลดความยุ่งยากในการตั้งค่าคีย์ที่ จำกัด และทำให้แน่ใจได้ว่าพวกเขาจะถูก จำกัด อย่างสูงสุดโดยไม่คำนึงถึงสิทธิ์ที่เราอาจใช้ในอนาคต ssh (1): เพิ่มตัวเลือก CertificateFile ssh_config เพื่อแสดงรายการใบรับรองอย่างชัดเจน BZ # 2436
- ssh-keygen (1): อนุญาตให้ ssh-keygen เปลี่ยนความคิดเห็นที่สำคัญสำหรับรูปแบบที่สนับสนุนทั้งหมด
- ssh-keygen (1): อนุญาตการพิมพ์ลายนิ้วมือจากอินพุตมาตรฐานเช่น "ssh-keygen -lf -"
- ssh-keygen (1): อนุญาตการพิมพ์ลายนิ้วมือคีย์สาธารณะหลายรายการในไฟล์เช่น "ssh-keygen -lf ~ / .ssh / authorized_keys" bz # 1319
- sshd (8): สนับสนุน "none" เป็นอาร์กิวเมนต์สำหรับ Foreground และ ChrootDirectory ของ sshd_config มีประโยชน์ในการจับคู่การบล็อกเพื่อแทนที่ค่าดีฟอลต์ของโลก BZ # 2486
- ssh-keygen (1): สนับสนุนหลายใบรับรอง (หนึ่งรายการต่อบรรทัด) และอ่านจากอินพุตมาตรฐาน (ใช้ "-f-") สำหรับ "ssh-keygen -L" ssh-keyscan (1): เพิ่ม "ssh- keyscan -c ... "เพื่ออนุญาตให้เรียกใบรับรองแทนที่จะใช้คีย์ลัด
- ssh (1): จัดการ FQDNs ที่ยึดไว้ได้ดีกว่า (เช่น 'cvs.openbsd.org.') ในการตั้งชื่อโฮสต์ใหม่ - ปฏิบัติกับพวกเขาในรูปแบบบัญญัติและลบ '.' ก่อนที่จะจับคู่ ssh_config
- การแก้ไขข้อบกพร่อง:
- SFTP (1): ไดเรกทอรีปลายทางที่มีอยู่ไม่ควรยุติการอัปโหลดซ้ำ (การถดถอยใน openssh 6.8) bz # 2528
- ssh (1), sshd (8): ส่งกลับ SSH2_MSG_UNIMPLEMENTED การตอบกลับข้อความที่ไม่คาดคิดระหว่างการแลกเปลี่ยนคีย์ BZ # 2949
- ssh (1): ปฏิเสธการพยายามตั้ง ConnectionAttempts = 0 ซึ่งไม่สมเหตุผลและจะทำให้ ssh พิมพ์ตัวแปร stack uninitialised BZ # 2500
- ssh (1): แก้ไขข้อผิดพลาดขณะพยายามเชื่อมต่อกับที่อยู่ IPv6 ที่กำหนดด้วยการเปิดใช้งานชื่อโฮสต์ที่ตั้งค่าไว้
- sshd_config (5): แสดงตัวเลือกเพิ่มเติมอีกสองสามตัวที่สามารถใช้งานได้ใน Match blocks BZ # 2489
- sshd (8): แก้ไข "PubkeyAcceptedKeyTypes + ... " ภายในบล็อกการจับคู่ ssh (1): ขยายตัวตัวหนอนในชื่อไฟล์ที่ส่งผ่านไปยัง -i ตัวเลือกก่อนที่จะตรวจสอบว่าไฟล์ข้อมูลประจำตัวนั้นมีอยู่หรือไม่ หลีกเลี่ยงความสับสนในกรณีที่เปลือกไม่ขยาย (เช่น "-i ~ / file" กับ "-i ~ / file") BZ # 2481
- ssh (1): อย่าใช้คำสั่ง "exec" กับคำสั่งเชลล์ที่เรียกใช้โดย "Match exec" ในไฟล์ config ซึ่งอาจทำให้คำสั่งบางคำล้มเหลวในบางสภาพแวดล้อม BZ # 2471
- ssh-keyscan (1): แก้ไขเอาท์พุทสำหรับโฮสต์หลายเครื่อง / addrs ในหนึ่งบรรทัดเมื่อโฮสต์ hashing หรือพอร์ตที่ไม่ใช่มาตรฐานใช้งานอยู่ # bz 2479
- sshd (8): ข้าม "ไม่สามารถไดเรกทอรี chdir ไปยังบ้าน" เมื่อ ChrootDirectory ทำงานอยู่ BZ # 2485
- ssh (1): รวม PubkeyAcceptedKeyTypes ใน ssh -G config dump sshd (8): หลีกเลี่ยงการเปลี่ยนค่าอุปกรณ์ของ TunnelForwarding หากมีสิ่งที่จำเป็นแล้ว ทำให้สามารถใช้เครือข่าย tun / tap ในฐานะผู้ใช้ที่ไม่ใช่ root หากมีการตั้งค่าสิทธิ์อุปกรณ์และอินเทอร์เฟซไว้ล่วงหน้า
- ssh (1), sshd (8): RekeyLimits อาจเกินหนึ่งแพ็กเก็ต BZ # 2521
- ssh (1): แก้ไขความล้มเหลวของ master แบบมัลติเพิลเพื่อแจ้งให้ทราบทางออกของลูกค้า
- ssh (1), ssh-agent (1): หลีกเลี่ยงการเสียชีวิต () สำหรับโทเค็น PKCS11 ที่แสดง ID คีย์ที่ว่างเปล่า BZ # 1773
- sshd (8): หลีกเลี่ยง printf ของอาร์กิวเมนต์ NULL BZ # 2535
- ssh (1), sshd (8): อนุญาตให้ RekeyLimits มีขนาดใหญ่กว่า 4GB BZ # 2521
- ssh-keygen (1): sshd (8): แก้ไขข้อผิดพลาดหลายอย่างในการสนับสนุนลายเซ็น KRL (ไม่ได้ใช้)
- ssh (1), sshd (8): แก้ไขการเชื่อมต่อกับเพื่อนที่ใช้คุณลักษณะเดาการแลกเปลี่ยนคีย์ของโปรโตคอล BZ # 2515
- sshd (8): รวมหมายเลขพอร์ตแบบรีโมตในข้อความบันทึก BZ # 2503
- ssh (1): อย่าพยายามโหลดคีย์ส่วนตัว SSHv1 เมื่อคอมไพล์โดยไม่มี SSHv1 support BZ # 2505
- ssh-agent (1), ssh (1): แก้ไขข้อความแสดงข้อผิดพลาดที่ไม่ถูกต้องระหว่างการโหลดและเซ็นต์ข้อผิดพลาดที่สำคัญ BZ # 2507
- ssh-keygen (1): อย่าปล่อยให้ไฟล์ชั่วคราวว่างเปล่าเมื่อดำเนินการไฟล์ known_hosts เมื่อไม่มี known_hosts
- sshd (8): รูปแบบแพ็กเก็ตที่ถูกต้องสำหรับการตอบกลับ tcpip forward สำหรับคำขอที่ไม่จัดสรรพอร์ต bz # 2509
- ssh (1), sshd (8): แก้ไขปัญหาได้เมื่อเอาต์พุตปิด bz # 2469 ssh (1): ขยาย% i ใน ControlPath ไปที่ UID BZ # 2449
- ssh (1), sshd (8): แก้ไขประเภทการส่งคืน openssh_RSA_verify BZ # 2460
- ssh (1), sshd (8): แก้ไขตัวเลือกการแยกวิเคราะห์การรั่วไหลของหน่วยความจำ BZ # 2182
- ssh (1): เพิ่มเอาต์พุตการแก้ปัญหาบางอย่างก่อนที่จะมีการแก้ปัญหา DNS; เป็นที่ที่ ssh เคยใช้งานอยู่ก่อนหน้านี้อย่างเงียบ ๆ ในกรณีที่เซิร์ฟเวอร์ DNS ไม่ตอบสนอง bz # 2433 ssh (1): ลบบรรทัดใหม่ที่ปลอมแปลงใน host ที่มองเห็น BZ # 2686
- ssh (1): แก้ไขการพิมพ์ (ssh -G ... ) ของ HostKeyAlgorithms = + ...
- ssh (1): แก้ไขการขยายตัวของ HostkeyAlgorithms = + ...
- เอกสารอ้างอิง:
- ssh_config (5), sshd_config (5): อัปเดตรายการอัลกอริธึมค่าเริ่มต้นเพื่อให้ตรงกับความเป็นจริงในปัจจุบัน BZ # 2527
- ssh (1): พูดถึงตัวเลือกการค้นหาคีย์ - ธรรมดา Q และคีย์ย่อย - Q BZ # 2455
- sshd_config (8): อธิบายได้ชัดเจนขึ้นว่า AuthorizedKeysFile = ไม่มีเลย
- ssh_config (5): ดีกว่าเอกสาร ExitOnForwardFailure BZ # 2444
- sshd (5): พูดถึงกลุ่ม fallout ภายใน DH-GEX ในคู่มือ BZ # 2302
- sshd_config (5): คำอธิบายที่ดีสำหรับตัวเลือก MaxSessions BZ # 2531
- Portability:
- ssh (1), sftp-server (8), ssh-agent (1), sshd (8): สนับสนุนสิทธิพิเศษของ Illumos / Solaris แบบละเอียด รวมถึง sandbox privsep ก่อนการรับรองและการเลียนแบบหลายสัญญา () BZ # 2511
- ปรับปรุง redhat / openssh.spec การลบตัวเลือกและไวยากรณ์ที่เลิกใช้แล้ว
- กำหนดค่า: อนุญาต - ไม่มีเครื่องยนต์ ssl ด้วย --without-openssl
- sshd (8): แก้ไขการตรวจสอบสิทธิ์หลายรายการโดยใช้ S / Key BZ # 2502
- sshd (8): อ่านกลับจาก libcrypto RAND_before dropping privileges หลีกเลี่ยงการทำแซนด์บ็อกซ์กับ BoringSSL
- แก้ไขการชนกันของชื่อโดยใช้ฟังก์ชัน glob (3) ที่ระบบให้ไว้ BZ # 2463
- ปรับแต่ง Makefile เพื่อใช้ ssh-keygen -A เมื่อสร้างคีย์โฮสต์ BZ # 2459
- configure: แก้ไขค่าดีฟอลต์สำหรับ - with-ssh1 bz # 2457
- กำหนดค่า: การตรวจหา _res สัญลักษณ์ bz # 2259 ที่ดีขึ้น
- สนับสนุน getrandom () syscall บน Linux
- การรักษาความปลอดภัย:
- sshd (8): OpenSSH 7.0 มีข้อผิดพลาดทางตรรกะใน PermitRootLogin = prohibit-password / without-password ซึ่งอาจขึ้นอยู่กับการกำหนดค่าคอมไพล์เวลาอนุญาตให้ใช้การตรวจสอบรหัสผ่านกับ root ในขณะที่ป้องกันไม่ให้มีการตรวจสอบสิทธิ์แบบอื่น ๆ Mantas Mikulenas รายงานปัญหานี้
- การแก้ไขข้อบกพร่อง:
- ssh (1), sshd (8): เพิ่มการแก้ไขปัญหาความเข้ากันได้ของ FuTTY
- ssh (1), sshd (8): ปรับแก้ปัญหาความเข้ากันได้ของ WinSCP
- แก้ไขข้อผิดพลาดเกี่ยวกับหน่วยความจำ (ดับเบิลฟรีปราศจากหน่วยความจำที่ไม่ได้ตั้งใจ ฯลฯ ) ใน ssh (1) และ ssh-keygen (1) รายงานโดย Mateusz Kocielski
มีอะไรใหม่ ในเวอร์ชัน 7.4:
มีอะไรใหม่ ในเวอร์ชัน 7.3:
มีอะไรใหม่ ในเวอร์ชัน 7.2:
มีอะไรใหม่ ในเวอร์ชัน 7.1:
ความคิดเห็นที่ไม่พบ