我对Java平台还是个新手。我需要为桌面应用程序和web应用程序使用Java的一些安全框架。现在我需要知道,对于桌面应用程序(假设是Java SE或Java EE)和web应用程序(假设是JSP),我应该学习哪些框架?
发布于 2011-06-28 13:38:18
我假设您正在创建一个总体安全体系结构,管理远程连接和整个系统的其他方面。桌面应用程序安全和web安全将有所不同,但仍然以自己的方式解决了许多相同的问题。
其中将包括认证、授权和审计(AAA)、内部和静态数据安全、不可否认性、传输层安全、平台安全(例如,管理平台权限)。
两个最常见的Java安全框架是Spring Security和Apache Shiro。这两个都解决了上面的许多主题,但它们都是框架-这意味着您需要定义安全体系结构和策略,然后将框架配置/扩展到特定的域中。
Bouncy Castle提供了一系列现成的加密,包括兼容的Java加密扩展(JCE) -它也是符合FIPS 140-2的,但没有经过认证。对于那些销售认证解决方案的人来说,这是一个完全不同的游戏/行业。
下面是一个示例-假设您的桌面应用程序将使用带有X.509证书的智能卡来访问web应用程序并与之交互。在这种情况下,您需要对智能卡执行一系列安全操作-PIN、加密等。然后,您可能希望在服务器端使用客户端证书,并在服务器端使用X.509身份验证提供程序。您甚至可以根据证书中提供的唯一判别名来执行一些授权例程。您将在上述安全框架中找到信任存储访问、身份验证提供者、基于角色的访问控制等-但您必须将这些组件组合在一起。
你可能还想看看@ OWASP的网络安全指南:https://www.owasp.org/index.php/Main_Page
如果您负责提供安全解决方案,并且您从查看框架开始,那么我应该提醒您,安全专家/分析师和软件开发人员之间存在知识共享鸿沟--即告诉您如何利用弱点的人通常与告诉您如何配置Spring security或使用JCE API的人不同。
一个不错的缓解策略是查看一些“安全包装器”解决方案,这些解决方案本质上创建了小型飞地,具有进入飞地的强化/安全入口点。这样的产品的一个例子是Layer-7,它通常用作web服务安全网关。
祝您打猎愉快!
发布于 2011-06-28 13:29:36
有几个可用的框架:
Spring Security
如果您使用Spring构建with应用程序,我建议您查看Spring Security套件,因为它可以完美地集成到其他Spring环境中。此外,JBoss Seam也有一些有趣的方法。
还有一些相关的堆栈溢出链接:
当然还有:
https://stackoverflow.com/questions/6501929
复制相似问题