使用Java策略文件使应用程序免受JCE限制

使用Java策略文件使应用程序免受JCE限制,java,security,cryptography,jce,Java,Security,Cryptography,Jce,我有一个Java应用程序,它使用AES-256执行一些加密;正如您所知,这需要JCE无限强度权限策略文件。但是,我不希望必须在应用程序分发到的所有计算机上安装这些。经过一番挖掘后,我发现: 这似乎是在JAR中包含策略文件的一种方式。根据这篇文章,实现这一目标的步骤是: 步骤1:编写和编译应用程序代码 步骤2:创建权限策略文件以授予适当的权限 加密权限 步骤3:准备测试 步骤3a:向政府授权机构申请政府批准 限制 步骤3b:获取代码签名证书 步骤3c:将应用程序和权限策略文件捆绑到JAR中 文件

我有一个Java应用程序,它使用AES-256执行一些加密;正如您所知,这需要JCE无限强度权限策略文件。但是,我不希望必须在应用程序分发到的所有计算机上安装这些。经过一番挖掘后,我发现:

这似乎是在JAR中包含策略文件的一种方式。根据这篇文章,实现这一目标的步骤是:

步骤1:编写和编译应用程序代码

步骤2:创建权限策略文件以授予适当的权限 加密权限

步骤3:准备测试

步骤3a:向政府授权机构申请政府批准 限制

步骤3b:获取代码签名证书

步骤3c:将应用程序和权限策略文件捆绑到JAR中 文件

步骤3d:对JAR文件进行签名

步骤3e:像在受限环境中的用户一样设置您的环境 国家

步骤3f:(仅适用于使用豁免机制的应用程序)安装提供商 实施许可证中规定的豁免机制 策略文件

步骤4:测试您的应用程序

步骤5:如果需要,申请美国政府出口批准

步骤6:部署应用程序

我想知道的是步骤3b-3d。我应该如何签署这个JAR文件?谁应该签字?我可以使用自签名证书进行客户端没有的签名吗?是否对此签名进行了任何身份验证


有人对此有经验吗?

步骤3a和5肯定比安装两个罐子要困难得多吗?@EJP我假设如果你生活在一个加密强度有限的国家,那么步骤3a和5是唯一的选择,谢天谢地,我不知道。过去加密提供商只能使用Sun或IBM的代码签名证书。这些证书的根是在Java库中的某个地方硬编码的,并且从不查阅信任库。此外,只有同意遵守美国出口管制规则,您才能从Sun获得这些证书。不过,如果从那时起情况发生了变化,我也不会感到惊讶。这是一些人选择Bouncycastle的一个主要原因。@GregS nope,这仍然是一样的,但这是针对加密提供商的,不是专门针对应用程序的(是的,我刚刚为我的公司更新了一个应用程序)——重新应用所花的时间也少了很多(前一条消息是在一个月左右的无线电完全沉默后才收到的)