摘 要: 在 传 统 的 客 户 机/ 服 务 器 应 用 程 序 中, 需 要 解 决 的 一 个 难 题 是 如 何 容 纳 大 量 的 用 户。Internet 的 出 现, 使 这 个 问 题 不 再 尖 锐。 然 而, 当 应 用 程 序 支 持 的 用 户 数 量 增 加 时, 安 全 性 又 成 为 一 个 大 问 题。
对 于 互 联 网 应 用 开 发 人 员 来 讲, 安 全 性 总 是 被 列 为 第 一 设 计 准 则。 在Internet 上, 或 者 说 在 整 个 世 界 上, 人 们 需 要 更 好 的 安 全 性。
“ 足 够 好” 是 为 大 多 数 人, 尤 其 是 管 理 工 程 师 们 所 熟 悉 的 概 念。 最 终, 产 品 必 须 交 付, 应 用 必 须 发 布, 相 应 的 服 务 必 须 提 供。 判 断“ 足 够 好” 的 标 准 因 文 化, 产 业, 组 织, 和 个 人 的 要 求 而 异: 制 造 业 过 程 的 目 标 可 能 是6 ‰ 秒, 而 对 于 开 发 容 错 系 统 人 员, 这 个 目 标 可 能 就 是99.99999% 正 常 运 行 时 间。 但 是, 在 网 络 计 算 中 没 有 被 认 可 的 安 全 标 准。
Java 特 别 将 安 全 作 为 开 发 环 境 的 一 个 组 成 部 分。 在 其 它 领 域 已 有 确 定 的 基 准: 例 如 加 密 所 用 的 比 特 数。 目 前, 可 靠 性 和 质 量 已 有 测 量 准 则。 对 于 可 靠 性, 这 个 准 则 是 停 机 时 间 的 总 和 除 以 期 望 正 常 运 行 时 间, 在 系 统 级 的 简 单 估 算 中, 这 个 值 是 每 个 组 件 的 平 均 失 败 时 间 的 乘 积。 质 量 准 则 典 型 地 被 认 为 是 次 品 数 除 以 总 产 量。 然 而 对 于 大 多 数 产 业, 只 有 一 个 可 接 受 损 失 的 概 念, 没 有 严 格 的 定 义。
对 于 软 件 开 发 者 可 接 受 损 失 的 概 念 是 一 个 光 滑 的 斜 坡。 软 件 质 量 典 型 地 被 定 义 为 所 有 已 知 的 臭 虫(bugs), 或 已 知 的 臭 虫 除 以 代 码 的 行 数。 然 而, 一 些 臭 虫 明 显 地 比 其 他 的 所 需 付 出 的 代 价 高。 通 常, 让 你 付 出 最 高 代 价 的 臭 虫 甚 至 在 事 发 后 仍 未 找 到。
虽 然 有 些 公 司 情 愿 容 忍 一 些 损 失, 但 是 软 件 开 发 者 必 须 时 常 保 证 发 布 的 代 码 的 安 全 性。 妥 协 能 在 系 统 级 达 成, 但 不 能 在 组 件 级 达 成。 几 乎 没 有 系 统 是 完 全 安 全 的, 即 使 很 难 证 明 它 有 错 误。
安 全 性 和Java
Java 已 在 安 全 性 方 面 增 加 了 许 多 措 施, 程 序 员 应 该 认 真 对 待 任 何 想 避 开Java 固 有 安 全 性 的 想 法。 在 这 里, 开 发 者 应 该 慎 重 选 择 安 全 性 和 灵 活 性 哪 一 个 更 为 重 要。 开 发 者 必 须 知 道 用 户 需 要 哪 种 类 型 的 软 件。 互 联 网 应 用 程 序 的 用 户 在 两 种 角 色 之 间 徘 徊:“ 圣 徒” 和“ 恐 怖 分 子”。 多 数 开 发 者 通 常 希 望 能 兼 顾 两 者 ? ?“ 可 信 任 的 成 年 人” ? ? 而 这 通 常 是 一 个 错 误。 例 如, 微 软 的 正 确 代 码 设 计 中 心 有 点 类 似 上 述 的 开 发 者。 然 而, 用Java 写 成 的 应 用 程 序, 能 减 少 安 全 被 侵 犯 的 机 会, 并 能 保 证 不 出 大 的 安 全 错 误。
尽 管 已 承 认 可 接 受 损 失 这 个 概 念, 人 们 已 经 逐 渐 明 白, 只 有 使 用Java 作 为 执 行 环 境 才 能 达 到 更 好 的 安 全。 现 在 的Java 语 言 和 运 行 环 境 已 提 供 了 比 其 它 语 言 更 强 大 的 固 有 的 安 全。 为 应 用 程 序 建 立 一 个 设 计 中 心 是 一 个 不 确 定 的 过 程, 其 粗 糙 的 通 知 机 制 不 能 保 证 代 码 的 安 全。Java 使 这 一 切 变 得 简 单 了, 因 为 它 能 更 直 接、 更 简 单 地 实 现 了 安 全。
敌 意 是 一 个 相 对 的 词 语
多 数 安 全 专 家 把 软 件 的 敌 意 区 分 为 许 多 级 别。McGraw 和Felton 在 他 们《Java 的 安 全》 一 书 中, 将 不 安 全 小 程 序(applet) 分 为 两 种: 攻 击 性 的、 有 害 的。 攻 击 性 小 程 序 能 聪 明 地 攻 击Java 本 机(native) 的 安 全 机 制, 在 客 户 机 端 执 行 有 严 重 副 作 用 的 行 动( 破 坏 数 据、 传 播 病 毒、 向 外 界 披 露 个 人 隐 私)。 有 害 的 小 程 序 则 使 用 拒 绝 服 务、 侵 犯 隐 私 或 给 人 带 来 麻 烦 的 手 段 攻 击 客 户 机。
这 些 区 分 是 有 用 的, 但 有 多 少 有 点 儿 人 为 的 因 素。 例 如 拒 绝 服 务 在 多 数 情 况 下 只 简 单 地 给 人 们 制 造 一 些 小 麻 烦, 有 时 这 便 成 为 一 种 病 态。 最 近 有 一 条 新 闻 证 实 了 这 一 点。
在 八 月 早 期, 佛 及 尼 亚 州 诺 福 克 的 一 位 投 资 者 声 称, 由 于E*Trade( 一 个 流 行WWW 的 中 介 机 构) 不 让 他 取 消 一 项 在 线 股 票 交 易, 他 损 失 了30,000 美 元。 这 位 投 资 者 指 责, 由 于E*Trade 网 址 的 速 度 太 慢, 他 不 能 在 关 键 时 刻 创 建 一 个 服 务 取 消 信 息。 这 位 投 资 人 抱 怨E*Trade 的 网 址 的 性 能, 但 这 个 教 训 很 清 楚: 对 有 些 人 仅 仅 是 不 方 便 的 行 为, 对 另 外 一 些 人 可 能 却 十 分 关 键。
你 可 以 想 象 一 个 有 害 的 小 程 序, 它 唯 一 的 使 命 是 将 客 户 机 的 系 统 资 源 占 用 一 段 时 间。 多 数 情 况 下 这 只 不 过 是 一 个 小 麻 烦; 但 是, 对 于 从 事 电 子 商 务 的 人 来 说, 它 可 能 会 引 起 诉 讼。 实 际 上, 甚 至 仅 仅 是 交 易 速 度 慢 或 交 易 失 败 的 谣 传 都 会 对 金 融 市 场 产 生 严 重 的 影 响。 美 国 安 全 商 业 协 会(The National Assocation of Security Dealers)( 对NASDAQ 市 场 负 责 的 组 织) 已 经 发 出 警 告, 一 些 不 法 股 票 操 纵 者 已 经 使 用 在 线 投 资 论 坛 和 公 告 牌 影 响 股 票 价 格。
访 问 某 些 关 键 网 址 时 的 延 迟, 可 能 会 因 为 失 去 交 易 机 会 而 使 客 户 遭 受 上 亿 美 元 的 损 失。 问 题 是 这 笔 帐 应 该 算 在 谁 的 身 上 ? ? 电 子 中 介 机 构 还 是 投 资 者? 当 一 个 有 害 的 小 程 序 拒 绝 或 减 慢 对 医 院 关 键 药 物 信 息 的 访 问, 其 损 失 可 能 会 是 无 法 估 价 的。
虽 然 在 传 统 的 客 户/ 服 务 器 世 界 里, 网 络 是 可 知 的 并 且 可 以 管 理, 这 种 情 况 仍 很 严 重。 在 应 用 程 序 跨 越Internet 时, 这 种 情 况 变 得 非 常 危 险, 可 能 遭 受 的 损 失 会 是 灾 难 性 的。
怎 么 办
无 论 公 司 对 可 接 受 损 失 是 一 个 什 么 观 点, 开 发 者 应 该 在 安 全 方 面 多 花 一 些 时 间 和 精 力, 以 下 是 两 条 好 的 准 则:
选 择 一 个 安 全 级 别, 它 应 该 大 于 公 司 要 求 的 可 接 受 危 险 的 安 全 级 别。
只 使 用 灵 活 且 安 全 的 操 作 环 境, 具 体 使 用 灵 活 还 是 安 全 由 你 决 定, 而 与 语 言 或 执 行 环 境 无 关。
Java 在 确 认、 安 全 传 送、 和 执 行 内 容 管 理 方 面 给 开 发 者 提 供 了 很 多 东 西。 然 而, 每 个 应 用 程 序 的 安 全 性 仍 是 每 个 部 件 安 全 的 乘 积。 在 任 何 可 能 的 情 况 下, 最 大 化 这 个 乘 积 的 值 是 开 发 者 的 责 任。
结 论
在 任 何 环 境 中, 安 全 是 一 个 重 要 的 问 题, 但 它 经 常 被 忽 略。 在 编 制 互 联 网 应 用 程 序 时, 应 该 在 安 全 性 方 面 多 下 一 些 功 夫。 从 长 远 的 观 点 来 看, 它 带 来 的 好 处 并 不 明 显, 但 是 对 安 全 性 的 投 资 会 有 一 个 好 结 果。 因 此, 我 们 奉 劝 大 家 尽 量 使 用Java 固 有 的 安 全 机 制。
刘 晓 兵 编 译 自 http://www.javaworld.com/javaworld/jw-09-1997/jw-09-blundon.Html