ฉันรู้ว่าอัลกอริธึมการแลกเปลี่ยนคีย์ DH และ ECDH มาตรฐานกำหนดให้ไคลเอ็นต์และเซิร์ฟเวอร์ตกลงเกี่ยวกับจำนวนเฉพาะจำนวนมากและตัวสร้าง (ในอัลกอริทึม DH) หรือเส้นโค้งและจุด (ในอัลกอริทึม ECDH) แต่ถ้าฉันตรวจสอบ แพ็กเก็ต SSH ไม่มีสัญญาณของเมล็ดพันธุ์ที่ใช้ร่วมกันเหล่านี้ แล้วพวกเขาจะได้มันมาได้อย่างไร?
ฉันตรวจสอบแพ็กเก็ตและข้อความเท่านั้นหลังจาก "เริ่มต้นการแลกเปลี่ยนคีย์" และก่อนที่ "กุญแจใหม่" ข้อความคือ:
"ลูกค้า: Elliptic Curve Diffie-Hellman Key Exchange Init"
ซึ่งมีเพียงคีย์สาธารณะชั่วคราวของลูกค้าเท่านั้น (เช่น คีย์ที่สร้างขึ้นด้วยเส้นโค้งที่เลือก)
"เซิร์ฟเวอร์: Elliptic Curve Diffie-Hellman Key Exchange Replay"
ซึ่งมีพับลิกโฮสต์คีย์ของเซิร์ฟเวอร์ พับลิกคีย์ของเซิร์ฟเวอร์ (คีย์ที่สร้างด้วยเส้นโค้งเสมอ) และแฮชการแลกเปลี่ยน (ตามที่เรียกใน rfc4253)
ฉันคิดว่าเส้นโค้งที่จะใช้นั้นชัดเจนในชื่อของอัลกอริทึม (เช่น nistp256) แต่พวกเขาเห็นด้วยกับประเด็นของคำสั่ง n อย่างไร?
และถ้าฉันบังคับให้ใช้อัลกอริทึม DH (โดยการพิมพ์ ssh -oKexAlgorithms=diffie-hellman-group14-sha256
) ไม่มีร่องรอยของการแลกเปลี่ยนโมดูลและเครื่องกำเนิดไฟฟ้า
ขอขอบคุณ