这些Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,可能使用不再可用的技术。
请查看Java语言变更,了解Java SE 9及后续版本中更新的语言特性的摘要。
请查看JDK发布说明,获取有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息。
在本教程中,您将学习内置的Java™安全功能如何保护您免受恶意程序的侵害。您将了解如何使用工具来控制对资源的访问,生成和验证数字签名,并创建和管理用于签名生成和验证的密钥。您还将学习如何将加密服务(如数字签名生成和验证)集成到您的程序中。
Java开发工具包(JDK™)提供的安全功能面向各种受众:
运行程序的用户:
内置的安全功能可以保护您免受恶意程序(包括病毒)的侵害,保护您的文件和个人信息的隐私,并验证每个代码提供者的身份。当需要时,您可以对应用程序和小程序进行安全控制。
开发人员:
您可以使用API方法将安全功能整合到您的程序中,包括加密服务和安全检查。API框架使您能够定义和集成自己的权限(控制对特定资源的访问)、加密服务实现、安全管理器实现和策略实现。此外,还提供了用于管理您信任的人的公私钥对和公钥证书的类。
系统管理员、开发人员和用户:
JDK工具用于管理您的密钥库(密钥和证书的数据库);为JAR文件生成数字签名,并验证这些签名和签名内容的完整性;以及创建和修改定义安装的安全策略的策略文件。
创建策略文件 展示了如何通过策略文件来控制资源访问。有关策略配置文件的最新信息,请参阅策略指南页面。
控制应用程序的快速导览 在上一课的基础上展示了在安全管理器下运行的应用程序不被允许读写文件等资源访问,除非在策略文件中明确允许了相关权限。
用于安全代码和文件交换的API和工具使用 定义了数字签名、证书和密钥库,并讨论了它们的必要性。它还回顾了与下面三个课程相关的信息,这些课程涉及使用工具或API生成签名、导出/导入证书等常见步骤。
对代码进行签名并授予权限 展示了所有与安全相关的工具的使用。它展示了开发人员签名和分发代码供他人运行所需的步骤。该课程还展示了运行代码的人(或系统管理员)如何在策略文件中添加条目,以授予代码对所需资源访问的权限。
文件交换 展示了一个人使用工具签署重要文件(例如合同),并导出与用于签署合同的私钥对应的公钥证书。然后该课程展示了另一个人如何导入证书并验证签名。
生成和验证签名 逐步演示了使用JDK安全API编写Java程序的示例,该示例用于生成密钥、使用私钥为数据生成数字签名,并将公钥和签名导出到文件中。然后示例展示了编写第二个程序,该程序可以在不同人的计算机上运行,它导入公钥并验证签名的真实性。最后,示例讨论了基本程序使用的方法的潜在弱点,并演示了可能的替代方法和提供和导入密钥的方法,包括在证书中。
实现自己的权限 演示了如何编写一个定义自己特殊权限的类。
JDK安全发布文档可在安全指南页面找到。该索引页面列出了规范,详细介绍了最新安全功能,包括体系结构规范、使用指南、API文档和工具文档。