问题标签 [java-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 混淆以外的 Jar 保护
我有一个棘手的情况,我想保护客户端机器中可用的 jar 文件。
我有一个 java 项目,我正在使用 build.xml 生成 jar 文件,该文件可在客户端机器安装后使用。
现在我需要保护 jar 文件中可用的代码,如果所有客户端/s 将尝试反编译然后查看代码库。
当客户端尝试使用 UI 触发我的项目时,我有一个依赖项,我将在服务器中生成 java 文件,然后在客户端机器上下载这个 java 文件,然后编译 java 文件以获得一个 .class。下载到客户端的 java 文件将引用 jar 文件及其在 jar 中的功能。
我担心如果我使用 proguard 或其他一些工具进行代码混淆,jar 中的所有函数名称都会更改,并且下载的 java 文件将无法在客户端机器中编译,因为该 java 文件具有的函数调用不匹配而 jar 具有.
我无法更改任何生成 java 文件并在运行时下载到客户端计算机的服务器端逻辑。
我想要任何我想在不破坏编译的情况下保护客户端机器上的 jar 文件的逻辑。主要是我不希望客户使用他机器中可用的 jar 来查看我的代码。
任何帮助都非常感谢,在此先感谢
java - java中AES的性能:如何(如果?)改进
我遇到了 java 安全问题。我有一堆字节,我想把它们分成 N 个字节的块,加密它们,然后在单独的(独立的)消息中发送它们。
这是我的基本加密内容:
我创建这样的消息(在初始握手中生成 AES-128 会话密钥):
然后我在消息中写道:
在另一边,我这样做:
这一切都很好而且蓬松,除了当我开始锤它时,它往往真的,真的,很慢。我的热点是:
我想知道我在这里是不是很天真?我错过了一些明显的东西吗?我想知道我是否不应该每次都得到一个新的 Cipher 实例......但是我有很多并发性,我猜想尝试共享实例线程安全可能也不理想......
我看到我的其余代码有很大的改进空间,所以这会使加密部分看起来更糟。
谁有想法?还是 20 mb/s 的总吞吐量和它得到的一样好(在现代、强大的笔记本电脑上)?
java - 我可以使用 java 策略文件通过 sudo 安全地运行不受信任的应用程序吗
我正在运行一个有点受信任的 J2SE 应用程序(Minecraft),但可能包含完全不受信任的(甚至可能是一些敌对的)插件。
我想创建一个可以访问 Raspberry PI 上的 GPIO 引脚的插件。
我见过的每个解决方案都需要为这样的应用程序提供 sudo-superpowers,因为 gpio 是通过直接内存访问来访问的。
看起来正确的解决方案是提供这样的命令行选项:
这似乎默认您没有权限(甚至访问文件和高端口),然后将您的应用程序需要的权限添加回策略文件中。
实际上,您似乎在赋予 Java“sudo”权力,然后信任 java 的安全模型只为各种类赋予适当的权力。我猜这使得应用程序可以安全地使用 sudo 运行——这是正确的吗?
有趣的是,自从 1.0 以来,我几乎每天都在使用 Java,而以前从未需要过它……你每天都会学到新东西。
java - Java SignedObject 未正确序列化
似乎java.security.SignedObject
没有正确序列化。
当我对单个进程执行以下操作时,它可以正常工作:
但是,当我有两个进程并尝试通过网络传递签名对象时,我遇到了问题。
发件人
接收者
请注意myObject
implements Serializable
,即使我更改myObject
为 a 之类的原语byte[]
,我仍然遇到同样的问题。有趣的是,如果我通过套接字将签名对象发送到在同一进程中运行的不同线程,则verify
成功。
我认为这可能与Signature
实例有关,但verify
即使我使用不同的Signature
.
我怀疑密钥是否存在任何问题,因为在一个进程和发送方/接收方的情况下,我以完全相同的方式从文件中加载它们。
java - 如何测试 java 是否支持 tls v1.2 支持。样品测试
我正在使用一个基于 linux 的设备,其中存在 openssl 工具。所以基本上我通过执行以下命令验证了我的设备支持 tls v1.2:
并得到以下输出:
并且已验证设备支持 tls。
我需要对 java 进行相同的活动,其中示例应用程序将决定当前版本的 java 是否支持 tls1.2。
请随时更新并提出任何问题!谢谢。
java - 如何在 Java 中更改 KeyStore 文件的密码?
我正在使用 javaKeyStore
来存储用户安全信息并使用密码锁定(加密)密钥库,并在需要时使用密码检索信息,这工作正常。
但我不知道如何更改同一个 keyStore 文件的密码
我正在使用使用KeyStore.load(InputStream,Password)
用户密码访问密钥库并将keyStore.store(Keystore,password)
值写入密钥库的方法。
有什么办法可以更改keyStore文件的密码。我已经检查了这里给出的 api 文档:http: //docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html
java - 使用 OpenSSL 验证使用 Java 签名的文件
我使用 Java 创建的签名无法使用 OpenSSL 进行验证。我会感谢任何提示。
这是我所做的:
1)用Java密钥工具生成密钥对:
2)使用Java签署文件:
3) 使用 Java 密钥工具导出证书:
4)使用OpenSSL验证签名:
不幸的是,这会打印Failure
.
java - 没有这样的算法 - bcrypt
我正在使用带有 bcrypt 的 Spring Security 来确保密码安全。
它实际上在 Grails 应用程序中。当应用程序启动时,我得到:
“没有这样的算法 [bcrypt]”
我将错误追溯到 Spring security 中的代码:
如何将 bcrypt 安装到 Java Security 中?
我在 CentOS 7 上运行 Oracle JDK 1.8.0_73-b02。
java - 从 Java 调用 rest api 的 SSL 异常
我在使用 Jersey API 客户端库调用 rest api 时看到 SSL 异常。直到几天前,这一直运行良好。根据例外情况,我了解它与证书到期有关。
但是我不确定客户端机器是否需要升级证书(如果有)或 API 实现服务器需要升级。
下面提到了我用来调用 API 的代码。我使用如何从 PEM 编码证书中确定 SSL 证书到期日期验证了我机器上的 ssl 证书?而且我找不到任何过期的证书。