มีสิ่งที่เป็นกุญแจ SSH ที่ลงนามหรือไม่?


9

เรากำลังถ่ายโอนไฟล์ไปยังเซิร์ฟเวอร์ระยะไกลในแอปพลิเคชันของเราและวิธีการรับรองความถูกต้องที่ต้องการคือการใช้คีย์ SSH

ดังนั้นฉันสร้าง keypair ของฉันโดยใช้ ssh-keygen และส่งกุญแจสาธารณะของฉันเพื่อแทรกลงในไฟล์ authorized_keys ของโฮสต์ระยะไกล อย่างไรก็ตามนี่ถูกปฏิเสธโดย IT Security ผู้กล่าวว่าพวกเขาต้องการสร้าง keypair ให้ฉันและส่งรหัสส่วนตัวให้ฉัน เหตุผล: "เราต้องการคีย์ SSH เพื่อลงนามโดยทีม IT Security นี่คือเพื่อให้แน่ใจว่าเรามีความเป็นผู้นำในการติดตามและตรวจสอบได้"

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

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

มีคนช่วยบอกฉันด้วยถ้าฉันผิดขอบคุณ!


ตกลงตอนนี้เราได้พิจารณาแล้วว่าไม่มีทางที่จะสามารถลงชื่อกุญแจ SSH ได้ฉันต้องแสดงความปลอดภัยด้านไอทีว่าพวกเขาสามารถติดตามผู้ที่ลงชื่อเข้าใช้จริงได้อย่างไร (ต้องมีความคิดสร้างสรรค์ฉันเดาว่าถ้าไม่ใช่ความถนัดเริ่มต้น ) บนเซิร์ฟเวอร์ของฉันฉันตั้ง LogLevel ของ sshd เป็น DEBUG ดังนั้นเมื่อฉันเข้าสู่ระบบฉันสามารถดูตัวอย่างต่อไปนี้:

Found matching DSA key: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

ดูเหมือนว่าจะเป็นค่าแฮช ฉันจะเชื่อมโยงสิ่งนี้กลับไปที่พับลิกคีย์ในไฟล์ authorized_keys ได้อย่างไร? ฉันรู้ว่ามีอีกบรรทัดที่พูดว่า:

debug1: matching key found: file /home/bofh/.ssh/authorized_keys2, line 1

แต่สิ่งนี้ไม่ได้มีประโยชน์เท่าที่ฉันสามารถเปลี่ยนหมายเลขบรรทัดได้ง่าย ๆ ถ้าฉันจะใส่กุญแจที่ด้านบนของไฟล์โดยกดปุ่มต้นฉบับลงไป

ขอบคุณ!


2
พวกเขาอาจจะพิมพ์คีย์ลงนาม (บนกระดาษ) แล้วยื่นมันออกไป?
innaM

ค่าแฮชที่คุณได้รับนั้นน่าจะเป็นลายนิ้วมือของกุญแจ ฉันขอแนะนำให้ตรวจสอบคู่มือ openssh ว่าคุณจะแสดงรายการลายนิ้วมือเหล่านี้ได้อย่างไร
Niels Basjes

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

คำตอบ:


13

ในเวลาที่คุณถามคำถามจักรวาลมีการเปลี่ยนแปลง

Openssh5.4 เพิ่มการสนับสนุนสำหรับประเภทของใบรับรองที่คุณใช้อย่างแน่นอน ดูบันทึกประจำรุ่นได้ที่http://www.openssh.org/txt/release-5.4 (และหน้าคน) สำหรับข้อมูลเพิ่มเติมหรือหากคุณต้องการเป็นบ้าจริงๆดูPROTOCOL.certkeysสำหรับรายละเอียดเต็มไปด้วยเลือด


เพิ่งเห็นสิ่งนี้หลังจากใช้เวลานานมาก ... ดูเหมือนว่าจะถูกต้อง :) จะลองใช้ขอบคุณ
feicipet

8

ความประทับใจครั้งแรกของฉันเมื่ออ่านคำถามของคุณคือบุคคล IT ได้รับ SSH และ SSL รวมกัน (ต้องลงนามโดยเรา) และยังไม่เข้าใจว่าการลงชื่อ SSL ใช้งานได้จริงอย่างไร

อย่างไรก็ตามไม่มีทางที่คีย์ SSH สามารถลงชื่อได้ (ที่ฉันรู้)


+1 คุณไม่สามารถลงชื่อคีย์ ssh ได้เช่นเดียวกับที่คุณสามารถลงชื่อใบรับรอง PGP หรือ SSL ฉันขอคำชี้แจงจากพวกเขา
David Pashley

4

มีบางอย่างไม่ถูกต้องในคำขอนี้

หากมีการส่งไฟล์ที่ลงนามไปยังเซิร์ฟเวอร์
ฉันคาดว่าสิ่งนี้จะต้องทำอย่างน้อยที่สุด

  1. คุณสร้างคู่กุญแจสำหรับตัวคุณเอง (เรียกรหัสนี้ของฉัน)
    • เมื่อคุณต้องการส่งบางสิ่ง
    • คุณเข้ารหัสด้วย my-key-private
    • จากนั้นอัปโหลดไปยังเซิร์ฟเวอร์ไฟล์ที่เข้ารหัสนี้
    • บางคนที่เซิร์ฟเวอร์ต้องย้อนกลับกระบวนการเช่นนี้
    • พวกเขาใช้ของคุณmy-key-pubเพื่อถอดรหัสไฟล์
    • หากคุณส่งไฟล์ตัวถอดรหัสจะกู้คืน
    • มิฉะนั้นพวกเขาจะไม่ได้รับไฟล์ที่ใช้งานได้
    • ได้อย่างมีประสิทธิภาพคุณได้ลงนามไฟล์ด้วยกุญแจส่วนตัวของคุณ
    • พวกเขายืนยันลายเซ็นด้วยรหัสสาธารณะของคุณ
    • ความรับผิดชอบจะได้รับผลกระทบจากพวกเขายืนยันว่าคุณได้ส่งไฟล์

มีวิธีอื่น ๆ ที่จะไปเกี่ยวกับการทำกิจกรรมดังกล่าวมีแต่ได้รับคีย์คู่ที่สร้างขึ้นโดยคนอื่นจะไร้ประโยชน์เป็นโครงการรับรองความถูกต้อง

มันมีนัยยะสำคัญที่คุณเชื่อใจพวกเขามากเท่ากับที่คุณไว้ใจตัวเอง


นี่คือคำถามเปิดที่คุณสามารถถามไอทีของคุณ
หากความรับผิดชอบนั้นเป็นปัญหาของไอที

  1. พวกเขาแน่ใจได้อย่างไรว่าคุณไม่ได้แบ่งปัน / ปล่อยคีย์คู่ที่คุณมอบให้ และ,
    • แนวคิดการจับคู่คีย์จากไอทีนั้นแตกต่างจากรหัสผ่านที่ IT มอบให้คุณอย่างไร
      ทำไมต้องกังวลกับคู่คีย์เลยในกรณีนั้น

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

@pgs ฉันพยายามดูว่าบุคคล IT กำลังกำหนดเป้าหมายที่นี่อย่างไร
nik

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

@ คาดหวังว่าจะได้รับไหวพริบเป็นจุดสุดท้ายของฉันจะช่วยคุณ
nik

@feicipet เป้าหมายของคุณคือการทำให้พวกเขาตระหนักถึงขั้นต่ำสุดที่พวกเขาจะต้องทำเพื่อให้บรรลุเจตนาที่ถูกต้อง
nik

2

ไม่มีเหตุผลที่คุณไม่สามารถใช้ใบรับรอง X.509 สำหรับการตรวจสอบความถูกต้อง SSH แทนการใช้คีย์เปล่า - อันที่จริงฉันชอบมันมากถ้า OpenSSH ทำงานในลักษณะนี้! แต่เวอร์ชันสต็อกของ OpenSSH ไม่ได้และเป็นการนำมาใช้ที่โดดเด่นในวันนี้

ฉันเคยเห็น OpenSSH เวอร์ชันแพตช์ไม่กี่อันที่ต้องทำและการใช้งาน SSH.com เชิงพาณิชย์ก็ดูเหมือนจะสนับสนุนการตรวจสอบ X.509 ดังนั้นหากองค์กรของคุณกำลังใช้สิ่งใดสิ่งหนึ่งเหล่านี้การกำหนดให้คีย์นั้นได้รับการลงนามโดยหน่วยงานกลางจะทำให้เกิดความรู้สึกที่สมเหตุสมผล

ที่กล่าวมาไม่มีข้อแก้ตัวใด ๆ สำหรับการกำหนดให้คีย์ส่วนตัวถูกสร้างขึ้นโดยบุคคลที่สาม! หากพวกเขาไปตามเส้นทาง X.509 พวกเขาควรให้คุณสร้าง keypair และคำขอลงนามใบรับรองเช่นเดียวกับที่คุณทำกับใบรับรอง X.509 อื่น ๆ ที่ใช้สำหรับ SSL เป็นต้น

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