Randomart ผลิตโดย ssh-keygen คืออะไร


352

เมื่อคุณสร้างคีย์คุณจะได้รับ "randomart" จาก OpenSSH เวอร์ชันที่ใหม่กว่า ฉันไม่สามารถหาคำอธิบายว่าทำไมและสิ่งที่ฉันควรจะใช้เพื่อ

Generating public/private rsa key pair.
The key fingerprint is:
05:1e:1e:c1:ac:b9:d1:1c:6a:60:ce:0f:77:6c:78:47 you@i
The key's randomart image is:
+--[ RSA 2048]----+
|       o=.       |
|    o  o++E      |
|   + . Ooo.      |
|    + O B..      |
|     = *S.       |
|      o          |
|                 |
|                 |
|                 |
+-----------------+

Generating public/private dsa key pair.
The key fingerprint is:
b6:dd:b7:1f:bc:25:31:d3:12:f4:92:1c:0b:93:5f:4b you@i
The key's randomart image is:
+--[ DSA 1024]----+
|            o.o  |
|            .= E.|
|             .B.o|
|              .= |
|        S     = .|
|       . o .  .= |
|        . . . oo.|
|             . o+|
|              .o.|
+-----------------+

5
คำถามอื่นที่ฉันอยากจะถามคือ; การแชร์ภาพสุ่มของคุณกับผู้อื่นปลอดภัยหรือไม่ ในคำอื่น ๆ ที่ได้รับภาพแบบสุ่มเช่นข้างต้นเป็นไปได้หรือไม่ที่จะทำวิศวกรรมย้อนกลับให้กุญแจ?
AndyJ0076

คำตอบ:


259

Randomart หมายถึงวิธีที่ง่ายกว่าสำหรับมนุษย์ในการตรวจสอบกุญแจ

การตรวจสอบความถูกต้องจะทำโดยการเปรียบเทียบสตริงที่ไม่มีความหมาย (เช่นการแสดงเลขฐานสิบหกของลายนิ้วมือคีย์) ซึ่งมนุษย์ค่อนข้างช้าและไม่ถูกต้องเมื่อเปรียบเทียบ Randomart จะแทนที่สิ่งนี้ด้วยภาพที่มีโครงสร้างที่เร็วและง่ายต่อการเปรียบเทียบ

บทความนี้"การสร้างภาพแฮช: เทคนิคใหม่เพื่อปรับปรุงความปลอดภัยในโลกแห่งความเป็นจริง", Perrig A. และ Song D. , 1999, การประชุมเชิงปฏิบัติการระหว่างประเทศเกี่ยวกับเทคนิคการเข้ารหัสและ E-Commerce (CrypTEC '99) "อธิบายถึงเทคนิคและข้อดีต่างๆ


66
หากคุณสามารถอธิบายได้ว่าทำไมมนุษย์ถึงตรวจสอบคีย์นั่นอาจช่วยได้เพราะฉันมักจะใส่กุญแจสาธารณะของฉันในไฟล์ Author_keys และทำด้วยปุ่มนั้น
dlamblin

43
@dlamblin: โดยทั่วไปคุณจะไม่ยืนยันกุญแจของคุณด้วยสิ่งนี้ อย่างไรก็ตามมันจะมีประโยชน์สำหรับการตรวจสอบรหัสโฮสต์ของเครื่องระยะไกล แนวคิดหนึ่งคือถ้าคุณลงชื่อเข้าใช้งานเครื่องจากสถานที่ต่าง ๆ (หรือคุณไม่บันทึกรหัสลงในไฟล์ known_hosts ของคุณ) คุณจะสามารถจดจำ "ศิลปะ" ของคีย์ของโฮสต์ได้ หากศิลปะนั้นเปลี่ยนไปอย่างกะทันหันคุณควรระวังการพิมพ์รหัสผ่านของคุณเพราะอาจหมายถึงว่าการโจมตีแบบ Man-in-the-middle กำลังดำเนินการกับการเชื่อมต่อของคุณ (หรืออาจหมายความว่าโฮสต์เพิ่งเปลี่ยนกุญแจสำหรับคนอื่น เหตุผล).
344 Chris

29
อืมฉันจะได้เห็นงานศิลปะของเจ้าภาพเมื่อไหร่? (ฉันคิดว่าฉันไม่เคยทำ) ฉันเห็นภาพดังกล่าวหลังจากสร้างคู่กุญแจเท่านั้น และสิ่งที่ฉันต้องเปรียบเทียบเพื่อรับรู้การเปลี่ยนแปลง 'ฉับพลัน'
DerMike

12
ฉันจะเดิมพัน randomart ปฏิบัติตามหลักการที่คล้ายกันเช่นแฮชสำหรับการตรวจสอบความสมบูรณ์ ได้แก่ : ความแตกต่างเล็กน้อยในอินพุตสร้างเอาต์พุตที่แตกต่างกันอย่างดุเดือด นั่นหมายความว่าคุณจะต้องจดจำรูปแบบคร่าวๆของ randomart ที่คาดหวังเพื่อให้สามารถสังเกตเห็นบางสิ่งบางอย่างที่ไม่เหมาะสม แน่นอนว่าสิ่งนี้ไม่ได้ผลในทางปฏิบัติเมื่อ SSH และคนอื่น ๆ ไม่แสดงให้คุณเห็นสุ่มของโฮสต์ที่คุณกำลังเชื่อมต่อ (พวกเขาควรทำเช่นนั้นแม้ว่าโฮสต์นั้นจะรู้จัก)
Alan Plum

2
ฉันคิดว่าสิ่งเหล่านี้มีประโยชน์มากที่สุดเมื่อมีการแลกเปลี่ยนกุญแจสาธารณะด้วยตนเองเพื่อตรวจสอบความถูกต้องหลังจากคัดลอกเสร็จสมบูรณ์
jordanpg

198

เพิ่ม

-o VisualHostKey=yes 

ไปยังบรรทัดคำสั่งของคุณหรือใส่

VisualHostKey=yes 

~/.ssh/configในของคุณ

คุณจะเห็น randomart ของกล่องที่คุณกำลังเข้าสู่ หากคุณเข้าสู่ระบบในวันใดวันหนึ่งและศิลปะการสุ่มแตกต่างกัน (สมองของคุณควรไปเฮ้! ฉันจำไม่ได้!) บางทีอาจมีบางคนกำลังแฮ็คหรืออะไรทำนองนั้น

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


9
ไม่ค่อยดี. หากคุณเคยเข้าสู่ระบบก่อนหน้านี้คอมพิวเตอร์ของคุณจะจดจำการใช้ลายนิ้วมือที่เก็บไว้ได้ดีกว่ามาก คุณสมบัตินี้ใช้เพื่อการเข้าสู่เครื่องใหม่เท่านั้น
นิโคลัสวิลสัน

57
สายไปถึงคำตอบนี้ แต่ก็คุ้มค่าที่ชี้ให้เห็นว่าสิ่งนี้จะมีประโยชน์อย่างมากหากคุณลงชื่อเข้าใช้จากเครื่องอื่นที่ไม่มีที่รู้จักของคุณทั้งหมด ในกรณีดังกล่าวคอมพิวเตอร์จะไม่สามารถตรวจสอบได้ว่าเป็นที่รู้จัก แต่ผู้ใช้ควรเห็น "นั่นดูแตกต่างจากปกติ!" และยกเลิก
Xkeeper

9
การทำให้คอมพิวเตอร์ของคุณรับรู้มีความเสี่ยงต่อโฮสต์ที่คอมพิวเตอร์ของคุณรู้จักที่ถูกแฮ็ก เหมือนกับที่คุณไม่ควรให้คอมพิวเตอร์ป้อนรหัสผ่านให้คุณคุณควรตรวจสอบความถูกต้องของรหัสโฮสต์ด้วยตัวเอง
Marko Topolnik

37

ประกาศอย่างเป็นทางการ: เปิดตัว OpenSSH 5.1

แนะนำ SSH Fingerprint ASCII Visualization Visualization ที่ ssh (1) และ ssh-keygen (1) จอแสดงผล fingerprinnt ที่มองเห็นถูกควบคุมโดยตัวเลือก ssh_config (5) ใหม่ "VisualHostKey" จุดประสงค์คือการสร้างการแสดงผลคีย์โฮสต์ SSH ในรูปแบบภาพที่สามารถแก้ไขได้ง่ายต่อการเรียกคืนและปฏิเสธการเปลี่ยนคีย์โฮสต์ เทคนิคนี้ได้รับแรงบันดาลใจจากแผนการสร้างภาพกราฟิกแบบแฮชแบบกราฟิกที่รู้จักกันในชื่อ "random art [*]" และโดยเพลงของ Dan Kaminsky ที่ 23C3 ในเบอร์ลิน

การแสดงภาพลายนิ้วมือในปัจจุบันถูกปิดใช้งานโดยค่าเริ่มต้นเนื่องจากอัลกอริทึมที่ใช้ในการสร้างงานศิลปะแบบสุ่มยังคงมีการเปลี่ยนแปลง


8
ประโยคสุดท้ายนั่นก็คุ้มค่าที่จะรู้ ข้อมูล OpenBSD Journal @ Undeadly.org เกี่ยวกับสถานะการเผยแพร่ของ OpenSSH 6.8 "โปรดทราบว่าคีย์โฮสต์ภาพจะแตกต่างกันด้วย" ซอฟต์แวร์ที่ใหม่กว่าแสดงภาพที่แตกต่างจากภาพที่แสดงโดยซอฟต์แวร์รุ่นเก่า
TOOGAM

27

คุณสามารถค้นหาการวิเคราะห์ในเชิงลึกของ randomart VisualHostKey ในกระดาษสั้นเมาบิชอป


11

Randomart ที่แสดงหลังจากการสร้าง ssh-keygen เป็นการแสดงกราฟิกของคีย์ที่คุณเพิ่งสร้างขึ้น แล้ว:

  • Randomart คือไม่ได้จริงๆที่มีประโยชน์สำหรับผู้ใช้ที่สร้าง SSH คีย์

  • Randomart จะมีประโยชน์มากสำหรับผู้ใช้ที่ใช้การเชื่อมต่อผ่าน SSH เพื่อเชื่อมต่อกับเซิร์ฟเวอร์เดียวกันบ่อยครั้ง : ถ้าเขาเพิ่มตัวเลือก "-o VisualHostKey = yes" ลงในคำสั่ง SSH ของเขา:

    ssh user@domainname.com -o VisualHostKey = ใช่

Randomart ที่สอดคล้องกับกุญแจสาธารณะของเซิร์ฟเวอร์จะปรากฏขึ้น

หากต้องการดูตัวอย่างคุณสามารถลอง:

ssh git@github.com -o VisualHostKey = ใช่

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

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