从 本 文 开 始, 我 们 陆 续 刊 登 一 系 列 在 智 能 卡上 进 行Java 开 发 的 文 章,
以 此 把 智 能 卡 向 您 作 一 个 基 本 的 介绍。 只 要 有一 块 智 能 卡、 一 个 读 卡
机 和 一 套 可 与 智 能 卡 通 信 的软 件, 你就 可 以 开 始 进 行 实 用 应 用 程 序 的
开 发 了。 本 文 介 绍的 内 容 包括: 遵 循ISO7816 标 准 的 智 能 卡 管 理 软 件; 如 何
使 用Gemplus 阅 读器 和Gemplus 智 能 卡 从 智 能 卡 中 读 写 内 存; 一 些 利 用 智
能 卡 的 存储 功 能 的 应 用 程 序。 以 后 的 文 章 将 介 绍 不 同 厂 家 生产 的 智 能卡,
并 且 还 将 涉 及 智 能 卡 的 标 准。
作 为 专 题 系 列 的 第 一 篇, 本 文 将 主 要 为 以 后的 讨 论 作一 个 铺 垫 工 作。 在 此,
我 们 将 讨 论 一 个 称 为OpenCard的 新 标 准。
以 后 的 文 章 将 涉 及 安 全 智 能 卡 和 电 子 钱 包。 最 后,我 们 将 向您 介 绍 智 能 卡 软
件 的 基 本 框 架 结 构。
无 论 是 在 四 月 份 的JavaOne 大 会 上( 与 该 技 术 有关 的 四 次演 讲), 还 是 在 巨 大
的 网 络 新 闻 站 或 是CNN, 智 能 卡掀 起 了 轩然 大 波。 在 本 文 里, 我 们 将 以 实 用 智
能 卡 实 例 向 您展 示 真 正的 智 能 卡。 这 里 的 技 术 将 允 许 你 开 发 智 能 卡Java 应 用
程 序。
我 们 的 讨 论 焦 点 主 要 集 中 在 两 种 智 能 卡 之上: 存 储 智能 卡, 它 可 以 被 看 作 带
有 可 选 安 全 级 别 的 小 型 可 读写 磁 盘;
处 理 器 卡, 它 可 以 被 看 作 带 有 一 个 输 入 输 出 端 口 的迷 你 型 计算 机。 以 后 的 文 章
将 更 为 深 入 的 介 绍 处 理 器 卡。
本 文 的 精 华 之 处 在 于, 我 们 将 为 读 写 智 能 卡创 立 一 个简 单 的 原 形。 我 们 要 讨 论
一 种 医 药 处 方 卡, 它 将 替你 保 存 所有 的 药 方 清 单, 并 检 查 保 险、 处 方 计 划 等 等 有 用 的
信 息。 并且 我 们 将 围 绕 处 方 卡 扩 展 开 去。在 这 一 系 列 的 文 章 之 中, 你 会 注 意 到 伴 随 智
能 卡 的 一个 常 见 主 题, 那 就 是 安 全 性 问 题。 这 里 所 说 的 安全, 主 要 是防 止 通 过 卡 的 滥
插 入 或ActiveX 组 件 等 手 段 非 法 获 取数 据。 为 此目 的, 本 文 中 关 于 读 写 智 能 卡 中 数 据 的
范 例 将 给 你提 供 一 个安 全、 一 致 且 具 可 移 植 性 的 存 储。
智 能 卡 是 什 么
你 可 以 把 智 能 卡 当 作 一 个 带 有 大 脑 的 信 用卡。 其 大 脑
就 是 一 个 小 的 嵌 入 式 计 算 机 芯 片。 这 种 芯 片 可 以 被
编 程 执 行某 项 任 务 或 是 存 储 一 些 数 据, 但 应 时 刻 牢 记: 该 种
芯 片 只 不过 是 小 型 的, 它 的 处 理 能 力 绝 对 比 不 上 你 的 桌 面 计
算 机。
目 前, 智 能 卡 仅 仅 用 于 电 话、 运 输、 银 行 和 保健 等 行 业
, 但 是 感 谢 众 多 的 开 发 者, 在 不 久 的 将 来, 我 们 就
会 看 到 智能 卡 应 用 于Internet 应 用 程 序 之 中。 智 能 卡 已 经 在 日
本 和 欧 洲广 为 应 用, 并 且 在 美 国 受 到 了 欢 迎。 事 实 上, 在 美 国
的 智 能 卡业 界 最 近 共 发 生 了 三 件 颇 具 意 义 的 事 件:
PC/SC
Microsoft 联 合 其 它 几 家 公 司 推 出 了 称 为PC/SC 的
智 能 卡 应用 程 序 标 准, 用 于Win32 平 台 的 个 人 计 算 机 与 智 能 卡
之 间 实 现互 通 信。PC/SC 目 前 不 支 持 非Win32 的 系 统 平 台, 或 许
Microsoft 永 远也 不 会 那 样 做。 稍 后 我 们 将 对 此 详 加 讨 论。
OpenCard 框 架OpenCard 是 一 个 开 放 式 的 标 准, 它 支 持 智 能 卡
应 用 程 序在 网 络 计 算 机、POS、 桌 面 和 膝 上 计 算 机 等 平 台 之 上
实 现 互 操作。OpenCard 许 诺 提 供100% 纯Java 的 智 能 卡 应 用 程 序。 通
常 智 能 卡应 用 程 序 不 能 完 全 借 助 于 纯Java, 因 为 它 们 必 需 与
外 设 互 通信 或 是 利 用 客 户 之 上 的 程 序 库。( 当 然, 没 有
OpenCard, 我 们 仍然 能 够 使 用100% 的 纯Java, 但 是, 智 能 卡 的 开 发 者 必 需
从 头 定 制一 个 接 口。)OpenCard 还 提 供 了 一 个 到PC/SC 的 接 口, 使
得 开 发 者得 以 使 用 现 有Win32 平 台 上 的 设 备。
JavaCard
JavaCard 最 初 由Schlumberger 提 出, 目 前 已 被JavaSoft 制 定 为
一 项 标 准。Schlumberger 目 前 在 市 场 上 只 提 供Java 智 能
卡, 而 且 该公 司 是 第 一 个 获 得JavaCard 许 可 的 厂 商。 作 为 一 项 极
有 潜 力 占踞 统 治 地 位 的 智 能 卡 标 准,JavaCard 包 括 了 标 准 的 类
库 和API,使 得Java 小 应 用 能 够 直 接 运 行 在 遵 循ISO7816 标 准 的 智
能 卡 之 上。JavaCard 对 不 同 的 应 用 程 序 提 供 安 全 和 与 芯 片 无 关
的 运 行 环境。
注 意:
尽 管 本 文 集 中 于 智 能 卡 主 题, 但 更 为 重 要 的是 你 决 不应 囿 于 这 一 种
设 备 之 上。 从 我 个 人 角 度 将, 我 更 为偏 爱DallasSemiconductor 生 产
的揑button?设 备。 它 象 一 个 小 型 便携 的 信 用卡 一 样, 但 是 更 为 易 用。
为 什 么 呢 ? 因 为 你 不 再 需要 拿 出 钱包 从 几 张 卡 中 选 出 要 用 的 那
一 张,Ibutton 就 在 你 的 手中。 对 了, 它 是 一 枚 指 环。尽 管 存 在 无 接 触
型 的 智 能 卡( 关 于 这 方 面 的信 息 见 下文), 我 认 为Ibutton 这 样 象 珠
宝 饰 品 一 样 的 产 品 一 定会 有 利 可图。 关 于Ibutton 详 情 请 见 参 考 资 料。
顺 便 说 一 句, 八月 份 在 纽约 的Java Internet Business Expo(JIBE) 展 会 上,
Java CommerceTeam 展 示 了揓avaRing敗?/P>
为 什 么 使 用 智 能 卡 ?
使 用 智 能 卡 有 何 好 处 呢 ? 好, 下 面 回 答 这 个
问 题:
1. 智 能 卡 比 磁 卡 更 为 可 靠
2. 智 能 卡 能 够 存 储 数 百 倍 于 磁 卡 的 数 据
3. 智 能 卡 比 磁 卡 更 难 于 被 破 坏
4. 智 能 卡 可 以 被 处 理 或 是 回 收
5. 智 能 卡 在 工 业 上 可 用 的 范 围 广 阔, 并 可 提供 多 种 功
能
6. 智 能 卡 与 便 携 的 电 子 设 备 兼 容, 比 如 说 电话、PC 或 是
个 人 数 字 助 手(PDA)
7. 智 能 卡 在 不 断 的 发 展( 毕 竟 它 内 部 包 含 了一 块 计 算
机 芯 片)
智 能 卡 的 种 类
正 如 前 面 所 述, 本 文 将 集 中 讨 论 两 种 类 型 的智 能 卡:
存 储 和 处 理 器 型。 但 是 目 前 共 有 五 个 类 型 的 智 能
卡:
存 储 智 能 卡
处 理 器 智 能 卡
电 子 钱 包
安 全 卡
JavaCard
智 能 卡 是 硬 件 的 便 携 部 分, 它 必 须 借 助 于 其它 设 备 才
能 获 取 对 某 种 显 示 设 备 或 是 网 络 的 访 问。 可 以 将 卡
插 入 读 卡器, 这 通 常 称 为 智 能 卡 终 端; 也