ทำไมกุญแจสาธารณะ SSH ถึงอยู่บนเซิร์ฟเวอร์และไม่ได้อยู่กับลูกค้า?


12

ฉันไม่เข้าใจทฤษฎีที่อยู่เบื้องหลังการเก็บคีย์สาธารณะบนเซิร์ฟเวอร์ ในการเปรียบเทียบ lockbox ของคีย์สาธารณะ / ส่วนตัวเพื่อปลดล็อคกล่องของอลิซอลิซถือกุญแจส่วนตัวในขณะที่แจกจ่ายกุญแจสาธารณะให้กับบ๊อบ ดูเหมือนว่าเซิร์ฟเวอร์มีบทบาทของ lockbox ดังนั้นทำไมจึงถือกุญแจสาธารณะ

คำตอบ:


20

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

คุณมีรหัสส่วนตัวสำหรับบัญชีส่วนตัวของคุณ เซิร์ฟเวอร์ต้องการรหัสสาธารณะของคุณเพื่อให้สามารถตรวจสอบว่ารหัสส่วนตัวของคุณสำหรับบัญชีที่คุณพยายามใช้นั้นได้รับอนุญาต

ดังนั้นใช้ตัวอย่างของคุณ ทั้ง Bob และ Alice มีกุญแจส่วนตัวและกุญแจสาธารณะ พับลิกคีย์ที่แบ่งใช้ก่อนมือหรือเป็นส่วนหนึ่งของการเชื่อมต่อจะใช้เพื่อตรวจสอบข้อมูลที่เข้ารหัสโดยไพรเวตคีย์นั้นถูกต้องตามกฎหมาย หากลูกค้าไม่มีรหัสสาธารณะหรือมีรหัสสาธารณะอื่นคุณจะได้รับคำเตือนที่น่ากลัว หากเซิร์ฟเวอร์ไม่มีคีย์สาธารณะของไคลเอ็นต์คุณจะไม่ได้รับอนุญาต


1
Aha! นั่นทำให้รู้สึกมากขึ้น ฉันรู้ว่ามีวิธีในการป้องกันการโจมตีของ MITM แต่ฉันไม่รู้ว่ามีกุญแจคู่อื่น :) ขอบคุณสำหรับความช่วยเหลือ!
Connor Glosser

5

คุณในฐานะผู้ใช้เป็นผู้ให้ข้อมูลที่คุณเป็นเมื่อเข้าสู่ระบบดังนั้นเพื่อการอนุญาตคุณจำเป็นต้องใช้รหัสส่วนตัวเนื่องจากเซิร์ฟเวอร์จะขอให้ทุกคนที่แกล้งเป็นคุณ (พยายามลงชื่อเข้าใช้ด้วย ชื่อ) เพื่อพิสูจน์มัน

วิธีการทำงานคือเซิร์ฟเวอร์ส่งข้อความให้คุณขอให้คุณเข้ารหัสและถอดรหัสด้วยรหัสสาธารณะของคุณ เฉพาะบุคคลที่มีคีย์ส่วนตัวเท่านั้นที่สามารถทำได้


1

มันถือกุญแจสาธารณะเพื่อความสะดวก มิฉะนั้นคุณต้องสร้าง PKI - สิ่งที่คล้ายกับ SSL CA

แนวคิดคือการตรวจสอบลายนิ้วมือกุญแจสาธารณะเมื่อไคลเอนต์ ssh ขอให้คุณยอมรับรหัสเซิร์ฟเวอร์ระยะไกล


1

ฉันจะบอกว่าการเปรียบเทียบที่ดีกว่าคือกุญแจสาธารณะของเซิร์ฟเวอร์คือกล่องล็อกแบบเปิดที่มีสลักที่คุณสามารถปิด (แต่ไม่เปิด) เซิร์ฟเวอร์เท่านั้นที่สามารถเปิดได้ คำถามจริงคือไม่ว่าคุณจะเชื่อถือคีย์สาธารณะ (นั่นคือกล่องของอลิซจริง ๆหรือไม่) ไม่ว่าคุณจะได้รับจากที่ใดในที่สาธารณะโดยคำจำกัดความและนั่นคือความหมายของ PKI


1

กุญแจสาธารณะเป็นจำนวนมากมาจากทางคณิตศาสตร์จากกุญแจส่วนตัวของคุณ

มันได้มาในลักษณะที่มีการเชื่อมโยงตัวเลขทั้งสอง

แต่เพื่อไม่ให้ค้นพบกุญแจส่วนตัวโดยใครก็ตามที่รู้จักกุญแจสาธารณะ รหัสสาธารณะคือสิ่งที่คุณส่งให้กับบุคคลอื่นซึ่งคุณต้องการรับรองความถูกต้องของตัวคุณเองหรือผู้ที่คุณต้องการส่งข้อความที่เข้ารหัส พับลิกคีย์ไม่สำคัญและไม่จำเป็นต้องได้รับการปกป้อง สามารถเผยแพร่ต่อสาธารณะ babudilli98@gmail.com


1
ฉันไม่รู้สึกว่ามีอะไรใหม่ในคำตอบนี้เทียบกับคำตอบอื่น ๆ ที่ให้ไว้เมื่อห้าปีที่แล้ว
kasperd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.