- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个网络服务器,将 OSGI 包作为自签名 jar 文件提供服务。这些是使用 OSGI API 下载并安装在我的设备上的。我已经在 knopflerfish OSGI 中启用了安全性,并使用我的公钥将其指向 keystore 。我想验证我下载的代码不会在中间人攻击或其他攻击中被篡改。
为了测试这一点,我尝试稍微更改并重新编译我之前签名和验证的包之一,使用 7zip 解压旧的签名 jar 和新编译的 jar,并复制 META-INF 文件夹的内容,覆盖尚未签名的 MANIFEST.MF 并提供 .SF 和 .RSA 文件。当我尝试下载并安装这个 jar 文件时,我确实遇到了错误:
[stderr] org.osgi.framework.BundleException: Failed to install bundle: java.io.IOException: MANIFEST.MF must be first in archive when using signatures.
[stderr] at org.knopflerfish.framework.Bundles.install0(Bundles.java:178)
[stderr] at org.knopflerfish.framework.SecurePermissionOps$14.run(SecurePermissionOps.java:727)
[stderr] at org.knopflerfish.framework.SecurePermissionOps$14.run(SecurePermissionOps.java:723)
[stderr] at java.security.AccessController.doPrivileged(Native Method)
[stderr] at org.knopflerfish.framework.SecurePermissionOps.callInstall0(SecurePermissionOps.java:722)
[stderr] at org.knopflerfish.framework.Bundles.install(Bundles.java:118)
[stderr] at org.knopflerfish.framework.BundleContextImpl.installBundle(BundleContextImpl.java:109)
[stderr] at no.aventi.sam.Activator.handleEvent(Activator.java:190)
[stderr] at org.knopflerfish.bundle.event.TrackedEventHandler.handleEventSubjectToFilter(TrackedEventHandler.java:71)
[stderr] at org.knopflerfish.bundle.event.InternalAdminEvent.deliverToHandles(InternalAdminEvent.java:153)
[stderr] at org.knopflerfish.bundle.event.InternalAdminEvent.deliver(InternalAdminEvent.java:114)
[stderr] at org.knopflerfish.bundle.event.QueueHandler.run(QueueHandler.java:120)
[stderr] Caused by: java.io.IOException: MANIFEST.MF must be first in archive when using signatures.
[stderr] at org.knopflerfish.framework.bundlestorage.file.Archive.downloadArchive(Archive.java:271)
[stderr] at org.knopflerfish.framework.bundlestorage.file.BundleArchiveImpl.<init>(BundleArchiveImpl.java:133)
[stderr] at org.knopflerfish.framework.bundlestorage.file.BundleStorageImpl.insertBundleJar(BundleStorageImpl.java:219)
[stderr] at org.knopflerfish.framework.Bundles.install0(Bundles.java:161)
[stderr] ... 11 more
我还尝试了其他方法,将新的 .class 文件复制到正确签名的 jar 中,但得到了相同的错误。
我不确定安全方案的实际验证会产生什么输出。我得到的错误是否意味着 java 检测到错误的签名并因此拒绝它?或者这只是意味着当我手动写入 jar 文件时 7zip 没有保持结构完整,比我更好的黑客仍然可以轻松篡改我的 jar 文件?
jarsigner -verify
被篡改的 jar 文件给了我 java.lang.SecurityException:SHA-256 摘要错误
这更有意义,如果我“正确”地篡改 jar ,我可以期待这种情况吗?
最佳答案
该异常告诉您 jar 文件无效。所以它甚至没有尝试验证签名。
7zip 不适合创建/编辑 jar 文件。您应该使用 java jar 工具。请参阅https://www.webucator.com/how-to/how-create-jar-file-java.cfm
关于java - 签名 jar 篡改验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55726989/
大家好,我是沙漠尽头的狼。 本文首发于 Dotnet9 ,介绍使用 Lib.Harmony 库拦截第三方 .NET 库方法,达到不修改其源码并能实现修改方法逻辑、预期行为的效果,并
我有Helm Applciations使用 Terraform 的 helm_release 资源与 Terraform 一起部署。 有时由于以下一个或多个原因,我的 Kubernetes Pod 将
我有Helm Applciations使用 Terraform 的 helm_release 资源与 Terraform 一起部署。 有时由于以下一个或多个原因,我的 Kubernetes Pod 将
我们开发了一个 Javascript 文件供客户使用。 Javascript 片段对其运行的网站进行屏幕截图,然后通过 jQuery.post() 将其发送回我们的服务器 我们行业的性质意味着我们必须
我在本地主机上运行我的测试站点。 当我用 URL 加载它时: localhost/projects/forums/index.php 它看起来像这样(符合预期) 但是当 我给 URL: localho
我正在 中共同开发一个简单的网络应用程序 rails 3.0.9 我已经意识到可能通过恶意请求篡改 session_id。请注意,这是我的第一个 RoR 应用程序,所以我的概念可能完全错误。 当前的应
我返回了以下 JSON 数据,但由于某种原因,Javascript 或 jQuery ajax 似乎重新组织了项目列表。服务器返回按item.title字母顺序排序的数据(已验证)... 下面的 JS
背景 我是一名经验丰富的 Web 开发人员(主要使用 Python 和 CherryPy),之前从头开始实现过安全 session 管理,现在正在学习 Rails。我正在调查 session 暴露的
我正在使用 MVC3、.NET4.5、C#、Razor。 我在 Codeproject 之外重用了 Albin 的一些非常有用的代码,通过添加哈希来防止 URL 篡改。主要运行良好。 然而…… 我现在
我是一名优秀的程序员,十分优秀!