第16章安全技术精选文档.ppt
《第16章安全技术精选文档.ppt》由会员分享,可在线阅读,更多相关《第16章安全技术精选文档.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第16章安全技术本讲稿第一页,共四十二页第16章 Java安全技术 本讲稿第二页,共四十二页主要内容n16.1 安全基本知识 n16.2 Java的安全模型 n16.3 Java的密码学结构 本讲稿第三页,共四十二页16.1 安全基本知识n攻击,保护攻击,保护 n密码学密码学,机密性机密性,认证认证,证书n完整性完整性,认可性认可性 n审计和日志审计和日志,安全策略和访问控制安全策略和访问控制本讲稿第四页,共四十二页主要内容n16.1 安全基本知识 n16.2 Java的安全模型 n16.3 Java的密码学结构 本讲稿第五页,共四十二页16.2 Java的安全模型n安全模型的演化 nJava
2、2 安全模型nJava2的安全划分 n应用程序安全性n小程序安全性 nJ2SDK安全工具 nJava小程序的安全部署 本讲稿第六页,共四十二页最初安全模型为沙箱模型沙箱模型 JVMValuable Resources(files,etc)SandBoxRemote CodeLocal code为从开放的网络中获取的非信任代码的提供了一个受限制的运受限制的运行环境行环境。沙箱模型的实质是本地代码对重要的系统资源(如文件系统)有全部的访问权限,而下载的远程代码(例如Applet)则不被信任并且仅能访问沙箱里提供的有限资源 本讲稿第七页,共四十二页 JDK 1.1安全模型安全模型 JVMValuab
3、le Resources(files,etc)SandBoxRemote CodeLocal code使用数字签名服务,可以用与 Java 编写的本地程序类似的方式对待可信的可信的 Applet 本讲稿第八页,共四十二页JDK1.2中的新安全体系结构JVMValuable resources(files,etc)PDPDSandboxSecurity policyClass loaderLocal or remote code ProtectionDomain是在策略数据库中指定的,授予 CodeSource 的 Permission 的聚合体。通过 ClassLoader 装入到 JVM 的
4、每个类文件被分配给一个ProtectionDomain。本讲稿第九页,共四十二页Java2 安全模型 BootstrapClass filesSystemClass filesUserClass filesBytecode VerifierBootstrapClassLoaderSystemClassLoaderClassLoaderSecurityManagerProtection DomainsAccessControllerOperating System,HardwareCodeSource(URL,Certificates)Permissionskeystore本讲稿第十页,共四十二
5、页Java2 安全模型nJava 安全主要建立在 Java 运行时环境的三个方面:ByteCode Verifier(字节码验证器)、Security Manager(安全管理器)以及 ClassLoader(类装入器)。n代码验证(代码验证(Bytecode Verifier)n确保所下载的代码被恰当地格式化,字节码(“Java 虚拟机”指令)没有违反语言或虚拟机的安全限制(如,无非法数据转换),没有执行指针寻址,内部堆栈不能溢出或下溢,以及字节码指令将拥有正确的类型参数。本讲稿第十一页,共四十二页安全管理器(安全管理器(SecurityManager)nSecurityManager 在尝
6、试执行文件 I/O 和网络 I/O、创建新的 ClassLoader、操作线程或线程组、启动底层平台(操作系统)上的进程、终止“Java 虚拟机”、将非 Java 库(本机代码)装入到 JVM、完成某种类型的系统操作以及将某种类型的类装入到 JVM 中时激发运行时访问控制机制激发运行时访问控制机制。n例如,Java Applet 沙箱严格地将所下载的 Applet 约束到被认为是比较安全的有限的运行环境中。本讲稿第十二页,共四十二页权限(权限(Permission)n一个权限允许代码执行的一个特定的操作,权限可以是特别具体的,也可以是一般化的。n一个权限由三个部分组成:类型,名称和操作。类型是
7、必须的,它是实现了Permission接口的特定的类 npermission java.security.AllPermission;npermission java.lang.RuntimePermission stopThread;npermission java.io.FilePermission /tmp/foo,read;本讲稿第十三页,共四十二页代码源(代码源(Code Sources)n代码源包含类的从哪里装载的位置信息和对类签名信息。一般情况下,这个位置被表示成一个URL。如果代码被签名,那么代码源里面包含了关于签名者的信息。类可以基于代码源被赋予一定的权限。n保护域(保护域(
8、Protection Domains)n是赋予代码源的权限的集合。可以通过策略文件定义。本讲稿第十四页,共四十二页策略文件(策略文件(Policy files)n策略文件是一个控制沙箱的管理元素。n一个策略文件可以包含一个或者多个条目来定义一个保护域。n每个条目是赋予代码源的权限声明。n一般有两个策略文件,一个全局策略文件,一个用户相关策略文件。n全局策略文件影响Java虚拟机种的所有的实例。n策略文件是一个文本文件,可以直接进行编辑。也可以用Java提供的编辑工具policyTool进行编辑。本讲稿第十五页,共四十二页密钥库(密钥库(Keystores)n通过代码签名可以赋予代码更多的执行自
9、由度。n如果你确信正在执行的代码来自一个可信的组织,你可以允许它访问本地磁盘文件,或者使用打印机等。n被签名的代码依赖于公钥证书,证书被保存在密钥库中。开发者可以使用密钥库中的证书对代码进行签名;n一般用户或者系统管理员可以在执行已签名的代码时参考密钥库发现是谁的签名。本讲稿第十六页,共四十二页访问控制器(访问控制器(AccessController)n访问关键系统资源时,是否允许或者拒绝,具体结果决定于策略文件的配置。n把一段代码标记为具有一定的特权,影响后续的访问判断。n获取当前调用上下文的一个快照,来自不同上下文的访问控制判断可以参照被保存的上下文。n做特殊安全检查本讲稿第十七页,共四十
10、二页Java2的策略配置文件SecurityManager security=System.getSecurityManager();if(security!=null)security.checkPermission(Permission perm);如果这个请求被允许,checkPermission不返回任何值;如果被拒绝,抛出异常SecurityException。grant signedBy signer_names,codeBase URL permission permission_class_name target_name,action,signedBy signer_name
11、s;本讲稿第十八页,共四十二页应用程序安全性 n在不使用SecurityManager的情况下n使用SecurityManager的情况n修改策略配置文件本讲稿第十九页,共四十二页小应用程序安全性通过程序说明在命令行中用AppletViewer执行Appletviewer writeFile.html本讲稿第二十页,共四十二页J2SDK安全工具 nkeytool 管理密钥库和证书 njarsigner 产生和验证Java签名 npolicytool 图形化的方式管理策略文件。本讲稿第二十一页,共四十二页Keytooln1)创建公/私钥对;n2)发出证书请求到认证权威(CA)n3)从认证权威导入
12、证书回复n4)指明属于其他组织的公钥是受信任的。nKeytool目前能够处理符合X.509标准的证书。JSSE(Java Secure Socket Extension,JSSE)1.0.2以后的版本可以支持pkcs12。本讲稿第二十二页,共四十二页Keytool参数参数 参数描述-genkey产生一个密钥对(一个公钥关联一个私钥)-import读取一个证书或者证书链,并存储到密钥库中,同时用一个别名进行标识。-certreq用pkcs10产生一个证书签发请求。-export导出一个和某个别名相关联的证书-list打印整个密钥库中的内容,或者打印与某个别名相关联的证书。-storepasswd
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16 安全技术 精选 文档
限制150内