深入Linux:PCSC篇(linuxpcsc)
PCSC(Personal Computer-Smart Card)是一款个人计算机与智能卡之间的通信标准,也是将智能卡(用于加密消息传输)与电脑连接的一种通信标准,可以提供安全的两端通讯连接和数据交换服务,用于验证用户身份,银行保护、存储数据等身份认证以及数据安全相关的业务。
pcsc共有3个概念:PCSC Service(PCSC服务),PCSC Lite(PCSC精简版),以及PCSC Card(PCSC卡)。PCSC Service是管理PCSC卡的服务,它支持通过软件获取和控制PCSC卡的读写。PCSC Lite是PCSC服务的精简版软件,是一个用来实现智能卡环境的一种软件,在找到PCSC卡时可以激活PCSC卡;而PCSC Card是智能卡,它采用ISO(国际标准化组织)的7816标准,前端应用程序可以调用它,用来实现认证。
通过Linux中的PCSC服务,PCSC服务器可以处理PCSC卡片,完成认证过程。要将PCSC和Linux综合起来,需要使用API函数,来获取PCSC卡参数,初始化和连接PCSC卡。PCSC API有两个部分:PCSC库(PCSC Library)和PCSC应用程序接口(PCSC Application Interface),其中PCSC库是给应用程序用来实现PCSC操作的编程接口,而PCSC应用程序接口是直接实现PCSC功能的函数集。下面将详细介绍:
(1)PCSC库:PCSC库可以在更高的层次上使用PCSC API,它提供了一些封装的高级操作函数,将底层的PCSC API封装在一个易于使用的接口中,比如PCSC_OpenReader()函数用于打开PCSC阅读器,PCSC_ListReaders()函数用于列出当前机器上所有连接的PCSC阅读器,PCSC_Disconnect()函数用于断开PCSC卡。
(2)PCSC应用程序接口:PCSC应用程序接口用于直接实现PCSC功能,它提供了最原始的PCSC操作函数,比如SCardEstablishContext()函数用于建立PCSC上下文,SCardStatus()函数用于查询PCSC卡的状态,SCardConnect()函数用于将PCSC卡连接到计算机,SCardTransmit()函数用于发送数据通道到PCSC卡,SCardControl()函数用于执行特定的控制命令等。
通过封装PCSC API,Linux系统中可以更轻松地使用智能卡和PCSC技术,实现其安全和认证应用,例如支付、身份认证等,提供更多方便和安全的服务。