aho*_*der 4 java security reflection
我正在教自己关于java的安全api的密码课程.这个类中会有一些敏感的东西,比如加密类型等.所有这一切都可以被反思地检索出来,有人有动力.
我之前使用反射来绕过私有变量和方法(并不以此为荣),所以我知道可以做到.有没有办法完全阻止反思在整个类上工作 - 甚至是它的一部分,或者是否违反了java - 更具体地说是安全api - 设计?
Bor*_*lid 10
这被称为安全隐患 - 如果知道加密算法的细节会使其不安全,那么它已经不安全了.
不,你不能阻止人们反思你的课程.在最糟糕的情况下,他们可以加载一个JNI库,它将直接进入JVM堆并从那里读取内存内容(或写入它们)!如果您的代码在其他人的控制下运行,那么它所做的一切都不是真正的私有.
如果您自己编写JNI库,则可以对其进行反编译和反向工程(此外,在许多司法管辖区,这在过去的案例法中是明确合法的).
即使所有人都知道它的工作原理,或者(更好的是!)使用已经编写并且是Java语言一部分的实现,只需使算法安全.
如果您担心的是密钥材料的泄露,请使用Java方法进行密钥库访问.如果您真的是偏执狂,请强制执行后备存储是PKCS11硬件令牌.
| 归档时间: |
|
| 查看次数: |
784 次 |
| 最近记录: |