簡體   English   中英

在IBM AIX上定制JCE提供程序

[英]Bespoke JCE Provider on IBM AIX

我正在為客戶端編寫一個新的JCE Provider,因為我需要公開一些自定義Cipher。 在擴展CipherSpiProviderSpi ,我已經准備好構建了。 所以我問客戶端他們定位的Java版本。 他們回應:

# java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pap3260sr9fp2-20110627_03(SR9 FP2)) IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 AIX ppc-32 jvmap3260sr9-20110624_85526 (JIT enabled, AOT enabled) J9VM - 20110624_085526 JIT  - r9_20101028_17488ifx17
GC   - 20101027_AA)
JCL  - 20110530_01
#

該死的。 所以他們在AIX機器上使用IBM Java 1.6.0。

我編寫了大部分定制的JCE提供程序來支持所需的功能(使用如何實現提供程序指南),從com.sun.*包中擴展ProviderSpiCipherSpi抽象類。 我是否需要獲取IBM Java JDK並從com.ibm.*擴展抽象類com.ibm.* 或者我可以使用我的Sun-rooted Java代碼簽名證書來簽署我的JCE提供程序JAR,並將其直接放到AIX系統上的正確位置? (其中一個是愚蠢的,但我不知道哪個)。

我對JCE / JVM風格知之甚少,不知道我現在是否需要一個基於IBM的Java代碼簽名證書(如果有的話),或者Sun-rooted簽名是否足夠?

Oracle(Sun)和IBM JRE都使用彼此的證書來驗證提供程序簽名。 因此,如果您使用Sun的證書簽署提供程序,它將在IBM JRE上運行 所以是的 - 存在IBM根源的Java代碼簽名證書(CA存在,即使您在IBM內部也幾乎不可能獲得證書),但是Sun-rooted簽名就足夠了 您的加密提供程序將在IBM JRE上運行。 您不需要使用任何com.ibm包。 此外,可以繞過提供者簽名要求: Java HotSpot加密提供程序簽名驗證問題

詳細解釋

1.證書

提供者證書驗證由內部Java 1.6 JCE類完成。

  • 在Oracle javax.crypto.SunJCE_b#a(X509Certificate c)
  • 在IBM javax.crypto.b#a(X509Certificate c)

用於驗證簽名的CA證書存儲在類文件中。 在Oracle JVM中作為普通字符串。 IBM正在做得更聰明 - 證書字符串被遮蓋了。 要隱瞞它們,你應該使用這段代碼:

final char[] key = {0x5f, 38, 3, 111, 110};

char[] decode(final char[] input) {
    final char[] output = new char[input.length];
    for (int i = 0; i < output.length; i++) {
        output[i] = (char)(input[i] ^ key[i % 5]);
    }
    return output;
}

因此,在IBM Java 1.6中,您可以找到CA代碼簽名證書:

  • CN = JCE Code Signing CA, OU = Java Software Code Signing, O = Sun Microsystems Inc, L = Palo Alto, S = CA, C = US
  • CN = JCE Code Signing CA, OU = IBM Code Signing, O = IBM Corporation, C = US
  • CN = JCE Code Signing - Framework, OU = IBM Code Signing, O = IBM Corporation, C = US

2.基礎提供者類

您應該擴展java.security.Provider類。 例如,與IBM JRE捆綁在一起的com.ibm.crypto.provider.IBMJCE這樣做的。 (AFAIK沒有ProviderSpi類。)你也應該使用javax.crypto.CipherSpi類。 例如,IBM提供商的com.ibm.crypto.provider.DESCipher就是這樣做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM