Drivers

智能卡讀卡器在 Manjaro 19 中不工作

  • September 14, 2021

我正在執行 Manjaro 19.0.2,我正在努力讓它甚至檢測到我正在使用的智能卡讀卡器:SCR3310v2.0。我需要此功能才能使用CAC訪問線上美國軍事資源來驗證和驗證我的身份。我使用 Firefox 75.0 作為我選擇的瀏覽器。

我已經按照DoD Cyber​​ Exchange 指南中列出的在 Linux 中使用 CAC for Firefox 的所有步驟進行操作。我還遵循了 MilitaryCAC 的 Linux 使用者指南

以下是上面連結的兩個指南的摘要。

對於 PKCS#11 實現,我使用的是OpenSC。我還安裝了MilitaryCAC規定的四個軟體包:

pcsc-lite - PCSC 智能卡庫

pcsc-ccid* - 通用 USB CCID(晶片/智能卡介面設備)驅動程序

perl-pcsc - 智能卡讀卡器的抽象層

pcsc-tools - 可選但強烈推薦,這些工具用於測試PCSC 驅動程序、卡和讀卡器

*在 pamac 管理器中找不到確切的包名;改為安裝ccid

我將位於https://militarycac.com/maccerts/AllCerts.zip(MilitaryCAC提供的連結)中的所有憑據導入到 Firefox。我載入了一個名為opensc-pkcs11.soFirefox 安全設置的文件。

完成所有這些工作後,智能卡讀卡器在連接到我的 PC 時甚至都不會亮起,這在 Windows 機器中很常見。文件資源管理器中也沒有檢測到硬體的跡象。

我知道閱讀器本身沒有問題,因為它在 Windows 中執行良好。我也知道這不是因為缺少 USB 驅動程序,因為它們從一開始就與 Manjaro 一起安裝,或者它們的配置錯誤,因為我的 PC 能夠檢測到其他 USB 連接硬體並與之連接,例如我的手機。

除了在虛擬機中執行 Windows 之外,我對接下來可以嘗試什麼一無所知。如果可能的話,我更願意讓它在 Linux 中工作。歡迎提供任何幫助並非常感謝。


筆記

我設法解決了這個問題。下面找到了對我有用的解決方案。另請注意,自從發布此問題以來,我的發行版已更新為 v20.0

我設法解決了我的問題。這就是我的做法。

  1. 使用您的包管理器(在我的情況下,pamac),安裝以下包,如我原來的文章中所述:
  1. 從此位置下載 DoD 證書並提取它們。
  2. 在 Firefox 中,轉到編輯 > 首選項 > 隱私和安全 > 證書 > 查看證書 > 權限 > 導入
  3. 查找並導入提取的證書
  4. 點擊DoD Root CA 2,然後點擊Edit Trust並確保選中這兩個選項*。完成後,按 OK
  5. 點擊安全設備,然後點擊載入。找到並打開文件opensc-pkcs11.so。我的位於/usr/lib64/opensc-pkcs11.so
  6. 打開終端並執行pgrep -l pcscd。正如 telcoM 建議的那樣,您應該會看到一個輸出。如果您一無所獲,請在他/她的評論中執行這兩個命令以立即啟動pcscd服務並讓它在啟動時執行。pgrep -l pcscd現在應該輸出一個數字,後跟pcscd
  7. 重啟機器
  8. 打開終端並執行pcsc_scan。輸出中的最後一行應為Waiting for the first reader...
  9. 插入您的智能卡讀卡器。它應該立即檢測到它。終端現在應該在每次插入或取出卡時顯示和,以及有關卡的各種詳細資訊Card removedCard inserted
  10. 您現在應該能夠訪問需要使用智能卡及其讀卡器進行身份驗證的線上內容。

*我不知道這是否是絕對必要的,但這就是我的設置方式。

使用的來源是:

程序是否pcscd正在執行?(有pgrep -l pcscd輸出嗎?)它應該作為服務/守護程序執行,但您可能需要先啟用它。

sudo systemctl start pcscd.service     # start it now
sudo systemctl enable pcscd.service    # make it start automatically at boot in the future too

然後該pcsc_scan命令應檢測您的讀卡器並在插入時提供您卡的一些技術資訊。

另請參閱 Manjaro 論壇上的一系列文章: https ://forum.manjaro.org/t/solved-smartcard-reader-not-shown/39460

基本上,海報 kubwit 的讀卡器使用了一個自定義的 USB 產品/供應商 ID,需要在驅動程序檢測到卡/etc/libccid_Info.plist之前添加該 ID。ccid您的讀卡器應按原樣支持,除非最近更改了供應商 ID(因為該讀卡器最初來自 SCR 產品線,但 Identiv 前段時間購買了 SCR)。

引用自:https://unix.stackexchange.com/questions/581674