..


赞助商链接

在Java沙箱安全模型

由Mark Frison写文章
第1页3

自推出以来,Java已经预定了在安全问题上发挥重要作用。 虽然有不同的结果,设计者都力求提供平台安全系统中实现直接在语言方面,提供给开发者。

在一个演变和JVM细化持续的过程,成为一个最重要的基础设施,单机,网络,手机等,在本文中,我们将集中在安全模式的演变,通常称为沙箱,在讲评设计错误和当前状态。

先决条件

这篇文章是给每个人,无论是经验丰富的Java程序员谁斋戒的主题完全的读者。 一些考虑会更容易理解那些谁已经拥有了一些与此语言的经验,但是,这篇文章的阅读是读者对任何合适的。

沙箱

原模型

原来的模型,沙盘已知的目的是要限制在一个孤立的环境中潜在的恶意代码,具有很强的限制性。 Java的自诞生以来,强烈面向网络和这种考虑导致制定一个执行模型,其中的代码是直接从远程下载,露出客户显著的安全问题。

在第一次执行情况,如图所示示意图,沙箱只能大致区分本地和远程代码代码:第一是充分享受访问所有资源“关键”,如,例如系统,文件系统和各种设备,远程代码相反,曾获得的资源有限,由同一沙箱介:小程序,现在基本上从网上消失了,我一直是最著名的例子。

这在JDK 1.0沙箱安全模型

该模型包括一个安全机制在不同的水平。 首先,Java是类型安全的,也就是说是在一个变量,控制和它的类型(整数,浮点数,字符串,等等...)明确的关系。
这些谁在低/中等水平,如语言编程,C和C + +知道有多少的问题,可避免此控制:之间,如整数或布尔void指针到其他的指针,这是特色的类型,隐式转换设置同时这些语言成为同样致力于初学者和专家的编程错误,主要来源。 为了尽量减少的可能性,即发展失误,Sun公司的设计师推出的某些方面迄今只在利基或大学水平的语言,如发现,例如,自动内存管理(垃圾收集)并控制在运行时存取记忆体(指针,数组元素等...).

第二个层次的保护是保证编译器和运行时,由虚拟机。 这确保了字节码的Java虚拟机汇编是用正确的执行权限执行。 特别是,两个关键部件, SecurityManager 和ClassLoader,定义一个本地名称空间,以避免虚拟机之间的不同实例干扰和管理的访问控制关键资源。

JDK 1.1 - 代码签名

该模型提出了非常灵活,在JDK的第一次更新(版本1.1)被介绍到受信任代码的概念,让远程应用程序,如果由客户认可的电子签名的陪同下,访问系统资源。 该解决方案,如下图所述,只不过是一个以前的架构,因此需要更多的黑客在未来的版本完全重写。

这在JDK 1.1沙箱安全模型

在同一类...
电子学习
Ruby和Ruby on Rails的(课程) Ruby和Ruby on Rails的(课程)
创建Ruby和RoR的软件和Web应用程序。 从39€。
网页设计(课程) 网页设计(课程)
使用HTML,CSS和动态HTML设计网站。 从39€。
XML(课程) XML(课程)
创建XML的结构,XSL和可扩展的其他语言。 起价29€。
赞助商链接