การแลกเปลี่ยนคีย์ SSH ปลอดภัยกว่าการตรวจสอบรหัสผ่านหรือไม่


9

ผู้ใช้ระยะไกลเชื่อมต่อกับบริการต่างๆที่สำนักงานใหญ่ของเราผ่านอินเทอร์เน็ตโดยใช้ SSH รหัสผ่าน SSH ถูกซิงโครไนซ์กับบัญชี LAN A / D

ผู้ใช้จะนำสำเนาของกุญแจ SSH กลับบ้านโดยใช้บางสิ่งบางอย่างเช่นซีดีหรือแผ่นกระดาษมีความปลอดภัยมากกว่าการพิมพ์รหัสผ่านของผู้ใช้หรือไม่ หรือฉันต้องการทั้งสองอย่าง

คำถามของฉันอาจถูกจัดทำขึ้นใหม่ดังนี้: มีช่องโหว่ในโปรโตคอลการตรวจสอบรหัสผ่านของ SSH หรือไม่?

นี่เป็นข้อความที่ทำให้ฉันสงสัย:

The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:.
Are you sure you want to continue connecting (yes/no)?

คำตอบ:


22

ข้อความที่คุณเห็นเป็นปัญหาแยกต่างหาก ขอให้คุณยืนยันว่าโฮสต์ที่คุณกำลังเชื่อมต่อนั้นเป็นโฮสต์ที่คุณคาดหวัง ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pubจากเซิร์ฟเวอร์คุณจะได้รับลายนิ้วมือโดยใช้ จากนั้นเมื่อคุณเชื่อมต่อจากระยะไกลเป็นครั้งแรกคุณสามารถตรวจสอบให้แน่ใจว่าลายนิ้วมือตรงกัน

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

ยังมีปัญหาอยู่ - คุณจะรู้ได้อย่างไรว่าคีย์ใดถูก หลังจากการเชื่อมต่อครั้งแรกกุญแจสาธารณะจะถูกเก็บไว้ใน~/.ssh/known_hostsไฟล์ของคุณดังนั้นการเชื่อมต่อที่ตามมาก็ใช้ได้ แต่เป็นครั้งแรกที่คุณต้องใช้วิธีบางอย่างในการรับลายนิ้วมือหรืออื่น ๆ ที่คุณทำตามรุ่น "TOFU": ความน่าเชื่อถือในการใช้ครั้งแรก

แต่สิ่งนี้ไม่มีอะไรเกี่ยวข้องกับรหัสผ่านกับคีย์ยกเว้นว่าทั้งกุญแจและรหัสผ่านอาจถูกขโมยได้จากการโจมตีนี้ - ในแง่หนึ่งคือความเสี่ยงที่คุณต้องการ

มีอย่างน้อยสามเหตุผลที่รหัสผ่านแย่กว่ากุญแจ:

  1. พวกเขาสามารถบังคับสัตว์เดรัจฉาน รหัสผ่าน 8 ตัวอักษรที่ผู้ใช้เลือกโดยทั่วไปมีประมาณ 30 บิตของการคาดเดาเอนโทรปี คู่คีย์สาธารณะ / ส่วนตัว ssh คือ 1024 บิตหรือมากกว่า เป็นไปไม่ได้อย่างมีประสิทธิภาพที่จะบังคับใช้คีย์ ssh แต่การคาดเดารหัสผ่านอัตโนมัติจะเกิดขึ้นตลอดเวลา
  2. พวกเขาสามารถเป็นใบ้ ผู้ใช้เลือกรหัสผ่านที่น่ากลัวเป็นประจำแม้จะมีข้อ จำกัด และพวกเขามักจะใช้รหัสผ่านที่ยากขึ้นในหลาย ๆ ที่ สิ่งนี้ทำให้การโจมตีง่ายขึ้น
  3. รหัสผ่านสามารถถูกขโมยจากระยะไกล เมื่อคุณใช้ SSH รหัสผ่านจะถูกเข้ารหัสบน wire แต่เป็นเรื่องปกติมากที่เซิร์ฟเวอร์ ssh จะถูกแทนที่ในระบบที่ถูกบุกรุกด้วยรหัสที่บันทึกรหัสผ่านทั้งหมด ด้วยคีย์คีย์ส่วนตัวจะยังคงอยู่บนระบบโลคัลและไม่เคยถูกส่งเลยดังนั้นจึงไม่สามารถถูกขโมยได้หากไม่ส่งผลกระทบต่อเครื่องลูกข่าย

นอกจากนี้ปุ่ม ssh ยังมอบความสะดวกสบายเมื่อใช้งานกับสิ่งต่าง ๆ เช่นssh-agentคุณจะได้รับการเชื่อมต่อที่ไม่ยุ่งยากโดยไม่ต้องทำการพิสูจน์ตัวตนใหม่ทุกครั้งในขณะที่ยังคงรักษาความปลอดภัยในระดับที่เหมาะสม

ไม่มีข้อได้เปรียบที่สำคัญในการขอทั้งคู่เพราะคนที่เข้าถึงกุญแจส่วนตัวได้อย่างพอสมควรสามารถขโมยรหัสผ่านของผู้ใช้ได้อย่างง่ายดาย หากคุณต้องการความปลอดภัยมากขึ้นกว่านี้พิจารณามองระบบการตรวจสอบสองปัจจัยเช่น RSA SecurID หรือWikid


คำตอบที่ดี สิ่งที่ฉันกำลังมองหา ขอบคุณ!
srmark

เกี่ยวกับหมายเลข 3) หากคุณลงชื่อเข้าใช้เซิร์ฟเวอร์ที่ประกอบด้วยแล้ว ... ทำไมบางคนต้องการรหัสผ่านของคุณ เหตุผลเดียวที่ฉันคิดได้ก็คือถ้าคุณใช้รหัสผ่านเดียวกันทุกที่
Sirex

Sirex - ขวา; พวกเขาขโมยรหัสผ่านของคุณและใช้ในระบบอื่น โปรดทราบในคำถามที่ใช้รหัสผ่านเป็น "LAN A / D" ดังนั้นพวกเขาจึงขโมยรหัสผ่านของคุณจากเซิร์ฟเวอร์การเข้าสู่ระบบ ssh แล้วเข้าถึงเซิร์ฟเวอร์ Windows ได้เช่นกัน นอกจากนี้เมื่อใดก็ตามที่ระบบถูกบุกรุกคุณจะต้องผ่าน "โอเคทุกคนเปลี่ยนรหัสผ่านของคุณอีกครั้ง"
mattdm

นอกจากนี้ตามที่ระบุไว้ในข้อ 2 ผู้ใช้กำลังใช้รหัสผ่านเดียวกันทุกที่ ถอนหายใจ
mattdm

ลงกับผู้ใช้ที่น่ารำคาญ! :(
Sirex

1

สิ่งที่คุณถามจริงๆคือ "เป็นปัจจัยหนึ่งที่ดีกว่าภาคใต้" หัวข้อคือการรับรองความถูกต้องแบบหลายปัจจัยและจริง ๆ แล้วคุณควรได้รับการแนะนำให้ดูในหัวข้อ

โดยทั่วไปแล้ว "ปัจจัย" คือสิ่งที่คุณรู้ (รหัสผ่าน) สิ่งที่คุณมี (ไฟล์ ssh หรือการ์ดรูดบัตร) หรือสิ่งที่คุณเป็น (ลายนิ้วมือ)

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


ใช่ฉันเข้าใจสิ่งที่คุณพูด ในกรณีนี้ฉันแค่พยายามค้นหาว่าการตรวจสอบรหัสผ่านสามารถแฮ็คโดยใช้ชื่อกลาง
srmark

สำหรับ ssh เป็นตัวอย่างเฉพาะไม่เช่นเดียวกับส่วนที่ให้รหัสผ่านจะถูกเข้ารหัสด้วยและปุ่มจะเปลี่ยนไปในระหว่างเซสชัน (30 วินาทีที่ฉันเชื่อ) ที่ไม่ได้เป็นภาพสะท้อนของรหัสผ่านรหัสผ่าน VS แม้ว่า
Sirex
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.