ไม่กี่วันที่ผ่านมา GitHub ประกาศการเปลี่ยนแปลงจำนวนหนึ่งไปยัง บริการที่เกี่ยวข้องกับการกระชับโปรโตคอล ไปซึ่งใช้ระหว่างการดำเนินการ git push และ git pull ผ่าน SSH หรือรูปแบบ "git: //"
เป็นที่กล่าวขวัญกันว่า คำขอผ่าน https: // จะไม่ได้รับผลกระทบ และเมื่อการเปลี่ยนแปลงมีผล จำเป็นต้องมี OpenSSH เวอร์ชัน 7.2 เป็นอย่างน้อย (ออกในปี 2016) หรือ version 0.75 จาก PuTTY (เปิดตัวในเดือนพฤษภาคมปีนี้) เพื่อเชื่อมต่อกับ GitHub ผ่าน SSH
ตัวอย่างเช่น การสนับสนุนไคลเอ็นต์ SSH ของ CentOS 6 และ Ubuntu 14.04 ที่ถูกยกเลิกไปแล้วจะใช้งานไม่ได้
สวัสดีจาก Git Systems ทีมงาน GitHub ที่ทำให้แน่ใจว่าซอร์สโค้ดของคุณพร้อมใช้งานและปลอดภัย เรากำลังเปลี่ยนแปลงบางอย่างเพื่อปรับปรุงความปลอดภัยของโปรโตคอลเมื่อคุณป้อนหรือดึงข้อมูลจาก Git เราหวังว่าผู้คนจำนวนไม่มากจะสังเกตเห็นการเปลี่ยนแปลงเหล่านี้ เนื่องจากเรากำลังดำเนินการเปลี่ยนแปลงดังกล่าวอย่างราบรื่นที่สุด แต่เรายังคงต้องการแจ้งให้ทราบล่วงหน้าเป็นจำนวนมาก
โดยพื้นฐานแล้วมีการกล่าวไว้ว่า การเปลี่ยนแปลงทำให้ยุติการสนับสนุนการโทร Git ที่ไม่ได้เข้ารหัส ผ่าน "git: //" และปรับข้อกำหนดสำหรับคีย์ SSH ที่ใช้เมื่อเข้าถึง GitHub เพื่อปรับปรุงความปลอดภัยในการเชื่อมต่อของผู้ใช้ เนื่องจาก GitHub ระบุว่าวิธีการดำเนินการนั้นล้าสมัยไปแล้วและ ไม่ปลอดภัย
GitHub จะไม่รองรับคีย์ DSA ทั้งหมดและอัลกอริทึม SSH แบบเดิมอีกต่อไป เช่น การเข้ารหัส CBC (aes256-cbc, aes192-cbc aes128-cbc) และ HMAC-SHA-1 นอกจากนี้ มีการแนะนำข้อกำหนดเพิ่มเติมสำหรับคีย์ RSA ใหม่ (ห้ามการลงนาม SHA-1) และรองรับคีย์โฮสต์ ECDSA และ Ed25519
อะไรคือการเปลี่ยนแปลง?
เรากำลังเปลี่ยนแปลงคีย์ที่สอดคล้องกับ SSH และนำโปรโตคอล Git ที่ไม่ได้เข้ารหัสออก เราคือ:กำลังลบการสนับสนุนสำหรับคีย์ DSA ทั้งหมด
การเพิ่มข้อกำหนดสำหรับคีย์ RSA ที่เพิ่มใหม่
การนำอัลกอริธึม SSH ดั้งเดิมออก (การเข้ารหัส HMAC-SHA-1 และ CBC)
เพิ่มคีย์โฮสต์ ECDSA และ Ed25519 สำหรับ SSH
ปิดใช้งานโปรโตคอล Git ที่ไม่ได้เข้ารหัส
เฉพาะผู้ใช้ที่เชื่อมต่อผ่าน SSH หรือ git: // เท่านั้นที่ได้รับผลกระทบ หากรีโมต Git ของคุณขึ้นต้นด้วย https: // ไม่มีอะไรในโพสต์นี้จะมีผลกับมัน หากคุณเป็นผู้ใช้ SSH โปรดอ่านรายละเอียดและกำหนดการเราเพิ่งหยุดสนับสนุนรหัสผ่านผ่าน HTTPS การเปลี่ยนแปลง SSH เหล่านี้แม้ว่าจะไม่เกี่ยวข้องกันในทางเทคนิค แต่ก็เป็นส่วนหนึ่งของไดรฟ์เดียวกันเพื่อรักษาข้อมูลลูกค้า GitHub ให้ปลอดภัยที่สุด
การเปลี่ยนแปลงจะค่อยๆ เกิดขึ้น และโฮสต์คีย์ใหม่ ECDSA และ Ed25519 จะถูกสร้างขึ้นในวันที่ 14 กันยายน การสนับสนุนการลงนามคีย์ RSA โดยใช้แฮช SHA-1 จะถูกยกเลิกในวันที่ 2 พฤศจิกายน (คีย์ที่สร้างก่อนหน้านี้จะยังคงทำงานต่อไป)
ในวันที่ 16 พฤศจิกายน การสนับสนุนสำหรับโฮสต์คีย์แบบ DSA จะถูกยกเลิก ในการทดลอง 11 มกราคม 2022 การสนับสนุนอัลกอริธึม SSH รุ่นเก่าและความสามารถในการเข้าถึงโดยไม่ต้องเข้ารหัสจะถูกระงับชั่วคราว ในวันที่ 15 มีนาคม การสนับสนุนอัลกอริธึมแบบเดิมจะถูกปิดใช้งานอย่างถาวร
นอกจากนี้ มีการกล่าวถึงว่าควรสังเกตว่าฐานรหัส OpenSSH ได้รับการแก้ไขโดยค่าเริ่มต้นเพื่อปิดใช้งานการลงนามคีย์ RSA โดยใช้แฮช SHA-1 ("ssh-rsa")
การสนับสนุนลายเซ็นแฮช SHA-256 และ SHA-512 (rsa-sha2-256 / 512) ยังคงไม่เปลี่ยนแปลง การสิ้นสุดการสนับสนุนลายเซ็น "ssh-rsa" เกิดจากการเพิ่มประสิทธิภาพของการโจมตีแบบชนกันด้วยคำนำหน้าที่กำหนด (ค่าใช้จ่ายในการคาดเดาการชนกันอยู่ที่ประมาณ 50 ดอลลาร์)
หากต้องการทดสอบการใช้ ssh-rsa บนระบบของคุณ คุณสามารถลองเชื่อมต่อผ่าน ssh ด้วยตัวเลือก "-oHostKeyAlgorithms = -ssh-rsa"
สุดท้าย sหากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ เกี่ยวกับการเปลี่ยนแปลงที่ GitHub กำลังทำอยู่ สามารถตรวจสอบรายละเอียดได้ ในลิงค์ต่อไปนี้.