Java安全框架

时间:2011-06-28 05:23:22

标签: java-ee jaas java

我是Java平台的新手。我需要为桌面应用程序和Web应用程序使用Java的一些安全框架。现在我需要知道,我应该为桌面应用程序(假设是Java SE还是Java EE)和Web应用程序(假设是JSP)研究哪些框架?

2 个答案:

答案 0 :(得分:7)

我假设您正在创建一个总体安全架构,管理远程连接和整个系统的其他方面。桌面应用程序安全性和Web安全性将会有所不同,但仍以自己的方式解决了许多相同的问题。

要包括的一些主题包括身份验证,授权和审计(AAA),数据安全性和静态,不可否认性,传输层安全性,平台安全性(例如管理平台权限)。

两个最常见的Java安全框架是Spring SecurityApache Shiro。这两个主题都涉及上面的一些主题,但它们是框架 - 意味着您需要定义安全体系结构和策略,然后将框架配置/扩展到您的特定域。

Bouncy Castle提供了大量现成的加密技术,包括兼容的Java Cryptography Extension(JCE) - 它也符合FIPS 140-2标准,但未经过认证。销售认证解决方案的人还有另外一个游戏/行业。

以下是一个示例 - 假设您的桌面应用程序将使用带有X.509证书的智能卡来获取访问权限并与Web应用程序进行交互。在这种情况下,您有许多与智能卡有关的安全性 - 密码,加密等。然后,您可能希望在服务器端使用客户端证书,在服务器端使用X.509身份验证提供程序。您甚至可以根据证书中提供的专有名称获得一些授权例程。您将在上述安全框架中找到信任存储访问,身份验证提供程序,基于角色的访问控制等 - 但您必须将这些部分放在一起。

您可能还想查看@ OWASP以获取网络安全准则:https://www.owasp.org/index.php/Main_Page

如果您负责提供安全解决方案并且您开始查看框架,我应该告诉您,安全专家/分析师和软件开发人员之间存在知识共享差距 - 即人员谁告诉你如何利用这些弱点通常不会告诉你如何配置Spring Security或使用JCE API。

一个不错的缓解策略是查看一些“安全包装”解决方案,这些解决方案基本上会创建带有硬化/安全入口点的小飞地。像这样的产品的示例是Layer-7,它通常用作Web服务安全网关。

快乐狩猎!

答案 1 :(得分:1)

有几个框架可用:

如果您与Spring一起构建Web应用程序,我建议您查看Spring Security套件,因为它完美地集成到其他Spring环境中。 JBoss Seam也有一些有趣的方法。

还有一些相关的stackoverflow链接:

当然: