构 建 IC卡 应 用 系 统 过 程 中 , 如 何 定 义 卡 中 的 数 据 信 息 ( 相 对 逻 辑 加 密 卡 ) 或 卡 中 的 应 用 类 型 及 其 数 据 信 息 ( 相 对 CPU卡 ) 及 将 数 据 信 息 写 入 卡 中 , 以 便 应 用 于 系 统 中 进 行 交 易 是 一 个 重 要 环 节 。 这 一 环 节 在 业 界 通 常 称 为 卡 片 个 人 化 。 卡 片 个 人 化 既 可 以 在 专 门 的 设 备 机 器 上 进 行 , 以 便 于 对 大 批 量 的 卡 片 进 行 个 人 化 ; 也 可 以 在 PC机 上 通 过 连 接 IC卡 读 写 器 进 行 , 以 便 于 对 小 批 量 的 卡 片 进 行 个 化 。 不 管 硬 件 设 备 如 何 , 都 必 须 设 计 一 套 程 序 软 件 来 进 行 个 人 化 。 这 个 程 序 软 件 通 常 称 为 发 卡 程 序 。 本 文 讨 论 CPU卡 发 卡 程 序 设 计 过 程 中 将 会 遇 到 的 关 键 技 术 问 题 及 其 解 决 方 法 。
CPU卡 发 卡 大 体 可 分 为 三 个 组 成 部 分 : ( 1) 卡 结 构 建 立 ; ( 2) 密 钥 写 入 ; ( 3) 个 人 化 数 据 写 入 。 当 然 , 为 确 保 正 确 发 卡 , 程 序 设 计 过 程 中 最 好 是 采 用 一 边 建 立 卡 结 构 , 一 边 写 入 密 钥 和 个 人 化 数 据 。
2 发 卡 前 的 准 备 工 作
一 般 地 , 卡 片 供 应 商 提 供 卡 片 时 , 已 经 对 卡 片 进 行 过 初 始 化 ( 主 要 用 于 对 卡 片 进 行 测 试 ) , 亦 即 卡 片 上 已 经 建 立 了 主 文 件 ( MF) 及 主 密 钥 文 件 ( MF下 的 Keyfile文 件 ) , 主 密 钥 文 件 中 也 已 写 入 了 初 始 卡 片 主 控 密 钥 。
在 对 CPU卡 建 立 特 定 的 卡 结 构 及 写 入 密 钥 和 数 据 之 前 , 程 序 设 计 中 的 第 一 步 应 该 对 卡 片 进 行 外 部 认 证 。 外 部 认 证 所 使 用 的 密 钥 正 是 初 始 卡 片 主 控 密 钥 。
当 完 成 外 部 认 证 后 , 接 下 来 最 好 是 擦 除 卡 片 上 已 有 的 卡 片 结 构 , 然 后 再 开 始 重 新 建 立 卡 片 结 构 。
许 多 发 卡 程 序 在 设 计 过 程 中 , 没 有 考 虑 到 擦 除 卡 片 上 已 有 的 卡 片 结 构 , 而 是 在 完 成 外 部 认 证 后 直 接 改 写 原 有 卡 片 的 主 密 钥 文 件 的 卡 片 主 控 密 钥 。 常 见 问 题 是 由 于 原 有 主 密 钥 文 件 创 建 时 的 空 间 大 小 不 够 , 而 发 卡 程 序 试 图 写 入 除 卡 片 主 控 密 钥 外 还 想 写 入 卡 片 维 护 密 钥 时 , 势 必 造 成 写 入 空 间 不 够 而 导 致 写 入 不 成 功 。
3 密 钥 文 件 的 建 立 与 密 钥 值 的 写 入
为 了 独 立 地 管 理 一 张 卡 上 不 同 应 用 之 间 的 安 全 问 题 , CPU卡 中 的 每 一 个 应 用 放 在 一 个 单 独 的 ADF中 。 各 个 ADF及 其 下 属 各 文 件 数 据 的 访 问 ( 包 括 改 写 、 读 取 ) 只 能 应 用 该 ADF下 的 密 钥 文 件 中 的 密 钥 数 值 。 为 讨 论 方 便 , 此 处 假 设 只 有 一 个 ADF。
用 户 卡 结 构 中 主 要 存 在 以 下 两 个 密 钥 文 件 及 相 应 的 几 个 密 钥 :
(1)MF下 的 密 钥 文 件 (简 称 KMF), 其 装 载 的 密 钥 是 卡 片 主 控 密 钥 (简 称 CCK, 以 下 同 );
(2)ADF下 的 密 钥 文 件 (简 称 KADF), 其 装 载 的 密 钥 有 应 用 主 控 密 钥 (简 称 ACK, 以 下 同 ),应 用 维 护 密 钥 (简 称 AMK), 及 其 它 应 用 密 钥 ;
(3)其 它 密 钥 , 如 口 令 密 钥 PIN, 口 令 解 锁 密 钥 , DES运 算 密 钥 等 等 。
3.1 密 钥 文 件 的 创 建
各 密 钥 文 件 在 建 立 时 必 须 慎 重 考 虑 以 下 两 个 要 素 :
(1)文 件 大 小 的 分 配 ;
(2)有 关 权 限 和 密 钥 使 用 后 的 后 续 状 态 值 的 规 定 。
密 钥 文 件 的 大 小 分 配 取 决 于 要 装 载 的 密 钥 个 数 。 每 个 密 钥 均 为 一 条 可 变
长 的 记 录 , 每 条 记 录 的 长 度 为 密 钥 数 据 长 度 加 7。 以 此 可 以 计 算 密 钥 文 件 的 大 小 。 在 发 卡 程 序 设 计 过 程 中 , 常 常 会 出 现 因 为 密 钥 文 件 的 大 小 分 配 不 够 而 造 成 后 面 的 密 钥 无 法 写 入 。
密 钥 文 件 建 立 过 程 中 的 有 关 权 限 和 密 钥 使 用 后 的 后 续 状 态 值 的 规 定 一 方 面 起 到 对 密 钥 文 件 本 身 的 安 全 维 护 作 用 , 另 一 方 面 也 将 决 定 对 卡 片 操 作 的 流 程 。 显 然 这 个 要 素 至 关 重 要 。
3.2 各 密 钥 值 的 写 入
关 于 密 钥 值 的 写 入 , 关 键 问 题 是 要 弄 清 楚 该 密 钥 要 求 以 何 种 形 式 写 入 。 通 常 有 以 下 几 种 形 式 :
(1)以 明 文 形 式 写 入 ( 常 见 的 如 口 令 密 钥 PIN的 写 入 ) ;
(2)以 带 线 路 保 护 的 形 式 写 入 ( 要 求 计 算 MAC) ;
(3)以 对 密 钥 值 进 行 加 密 后 的 密 文 形 式 写 入 ( 要 求 计 算 DES或 3DES) ;
(4)以 对 密 钥 值 进 行 加 密 并 带 线 路 保 护 的 形 式 写 入 ( 要 求 计 算 DES& MAC) 。
如 果 密 钥 值 的 写 入 要 求 加 密 并 带 线 路 保 护 , 则 密 钥 值 写 入 时 须 对 该 密 钥 值 进 行 DES& MAC计 算 后 以 密 文 形 式 写 入 ( 当 然 卡 片 操 作 系 统 内 部 会 自 动 将 其 解 释 成 明 文 ) , 带 线 路 保 护 的 目 的 是 防 止 密 钥 值 在 写 入 的 过 程 中 被 劫 取 。 如 果 不 要 求 带 线 路 保 护 写 入 , 可 直 接 以 明 文 方 式 写 入 。
在 发 卡 程 序 设 计 过 程 中 , 尤 其 要 注 意 卡 片 主 控 密 钥 、 应 用 主 控 密 钥 、 应 用 维 护 密 钥 及 其 它 密 钥 之 间 的 关 系 及 其 写 入 要 求 。
3.2.1卡 片 主 控 密 钥 与 应 用 主 控 密 钥
卡 片 主 控 密 钥 是 对 整 个 卡 片 的 访 问 起 控 制 作 用 的 密 钥 , 由 卡 片 生 产 商 写 入 , 由 发 卡 方 替 换 为 发 卡 方 的 卡片 主 控 密 钥 。 发 卡 程 序 设 计 过 程 中 ,在 对 卡 片 进 行 任 何 操 作 之 前 ,必 须 使 用 卡 片 主 控 密 钥 作 外 部 认 证 ,
应 用 主 控 密 钥 是 应 用 的 控 制 密 钥 , 在 卡 片 主 控 密 钥 控 制 下 写 入 。 一 般 地 , 发 卡 方 替 换 卡 片 的 主 控 密 钥 之 后 , 为 验 证 替 换 工 作 正 确 , 再 用 新 的 卡 片 主 控 密 钥 作 一 次 外 部 认 证。