欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java安全技术课件.pptx

    • 资源ID:75989464       资源大小:452.65KB        全文页数:41页
    • 资源格式: PPTX        下载积分:19金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要19金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java安全技术课件.pptx

    第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安全模型的演化 nJava2 安全模型nJava2的安全划分 n应用程序安全性n小程序安全性 nJ2SDK安全工具 nJava小程序的安全部署 最初安全模型为沙箱模型沙箱模型 JVMValuable Resources()SandBoxRemote CodeLocal code为从开放的网络中获取的非信任代码的提供了一个受限受限制的运行环境制的运行环境。沙箱模型的实质是本地代码对重要的系统资源(如文件系统)有全部的访问权限,而下载的远程代码(例如Applet)则不被信任并且仅能访问沙箱里提供的有限资源 JDK 1.1安全模型安全模型 JVMValuable Resources()SandBoxRemote CodeLocal code使用数字签名服务,可以用与 Java 编写的本地程序类似的方式对待可信的可信的 Applet JDK1.2中的新安全体系结构JVMValuable resources()PDPDSandboxSecurity policyClass loaderLocal or remote code ProtectionDomain是在策略数据库中指定的,授予 CodeSource 的 Permission 的聚合体。通过 ClassLoader 装入到 JVM 的每个类文件被分配给一个ProtectionDomain。Java2 安全模型 BootstrapClass filesSystemClass filesUserClass filesBytecode VerifierBootstrapClassLoaderSystemClassLoaderClassLoaderSecurityManagerProtection DomainsAccessControllerOperating System,HardwareCodeSource(URL,Certificates)PermissionskeystoreJava2 安全模型nJava 安全主要建立在 Java 运行时环境的三个方面:ByteCode Verifier(字节码验证器)、Security Manager(安全管理器)以及 ClassLoader(类装入器)。n代码验证(代码验证(Bytecode Verifier)确保所下载的代码被恰当地格式化,字节码(“Java 虚拟机”指令)没有违反语言或虚拟机的安全限制(如,无非法数据转换),没有执行指针寻址,内部堆栈不能溢出或下溢,以及字节码指令将拥有正确的类型参数。安全管理器(安全管理器(SecurityManager)nSecurityManager 在尝试执行文件 I/O 和网络 I/O、创建新的 ClassLoader、操作线程或线程组、启动底层平台(操作系统)上的进程、终止“Java 虚拟机”、将非 Java 库(本机代码)装入到 JVM、完成某种类型的系统操作以及将某种类型的类装入到 JVM 中时激发运行激发运行时访问控制机制时访问控制机制。n例如,Java Applet 沙箱严格地将所下载的 Applet 约束到被认为是比较安全的有限的运行环境中。权限(权限(Permission)n一个权限允许代码执行的一个特定的操作,权限可以是特别具体的,也可以是一般化的。n一个权限由三个部分组成:类型,名称和操作。类型是必须的,它是实现了Permission接口的特定的类 npermission java.security.AllPermission;npermission java.lang.RuntimePermission stopThread;npermission java.io./tmp/foo,read;代码源(代码源(Code Sources)n代码源包含类的从哪里装载的位置信息和对类签名信息。一般情况下,这个位置被表示成一个URL。如果代码被签名,那么代码源里面包含了关于签名者的信息。类可以基于代码源被赋予一定的权限。n保护域(保护域(Protection Domains)是赋予代码源的权限的集合。可以通过策略文件定义。策略文件(策略文件(Policy files)n策略文件是一个控制沙箱的管理元素。n一个策略文件可以包含一个或者多个条目来定义一个保护域。n每个条目是赋予代码源的权限声明。n一般有两个策略文件,一个全局策略文件,一个用户相关策略文件。n全局策略文件影响Java虚拟机种的所有的实例。n策略文件是一个文本文件,可以直接进行编辑。也可以用Java提供的编辑工具policyTool进行编辑。密钥库(密钥库(Keystores)n通过代码签名可以赋予代码更多的执行自由度。n如果你确信正在执行的代码来自一个可信的组织,你可以允许它访问本地磁盘文件,或者使用打印机等。n被签名的代码依赖于公钥证书,证书被保存在密钥库中。开发者可以使用密钥库中的证书对代码进行签名;n一般用户或者系统管理员可以在执行已签名的代码时参考密钥库发现是谁的签名。访问控制器(访问控制器(AccessController)n访问关键系统资源时,是否允许或者拒绝,具体结果决定于策略文件的配置。n把一段代码标记为具有一定的特权,影响后续的访问判断。n获取当前调用上下文的一个快照,来自不同上下文的访问控制判断可以参照被保存的上下文。n做特殊安全检查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_names;应用程序安全性 n在不使用SecurityManager的情况下n使用SecurityManager的情况n修改策略配置文件小应用程序安全性通过程序说明在命令行中用AppletViewer执行Appletviewer writeJ2SDK安全工具 nkeytool 管理密钥库和证书 njarsigner 产生和验证Java签名 npolicytool 图形化的方式管理策略文件。Keytooln1)创建公/私钥对;n2)发出证书请求到认证权威(CA)n3)从认证权威导入证书回复n4)指明属于其他组织的公钥是受信任的。nKeytool目前能够处理符合X.509标准的证书。JSSE(Java Secure Socket Extension,JSSE)1.0.2以后的版本可以支持pkcs12。Keytool参数参数 参数描述-genkey产生一个密钥对(一个公钥关联一个私钥)-import读取一个证书或者证书链,并存储到密钥库中,同时用一个别名进行标识。-certreq用pkcs10产生一个证书签发请求。-export导出一个和某个别名相关联的证书-list打印整个密钥库中的内容,或者打印与某个别名相关联的证书。-storepasswd修改或指定密钥库的密码-keypasswd修改或者指定某一个密钥对的访问密码-delete删除密钥库中的条目。KeyTool应用nD:keytool-genkey-alias javafan-keyalg rsa-validity 750n输入keystore密码:keystoren您的名字与姓氏是什么?n Unknown:JavaFann您的组织单位名称是什么?n Unknown:Computer Sciencen您的组织名称是什么?n Unknown:Chongqing Universityn您所在的城市或区域名称是什么?n Unknown:Chongqingn您所在的州或省份名称是什么?n Unknown:Chongqingn该单位的两字母国家代码是什么n Unknown:CNnCN=JavaFan,OU=Computer Science,O=Chongqing University,L=Chongqing,ST=Chonngqing,C=CN 正确吗?n 否:是n输入的主密码n (如果和 keystore 密码相同,按回车):用keytool显示证书的内容 nD:keytool-v-printcert-nOwner:CN=JavaFan,OU=Computer Science,O=Chongqing University,L=Chongqing,ST=Chongqing,C=CNn发照者:CN=JavaFan,OU=Computer Science,O=Chongqing University,L=Chongqing,ST=Chongqing,C=CNn序号:43030437n有效期间:Wed Aug 17 17:32:39 CST 2005 至:Thu Sep 06 17:32:39 CST 2007n认证指纹:n MD5:CB:AE:97:24:A9:93:4B:34:E2:3B:95:95:70:E7:70:D5n SHA1:E3:32:0C:68:24:34:CB:6E:02:BF:ED:E6:D8:C0:29:AE:66:5C:20:DDjarsignernJarsigner用于给打包后的Java程序签名,或者验证签名。Jarsigner可以在签名或者验证签名时,访问由keytool创建的密钥库。选项描述-storepass访问密钥库时,指定口令-keypass指定私钥的保护口令-signedjar指定需要被签名的jar文件-verifyjar文件的签名验证-verbose控制是否输出签名或者验证过程的详细信息-certs与-verify、verbose一起使用,输出包括每个签名证书的信息policytool Java运行时环境的安全配置文件java.home/lib/security/java.security(java.home指安装Java运行时环境的目录)中包括两个策略文件:java.home/lib/security/java.policy 和 user.home/.java.policy(user.home指用户主目录)。PolicyTool缺省修改第二个文件。Java小程序的安全部署 nSimpleScannerApplet程序检查某个主机上的TCP端口是否开放,比如用于WWW服务的80端口,用于SMTP服务的25端口等。程序运行界面制作和部署安全小程序步骤n编制小程序SimpleScannerApplet n编写Html文件scanner.html n把程序打包成Jar文件n获取并安装一个支持RSA的签名证书。n用该证书对Jar文件进行签名n用sun的Html Convert转换scanner.htmln部署转换后的html文件和已经签名的jar文件n见程序 主要内容n16.1 安全基本知识 n16.2 Java的安全模型 n16.3 Java的密码学结构 16.3 Java的密码学结构n16.3.1基本概念n16.3.2核心类n16.3.3消息摘要n16.3.4数字签名n16.3.5数据加密/解密16.3.1 基本概念nJava 密码学结构设计遵循两个原则:(1)算法的独立性和可靠性;(2)实现的独立性和相互作用性。nJava 2 中主要的密码学服务有以下几种:n数字签名、消息摘要、加密/解密n密钥工厂n密钥库创建与密钥管理n算法参数产生、管理n证书工厂JDK5.0提供的密码学服务n可以通过修改java.home/lib/security/java.security文件安装密码学服务提供者。缺省情况下,Java运行时环境已经安装了下面的提供者:nsecurity.provider.1=sun.security.provider.Sunnsecurity.provider.2=sun.security.rsa.SunRsaSignnsecurity.provider.3=.ssl.internal.ssl.Providernsecurity.provider.4=com.sun.crypto.provider.SunJCEnsecurity.provider.5=sun.security.jgss.SunProvidernsecurity.provider.6=com.sun.security.sasl.Providern见程序测试程序import java.security.Provider;import java.security.Security;public class GetProviderInfo public static void main(String args)Provider plist=Security.getProviders();for(int i=0;i plist.length;i+)System.out.println(+(i+1)+-Provider name:+plisti.getName();System.out.println(Provider info:+plisti.getInfo();16.3.2 核心类nSecurity,Provider nMessageDigest类 nSignature类 nKey,KeyFactory,KeyPair,KeyPairGenerator nSecureRandom 16.3.3 消息摘要n使用MD5算法产生消息摘要n也可以使用SHA1算法nMessageDigest支持MD5和SHA消息摘要算法。调用getInstance()方法选择一个合适的算法;调用update()方法准备数据输入缓冲区;digest()方法产生消息摘要;摘要的长度取决于所选择的算法。使用 MD5产生128位的摘要,使用SHA产生160位的摘要。16.3.4 数字签名nSignature类支持数字签名,getInstance()方法选择数字签名的算法。n通过指定参数SHA1withDSA,可以在DSA数字签名算法中使用SHA-1产生消息摘要。n如果使用RSA数字签名算法,可以用MD5或者SHA-1产生消息摘要,可以由参数MD2withRSA,MD5withRSA,SHA1withRSA确定使用的算法。n见程序16.3.5 数据加密/解密n对称密钥n对称加密使用相同的密钥执行加密和解密操作。目前,安全度最高,使用最广泛地就是AES加密标准。n对称加密的基本过程是:n根据指定算法生成密钥产生器对象;n产生密钥n生成加密引擎对象n向加密引擎初始化需要加密的数据n执行加密操作n对称解密密的基本过程是:n获取密钥n生成解密引擎对象n向解密引擎初始化需要解密的数据n执行解密操作非对称密钥 n非对称密钥体系就是加密和解密用不同的密钥,称为密钥对,一个叫公钥,一个叫私钥。公钥是公开的,任何人都可以访问,私钥是保密的,只有密钥的持有能使用。n最典型和使用最普遍的就是RSA算法。一般用接收者的公钥加密数据,只有接收者用自己的私钥才可以解密。n主要设计到的类有:KeyPairGenerator和Cipher.KeyPairGenerator负责产生密钥对,Cipher作为执行引擎,具体执行加密和解密操作。非对称加密解密过程n一般加密处理过程是:n使用RSA算法产生密钥对n用公钥初始加密引擎Ciphern向Cipher传送数据。n执行加密操作。n解密过程是:n用私钥初始解密引擎Ciphern向Cipher传送已加密的数据。n执行解密操作。1、有时候读书是一种巧妙地避开思考的方法。3月-233月-23Monday,March 6,20232、阅读一切好书如同和过去最杰出的人谈话。13:22:0013:22:0013:223/6/2023 1:22:00 PM3、越是没有本领的就越加自命不凡。3月-2313:22:0013:22Mar-2306-Mar-234、越是无能的人,越喜欢挑剔别人的错儿。13:22:0013:22:0013:22Monday,March 6,20235、知人者智,自知者明。胜人者有力,自胜者强。3月-233月-2313:22:0013:22:00March 6,20236、意志坚强的人能把世界放在手中像泥块一样任意揉捏。06三月20231:22:00下午13:22:003月-237、最具挑战性的挑战莫过于提升自我。三月231:22下午3月-2313:22March 6,20238、业余生活要有意义,不要越轨。2023/3/613:22:0013:22:0006 March 20239、一个人即使已登上顶峰,也仍要自强不息。1:22:00下午1:22下午13:22:003月-2310、你要做多大的事情,就该承受多大的压力。3/6/2023 1:22:00 PM13:22:0006-3月-2311、自己要先看得起自己,别人才会看得起你。3/6/2023 1:22 PM3/6/2023 1:22 PM3月-233月-2312、这一秒不放弃,下一秒就会有希望。06-Mar-2306 March 20233月-2313、无论才能知识多么卓著,如果缺乏热情,则无异纸上画饼充饥,无补于事。Monday,March 6,202306-Mar-233月-2314、我只是自己不放过自己而已,现在我不会再逼自己眷恋了。3月-2313:22:0006 March 202313:22谢谢大家谢谢大家

    注意事项

    本文(Java安全技术课件.pptx)为本站会员(yan****nan)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开