ฉันมี VM ที่ใช้ Windows Server 2019 Datacenter Core ซึ่งกำลังเรียกใช้ Jenkins build agent เป็นบริการแบบไม่โต้ตอบด้วยบัญชีผู้ใช้ในเครื่องของตัวเอง (.\สร้าง
).
ตอนนี้ฉันต้องการเพิ่มการลงนามรหัส เพื่อให้ดูมีความปลอดภัย อย่างน้อยฉันต้องการใช้สมาร์ทการ์ดเสมือนที่อิงตามการดำเนินการเข้ารหัสลับบนโฮสต์ ดังนั้นผู้โจมตีที่สนใจในการคัดลอกเนื้อหาหลักจะต้องแยกออกจาก VM
ฉันได้กำหนดค่าเครื่องอ่าน USB CCID เสมือนโดยใส่การ์ดอย่างถาวรแล้ว และจะปรากฏใน Windows:
PS> รับ PnpDevice
...
เกิดข้อผิดพลาด SmartCardReader Microsoft Usbccid Smartcard Reader (WUDF) USB\VID_08E6...
...
ประการแรก ข้อผิดพลาด
รัฐมีความเกี่ยวข้อง ฉันสมัครแล้ว การแก้ไขนี้ซึ่งดูเหมือนว่าจะมีการปรับปรุงบางอย่าง (การ์ดปรากฏขึ้น ตกลง
ทันทีหลังจากบู๊ต) แต่ดูเหมือนจะไม่ถาวร
ปัญหาที่ฉันติดอยู่อย่างแท้จริงคือรูปแบบความปลอดภัยสำหรับการเข้าถึงสมาร์ทการ์ด เอกสารประกอบส่วนใหญ่ที่ฉันพบข้อกังวลคือการใช้สมาร์ทการ์ดเพื่อเข้าสู่ระบบ ซึ่งนโยบายนั้นเรียบง่าย: UI การเข้าสู่ระบบมีสิทธิ์เข้าถึงการ์ดเพื่อตรวจสอบข้อมูลประจำตัว จากนั้นส่งผ่านการเข้าถึงนี้ไปยังเซสชันผู้ใช้
อย่างไรก็ตาม ในกรณีของฉัน ฉันมีการเข้าสู่ระบบแบบไม่โต้ตอบซึ่งไม่เชื่อมโยงกับเดสก์ท็อป เมื่อฉันเริ่มต้นด้วยตนเอง SCardSvr
และ ScDeviceEnum
บริการ ฉันไม่สามารถเข้าถึงการ์ดได้แม้จะเป็นผู้ดูแลระบบเมื่อเข้าสู่ระบบผ่าน SSH:
Microsoft Smart Card Resource Manager ไม่ทำงาน
SCardAccessStartedEvent: บริการอยู่ในสถานะที่ไม่รู้จัก
CertUtil: -คำสั่ง SCInfo ล้มเหลว: 0x80070005 (WIN32: 5 ERROR_ACCESS_DENIED)
CertUtil: การเข้าถึงถูกปฏิเสธ
ซึ่งก็สมเหตุสมผลดี และจาก Local Console ในฐานะ Administrator ฉันเข้าใจ
PS> ใบรับรอง -scinfo
Microsoft Smart Card Resource Manager กำลังทำงานอยู่
สถานะเครื่องอ่าน/การ์ดปัจจุบัน:
SCardEstablishContext: ตัวจัดการทรัพยากรของสมาร์ทการ์ดไม่ได้ทำงานอยู่ 0x8010001d (-2146435043 SCARD_E_NO_SERVICE)
SCardEstablishContext ล้มเหลวสำหรับขอบเขตผู้ใช้
บริการทั้งสองจะยุติลงเองภายในสองนาที
คำถาม:
- ฉันจะตรวจสอบได้อย่างไรว่าสมาร์ทการ์ดที่จำลองถูกมองว่าถูกแทรกและอาจแสดงรายการใบรับรองที่มีอยู่
- ฉันจะให้สิทธิ์แก่ผู้ใช้ในการเข้าถึงสมาร์ทการ์ดได้อย่างไร (
ใบรับรอง -scinfo
คงจะแสดงว่า)?
- ฉันจะนำเข้าใบรับรองที่มีอยู่แล้วบนสมาร์ทการ์ดไปยังที่เก็บคีย์ของผู้ใช้ในเครื่องได้อย่างไร ฉันต้องการใบรับรอง P7 ดั้งเดิมหรือดึงมาจากตัวการ์ดเอง
- ฉันต้องทำอะไรเพื่อให้บริการทำงานอย่างต่อเนื่อง หรือการแก้ไขปัญหาการเข้าถึงจะทำให้ความต้องการเริ่มทำงานได้หรือไม่