Java安全框架

Joh*_*nny 0 java jaas java-ee

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

小智 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服务安全网关.

快乐狩猎!