智慧卡之魂Java Card 2.0

來源:互聯網
上載者:User

  Java Card 是 能 運 行Java 程 序 的 智 能 卡。 針 對 這 種 新 的Java 平 台,Sun 公 司 的JavaSoft 部 門制 訂 了Java Card 2.0 API 技 術 規 範。 目 前, 已 有 一 些 授 權 方 正 在 智 能 卡 上 實 現 這種API。 要 編 寫 與2.0 兼 容 的Java Card 應 用 程 序, 開 發 人 員 需 要 從 體 系 結 構 上 瞭解Java Card 的 內 涵, 即 內 核 類, 並 了 解 如 何 針 對 智 能 卡 開 發 應 用 程 序。

什 麼 是 智 能 卡 ? ---- 智 能 卡 與 信 用 卡 大 小 相 同, 可 通 過 嵌 入 到 其 塑 料 基 體 中 的 集 成 電 路 來 存 儲 和 處 理 資訊。 智 能 卡 主 要 分 為 兩 類: 包 含 有 微 處 理 器 並 具 有 讀、 寫 和 計 算 功 能 的 智 能 卡( 如 小 型微 電 腦); 另 一 類 為 沒 有 微 處 理 器 的 內 存 卡, 它 只 能 存 儲 信 息。 ---- 所 有 智 能 卡 都 包 括 三 類 存 儲 器: 永 久 不 變 存 儲 器(persistent non-mutable memory)、 永 久 可 變 存 儲 器(persistent mutable memory) 和 非 永 久 可 變 存 儲器(non-persistent mutable memory)。 在 這 三 類 存 儲 器 中,ROM、EEPROM 和RAM 使 用 最為 普 遍。

---- 國 際 標 准 化 組 織 規 定 的ISO 7816 第1 ~7 部 分 規 定 了 一 組 覆 蓋 智 能 卡 各 個 方 面 的 標 准。ISO 7816 包 括: 物 理 特 性( 第1 部 分)、 尺 寸 和 觸 點 位 置( 第2 部 分)、 電 子 信 號 和 傳 輸 協 議( 第3 部 分)、 行 業 間 交 換指 令( 第4 部 分)、 應 用 程 序 標 識 符( 第5 部 分)、 行 業 間 數 據 元 素( 第6 部 分) 和 行 業間SCQL 指 令( 第7 部 分)。 ---- 圖1 表 示 了 智 能 卡 的 物 理 特 性。

---- 一 般 智 能 卡 不 包 括 電 源、 顯 示 屏 或 鍵 盤。 它 通 過8 個 觸 點, 利 用 串 行 通 信 接 口 與 外 部 世 界 交 互。 圖2 表 示 智 能 卡 的 觸 點。 ---- 智 能 卡 插 入 與 另 一 台 計 算 機 相 連 的 卡 接 收 設 備(CAD,Card Acceptance Device)。 卡接 收 設 備 又 可 稱 作 終 端、 讀 卡 器 和 接 口 設 備(IFD,InterFace Device)。 它 們 都 具 有 相同 的 基 本 功 能, 即 向 智 能 卡 提 供 電 源 和 建 立 數 據 傳 輸 連 接。

---- 當 兩 台 計 算 機 彼 此 進 行 通 信 時, 它 們 交 換 根 據 一 系 列 協 議 構 造 的 數 據 包。 類 似 地, 智能 卡 也 使 用 自 己 的 數 據 包APDU(Application Protocol Data Unit, 應 用 協 議 數 據 單元) 與 外 部 世 界 對 話。APDU 包 含 一 條 指 令 或 響 應 信 息。 在 智 能 卡 的 世 界 裡 采 用 的 是 主從 模 式, 而 智 能 卡 永 遠 扮 演 被 動 的 角 色。 智 能 卡 總 是 在 等 待 來 自 終 端 的 命 令APDU。 隨後, 它 執 行APDU 規 定 的 動 作, 並 以 一 個 應 答APDU 向 終 端 做 出 回 答。 智 能 卡 與 終 端 之 間互 相 交 換 命 令APDU 和 應 答APDU。

什 麼 是Java Card ? ---- Java Card 是 能 運 行Java 程 序 的 智 能 卡。Java Card 2.0 技 術 規 範 包 括 有 關 在 智 能 卡上 創 建Java Card 虛 擬 機 和 應 用 編 程 接 口(API) 的 詳 細 信 息。 最 低 系 統 要 求 為16Kbps ROM、8Kbps EEPROM 和256B RAM。Java Card 上 的 系 統 體 系 結 構 如 圖3 所 示。

---- 其 中Applet 是 小 應 用 程 序,Industry Add on Classes 是 企 業 添 加 類,Javacard Framework 是Javacard 框 架,OS&Native Functions 是 操 作 系 統 和 本 地 功能。Java Card 虛 擬 機 是 建 立 在 特 定 集 成 電 路 和 本 機 操 作 系 統 執 行 程 序 上 的。JVM 層 利用 一 般 語 言 和 系 統 接 口 隱 藏 了 制 造 商 的 專 利 技 術。Java Card 框 架 定 義 了 一 系 列 用 來開 發Java Card 應 用 程 序 和 為 這 些 應 用 程 序 提 供 系 統 服 務 的API。 某 些 特 定 行 業 或 特殊 的 商 務 應 用 可 提 供 添 加 的 庫, 以 提 供 服 務 或 優 化 安 全 性 和 系 統 模 型。Java Card 應用 程 序 稱 為Applet。 一 個 卡 上 可 駐 留 多 個Applet。 每 個Applet 均 被 其AID( 應 用 程 序 標識 符) 惟 一 標 識, 如ISO 7816 第5 部 分 的 規 定。

Java Card 的 生 命 周 期 ---- Java Card 的 生 命 周 期 從 本 機 操 作 系 統、Java Card 虛 擬 機、API 類 庫 和 可 選 的Applet 被 寫 入ROM 時 開 始。 將 一 個 可 處 理 進 入 命 令 的 永 久 性 組 件 寫 入 芯 片 的 非 可 變 存 儲 器,這 一 過 程 又 稱 作 掩 模。 ---- 在 裝 入 您 的錢 包 之 前,Java Card 需 要 經 過 初 始 化 和 個 人 化。 初 始 化 指 在 卡 的 非 可 變 存 儲 器 內 裝入 一 般 數 據。 這 種 數 據 對 很 多 智 能 卡 都 是 相 同 的, 而 並 非 某 種 卡 所 特 有, 例 如 發 行 商或 制 造 商 的 名 稱。 個 人 化 是 將 卡 分 配 給 某 個 人。 這 個 過 程 可 通 過 物 理 個 人 化 或 電 子 個人 化 完 成。 物 理 個 人 化 指 在 卡 的 塑 料 表 面 上 壓 印 或 激 光 壓 印 您 的 名 字 和 卡 號。 電 子 個人 化 指 在 卡 的 非 可 變 存 儲 器 中 裝 載 個 人 數 據, 例 如 您 的 個 人 密 鑰、 名 字 和 個 人 身 份 代碼。 各 廠 家 和 發 行 商 所 采 用 的 初 始 化 和 個 人 化 的 方 法 不 盡 相 同。 對 這 兩 個 過 程 來 說,通 常 都 是 用EEPROM 存 儲 數 據。

---- 現在,Java Card 就 可 以 使 用 了。 您 可 以 從 發 行 商 處 購 買Java Card, 也 可 從 零 售 商 處 購買Java Card。 零 售 商 銷 售 的 卡 是 通 用 型 的, 一 般 都 沒 有 經 過 個 人 化 處 理。 現 在, 您 可以 把 您 的Java Card 插 入 讀 卡 器, 並 向 駐 留 在 卡 上 的Applet 發 送 命 令APDU, 或 向 卡 內下 載 其 他Applet 或 數 據。 除 非Java Card 失 效 或 因 某 種 不 可 恢 複 的 錯 誤 而 被 閉 鎖, 否則Java Card 就 能 一 直 使 用 下 去。

---- 同樣 地,Java Card 虛 擬 機 永 遠 工 作。 但 是,Applet 的 生 命 周 期 就 不 同 了, 它 開 始 於 正 確安 裝 並 被 注 冊 到 系 統 的 注 冊 表 中, 而 當 它 被 從 注 冊 表 中 刪 除 時 其 生 命 周 期 就 結 束 了。被 刪 除 的Applet 的 空 間 可 能 被 再 次 使 用, 也 可 能 不 再 使 用, 這 取 決 於 卡 上 是 否 實 現 了垃 圾 收 集 功 能。 卡 上 的applet 只 有 當 被 終 端 明 確 選 擇 後 才 會 處 於 激 活 狀 態。 Java Card 2.0 語 言 子 集 ---- Java Card 程 序 是 用Java 編 寫 的。 它 們 可 以 用 一 般 的Java 編 譯 器 來 編 譯。 因 為 存 儲 器資 源 和 計 算 能 力 有 限, 所 以Java Card 並 不 能 支 持Java 語 言 中 所 有 的 功 能, 特 別 是 不支 持 動 態 類 裝 載、 安 全 管 理 器、 線 程 和 同 步、 對 象 複 制、 對 象 回 收(finalization) 和 長基 本 數 據 類 型(float、double、long 和char)。 在 有 更 大 存 儲 器 的 更 高 級 智 能 卡 上, 由虛 擬 機 的 實 現 者 決 定 是 否 支 持32 位 整 數 類 型 及Post-issuance Applet 的native 方法。Post-issuance Applet 在 卡 被 發 放 給 持 卡 人 後 安 裝 在Java Card 上 的Applet。

Java Card 2.0 框 架 ---- Java Card 框 架 的 目 的 是 能 輕 松 支 持 智 能 卡 系 統 和 應 用 程 序, 它 隱 藏 了 智 能 卡 體 繫結 構 的 細 節, 並 為Java Card 應 用 程 序 開 發 人 員 提 供 了 相 對 簡 單 和 直 接 的 編 程 介面。Java Card 框 架 包 括4 個 包:

---- javacard.framework: 這 是Java Card 的 內 核 包。 它 定 義 諸 如applet 和 個 人 身 份 代 碼(PIN) 等 類, 這 些 類 是Java Card 系 統 的 基 本 構 件。

---- javacardx.framework: 這 個 包 可 為 與ISO 7816-4 兼 容 的 文 件 系 統 提 供 面 向 對 象 的設 計。 它 支 持ISO 7816 規 定 的 基 本 文 件(EF)、 專 用 文 件(DF) 和 面 向 文 件 的APDU。

---- javacardx.crypto 和 javacardx.cryptoEnc: 這 兩 個 包 支 持 智 能 卡 的 密 碼 功 能。 J

ava Card 的 安 全 性 ---- Java Applet 受Java 安 全 性 的 限 制, 但 是Java Card 系 統 的 安 全 性 模 式 在 很 多 方 面 與標 准Java 不 同。Java Card 不 支 持 安 全 管 理 器 類, 語 言 的 安 全 策 略 是 由 虛 擬 機 實 施的。Java Applet 創 建 可 存 儲 和 處 理 數 據 的 對 象。 對 象 由 創 建 該 對 象 的Applet 所 擁 有。即 使Applet 有 對 某 個 對 象 的 引 用, 它 也 不 能 調 用 該 對 象 的 方 法, 除 非 它 擁 有 該 對 象,或 該 對 象 已 確 定 共 享。 某 個Applet 可 與 另 一 個Applet 或 所 有Applet 共 享 其 對象。Applet 是Java Card 內 的 獨 立 實 體, 其 選 擇、 執 行 和 功 能 不 受 駐 留 在 同 一 張 卡 上 的其 他Applet 的 影 響。

---- Java Card 為Java 世 界 添 加 了 一 種 新 的 平 台。Java Card 的 廣 泛 采 用 和 部 署 需 要 市 場 的 推 動, 需要 開 發 更 多 的 應 用 程 序 和 工 具。 在 今 後 幾 年 裡,Java Card 的 使 用 數 量 也 許 將 增 加 到上 百 萬。 也 就 是 說, 您 不 久 就 會 使 用 這 種 放 在 隨 身 攜 帶 的 錢 包 裡 的 小 卡 片 來 存 儲 個 人信 息 和 下 載 應 用 程 序 了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.