Tôi có một máy ảo chạy Windows Server 2019 Datacenter Core, đang chạy tác nhân xây dựng Jenkins dưới dạng dịch vụ không tương tác với tài khoản người dùng cục bộ của chính nó (.\xây dựng
).
Bây giờ tôi muốn thêm ký mã. Để có ít nhất một hình thức bảo mật, tôi muốn sử dụng thẻ thông minh ảo dựa trên các hoạt động tiền điện tử trên máy chủ, vì vậy kẻ tấn công quan tâm đến việc sao chép tài liệu chính sẽ cần thoát ra khỏi VM.
Tôi đã định cấu hình đầu đọc USB CCID ảo với thẻ được cắm vĩnh viễn và nó hiển thị trong Windows:
Tái bút> Get-PnpDevice
...
Lỗi SmartCardReader Microsoft Usbccid Smartcard Reader (WUDF) USB\VID_08E6...
...
Đầu tiên Lỗi
nhà nước đang quan tâm. tôi đã áp dụng sửa lỗi này, có vẻ như mọi thứ đã được cải thiện một chút (thẻ hiện lên VÂNG
ngay sau khi khởi động), nhưng điều đó dường như không phải là vĩnh viễn.
Tuy nhiên, vấn đề mà tôi thực sự gặp khó khăn là mô hình bảo mật để truy cập thẻ thông minh. Hầu hết các tài liệu tôi có thể thấy lo ngại khi sử dụng thẻ thông minh để đăng nhập, trong đó chính sách rất đơn giản: giao diện người dùng đăng nhập có quyền truy cập vào thẻ để xác minh thông tin đăng nhập, sau đó chuyển quyền truy cập này vào phiên người dùng.
Tuy nhiên, trong trường hợp của tôi, tôi có đăng nhập không tương tác không được liên kết với máy tính để bàn. Khi tôi khởi động thủ công SCardSvr
và ScDeviceEnum
dịch vụ, tôi không thể truy cập thẻ ngay cả với tư cách Quản trị viên khi đăng nhập qua SSH:
Trình quản lý tài nguyên thẻ thông minh của Microsoft không chạy.
SCardAccessStartedEvent: Dịch vụ ở trạng thái không xác định.
CertUtil: -SCInfo command FAILED: 0x80070005 (WIN32: 5 ERROR_ACCESS_DENIED)
CertUtil: Truy cập bị từ chối.
điều này hợp lý và từ bảng điều khiển cục bộ, với tư cách là Quản trị viên, tôi nhận được
PS> certutil -scinfo
Trình quản lý tài nguyên thẻ thông minh của Microsoft đang chạy.
Trạng thái đầu đọc/thẻ hiện tại:
SCardEstablishContext: Trình quản lý tài nguyên thẻ thông minh không chạy. 0x8010001d (-2146435043 SCARD_E_NO_SERVICE)
SCardEstablishContext không thành công đối với phạm vi người dùng.
Hai dịch vụ cũng tự kết thúc sau hai phút.
câu hỏi:
- Làm cách nào tôi có thể xác minh rằng thẻ thông minh mô phỏng được xem là đã được chèn và có thể liệt kê các chứng chỉ có trong đó?
- Làm cách nào tôi có thể cấp quyền cho người dùng truy cập thẻ thông minh (
chứng chỉ -scinfo
có lẽ sẽ cho thấy điều đó)?
- Làm cách nào tôi có thể nhập chứng chỉ đã tồn tại trên thẻ thông minh vào kho khóa của người dùng cục bộ? Tôi có cần chứng chỉ P7 gốc hay tôi có thể lấy chứng chỉ đó từ chính thẻ không?
- Tôi có cần phải làm bất cứ điều gì để giữ cho dịch vụ chạy liên tục hay việc giải quyết các sự cố truy cập cũng sẽ cho phép dịch vụ bắt đầu theo yêu cầu?