ฉันจะตั้งค่าการรับรองความถูกต้อง SSH ของสมาร์ทการ์ดได้อย่างไร


9

ฉันต้องการให้ SSH กับเครื่องของฉันโดยใช้ Gemalto .NET Smart Card เป็นวิธีการตรวจสอบความถูกต้อง สิ่งนี้สามารถทำได้บนเครื่อง Fedora 13 (หรือสไตล์ Red Hat ทั่วไป) ได้อย่างไร

นี่เป็นขั้นตอนคร่าวๆที่ฉันคิดว่าจำเป็น:

  1. จัดเตรียมใบรับรองสมาร์ทการ์ด (และอาจเป็น CA เพื่อออกใบรับรอง)
  2. รับใบรับรองลงบนสมาร์ทการ์ด
  3. กำหนดค่าเซิร์ฟเวอร์ SSH เพื่ออนุญาตการตรวจสอบสิทธิ์สมาร์ทการ์ดและกำหนดค่าให้ใช้ใบรับรอง / CA เฉพาะ
  4. ไคลเอ็นต์ SSH ที่รองรับสมาร์ทการ์ด (คะแนนพิเศษสำหรับ Windows ที่ใช้ฟรี)

คำตอบ:


2

ตอนนี้ฉันเชื่อว่าไดรเวอร์ Gemalto เป็นโอเพ่นซอร์ส พวกเขามีซอร์สโค้ดบนเว็บไซต์ของพวกเขา

คุณจะต้องกำหนดค่าpamโมดูล (ฉันไม่แน่ใจว่าจะทำอย่างไร แต่รหัสนั้นแน่นอน) ฉันจินตนาการว่าการpamกำหนดค่าจะต้องมีการจับคู่หลักการใบรับรองกับรหัสผู้ใช้ท้องถิ่น

GDM ตอนนี้ฉันเชื่อว่ารองรับสมาร์ทการ์ด แต่ฉันไม่แน่ใจว่าจะตรวจพบได้อย่างไร ฉันจะลองดูในภายหลัง (วิธีที่ง่ายที่สุดน่าจะเป็นเพียงแค่ดูgdmรหัสต้นฉบับ)

แน่นอนว่าทั้งหมดนี้ต้องมีpcscdและlibpcscliteจะติดตั้ง นอกจากนี้คุณยังจะต้องมีการคัดลอกไปlibgtop11dotnet.so/usr/lib


ขอบคุณ! นั่นทำให้ฉันไปถูกทาง นอกจากนี้ยังมีข้อมูลที่เป็นประโยชน์จริง ๆ ที่นี่หากใครก็ตามดูที่การตั้งค่า RedHat: centos.org/docs/5/html/Deployment_Guide-en-US/sso-ov.html
Geoff Childs

คุณพบไฟล์ libgtop11dotnet.so อยู่ที่ไหน
user568021

2

ฉันจะแนะนำ kerberos MIT สร้างไคลเอ็นต์และเซิร์ฟเวอร์ krb5

vwduder คุณช่วยแนะนำเครื่องอ่านสมาร์ทการ์ดและแหล่งที่มาของการ์ดที่สอดคล้องกับมาตรฐาน FIPS-201 ได้ไหม?

http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

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

[แก้ไข] ฉันได้รับความนิยมมากพอ!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf


@vwduder พยายามตอบกลับ แต่เขายังไม่ได้เป็นส่วนหนึ่งของเบต้าที่ปิด
cjac



ขอบคุณ cjac! เมื่อรวมกับผลงานของ vwduder ฉันคิดว่าฉันมีเลียแล้ว
Geoff Childs

เย็น! อีกครั้งในขณะที่ฉันกำลังคิดอยู่ พ่อของฉันได้รับเครดิตในการค้นหาสิ่งเหล่านี้ smartcardworld.com
cjac

1

เมื่อใช้คีย์ RSA, 1) และ 2) เป็นเรื่องเล็กน้อยเนื่องจากเราจะเห็นใน 3) ใบรับรองจริงไม่เกี่ยวข้องในบริบทนี้ เพียงไปที่ cacert.org หรือสร้างใบรับรองที่ลงนามเองและคุณก็พร้อมแล้ว

สำหรับ 3) คุณจะต้องแยกกุญแจสาธารณะของคุณและติดตั้งใน $ HOME / .ssh / authorized_keys ใส่ใจกับการเป็นเจ้าของไฟล์และการอนุญาต! (700 สำหรับ. ssh, 600 สำหรับ authorized_keys) การรับรองความถูกต้องของคีย์สาธารณะทั่วทั้งโฮสต์นั้นไม่ได้รับการสนับสนุน

สำหรับ 4) คุณควรศึกษา PuTTY SC ( http://www.joebar.ch/puttysc/ ) หรือ -preferably- PuTTY-CAC ( http://www.risacher.org/putty-cac/ ) ซึ่งปรับปรุงให้ดีขึ้น PuTTY SC พร้อมอัลกอริธึมการแยกคีย์สาธารณะที่ดีกว่าและยังรวมถึงการสนับสนุน Kerberos-GSSAPI จากสาขาการพัฒนาของ PuTTY


0

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

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

เมื่อคุณเตรียมบัตรแล้วคุณต้องดึงกุญแจสาธารณะออกแล้วเพิ่มลงใน ~ / .sshd / authorized_key

ในการเชื่อมต่อกับเซิร์ฟเวอร์คุณสามารถใช้เครื่องมือเช่น PuttySC หรือ SecureCRT คุณจะต้องขอรับไลบรารี PSKC # 11 สำหรับการ์ด (จากผู้ผลิตสมาร์ทการ์ดหรือเวอร์ชั่นโอเพ่นซอร์ส) กำหนดค่าเครื่องมือ SSH กับไลบรารีควรจะสามารถอ่านและค้นหาใบรับรองได้

เมื่อคุณรับรองความถูกต้องเครื่องมือจะแจ้งให้คุณใส่ PIN สมาร์ทการ์ด

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