解析Java体系结构对信息安全的支持 - 编程入门网
,我们的目的只是为了保证文件的来源而不是文件本身的保密性,所以只需要对散列值进行加密,用户收到文件以后用文件提供者的公钥进行解密来验证散列值没有被替换。
明确了代码来源,并且保证没有被修改以后,就可以给它分配操作权限。安全策略是一个java.sercurity.Policy的实现类,Policy中主要包含了代码来源和相应的权限的对应关系信息,安全管理器的check方法将根据Policy对象判断给导入的代码赋予什么样的操作权限。代码来源是由java.security.CodeSource表示的,这个对象中包含了一组Certificate对象,说明了为这个代码文件担保的签名。而权限是用java.sercurity.Permission的子类实例来表示的,每一个Permission有三个属性:类型、名称和可进行的操作,类型说明了权限控制的资源类型,比如FilePermission说明了是对文件操作的权限,名称说明了这个权限控制的对象,比如FilePermission的名称为"/mydoc/order.txt",说明了对文件order.txt的操作权限,可进行的操作属性说明了这个权限可以进行的操作,比如"read"说明这个FilePermission可以对order.txt进行读操作。 开发人员可以通过编写代码继承SecurityManager类建立自己的安全管理器来设置安全策略,更方便和常用的方法是通过设置策略文件来实现。这是一个策略文件的例子:
//来自{Java_Home}/security/ex/目录下面的带有wife签名的所有jar文件和class文件有接受、连接和监听8080端口的权限
如果一个应用程序没有指定启动安全管理器进行干预,它的所有操作不会受到管理器的限制,指定启动安全管理器有两种方式,一种是在运行应用程序的时候指定,一种是在代码中指定。 java -Djava.serciruty.manager myapplication 这里指定了启动默认安全管理器,这时候将根据Java默认的全局策略文件来设置安全策略,这个文件是 /JAVA_HOME/lib/security/java.policy。 java -Djava.serciruty.manager -Djava.serciruty.policy=<URL> myapplication 解析Java体系结构对信息安全的支持(4)时间:2010-12-23这里启动安全管理器,除了默认的全局策略文件外,也会按照Djava.serciruty.policy参数指定的策略文件来设置安全策略,文件指定可以用URL也可以直接用文件名称。 如果是在代码中指定,程序通过setSecurityManager方法设置一个java.lang.SecurityManager的实例时候,这时候安全管理器就会开始控制应用程度的操作了。这时当类加载器加载类到虚拟机的时候,安全管理器根据代码来源和签名找到相应的权限,然后建立这个类的保护域ProtectionDomain,保护域定义了这个类所有的权限。当应用程序用到这个类并要进行任何可能的不安全操作时,都会向安全管理器请求操作许可,安全管理器中有一系列的check方法来 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |