LIU GUOBAO (CN)
HE SHUO (CN)
CN102394749A | 2012-03-28 | |||
CN102075802A | 2011-05-25 | |||
CN101894235A | 2010-11-24 |
中国专利代理(香港)有限公司 (CN)
权 利 要 求 1. 一种从数据提供方传输数据到智能卡的方法,其中数据提供方拥有公 钥 PK1和私钥 SK1 , 智能卡拥有公钥 PK2和私钥 SK2 , 其特征在于, 包括以 下步骤: 由智能卡产生密钥 KEY, 然后利用公钥 PK1加密密钥 KEY得到密文 PK1 ( KEY ) ,以及利用 SK2签名该密文 PK1( KEY )得到签名密文 SK2( PKl( KEY ) ) , 数据提供方从智能卡接收密文 PK1 ( KEY )和签名密文 SK2 ( PK1 ( KEY ) ) , 然后利用公钥 PK2验证签名密文 SK2 ( PK1 ( KEY ) ) , 以及利用私钥 SK1解 密密文 PK1 ( KEY )得到密钥 KEY; 数据提供方利用得到的密钥 KEY将要传输的数据加密后传输到智能卡。 2. 如权利要求 1所述的方法, 其特征在于, 所述数据提供方向智能卡发送密钥生成指令, 智能卡在接收到该密钥生 成指令后产生密钥 KEY。 3. 如权利要求 2所述的方法,其特征在于,密钥 KEY由智能卡随机产生。 4. 如权利要求 1所述的方法,其特征在于,所述要传输的数据包括传输 密钥, 该传输密钥由关于数据提供方的主密钥分散得到的子密钥, 所述方法 还包括以下步骤: 智能卡利用密钥 KEY从数据提供方获取传输密钥, 以及 应用提供方利用该传输密钥将要传输的另外的数据加密后传输到智能 卡。 5. 如权利要求 4所述的方法,其特征在于,所述另外的数据是用于对智 能卡进行个人化的数据。 6. 一种从数据提供方传输数据到智能卡的系统,该系统包括数据提供方 传和智能卡,其中数据提供方拥有公钥 PK1和私钥 SK1 ,智能卡拥有公钥 PK2 和私钥 SK2 , 其特征在于, 智能卡被配置成产生密钥 KEY , 然后利用公钥 PK1加密密钥 KEY得到密 文 PKl ( KEY ) , 以及利用 SK2签名该密文 PKl ( KEY )得到签名密文 SK2 ( PK1 ( KEY ) ) , 数据提供方被配置成从智能卡接收密文 PKl ( KEY )和签名密文 SK2 ( PK1 ( KEY ) ) , 然后利用公钥 PK2验证签名密文 SK2 ( PKl ( KEY ) ) , 以及利 用私钥 SK1解密密文 PKl ( KEY )得到密钥 KEY; 以及 数据提供方被进一步配置成利用得到的密钥 KEY将要传输的数据加密后 传输到智能卡。 7. 如权利要求 6所述的系统, 其特征在于, 数据提供方被配置成向智能卡发送密钥生成指令, 智能卡被配置成在接收到该密钥生成指令后产生密钥 KEY。 8. 如权利要求 7所述的系统,其特征在于,密钥 KEY由智能卡随机产生。 9. 如权利要求 6所述的系统,其特征在于,所述要传输的数据包括传输 密钥, 该传输密钥由关于数据提供方的主密钥分散得到的子密钥, 其中: 智能卡还被配置成利用密钥 KEY从数据提供方获取传输密钥, 以及 应用提供方被配置成利用该传输密钥将要传输的另外的数据加密后传 输到智能卡。 10. 如权利要求 9所述的系统, 其特征在于, 所述另外的数据是用于对 智能卡进行个人化的数据。 |
优先权要求
本申请要求了 2012年 7月 6 日提交的、 申请号为 201210232922.6、 发 明名称为 "一种从数据提供方传输数据到智能卡的方法 系统" 的中国专 利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域
本发明涉及信息安全领域, 尤其涉及一种从数据提供方传输数据到智能 卡的方法和系统。 背景技术
随着智能卡多应用的发展,在一张智能卡上加 载多个应用变得越来越普 遍,应用提供方面临的一个重要问题就是如何 将应用数据(例如,账户信息) 安全地传输到由第三方管理的智能卡上。
在现有技术中,从应用提供方将应用数据传输 到智能卡包括密钥准备和 数据传输两个步骤。 如图 1中的上面部分的示意图所示, 在密钥准备的步骤 中, 首先, 应用提供方将主密钥 KMC设置在第三方个人化系统中; 然后第 三方个人化系统将主密钥 KMC分散得到密钥 Kcard , 并且将密钥 Kcard设置 在智能卡安全芯片中; 最后应用提供方与第三方系统协商传输密钥 KEK。 如 图 1中的下面部分的示意图所示, 在数据传输的步骤中, 首先应用提供方将 待传输的数据通过 KEK加密后传给第三方个人化系统; 然后第三方个人化系 统接收数据并在加密机中用 KEK解密, 同时在加密机中再用主密钥 KMC分 散得到的密钥 Kcard加密后传给智能卡; 最后智能卡用 Kcard解密得到应用 提供方传输的数据。
上述现有技术存在以下缺陷, 一方面, 在数据传输过程中, 第三方的个 人化设备和智能卡在封闭的系统内部(例如, 卡厂) , 这样对于已经发出的 智能卡就不方便更新应用数据或者下载新的应 用数据。 另一方面, 虽然有密 钥保护应用提供方准备的数据,但是应用提供 方和智能卡卡片不是直接建立 的安全信道, 而是应用提供方与第三方系统、 第三方系统和卡片分别建立安 全信道, 因此需要在第三方系统内部进行一个数据转换 的过程, 从而可能存 在数据泄露的风险。 发明内容
根据本发明的一个目的公开一种从数据提供方 传输数据到智能卡的方 法, 其中数据提供方拥有公钥 PK1和私钥 SK1 , 智能卡拥有公钥 PK2和私钥 SK2 , 包括以下步骤:
由智能卡产生密钥 KEY, 然后利用公钥 PK1加密密钥 KEY得到密文 PK1
( KEY ) ,以及利用 SK2签名该密文 PK1( KEY )得到签名密文 SK2( PKl( KEY ) ) , 数据提供方从智能卡接收密文 PK1 ( KEY )和签名密文 SK2 ( PK1 ( KEY ) ) , 然后利用公钥 PK2验证签名密文 SK2 ( PK1 ( KEY ) ) , 以及利用私钥 SK1解 密密文 PK1 ( KEY )得到密钥 KEY;
数据提供方利用得到的密钥 KEY将要传输的数据加密后传输到智能卡。 可选地, 所述数据提供方是应用提供方, 所述数据是应用数据, 该应用 数据用于将智能卡应用个人化。
可选地, 所述数据提供方向智能卡发送密钥生成指令, 智能卡在接收到 该密钥生成指令后产生密钥 KEY。
可选地, 密钥 KEY由智能卡随机产生。
可选地, 数据提供方通过第三方与智能卡通信。
可选地, 所述要传输的数据包括传输密钥, 该传输密钥由关于数据提供 方的主密钥分散得到的子密钥, 所述方法还包括以下步骤:
智能卡利用密钥 KEY从数据提供方获取传输密钥, 以及
应用提供方利用该传输密钥将要传输的另外的 数据加密后传输到智能 卡。
可选地, 所述另外的数据是用于对智能卡进行个人化的 数据。
根据本发明的方法和系统,数据提供方通过与 智能卡建立端到端的安全 通道, 能够将应用数据通过不可信的信道和第三方系 统安全地传输到智能卡 上。
附图说明
在参照附图阅读了本发明的具体实施方式以后 , 本领域技术人员将会更 清楚地了解本发明的各个方面。 本领域技术人员应当理解的是, 这些附图仅 护范围构成限制。
图 1是根据现有技术中从应用提供方将应用数据 输到智能卡的方法示 意图。
图 2是根据本发明实施例的从数据提供方将数据 输到智能卡的步骤示 意图。
具体实施方式
下面参照附图, 对本发明的具体实施方式作进一步的详细描述 。
图 2是根据本发明实施例的从数据提供方将数据 输到智能卡的步骤示 意图。 该方法包括两个步骤, 即直接安全信道的建立以及通过建立的安全信 道传输数据。
在本发明中,数据提供方拥有公钥 PK1和私钥 SK1 ,智能卡拥有公钥 PK2 和私钥 SK2。 例如, 数据提供方和卡厂分别从 CA申请公私钥对和公钥证书, 并且数据提供方和卡厂可以利用公钥 PCA验证对方公钥证书,并获得对方公 钥。 在一个实施例中, 在数据提供方中设置有 PK1、 SKI和 PK2 , 在智能卡 中设置有 PK1、 PCA和 SK2。 在该实施例中, 卡厂将 CA的公钥 PCA和私钥 SK2预置到智能卡中; 数据提供方可以在获得卡厂的公钥证书后用公 钥 PCA 验证得到智能卡公钥 PK2 ; 而数据提供方将公钥证书通过网络或者任意第 三 方传输到智能卡, 智能卡通过 CA的公钥 PCA验证数据提供方的公钥证书, 然后得到数据提供方的公钥 PK1。 在上述数据准备过程中, 只有公钥证书在 网络上传输, 而且在获取公钥的时候会根据 CA公钥 PCA验证公钥证书, 所 以这一步即使信道不可信, 整个过程仍然是安全的。
在直接安全信道的建立的步骤中, 由智能卡产生密钥 KEY, 然后利用公 钥 PK1加密密钥 KEY得到密文 PK1( KEY ),以及利用 SK2签名该密文 PK1( KEY ) 得到签名密文 SK2 ( PK1 ( ΚΕΥ ) λ 智能卡能够通过第三方或者不可信的网络 将密文 PKl ( KEY )和签名密文 SK2 ( PKl ( KEY ) )发送给数据提供方。
接着, 数据提供方从智能卡接收密文 PKl ( KEY )和签名密文 SK2 ( PK1 ( KEY ) ) , 然后利用公钥 PK2验证签名密文 SK2 ( PKl ( KEY ) ) , 以及利 用私钥 SK1解密密文 PKl ( KEY )得到密钥 KEY。 由此, 数据提供方和智能卡 同时拥有同一密钥 KEY, 数据提供方到智能卡的直接安全信道得到建立 。
由于密钥 KEY是被数据提供方的公钥 PK1加密的, 而只有数据提供方具 有对应的解密私钥 SK1 , 所以密钥 KEY不可能被窃取。 另外, 由于密钥 KEY 每次都可以由智能卡随机产生, 所以第三方不可能截取密文 PKl(KEY)和签名 密文 SK2(PK1(KEY))进行重放攻击。 另一方面, 由于只有智能卡具有私钥 SK2 , 并且利用该私钥 SK2对加密的密钥签名,所以数据提供方根据公 钥 PK2验签 能够避免签名密文 SK2(PK1(KEY))被冒充和墓改。
在通过建立的安全信道传输数据的步骤中,数 据提供方利用得到的密钥 KEY将要传输的数据加密后传输到智能卡。
可选地, 所述数据提供方是应用提供方, 所述数据是应用数据, 该应用 数据用于将智能卡应用个人化。
可选地, 所述数据提供方向智能卡发送密钥生成指令, 智能卡在接收到 该密钥生成指令后产生密钥 KEY。
在一个实施例中,应用提供方和智能卡之间通 过下述步骤完成直接安全 信道的建立以及数据传输:
在步骤 1中, 由应用提供方向智能卡发送生成密钥指令 GENERATE KEY; 在步骤 2中, 智能卡向应用提供方返回 GENERATE KEY指令响应, 在该 步骤中, 当智能卡接收到生成密钥指令 GENERATE KEY之后, 由智能卡产生 密钥 KEY, 然后利用公钥 PK1加密密钥 KEY得到密文 PKl ( KEY ) , 以及利用 SK2签名该密文 PKl ( KEY )得到签名密文 SK2 ( PKl ( KEY ) ) , 智能卡向应 用提供方返回 GENERATE KEY指令响应,其中 GENERATE KEY指令响应包括密 文 PKl ( KEY )和签名密文 SK2 ( PKl ( KEY ) ) ;
在步骤 3中, 由应用提供方向智能卡发送 PUT KEY指令, 在该步骤中, 应用提供方接收包括密文 PK1( KEY )和签名密文 SK2( PK1( KEY ) )的 GENERATE KEY指令响应之后, 判断 GEN ERATE KEY指令指令是否执行成功, 如果执行 成功则以及利用公钥 PK2验证签名密文 SK2 ( PKl ( KEY ) ) , 以及利用私钥 SK1解密密文 PKl ( KEY )得到密钥 KEY, 将得到的密钥 KEY作为后续操作的 临时会话密钥, 然后由应用提供方向智能卡发送 PUT KEY指令, 该 PUT KEY 指令包括传输密钥, 并且根据上述的临时会话密钥被加密;
在步骤 4中,智能卡向应用提供方返回 PUT KEY指令响应,在该步骤中, 智能卡利用上述临时会话密钥解密 PUT KEY指令并且获取传输密钥, 并将该 传输密钥存储在智能卡中, 以及向应用提供方返回 PUT KEY指令响应指示获 取并存储传输密钥是否成功。 在一个实施例中, 传输密钥是由关于应用提供 方的主密钥分散得到的子密钥,由此,应用提 供方和智能卡都具有传输密钥。 作为子密钥的传输密钥被用于加密后续的应用 提供方和智能卡之间的数据 的传输;
在步骤 5中, 由应用提供方向智能卡发送个人化 STORE DATA指令, 该 STORE DATA指令利用传输密钥加密并且用于向智能卡 入数据以对智能卡 进行个人化;
在步骤 6中, 智能卡向应用提供方返回 STORE DATA指令响应, 指示数 据写入是否成功。
本领域的技术人员可以理解的是, 上述描述的 6个步骤可以分别独立地 与本发明的其它实施例组合, 或者该 6个步骤可以互相结合而得到用于实现 本发明的目的的其它技术方案。
本发明还公开从数据提供方传输数据到智能卡 的系统, 该系统包括数据 提供方传和智能卡, 其中数据提供方拥有公钥 PK1和私钥 SK1 , 智能卡拥有 公钥 PK2和私钥 SK2 , 其中, 智能卡被配置成产生密钥 KEY , 然后利用公钥 PK1加密密钥 KEY得到密文 PK1 ( KEY ) , 以及利用 SK2签名该密文 PKl ( KEY ) 得到签名密文 SK2 ( PK1 ( KEY ) ) , 数据提供方被配置成从智能卡接收密文 PK1 ( KEY )和签名密文 SK2 ( PK1 ( KEY ) ) , 然后利用公钥 PK2验证签名密 文 SK2 ( PK1 ( KEY ) ) , 以及利用私钥 SK1解密密文 PK1 ( KEY )得到密钥
KEY; 以及数据提供方被进一步配置成利用得到的密 钥 KEY将要传输的数据 加密后传输到智能卡。
可选地, 数据提供方被配置成向智能卡发送密钥生成指 令, 智能卡被配 置成在接收到该密钥生成指令后产生密钥 KEY, 数据提供方通过第三方与智 能卡通信。
可选地, 所述要传输的数据包括传输密钥, 该传输密钥由关于数据提供 方的主密钥分散得到的子密钥, 其中: 智能卡还被配置成利用密钥 KEY从数 据提供方获取传输密钥, 以及应用提供方被配置成利用该传输密钥将要 传输 的另外的数据加密后传输到智能卡。
通过以上实施方式的描述, 本领域中的普通技术人员能够理解, 在不偏 离本发明的精神和范围的情况下, 还可以对本发明的具体实施方式作各种变 更和替换。 这些变更和替换都落在本发明权利要求书所限 定的范围内。