国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

[QEMU]芯片卡接口器件 (CCID)

2022-07-24 17:38 作者:-小白之家-  | 我要投稿

USB 定向放電設(shè)備

USB CCID 設(shè)備是實(shí)現(xiàn) CCID 規(guī)范的 USB 設(shè)備,它允許連接實(shí)現(xiàn)相同規(guī)范的智能卡讀卡器。有關(guān)詳細(xì)信息,請(qǐng)參閱規(guī)范:

Universal Serial BusDevice Class: Smart CardCCIDSpecification forIntegrated Circuit(s) Cards Interface DevicesRevision 1.1April 22rd, 2005

智能卡用于身份驗(yàn)證、單點(diǎn)登錄、公共/私有方案中的解密和數(shù)字簽名??蛻舳松系闹悄芸ㄗx卡器不能在具有簡單 USB 直通的來賓上使用,因?yàn)樗诳蛻舳松喜豢捎?,在“刪除”計(jì)算機(jī)時(shí)可能會(huì)鎖定計(jì)算機(jī)。另一方面,此設(shè)備允許您在客戶端和來賓計(jì)算機(jī)上使用智能卡。也可以使用此設(shè)備具有完全虛擬的智能卡讀卡器和智能卡(即不受物理設(shè)備支持)。

建筑

加密功能和對(duì)物理卡的訪問是通過libcacard庫完成的,在構(gòu)建QEMU之前必須安裝其開發(fā)包:

在 redhat/fedora 中:

yum install libcacard-devel

在 ubuntu 中:

apt-get install libcacard-dev

配置和構(gòu)建:

./configure --enable-smartcard && make

將 ccid 卡模擬與硬件結(jié)合使用

假設(shè)您在主機(jī)上有一個(gè)工作智能卡,使用當(dāng)前用戶,使用 libcacard,QEMU 使用 ccid-card 模擬充當(dāng)另一個(gè)客戶端:

qemu -usb -device usb-ccid -device ccid-card-emulated

將 ccid 卡模擬與存儲(chǔ)在文件中的證書結(jié)合使用

您必須創(chuàng)建 CA 和卡證書。這是一個(gè)一次性過程。我們使用 NSS 證書:

mkdir fake-smartcard cd fake-smartcard certutil -N -d sql:$PWD certutil -S -d sql:$PWD -s "CN=Fake Smart Card CA" -x -t TC,TC,TC -n fake-smartcard-ca certutil -S -d sql:$PWD -t ,, -s "CN=John Doe" -n id-cert -c fake-smartcard-ca certutil -S -d sql:$PWD -t ,, -s "CN=John Doe (signing)" --nsCertType smime -n signing-cert -c fake-smartcard-ca certutil -S -d sql:$PWD -t ,, -s "CN=John Doe (encryption)" --nsCertType sslClient -n encryption-cert -c fake-smartcard-ca

注意:您必須正好有三個(gè)證書。

您可以將模擬卡類型與證書后端一起使用:

qemu -usb -device usb-ccid -device ccid-card-emulated,backend=certificates,db=sql:$PWD,cert1=id-cert,cert2=signing-cert,cert3=encryption-cert

要使用客戶機(jī)中的證書,請(qǐng)導(dǎo)出 CA 證書:

certutil -L -r -d sql:$PWD -o fake-smartcard-ca.cer -n fake-smartcard-ca

并將其導(dǎo)入到來賓中:

certutil -A -d /etc/pki/nssdb -i fake-smartcard-ca.cer -t TC,TC,TC -n fake-smartcard-ca

在 Linux 來賓中,您可以使用 CoolKey PKCS #11 模塊訪問該卡:

certutil -d /etc/pki/nssdb -L -h all

它將提示您輸入 PIN(這是您早期分配給證書數(shù)據(jù)庫的密碼),然后顯示所有三個(gè)證書以及手動(dòng)導(dǎo)入的 CA 證書:

Certificate Nickname ? ? ? ? ? ? ? ? ? ? ? ?Trust Attributesfake-smartcard-ca ? ? ? ? ? ? ? ? ? ? ? ? ? CT,C,CJohn Doe:CAC ID Certificate ? ? ? ? ? ? ? ? u,u,uJohn Doe:CAC Email Signature Certificate ? ?u,u,uJohn Doe:CAC Email Encryption Certificate ? u,u,u

如果未發(fā)生這種情況,則不會(huì)安裝 CoolKey 或未向 NSS 注冊(cè)。注冊(cè)可以從 Firefox 或命令行完成:

modutil -dbdir /etc/pki/nssdb -add "CAC Module" -libfile /usr/lib64/pkcs11/libcoolkeypk11.somodutil -dbdir /etc/pki/nssdb -list

將 ccid-card-passthru 與客戶端硬件配合使用

在主機(jī)上,使用合適的 chardev 指定 ccid-card-passthru 設(shè)備:

qemu -chardev socket,server=on,host=0.0.0.0,port=2001,id=ccid,wait=off \ ? ? -usb -device usb-ccid -device ccid-card-passthru,chardev=ccid

在客戶端上運(yùn)行 vscclient,在構(gòu)建 QEMU 時(shí)構(gòu)建:

vscclient <qemu-host> 2001

將 ccid-card-passthru 與客戶端證書結(jié)合使用

這種情況不是特別有用,但您可以使用它來調(diào)試您的設(shè)置。

按照上面的說明進(jìn)行操作,但運(yùn)行 QEMU 和 vscclient 除外,如下所示。

如上所述運(yùn)行qemu,并從“假智能卡”目錄運(yùn)行vscclient,如下所示:

qemu -chardev socket,server=on,host=0.0.0.0,port=2001,id=ccid,wait=off \ ? ? -usb -device usb-ccid -device ccid-card-passthru,chardev=ccidvscclient -e "db=\"sql:$PWD\" use_hw=no soft=(,Test,CAC,,id-cert,signing-cert,encryption-cert)" <qemu-host> 2001

直通協(xié)議方案

這是使用直通卡設(shè)備時(shí)的典型消息交換。usb-ccid 是一種 usb 設(shè)備。它在啟動(dòng)時(shí)默認(rèn)為未連接的 USB 設(shè)備。usb-ccid 期望有一個(gè) chardev,并期望在 cac_card/vscard_common.h 中定義的協(xié)議被傳遞。usb-ccid 設(shè)備可以處于以下三種模式之一:

  • 超然

  • 不帶卡連接

  • 與卡連接

典型的交換是(箭頭顯示誰啟動(dòng)了每個(gè)交換,它可以是客戶端發(fā)起的,也可以是來賓發(fā)起的):

client event ? ? ? ?| ? ?vscclient ? ? ? ? ? | ? ?passthru ? ?| ? ?usb-ccid ?| ?guest event------------------------------------------------------------------------------------------------ ? ? ? ? ? ? ? ? ? ?| ? ?VSC_Init ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ?| ? ?VSC_ReaderAdd ? ? ? | ? ? ? ? ? ? ? ?| ? ?attach ? ?| ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| ?sees new usb device. ?card inserted -> ?| ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ?| ? ?VSC_ATR ? ? ? ? ? ? | ? insert ? ? ? | ? ?insert ? ?| ?see new card ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ?| ? ?VSC_APDU ? ? ? ? ? ?| ? VSC_APDU ? ? | ? ? ? ? ? ? ?| <- guest sends APDUclient <-> physical | ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| card APDU exchange | ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| client response -> | ? ?VSC_APDU ? ? ? ? ? ?| ? VSC_APDU ? ? | ? ? ? ? ? ? ?| ?receive APDU response ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[APDU<->APDU repeats several times] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?... ? card removed ?-> | ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ?| ? ?VSC_CardRemove ? ? ?| ? remove ? ? ? | ? remove ? ? | ? card removed ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[(card insert, apdu's, card remove) repeat] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?... ?kill/quit ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| ? ?vscclient ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ?| ? ?VSC_ReaderRemove ? ?| ? ? ? ? ? ? ? ?| ? detach ? ? | ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ?| ? usb device removed.

利布卡卡德

ccid-card-emulated 和 vscclient 都使用 libcacard 作為卡模擬器。libcacard實(shí)現(xiàn)了完全虛擬的CAC(智能卡的DoD標(biāo)準(zhǔn))兼容的卡,并使用NSS檢索證書并進(jìn)行任何加密。然后,后端可以是真正的讀卡器和卡,也可以是存儲(chǔ)在文件中的證書。


[QEMU]芯片卡接口器件 (CCID)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
宜宾县| 丹阳市| 黄陵县| 项城市| 宝清县| 灵丘县| 禄劝| 武穴市| 玛沁县| 津南区| 高邮市| 林甸县| 许昌县| 西贡区| 朝阳区| 渭源县| 抚松县| 河南省| 贞丰县| 赤峰市| 高密市| 临澧县| 孝昌县| 贺兰县| 美姑县| 双桥区| 万盛区| 高密市| 沁阳市| 郑州市| 临城县| 平山县| 达尔| 精河县| 会宁县| 林甸县| 昆山市| 蒙自县| 布尔津县| 英吉沙县| 万盛区|