CN109088733A - 一种智能卡应用扩展的实现方法及装置 - Google Patents
一种智能卡应用扩展的实现方法及装置 Download PDFInfo
- Publication number
- CN109088733A CN109088733A CN201810754458.4A CN201810754458A CN109088733A CN 109088733 A CN109088733 A CN 109088733A CN 201810754458 A CN201810754458 A CN 201810754458A CN 109088733 A CN109088733 A CN 109088733A
- Authority
- CN
- China
- Prior art keywords
- smart card
- session
- key
- interface function
- signature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3273—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
Abstract
本发明提供一种智能卡应用扩展的实现方法及装置,当与扩展配置文件中的设备标识对应的智能卡插入终端时装置开始调用接口函数,该方法包括:当第一接口函数被调用时,装置创建对应于智能卡的智能卡令牌并进行初始化;从智能卡中读取智能卡数据;将智能卡数据中的证书对象转化成为证书钥匙串格式的数据,根据证书钥匙串格式的数据创建密钥对钥匙串格式数据,设置密钥对钥匙串格式数据的属性;将证书钥匙串格式数据和密钥对钥匙串格式数据保存成在系统密钥链单元中;将系统密钥链单元封装到系统密钥链里;当接收到触发信息时,创建会话并进行初始化,将会话与智能卡令牌绑定,根据会话调用接口函数进行应用扩展操作。
Description
技术领域
本发明涉及智能卡应用领域,尤其涉及一种智能卡应用扩展的实现方法及装置。
背景技术
在现有技术中,使用token技术来实现授权访问,即通过令牌设备进行签名和验签等操作。tokend技术的开发环境只能在mac系统版本10.7及版本10.7之前的系统上使用和编译,在版本10.7以后的系统中只支持使用而不能开发,使现有技术中的授权访问过程都局限于tokend技术,如何不使用tokend技术也能实现授权访问,是现有技术亟待解决的问题。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种智能卡应用扩展的实现方法及装置。
本发明提供了一种智能卡应用扩展的实现方法,当与扩展配置文件中的设备标识对应的智能卡插入终端时装置开始调用接口函数,所述方法包括:
步骤S1:当第一接口函数被调用时,装置创建对应于所述智能卡的智能卡令牌并进行初始化;
步骤S2:所述装置从所述智能卡中读取智能卡数据;
步骤S3:所述装置将读取到的智能卡数据中的证书对象转化成为证书钥匙串格式的数据,并根据所述证书钥匙串格式的数据创建密钥对钥匙串格式数据,并设置所述密钥对钥匙串格式数据的属性;
步骤S4:所述装置将所述证书钥匙串格式数据和所述密钥对钥匙串格式数据保存在系统密钥链单元中;
步骤S5:所述装置将所述系统密钥链单元封装到系统密钥链里,所述系统密钥链保存在所述智能卡令牌中;
步骤S6:当所述装置接收到触发信息时,创建会话并对所述会话进行初始化,将所述会话与所述智能卡令牌绑定,所述装置根据所述会话调用接口函数进行应用扩展操作。
本发明又提供了一种智能卡应用扩展的实现装置,当与扩展配置文件中的设备标识对应的智能卡插入终端时装置开始调用接口函数,所述装置包括:
创建初始化模块,用于当第一接口函数被调用时,创建对应于所述智能卡的智能卡令牌并进行初始化;
第一读取模块,用于在所述创建初始化模块初始化完成后从所述智能卡中读取智能卡数据;
转化设置模块,用于将所述第一读取模块读取到的智能卡数据中的证书对象转化成为证书钥匙串格式的数据,并根据所述证书钥匙串格式的数据创建密钥对钥匙串格式数据,并设置所述密钥对钥匙串格式数据的属性;
第一保存模块,用于将所述转化设置模块的所述证书钥匙串格式数据和所述密钥对钥匙串格式数据保存在系统密钥链单元中;
封装模块,用于将所述第一保存模块的所述系统密钥链单元封装到系统密钥链里,所述系统密钥链保存在所述智能卡令牌中;
接收模块,用于接收触发信息;
创建绑定模块,用于当所述接收模块接收到触发信息时,创建会话并对所述会话进行初始化,将所述会话与所述创建初始化模块的智能卡令牌绑定;
应用扩展操作模块,用于根据所述创建绑定模块的会话调用接口函数进行应用扩展操作。
本发明与现有技术相比,具有以下优点:
本实施例技术方案提供的一种智能卡应用扩展的实现方法及装置,智能卡应用扩展是实现授权访问的一种方式,本发明技术方案适用于safari(苹果计算机的操作系统MacOS中的浏览器)和谷歌chrome浏览器,在新的mac系统上可替代现有tokend技术,支持智能卡实现ssl双向认证,操作简单,容易维护。
附图说明
图1为本发明实施例一提供的一种智能卡应用扩展的实现方法流程图;
图2为本发明实施例二提供的一种使用与实施例一创建的智能卡令牌对应的智能卡进行身份验证操作的实现方法流程图;
图3为本发明实施例三提供的一种使用与实施例一创建的智能卡令牌对应的智能卡进行签名操作的实现方法流程图;
图4为本发明实施例四提供的一种智能卡应用扩展的实现装置方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供了一种智能卡应用扩展的实现方法,当与扩展配置文件中的AID(设备标识)对应的智能卡插入终端时装置开始调用接口函数;该装置是设置在终端上的程序,如图1所示,本实施例的方法包括:
步骤101、当第一接口函数被调用时,装置创建对应于上述智能卡的智能卡令牌并进行初始化;
在本实施例中,第一接口函数为TokenDriver的入口函数,具体为(TKSmartCardToken*)tokenDriver:(TKSmartCardTokenDriver*)drivercreateTokenForSmartCard:(TKSmartCard*)smartCard AID:(NSData*)AIDerror:(NSError**)error
具体的,装置创建对应于上述智能卡的智能卡令牌并进行初始化,包括:装置通过调用第二接口函数,向与传入的智能卡参数对应的智能卡发送获取序列号指令,获取设备序列号,根据设备序列号及第二接口函数的参数调用第三接口函数创建并初始化对应于上述智能卡的智能卡令牌,并将设备序列号作为该智能卡令牌的唯一标识;
具体的,本实施例中的第二接口函数为Token类的初始化函数,具体为-(instancetype)initWithSmartCard:(TKSmartCard*)smartCard AID:(NSData*)AIDtokenDriver:(TokenDriver*)tokenDriver error:(NSError**)error
本实施例中的第三接口函数具体为
-(instancetype)initWithSmartCard:(TKSmartCard*)smartCard AID:(nullableNSData*)AID instanceID:(NSString*)instanceIDtokenDriver:(TKSmartCardTokenDriver*)tokenDriver,其中instanceID是设备序列号,其他参数为第二接口函数传入的参数;
可选的,在本实施例中,步骤101与步骤102之间包括:装置判断智能卡令牌是否初始化成功,是则执行步骤102,否则报错,结束;
具体的,装置判断第三接口函数的返回值,如为智能卡令牌的实例,则智能卡令牌初始化成功,否则智能卡令牌初始化失败;
步骤102、装置从智能卡中读取智能卡数据;
在本实施例中,从智能卡中读取智能卡数据具体包括:读取智能卡缓存区,获取并保存智能卡数据的长度和偏移;再根据获取的长度和偏移读取公有区智能卡数据,并解析智能卡数据属性特征,获取并保存证书对象;
步骤103:装置将读取到的智能卡数据中的证书对象转化成为证书钥匙串格式的数据,并根据证书钥匙串格式的数据创建密钥对钥匙串格式数据,并设置密钥对钥匙串格式数据的属性;
具体的,在本实施例中,证书钥匙串格式数据类为TKTokenKeychainCertificate数据格式;密钥对钥匙串格式数据类型为TKTokenKeychainKey。具体的,根据传入的证书对象(certificate)和与证书对象标识(certificateID)对应的证书通过第一函数来创建TKTokenKeychainCertificate的certItem(证书钥匙串格式数据),然后在根据证书对象(certificate)、证书对象标识(certificateID)以及指定密钥对的密钥对数据标识(keyItemID)调用第二函数创建与certItem对应的TKTokenKeychainKey的密钥对钥匙串格式数据(keyItem),并通过第三函数设置keyItem的签名属性为真,并且设置每次进行签名操作都需要身份认证,具体的,创建一个包含签名操作行为和对应访问限制的字典,并将其赋值给TKTokenKeychainKey类的访问限制字典constraints;其中,第一函数为-(nullableinstancetype)initWithCertificate:(SecCertificateRef)certificateRefobjectID:(TKTokenObjectID)objectID;;第二函数为-(nullableinstancetype)initWithCertificate:(nullable SecCertificateRef)certificateRefobjectID:(TKTokenObjectID)objectID;
具体的,第三函数为TKTokenKeychainKey类的属性函数canSign;
步骤104、装置将证书钥匙串格式数据和密钥对钥匙串格式数据保存成在系统密钥链单元中(TKTokenKeychainItem);
优选的,步骤104具体为:装置将密钥对钥匙串格式数据(keyItem)和证书钥匙串格式数据(certItem)存入TKTokenKeychainItem的实例keychainItem;比如当前支持的加密算法是rsa加密算法就将rsa类型的的keyItem和certItem存入TKTokenKeychainItem的实例keychainItem,即TKTokenKeychainKey类的实例keyItem,TKTokenKeychainCertificate类的实例certItem;
具体的,创建TKTokenKeychainItem类型的数组,NSMutableArray<TKTokenKeychainItem*>*keychainItem=[NSMutableArrayarray],然后将符合我们要求的证书钥匙串格式数据certItem和密钥对钥匙串格式数据keyItem添加到数组keychainItem里。
步骤105、装置将系统密钥链单元(TKTokenKeychainItem)封装到系统密钥链(TKTokenKeychainContents)里;
在本实施例中,装置调用TKTokenKeychainContents类的fillWithItems:函数将TKTokenKeychainItem封装到系统密钥链TKTokenKeychainContents里,具体实现为[keychainContents fillWithItems:keychainItem];其中,keychainContents是TKTokenKeychainContents的实例,keychainItem是TKTokenKeychainItem的实例;
具体的,本实例中的系统密钥链保存在智能卡令牌中;
步骤106、当装置接收到触发信息时,创建会话(TokenSession)并对会话进行初始化,将会话与智能卡令牌绑定;
具体的,在本实施例中,一次ssl请求认证对应创建一个会话,装置通过调用第四接口函数创建会话TokenSession,第四接口函数为
-(TKTokenSession*)token:(TKToken*)token createSessionWithError:(NSError**)error;
在本实施例中,装置通过调用第五接口函数对TokenSession进行初始化,第五接口函数为-(instancetype)initWithToken:(Token*)token。
步骤107:装置根据会话调用接口函数进行应用扩展操作;
在本实施例中,装置将会话与智能卡令牌绑定之后,可通过会话获取到绑定的智能卡令牌,通过智能卡令牌找到对应的智能卡来进行扩展应用操作。
实施例二
本发明实施例二提供一种使用与实施例一创建的智能卡令牌对应的智能卡进行身份验证操作的实现方法,即当装置接收到验PIN触发信息时,创建验PIN会话并对验PIN会话进行初始化,将验PIN会话与对应的智能卡令牌绑定,装置根据验PIN会话调用第四接口函数进行验PIN操作;如图2所示,本实施例的方法具体包括:
步骤200:当装置接收到验PIN触发信息时,创建验PIN会话并对验PIN会话进行初始化,将验PIN会话与对应的智能卡令牌绑定,根据验PIN会话调用第四接口函数;
具体的,在本实施例中,第四接口函数具体为:-(TKTokenAuthOperation*)tokenSession:(TKTokenSession*)sessionbeginAuthForOperation:(TKTokenOperation)operation constraint:(TKTokenOperationConstraint)constraint error:(NSError**)error;其中Tokensession是验PIN会话,operation是当前操作的标识,constraint是此认证操作必须要满足的约束条件,error是错误码信息,身份验证操作通过函数finishWithError:完成,并在finishWithError:函数内设置认证结果状态。
步骤201、通过第四接口函数创建智能卡令牌PIN码验证操作(TKTokenSmartCardPINAuthOperation)实例并初始化,将智能卡令牌PIN码验证操作实例与验PIN会话对应的智能卡令牌绑定,并设置指令模版、PIN格式要求;
在本实施例中,装置根据当前会话调用第五函数创建TKTokenSmartCardPINAuthOperation实例并初始化,第五函数具体为:-(instancetype)initWithSession:(TokenSession*)session;
步骤202:装置根据PIN格式要求提示用户输入PIN码并等待接收用户输入的PIN码和输入完成确认信息;
步骤203、当装置接收到输入完成确认信息后,通过与对应于验PIN会话的智能卡令牌对应的智能卡对接收到的用户输入的PIN码进行验证;
在本实施例中,可通过验PIN码会话找到对应的智能卡令牌,通过智能卡令牌与相应的智能卡进行通讯;
在本实施例中,装置通过调用第八接口函数对PIN码进行验证;具体的,本实施例中的第八接口函数如下:
-(BOOL)finishWithError:(NSError*_Nullable__autoreleasing*)error
优选的,步骤203具体包括:
步骤203-1、当装置接收到用户输入PIN码的完成确认信息后,向与对应于验PIN会话的智能卡令牌对应的智能卡发送获取随机数指令;
在本实施例中,装置通过向智能卡发送获取随机数指令来获取随机数;
步骤203-2、当装置接收到智能卡返回的随机数时,将收到的PIN码和随机数做异或运算得到异或结果;
步骤203-3、装置使用令牌公钥对异或结果进行加密得到第一加密结果;
步骤203-4、装置根据第一加密结果生成验证指令,并将其发送给与智能卡令牌对应的智能卡;
在本实施例中,智能卡接收到验证指令之后,使用保存的令牌私钥对验证指令中的第一加密结果进行解密,根据解密结果和保存的随机数生成验证密码,判断验证密码是否与保存的PIN码相同,是则给装置返回PIN码验证成功信息,否则给装置返回PIN码验证失败信息;
步骤203-5、装置接收智能卡返回的验证信息。
在本实施例中,装置接收到智能卡返回的验证信息之后会进行相应操作,如装置接收到的验证信息为验证成功信息,则标记会话敏感,同步接收到的认证状态信息,设置当前会话下上下文智能卡已通过身份认证,标记会话的认证状态为已认证。
实施例三
本发明实施例三提供一种使用与实施例一创建的智能卡令牌对应的智能卡进行签名操作的实现方法,即当装置接收到签名触发信息时,创建签名会话并对签名会话进行初始化,将签名会话与对应的智能卡令牌绑定,装置根据签名会话调用第六接口函数进行签名操作。如图3所示,本实施例的方法包括:
步骤301:当装置接收到签名触发信息时,创建签名会话并对签名会话进行初始化,将签名会话与对应的智能卡令牌绑定,装置根据签名会话调用第六接口函数;
步骤302:装置通过第六接口函数的参数中的密钥标识从对应于所述签名会话的智能卡令牌中获取密钥对钥匙串格式数据(keyitem),根据密钥对钥匙串格式数据从对应于所述签名会话的智能卡令牌中获取证书对象(certData);
在本实施例中,第六接口函数具体为:-(nullable NSData*)tokenSession:(TKTokenSession*)session signData:(NSData*)dataToSignusingKey:(TKTokenObjectID)keyObjectID algorithm:(TKTokenKeyAlgorithm*)algorithm error:(NSError**)error;其中session是会话的实例,dataToSign是原文数据,keyObjectID是密钥标识,algorithm是算法,error是错误码信息,成功返回签名结果,失败返回空。
具体的,根据传入的keyObjectID获取保存在TKTokenKeychainKey类中的实例(keyItem),在通过ketItem的证书标识(certObjectID)获取到证书对象;
步骤303、装置根据第六接口函数的参数中的算法解析第六接口函数的参数中的原文数据得到待签名数据;
可选的,装置从原文数据中截取有效原文数据得到待签名数据;
步骤304、装置通过与对应于签名会话的智能卡令牌对应的智能卡和证书对象对待签名数据执行签名操作;
在本实施例中,装置通过签名会话获取绑定的智能卡令牌,将待签名数据发送给对应于智能卡令牌的智能卡,智能卡使用证书对象对待签名数据执行签名操作;
具体的,步骤304包括:
步骤304-1:装置根据第六接口函数的参数中的签名算法标识和解析获得的私钥对象的密钥ID(KID)通过安全环境管理生成第一签名指令并发送给与对应于签名会话的智能卡令牌对应的智能卡;
在本实施例中,智能卡接收第一签名指令并对其进行解析,根据签名算法标识和密钥ID设置签名算法和签名密钥,若设置成功,则给装置返回成功的第一状态码,若设置失败,给装置返回错误的第一状态码;
步骤304-2:装置根据智能卡返回的第一状态码判断是否继续签名操作,是则根据待签名数据生成第二签名指令并发送给智能卡,否则结束;
在本实施例中,智能卡接收到第二签名指令并对其进行解析获取待签名数据,并对待签名数据进行哈希计算,若计算成功,则保存计算得到的哈希结果,并给装置返回成功的第二状态码,若计算失败,则给装置返回错误的第二状态码;
步骤304-3:装置根据智能卡返回的第二状态码判断是否继续签名操作,是则生成第三签名指令并发送给智能卡,否则结束;
在本实施例中,智能卡接收到第二签名指令时,根据设置的签名算法使用证书对象中的签名密钥对保存的哈希结果进行签名得到签名值,若签名成功,则给装置返回成功的第三状态码和签名值,若签名失败,则给装置返回错误的第三状态码;
步骤305、装置根据签名操作结果判断签名操作是否成功,是则保存接收到的签名操作结果中的签名值,否则结束。
在本实施例中,本实施例中步骤305中的签名操作结果包括签名值、第三状态码。
可选的,实施例二中的装置通过与创建的智能卡令牌对应的智能卡还可以用于进行判断密钥是否支持当前的操作和算法操作、进行解密操作、进行密钥交换操作等;
(一)当装置接收到算法支持触发信息时,创建算法支持会话并对算法支持会话进行初始化,将算法支持会话与智能卡令牌绑定,装置根据算法支持会话调用第五接口函数进行算法支持操作。其中,装置根据算法支持会话调用第五接口函数进行算法支持操作,具体包括:
步骤B0、所述装置根据所述算法支持会话调用第五接口函数;
步骤B1、装置获取通过第五接口函数的参数中的密钥标识(keyObjectID)从对应于所述算法支持会话的智能卡令牌中获取密钥对钥匙串格式数据类型(TKTokenKeychainKey)的密钥对钥匙串格式数据(keyitem);
步骤B2、装置根据keyItem的属性判断当前keyItem是否支持对应算法,是则返回成功信息,否则返回失败信息;
具体的,本实施例的步骤B2包括:装置获取keyItem的属性中支持的算法列表,通过判断传入的算法是否在支持的算法列表里,是则支持,否则不支持;
第五接口函数具体为:-(BOOL)tokenSession:(TKTokenSession*)sessionsupportsOperation:(TKTokenOperation)operation usingKey:(TKTokenObjectID)keyObjectID algorithm:(TKTokenKeyAlgorithm*)algorithm;其中session是会话的实例,operation是当前操作的标识,keyObjectID是密钥标识,algorithm是当前算法,error是错误码信息,返回Yes标识支持当前算法,返回no标识不支持。具体函数实现:调用TKTokenKeyAlgorithm类的-(BOOL)supportsAlgorithm:(SecKeyAlgorithm)algorithm;
(二)当装置接收到解密触发信息时,创建解密会话并对解密会话进行初始化,将解密会话与智能卡令牌绑定,装置根据解密会话调用第七接口函数进行解密操作。其中,装置根据解密会话调用第七接口函数进行解密操作包括:
步骤C0:装置根据解密会话调用第七接口函数;
步骤C1:装置从第七接口函数的参数中获取待解密数据、密钥标识和算法信息;
步骤C2:装置根据密钥标识从对应于解密会话的智能卡令牌中获取对应的密钥,根据与算法信息对应的算法使用获取的密钥对获取的待解密数据进行解密;
在本实施例中,第七接口函数具体为:
-(nullable NSData*)tokenSession:(TKTokenSession*)session decryptData:(NSData*)ciphertext usingKey:(TKTokenObjectID)keyObjectID algorithm:(TKTokenKeyAlgorithm*)algorithm error:(NSError**)error;其中session是会话的实例,ciphertext是待解密数据,keyObjectID是密钥标识,algorithm是算法信息。
(三)当装置接收到密钥交换触发信息时,创建密钥交换会话并对解密会话进行初始化,将密钥交换会话与智能卡令牌绑定,装置根据密钥交换会话调用第八接口函数进行密钥交换操作。其中,装置根据密钥交换会话调用第八接口函数进行密钥交换操作包括:
所述装置根据所述密钥交换会话调用第八接口函数,从所述第八接口函数的参数中获取其他方公钥的原始数据、密钥标识和当前算法,根据密钥标识从对应于所述密钥交换会话的智能卡令牌中获取对应的密钥,根据当前算法将获取的所述密钥和其他方公钥的原始数据进行交换。
在本实施例中,第八接口函数具体为为:-(nullable NSData *)tokenSession:(TKTokenSession*)session performKeyExchangeWithPublicKey:(NSData*)otherPartyPublicKeyData usingKey:(TKTokenObjectID)objectID algorithm:(TKTokenKeyAlgorithm*)algorithm parameters:(TKTokenKeyExchangeParameters*)parameterserror:(NSError**)error;其中session是会话的实例,otherPartyPublicKeyData是其他方公钥的原始公共数据,keyObjectID是密钥标识,algorithm是当前算法,parameters是密钥交换的附件参数,与算法相关,选择的算法决定参数的含义。error是错误码信息,成功返回密钥交换结果,失败返回空。
本实施例技术方案提供的一种智能卡应用扩展的实现方法,智能卡应用扩展是实现授权访问的一种方式,本发明技术方案适用于safari(苹果计算机的操作系统Mac OS中的浏览器)和谷歌chrome浏览器,在新的mac系统上可替代现有tokend技术,支持智能卡实现ssl双向认证,操作简单,容易维护。
实施例四
本发明实施例四提供一种智能卡应用扩展的实现装置,当与扩展配置文件中的设备标识对应的智能卡插入终端时装置开始调用接口函数,如图4所示,本实施例的装置包括:
创建初始化模块401,用于当第一接口函数被调用时,创建对应于智能卡的智能卡令牌并进行初始化;
可选的,在本实施例中,创建初始化模块401具体用于通过调用第二接口函数,向与第二接口函数的智能卡参数对应的智能卡发送获取序列号指令,获取设备序列号,根据设备序列号及第二接口函数的参数调用第三接口函数创建并初始化智能卡令牌,并将设备序列号作为智能卡令牌的唯一标识;
第一读取模块402,用于在创建初始化模块401初始化完成后从智能卡中读取智能卡数据;
可选的,在本实施例中,第一读取模块402具体用于读取智能卡缓存区,获取智能卡数据的长度和偏移并保存;再根据获取的长度和偏移读取公有区中的智能卡数据,解析智能卡数据属性特征,获取并保存证书对象;
转化设置模块403,用于将第一读取模块402读取到的智能卡数据中的证书对象转化成为证书钥匙串格式的数据,并根据证书钥匙串格式的数据创建密钥对钥匙串格式数据,并设置密钥对钥匙串格式数据的属性;
可选的,在本实施例中,转化设置模块402具体用于根据传入的证书对象和与证书对象标识对应的证书通过第一函数来创建证书钥匙串格式数据,根据证书对象、证书对象标识以及指定密钥对的密钥对数据标识调用第二函数创建与证书钥匙串格式数据对应的密钥对钥匙串格式数据,并通过第三函数设置密钥对钥匙串格式数据的签名属性为真,并且设置每次进行签名操作都需要身份认证;
第一保存模块404,用于将转化设置模块403的证书钥匙串格式数据和密钥对钥匙串格式数据保存在系统密钥链单元中;
可选的,在本实施例中,第一保存模块404具体用于创建系统密钥链单元类型的数组,将证书钥匙串格式数据和密钥对钥匙串格式数据添加到数组里;
封装模块405,用于将第一保存模块404的系统密钥链单元封装到系统密钥链里,该系统密钥链保存在智能卡令牌中;
接收模块406,用于接收触发信息;
创建绑定模块407,用于当接收模块406接收到触发信息时,创建会话并对会话进行初始化,将会话与创建初始化模块401的智能卡令牌绑定;
应用扩展操作模块408,用于根据创建绑定模块407的会话调用接口函数进行应用扩展操作。
可选的,本实施例中的装置还包括第一判断模块,用于判断创建初始化模块的智能卡令牌是否初始化成功,是则触发第一读取模块402,否则报错,结束。
更进一步地,第一判断模块具体用于判断第三接口函数的返回值,如为智能卡令牌的实例,则智能卡令牌初始化成功,触发第一读取模块402,否则智能卡令牌初始化失败,报错,结束。
可选的,本实施例中的装置通过与创建的智能卡令牌对应的智能卡进行应用扩展操作包括:进行身份验证操作、进行签名操作、进行判断密钥是否支持当前的操作和算法操作、进行解密操作、进行密钥交换操作等;具体实现过程如下:
(1)如进行身份验证操作,则接收模块406具体用于接收验PIN触发信息;
创建绑定模块407具体用于当接收模块406接收到验PIN触发信息时创建验PIN会话并对验PIN会话进行初始化,将验PIN会话与对应的智能卡令牌绑定;
应用扩展操作模块408具体用于根据创建绑定模块407的验PIN会话调用第四接口函数进行验PIN操作。
更进一步地,应用扩展操作模块408包括:
第一调用单元,用于将创建绑定模块407的验PIN会话作为参数调用第四接口函数;
创建绑定单元,用于通过第四接口函数创建智能卡令牌PIN码验证操作实例并初始化,将智能卡令牌PIN码验证操作实例与对应于验PIN会话的智能卡令牌绑定;
提示接收单元,用于提示用户输入PIN码并接收用户输入的PIN码和输入完成确认信息;
第一验证单元,用于当提示接收单元接收到输入完成确认信息后,通过与对应于验PIN会话的智能卡令牌对应的智能卡对提示接收模块接收到的用户输入的PIN码进行验证。
具体的,在本实施例中,第一验证单元包括:
第一发送子单元,用于当提示接收模块接收到用户输入PIN码的完成确认信息后,向与对应于验PIN会话的智能卡令牌对应的智能卡发送获取随机数指令;
第一接收子单元,用于接收智能卡返回的随机数;
异或子单元,用于将提示接收模块接收到的PIN码和第一接收子单元接收到的随机数做异或运算得到异或结果;
第一加密子单元,用于使用令牌公钥对异或子单元的异或结果进行加密得到第一加密结果;
第一生成子单元,用于根据第一加密子单元的第一加密结果生成验证指令;
第一发送子单元还用于将第一生成子单元生成的验证指令发送给智能卡;
第一接收子单元还用于接收智能卡返回的验证信息。
(2)如进行签名操作,则接收模块406具体用于接收签名触发信息;
创建绑定模块407具体用于当接收模块406接收到签名触发信息时,创建签名会话并对签名会话进行初始化,将签名会话与对应的智能卡令牌绑定;
应用扩展操作模块408具体用于根据创建绑定模块407的签名会话调用第六接口函数进行签名操作。
更进一步地,应用扩展操作模块包括:
第二调用单元,用于根据根据创建绑定模块407的签名会话调用第六接口函数;
第一获取单元,用于通过第六接口函数的参数中的密钥标识从对应于签名会话的智能卡令牌中获取密钥对钥匙串格式数据,根据密钥对钥匙串格式数据从对应于签名会话的智能卡令牌中获取证书对象;
第一解析单元,用于根据第六接口函数的参数中的算法解析第六接口函数的参数中的原文数据得到待签名数据;
执行签名单元,用于通过与第一获取单元获取的签名会话对应的智能卡和证书对象对第一解析单元得到的待签名数据执行签名操作;
第一判断单元,用于根据执行签名单元的签名操作结果判断签名操作是否成功,是则保存签名操作结果中的签名值,否则结束。
具体的,本实施例中的执行签名单元包括:
第一生成发送子单元,用于根据第六接口函数的参数中的签名算法标识和密钥标识通过安全环境管理生成第一签名指令并发送给与对应于签名会话的智能卡令牌对应的智能卡;
第二接收子单元,用于接收智能卡返回的第一状态码;
第一判断子单元,用于根据第二接收子单元接收到的第一状态码判断是否继续签名操作,是则触发第二生成发送子单元,否则结束;
第二生成发送子单元,用于根据待签名数据生成第二签名指令并发送给智能卡;
第三接收子单元,用于接收智能卡返回的第二状态码;
第二判断子单元,用于根据第三接收子单元接收到的第二状态码判断是否继续签名操作,是则触发第三生成发送子单元,否则结束
第三生成发送子单元,用于生成第三签名指令并发送给智能卡。
(3)如进行判断密钥是否支持当前的操作和算法操作,则接收模块406具体用于接收算法支持触发信息;
创建绑定模块407具体用于当接收模块406接收到算法支持触发信息时,创建算法支持会话并对算法支持会话进行初始化,将算法支持会话与智能卡令牌绑定;
扩展应用操作模块408具体用于根据创建绑定模块的算法支持会话调用第五接口函数进行算法支持操作。
更进一步地,扩展应用操作模块408包括:
第三调用单元,用于根据创建绑定模块407的算法支持会话调用第五接口函数;
第二获取单元,用于通过第五接口函数的参数中的密钥标识从对应于算法支持会话的智能卡令牌中获取密钥对钥匙串格式数据类型的密钥对钥匙串格式数据;
第二判断单元,用于根据第二获取单元获取的密钥对钥匙串格式数据的属性判断密钥对钥匙串格式数据是否支持第五接口函数的参数中的算法,是则返回成功信息,否则返回失败信息。
具体的,本实施例中的第二判断单元具体用于获取密钥对钥匙串格式数据的属性中支持的算法列表,判断第五接口函数的参数中的算法是否在算法列表里,是则支持,返回成功信息;否则不支持,返回失败信息。
(4)如进行解密操作,则接收模块406具体用于接收解密触发信息;
创建绑定模块407具体用于当接收模块406接收到解密触发信息时,创建解密会话并对解密会话进行初始化,将解密会话与智能卡令牌绑定;
扩展应用操作模块408具体用于根据创建绑定模块407的解密会话调用第七接口函数进行解密操作。
更进一步地,扩展应用操作模块408包括:
第四调用单元,用于根据创建绑定模块407的解密会话调用第七接口函数;
第三获取单元,用于从第七接口函数的参数中获取待解密数据、密钥标识和算法信息;
解密单元,用于根据第三获取模块获取的密钥标识从对应于解密会话的智能卡令牌中获取对应的密钥,根据与第三获取单元获取的算法信息对应的算法使用密钥对第三获取单元获取的待解密数据进行解密。
(5)如进行密钥交换操作,则接收模块406具体用于接收密钥交换触发信息;
创建绑定模块407具体用于当接收模块406接收到密钥交换触发信息时,创建密钥交换会话并对密钥交换会话进行初始化,将密钥交换会话与智能卡令牌绑定;
扩展应用操作模块408具体用于根据创建绑定模块407的密钥交换会话调用第八接口函数进行密钥交换操作。
更进一步地,扩展应用操作模块408包括:
第五调用单元,用于根据创建绑定模块407的密钥交换会话调用第八接口函数;
交换单元,用于从第八接口函数的参数中获取其他方公钥的原始数据、密钥标识和当前算法,根据密钥标识从对应于密钥交换会话的智能卡令牌中获取对应的密钥,根据当前算法将获取的密钥和其他方公钥的原始数据进行交换。
本实施例技术方案提供的一种智能卡应用扩展的实现装置,智能卡应用扩展是实现授权访问的一种方式,本发明技术方案适用于safari(苹果计算机的操作系统Mac OS中的浏览器)和谷歌chrome浏览器,在新的mac系统上可替代现有tokend技术,支持智能卡实现ssl双向认证,操作简单,容易维护。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (40)
1.一种智能卡应用扩展的实现方法,其特征在于,当与扩展配置文件中的设备标识对应的智能卡插入终端时装置开始调用接口函数,所述方法包括:
步骤S1:当第一接口函数被调用时,装置创建对应于所述智能卡的智能卡令牌并进行初始化;
步骤S2:所述装置从所述智能卡中读取智能卡数据;
步骤S3:所述装置将读取到的智能卡数据中的证书对象转化成为证书钥匙串格式的数据,并根据所述证书钥匙串格式的数据创建密钥对钥匙串格式数据,并设置所述密钥对钥匙串格式数据的属性;
步骤S4:所述装置将所述证书钥匙串格式数据和所述密钥对钥匙串格式数据保存在系统密钥链单元中;
步骤S5:所述装置将所述系统密钥链单元封装到系统密钥链里,所述系统密钥链保存在所述智能卡令牌中;
步骤S6:当所述装置接收到触发信息时,创建会话并对所述会话进行初始化,将所述会话与所述智能卡令牌绑定,所述装置根据所述会话调用接口函数进行应用扩展操作。
2.如权利要求1所述的方法,其特征在于,所述步骤S1包括:当第一接口函数被调用时,所述装置通过调用第二接口函数,向与所述第二接口函数的智能卡参数对应的智能卡发送获取序列号指令,获取设备序列号,根据所述设备序列号及所述第二接口函数的参数调用第三接口函数创建并初始化智能卡令牌,并将设备序列号作为所述智能卡令牌的唯一标识。
3.如权利要求2所述的方法,其特征在于,所述步骤S1与所述步骤S2之间包括:所述装置判断所述智能卡令牌是否初始化成功,是则执行步骤S2,否则报错,结束。
4.如权利要求3所述的方法,其特征在于,所述装置判断所述智能卡令牌是否初始化成功,包括:所述装置判断所述第三接口函数的返回值,如为智能卡令牌的实例,则智能卡令牌初始化成功,执行步骤S2;否则智能卡令牌初始化失败,报错,结束。
5.如权利要求1所述的方法,其特征在于,所述步骤S2包括:所述装置读取智能卡缓存区,获取智能卡数据的长度和偏移并保存;再根据获取的长度和偏移读取公有区中的智能卡数据,解析智能卡数据属性特征,获取并保存证书对象。
6.如权利要求1所述的方法,其特征在于,所述步骤S3包括:所述装置根据传入的证书对象和与证书对象标识对应的证书通过第一函数来创建证书钥匙串格式数据,根据所述证书对象、所述证书对象标识以及指定密钥对的密钥对数据标识调用第二函数创建与证书钥匙串格式数据对应的密钥对钥匙串格式数据,并通过第三函数设置密钥对钥匙串格式数据的签名属性为真,并且设置每次进行签名操作都需要身份认证。
7.如权利要求1所述的方法,其特征在于,所述步骤S4包括:所述装置创建系统密钥链单元类型的数组,将所述证书钥匙串格式数据和所述密钥对钥匙串格式数据添加到所述数组里。
8.如权利要求1所述的方法,其特征在于,所述步骤S6包括:当所述装置接收到验PIN触发信息时,创建验PIN会话并对所述验PIN会话进行初始化,将所述验PIN会话与对应的智能卡令牌绑定,所述装置根据所述验PIN会话调用第四接口函数进行验PIN操作。
9.如权利要求8所述的方法,其特征在于,所述装置根据所述验PIN会话调用第四接口函数进行验PIN操作,包括:
步骤200、所述装置将所述验PIN会话作为参数调用第四接口函数;
步骤201、所述装置通过所述第四接口函数创建智能卡令牌PIN码验证操作实例并初始化,将所述智能卡令牌PIN码验证操作实例与对应于所述验PIN会话的智能卡令牌绑定;
步骤202:所述装置提示用户输入PIN码并等待接收用户输入的PIN码和输入完成确认信息;
步骤203、当所述装置接收到输入完成确认信息后,通过与对应于所述验PIN会话的智能卡令牌对应的智能卡对接收到的用户输入的PIN码进行验证。
10.如权利要求9所述的方法,其特征在于,所述步骤203具体包括:
步骤203-1、当所述装置接收到用户输入PIN码的完成确认信息后,向与对应于所述验PIN会话的智能卡令牌对应的智能卡发送获取随机数指令;
步骤203-2、当所述装置接收到所述智能卡返回的随机数时,将接收到的所述PIN码和所述随机数做异或运算得到异或结果;
步骤203-3、所述装置使用令牌公钥对异或结果进行加密得到第一加密结果;
步骤203-4、所述装置根据第一加密结果生成验证指令,并将所述验证指令发送给所述智能卡;
步骤203-5、所述装置接收所述智能卡返回的验证信息。
11.如权利要求1所述的方法,其特征在于,所述步骤S6包括:当所述装置接收到签名触发信息时,创建签名会话并对所述签名会话进行初始化,将所述签名会话与对应的智能卡令牌绑定,所述装置根据所述签名会话调用第六接口函数进行签名操作。
12.如权利要求11所述的方法,其特征在于,所述装置根据所述签名会话调用第六接口函数进行签名操作,包括:
步骤301、所述装置根据所述签名会话调用第六接口函数;
步骤302:所述装置通过所述第六接口函数的参数中的密钥标识从对应于所述签名会话的智能卡令牌中获取密钥对钥匙串格式数据,根据所述密钥对钥匙串格式数据从对应于所述签名会话的智能卡令牌中获取证书对象;
步骤303、所述装置根据所述第六接口函数的参数中的算法解析所述第六接口函数的参数中的原文数据得到待签名数据;
步骤304、所述装置通过与对应于所述签名会话的智能卡令牌对应的智能卡和所述证书对象对所述待签名数据执行签名操作;
步骤305、所述装置根据签名操作结果判断签名操作是否成功,是则保存所述签名操作结果中的签名值,否则结束。
13.如权利要求12所述的方法,其特征在于,所述步骤304包括:
步骤304-1:所述装置根据第六接口函数的参数中的签名算法标识和所述密钥标识通过安全环境管理生成第一签名指令并发送给与对应于所述签名会话的智能卡令牌对应的智能卡;
步骤304-2:所述装置根据所述智能卡返回的第一状态码判断是否继续签名操作,是则根据所述待签名数据生成第二签名指令并发送给所述智能卡,否则结束;
步骤304-3:所述装置根据所述智能卡返回的第二状态码判断是否继续签名操作,是则生成第三签名指令并发送给所述智能卡,否则结束。
14.如权利要求1所述的方法,其特征在于,所述装置根据会话调用接口函数进行应用扩展操作包括:
当所述装置接收到算法支持触发信息时,创建算法支持会话并对所述算法支持会话进行初始化,将所述算法支持会话与所述智能卡令牌绑定,所述装置根据所述算法支持会话调用第五接口函数进行算法支持操作。
15.如权利要求14所述的方法,其特征在于,所述装置根据所述算法支持会话调用第五接口函数进行算法支持操作,包括:
步骤B0、所述装置根据所述算法支持会话调用第五接口函数;
步骤B1、所述装置通过所述第五接口函数的参数中的密钥标识从对应于所述算法支持会话的智能卡令牌中获取密钥对钥匙串格式数据类型的密钥对钥匙串格式数据;
步骤B2、所述装置根据所述密钥对钥匙串格式数据的属性判断所述密钥对钥匙串格式数据是否支持所述第五接口函数的参数中的算法,是则返回成功信息,否则返回失败信息。
16.如权利要求15所述的方法,其特征在于,所述步骤B2包括:所述装置获取密钥对钥匙串格式数据的属性中支持的算法列表,判断所述第五接口函数的参数中的算法是否在所述算法列表里,是则支持,返回成功信息;否则不支持,返回失败信息。
17.如权利要求1所述的方法,其特征在于,所述步骤S6包括:当所述装置接收到解密触发信息时,创建解密会话并对所述解密会话进行初始化,将所述解密会话与所述智能卡令牌绑定,所述装置根据所述解密会话调用第七接口函数进行解密操作。
18.如权利要求17所述的方法,其特征在于,所述装置根据所述解密会话调用第七接口函数进行解密操作包括:
步骤C0:所述装置根据所述解密会话调用第七接口函数;
步骤C1:所述装置从所述第七接口函数的参数中获取待解密数据、密钥标识和算法信息;
步骤C2:所述装置根据所述密钥标识从对应于所述解密会话的智能卡令牌中获取对应的密钥,根据与所述算法信息对应的算法使用获取的所述密钥对获取的所述待解密数据进行解密。
19.如权利要求1所述的方法,其特征在于,所述步骤S6包括:当所述装置接收到密钥交换触发信息时,创建密钥交换会话并对所述解密会话进行初始化,将所述密钥交换会话与所述智能卡令牌绑定,所述装置根据所述密钥交换会话调用第八接口函数进行密钥交换操作。
20.如权利要求19所述的方法,其特征在于,所述装置根据所述密钥交换会话调用第八接口函数进行密钥交换操作包括:
所述装置根据所述密钥交换会话调用第八接口函数,从所述第八接口函数的参数中获取其他方公钥的原始数据、密钥标识和当前算法,根据密钥标识从对应于所述密钥交换会话的智能卡令牌中获取对应的密钥,根据当前算法将获取的所述密钥和其他方公钥的原始数据进行交换。
21.一种智能卡应用扩展的实现装置,其特征在于,当与扩展配置文件中的设备标识对应的智能卡插入终端时装置开始调用接口函数,所述装置包括:
创建初始化模块,用于当第一接口函数被调用时,创建对应于所述智能卡的智能卡令牌并进行初始化;
第一读取模块,用于在所述创建初始化模块初始化完成后从所述智能卡中读取智能卡数据;
转化设置模块,用于将所述第一读取模块读取到的智能卡数据中的证书对象转化成为证书钥匙串格式的数据,并根据所述证书钥匙串格式的数据创建密钥对钥匙串格式数据,并设置所述密钥对钥匙串格式数据的属性;
第一保存模块,用于将所述转化设置模块的所述证书钥匙串格式数据和所述密钥对钥匙串格式数据保存在系统密钥链单元中;
封装模块,用于将所述第一保存模块的所述系统密钥链单元封装到系统密钥链里,所述系统密钥链保存在所述智能卡令牌中;
接收模块,用于接收触发信息;
创建绑定模块,用于当所述接收模块接收到触发信息时,创建会话并对所述会话进行初始化,将所述会话与所述创建初始化模块的智能卡令牌绑定;
应用扩展操作模块,用于根据所述创建绑定模块的会话调用接口函数进行应用扩展操作。
22.如权利要求21所述的装置,其特征在于,所述创建初始化模块具体用于通过调用第二接口函数,向与所述第二接口函数的智能卡参数对应的智能卡发送获取序列号指令,获取设备序列号,根据所述设备序列号及所述第二接口函数的参数调用第三接口函数创建并初始化智能卡令牌,并将设备序列号作为所述智能卡令牌的唯一标识。
23.如权利要求22所述的装置,其特征在于,所述装置还包括第一判断模块,用于判断所述创建初始化模块的智能卡令牌是否初始化成功,是则触发所述第一读取模块,否则报错,结束。
24.如权利要求23所述的装置,其特征在于,所述第一判断模块具体用于判断所述第三接口函数的返回值,如为智能卡令牌的实例,则智能卡令牌初始化成功,触发所述第一读取模块,否则智能卡令牌初始化失败,报错,结束。
25.如权利要求21所述的装置,其特征在于,所述第一读取模块具体用于读取智能卡缓存区,获取智能卡数据的长度和偏移并保存;再根据获取的长度和偏移读取公有区中的智能卡数据,解析智能卡数据属性特征,获取并保存证书对象。
26.如权利要求21所述的装置,其特征在于,所述转化设置模块具体用于根据传入的证书对象和与证书对象标识对应的证书通过第一函数来创建证书钥匙串格式数据,根据所述证书对象、所述证书对象标识以及指定密钥对的密钥对数据标识调用第二函数创建与证书钥匙串格式数据对应的密钥对钥匙串格式数据,并通过第三函数设置密钥对钥匙串格式数据的签名属性为真,并且设置每次进行签名操作都需要身份认证。
27.如权利要求21所述的装置,其特征在于,所述第一保存模块具体用于创建系统密钥链单元类型的数组,将所述证书钥匙串格式数据和所述密钥对钥匙串格式数据添加到所述数组里。
28.如权利要求21所述的装置,其特征在于,
所述接收模块具体用于接收验PIN触发信息;
创建绑定模块具体用于当所述接收模块接收到验PIN触发信息时创建验PIN会话并对所述验PIN会话进行初始化,将所述验PIN会话与对应的智能卡令牌绑定;
应用扩展操作模块具体用于根据所述创建绑定模块的验PIN会话调用第四接口函数进行验PIN操作。
29.如权利要求28所述的装置,其特征在于,所述应用扩展操作模块包括:
第一调用单元,用于将所述创建绑定模块的验PIN会话作为参数调用第四接口函数;
创建绑定单元,用于通过所述第四接口函数创建智能卡令牌PIN码验证操作实例并初始化,将所述智能卡令牌PIN码验证操作实例与对应于所述验PIN会话的智能卡令牌绑定;
提示接收单元,用于提示用户输入PIN码并接收用户输入的PIN码和输入完成确认信息;
第一验证单元,用于当所述提示接收单元接收到输入完成确认信息后,通过与对应于所述验PIN会话的所述智能卡令牌对应的智能卡对所述提示接收模块接收到的用户输入的PIN码进行验证。
30.如权利要求29所述的装置,其特征在于,所述第一验证单元包括:
第一发送子单元,用于当所述提示接收模块接收到用户输入PIN码的完成确认信息后,向与对应于所述验PIN会话的所述智能卡令牌对应的智能卡发送获取随机数指令;
第一接收子单元,用于接收所述智能卡返回的随机数;
异或子单元,用于将所述提示接收模块接收到的所述PIN码和所述第一接收子单元接收到的所述随机数做异或运算得到异或结果;
第一加密子单元,用于使用令牌公钥对所述异或子单元的异或结果进行加密得到第一加密结果;
第一生成子单元,用于根据所述第一加密子单元的第一加密结果生成验证指令;
所述第一发送子单元还用于将所述第一生成子单元生成的验证指令发送给所述智能卡;
所述第一接收子单元还用于接收所述智能卡返回的验证信息。
31.如权利要求21所述的装置,其特征在于,
所述接收模块具体用于接收签名触发信息;
所述创建绑定模块具体用于当所述接收模块接收到签名触发信息时,创建签名会话并对所述签名会话进行初始化,将所述签名会话与对应的智能卡令牌绑定;
所述应用扩展操作模块具体用于根据所述创建绑定模块的签名会话调用第六接口函数进行签名操作。
32.如权利要求31所述的装置,其特征在于,所述应用扩展操作模块包括:
第二调用单元,用于根据根据所述创建绑定模块的签名会话调用第六接口函数;
第一获取单元,用于通过所述第六接口函数的参数中的密钥标识从对应于所述签名会话的智能卡令牌中获取密钥对钥匙串格式数据,根据所述密钥对钥匙串格式数据从对应于所述签名会话的智能卡令牌中获取证书对象;
第一解析单元,用于根据所述第六接口函数的参数中的算法解析所述第六接口函数的参数中的原文数据得到待签名数据;
执行签名单元,用于通过与所述第一获取单元获取的签名会话对应的智能卡和所述证书对象对所述第一解析单元得到的待签名数据执行签名操作;
第一判断单元,用于根据所述执行签名单元的签名操作结果判断签名操作是否成功,是则保存所述签名操作结果中的签名值,否则结束。
33.如权利要求32所述的装置,其特征在于,所述执行签名单元包括:
第一生成发送子单元,用于根据第六接口函数的参数中的签名算法标识和所述密钥标识通过安全环境管理生成第一签名指令并发送给与对应于所述签名会话的智能卡令牌对应的智能卡;
第二接收子单元,用于接收所述智能卡返回的第一状态码;
第一判断子单元,用于根据所述第二接收子单元接收到的第一状态码判断是否继续签名操作,是则触发第二生成发送子单元,否则结束;
所述第二生成发送子单元,用于根据所述待签名数据生成第二签名指令并发送给所述智能卡;
第三接收子单元,用于接收所述智能卡返回的第二状态码;
第二判断子单元,用于根据所述第三接收子单元接收到的第二状态码判断是否继续签名操作,是则触发第三生成发送子单元,否则结束
所述第三生成发送子单元,用于生成第三签名指令并发送给所述智能卡。
34.如权利要求21所述的装置,其特征在于,
所述接收模块具体用于接收算法支持触发信息;
所述创建绑定模块具体用于当所述接收模块接收到算法支持触发信息时,创建算法支持会话并对所述算法支持会话进行初始化,将所述算法支持会话与所述智能卡令牌绑定;
所述扩展应用操作模块具体用于根据所述创建绑定模块的算法支持会话调用第五接口函数进行算法支持操作。
35.如权利要求34所述的装置,其特征在于,所述扩展应用操作模块包括:
第三调用单元,用于根据所述创建绑定模块的算法支持会话调用第五接口函数;
第二获取单元,用于通过所述第五接口函数的参数中的密钥标识从对应于所述算法支持会话的智能卡令牌中获取密钥对钥匙串格式数据类型的密钥对钥匙串格式数据;
第二判断单元,用于根据所述第二获取单元获取的密钥对钥匙串格式数据的属性判断所述密钥对钥匙串格式数据是否支持所述第五接口函数的参数中的算法,是则返回成功信息,否则返回失败信息。
36.如权利要求35所述的装置,其特征在于,所述第二判断单元具体用于获取密钥对钥匙串格式数据的属性中支持的算法列表,判断所述第五接口函数的参数中的算法是否在所述算法列表里,是则支持,返回成功信息;否则不支持,返回失败信息。
37.如权利要求21所述的装置,其特征在于,
所述接收模块具体用于接收解密触发信息;
所述创建绑定模块具体用于当所述接收模块接收到解密触发信息时,创建解密会话并对所述解密会话进行初始化,将所述解密会话与所述智能卡令牌绑定;
所述扩展应用操作模块具体用于根据所述创建绑定模块的解密会话调用第七接口函数进行解密操作。
38.如权利要求37所述的装置,其特征在于,所述扩展应用操作模块包括:
第四调用单元,用于根据所述创建绑定模块的解密会话调用第七接口函数;
第三获取单元,用于从所述第七接口函数的参数中获取待解密数据、密钥标识和算法信息;
解密单元,用于根据所述第三获取模块获取的密钥标识从对应于所述解密会话的智能卡令牌中获取对应的密钥,根据与所述第三获取单元获取的算法信息对应的算法使用所述密钥对所述第三获取单元获取的所述待解密数据进行解密。
39.如权利要求21所述的装置,其特征在于,
所述接收模块具体用于接收密钥交换触发信息;
所述创建绑定模块具体用于当所述接收模块接收到密钥交换触发信息时,创建密钥交换会话并对所述密钥交换会话进行初始化,将所述密钥交换会话与所述智能卡令牌绑定;
所述扩展应用操作模块具体用于根据所述创建绑定模块的密钥交换会话调用第八接口函数进行密钥交换操作。
40.如权利要求39所述的装置,其特征在于,所述扩展应用操作模块包括:
第五调用单元,用于根据所述创建绑定模块的密钥交换会话调用第八接口函数;
交换单元,用于从所述第八接口函数的参数中获取其他方公钥的原始数据、密钥标识和当前算法,根据密钥标识从对应于所述密钥交换会话的智能卡令牌中获取对应的密钥,根据当前算法将获取的所述密钥和其他方公钥的原始数据进行交换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810754458.4A CN109088733B (zh) | 2018-07-11 | 2018-07-11 | 一种智能卡应用扩展的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810754458.4A CN109088733B (zh) | 2018-07-11 | 2018-07-11 | 一种智能卡应用扩展的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109088733A true CN109088733A (zh) | 2018-12-25 |
CN109088733B CN109088733B (zh) | 2021-07-02 |
Family
ID=64837534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810754458.4A Active CN109088733B (zh) | 2018-07-11 | 2018-07-11 | 一种智能卡应用扩展的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109088733B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563247A (zh) * | 2020-07-14 | 2020-08-21 | 飞天诚信科技股份有限公司 | 一种智能密钥设备登录系统的方法及装置 |
CN117528519A (zh) * | 2024-01-04 | 2024-02-06 | 飞天诚信科技股份有限公司 | 一种实现智能卡扩展的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101031939A (zh) * | 2004-10-19 | 2007-09-05 | 英特尔公司 | 在智能卡和终端之间进行安全通信的方法和设备 |
CN103095460A (zh) * | 2013-01-22 | 2013-05-08 | 飞天诚信科技股份有限公司 | 一种智能卡安全通讯的方法 |
US20150137942A1 (en) * | 2013-03-19 | 2015-05-21 | Nxp B.V. | Security Token, Control System and Control Method |
CN105721164A (zh) * | 2016-02-18 | 2016-06-29 | 四川长虹电器股份有限公司 | 一种sim卡的手机身份认证的系统及方法 |
-
2018
- 2018-07-11 CN CN201810754458.4A patent/CN109088733B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101031939A (zh) * | 2004-10-19 | 2007-09-05 | 英特尔公司 | 在智能卡和终端之间进行安全通信的方法和设备 |
CN103095460A (zh) * | 2013-01-22 | 2013-05-08 | 飞天诚信科技股份有限公司 | 一种智能卡安全通讯的方法 |
US20150137942A1 (en) * | 2013-03-19 | 2015-05-21 | Nxp B.V. | Security Token, Control System and Control Method |
CN105721164A (zh) * | 2016-02-18 | 2016-06-29 | 四川长虹电器股份有限公司 | 一种sim卡的手机身份认证的系统及方法 |
Non-Patent Citations (1)
Title |
---|
朱鹏飞 等: "一种对动态口令生成算法的量化评估方法", 《第28次全国计算机安全学术交流会论文集》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563247A (zh) * | 2020-07-14 | 2020-08-21 | 飞天诚信科技股份有限公司 | 一种智能密钥设备登录系统的方法及装置 |
WO2022012080A1 (zh) * | 2020-07-14 | 2022-01-20 | 飞天诚信科技股份有限公司 | 一种智能密钥设备登录系统的方法及装置 |
CN117528519A (zh) * | 2024-01-04 | 2024-02-06 | 飞天诚信科技股份有限公司 | 一种实现智能卡扩展的方法及装置 |
CN117528519B (zh) * | 2024-01-04 | 2024-03-08 | 飞天诚信科技股份有限公司 | 一种实现智能卡扩展的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109088733B (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109255444A (zh) | 基于迁移学习的联邦建模方法、设备及可读存储介质 | |
Lowe et al. | Using CSP to detect errors in the TMN protocol | |
CN106161032B (zh) | 一种身份认证的方法及装置 | |
CN101300808B (zh) | 安全认证的方法和设置 | |
CN105933125B (zh) | 一种软件定义网络中的南向安全认证方法及装置 | |
CN104580208B (zh) | 一种身份认证方法及装置 | |
CN105515783B (zh) | 身份认证方法、服务器及认证终端 | |
CN107508796A (zh) | 一种数据通信方法和装置 | |
CN102694782B (zh) | 基于互联网的安全性信息交互设备及方法 | |
CN105376059B (zh) | 基于电子钥匙进行应用签名的方法和系统 | |
CN103780620B (zh) | 一种网络安全方法和网络安全系统 | |
CN110401615A (zh) | 一种身份认证方法、装置、设备、系统及可读存储介质 | |
CN104992082B (zh) | 软件授权方法、装置及电子设备 | |
CN109688573A (zh) | 蓝牙设备间的交互方法及蓝牙设备 | |
CN109088733A (zh) | 一种智能卡应用扩展的实现方法及装置 | |
CN105978693A (zh) | 一种终端关联的方法及系统 | |
CN105933118A (zh) | 通讯方法、系统、pci密码卡和远程管理介质 | |
CN106559223A (zh) | 应用程序签名方法及装置 | |
CN109086588A (zh) | 一种认证方法及认证设备 | |
CN109766681A (zh) | 用户身份验证方法、装置、指纹登录器及可读存储介质 | |
CN109560932A (zh) | 身份数据的识别方法、装置及系统 | |
CN109474431A (zh) | 客户端认证方法及计算机可读存储介质 | |
CN107133539A (zh) | 智能卡个人化方法及相关装置与系统 | |
Older et al. | Formal methods for assuring security of protocols | |
CN108932425A (zh) | 一种离线身份认证方法、认证系统及认证设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |