Forum Discussion

bigben932_22424's avatar
bigben932_22424
Icon for Altostratus rankAltostratus
Dec 03, 2015

Rewrite profile and JavaPatcher settings question about signed Java applets

I am trying to use a Signed Java applet, that is signed with a code signing certificate. In the Portal Access Link I use this Java Applet. My goal is to not receive a Java error saying this applet is signed by an unknown resource.

 

In the Rewrite profile I am using for my Virtual Server. I can only get this to work if I set the Trusted Certificate Authorities to /Common/ca-bundle.crt

 

Then using the Signer and Signing Key as the Java Code signing certificate already used to sign the applet.

 

However this is a problem, because I cannot give my applet and code signing certificate and key to anyone else. Because of obvious problems..

 

Since the Java applet is already signed, why can I not set the singer and signing key in the rewrite profile to None? There should not be a need to resign and already signed applet. Can anyone shed light on why this would not be working, or if this is even possible?

 

If what I'm trying to accomplish is not possible, then why should I even sign the applet in the first place, if anyone that wants to use this applet will need to buy their own code signing applet to use in their own environment.

 

I have not been able to find any good clear information on this in the Manual and any information would be useful.

 

1 Reply

  • Answer and reply from another forum

     

    Answer:

     

    If the F5 is to rewrite & modify the java applet, then it must also strip off the original signature, as the rewritten applet will no longer match the signature from when you signed it. This is the point of signing code, to make sure no one can modify it, without being noticed. By using a java rewrite profile, you're telling the F5 to modify the applet. It must either re-sign the applet or strip the original signature and leave it unsigned.

     

    You should still sign your code, note that the "Trusted Certificate Authorities" is where you would place your current code cert/ca, so the F5 only modifies applets signed by a trusted CA. The Signer & Signer Key are where you'd put (either the same, or ideally a new) signing cert & key so the F5 can re-sign the applet after modification. Some details here: https://support.f5.com/kb/en-us/products/big-ip_apm/manuals/product/apm-portal-access-11-5-0/5.html

     

    The F5 is a generally considered a trusted security device, it likely contains all of your TLS/SSL certificates & keys used for HTTPS. I'm not sure why you'd trust it for that but not trust it for code signing keys.

     

    Reply from OP:

     

    It appears to me though, that the virtual server requires you to add a rewrite profile, as you get an error saying that if you have a portal access link with Java Patching enabled, the virtual server requires a signed applet.

     

    Should the applet already be technically "secure" if it has been signed already. Would it not be the admins job be to ensure the applet they are uploading is already properly signed?

     

    If the Applet was developed in-house, this process makes sense.

     

    However if you buy an applet, and to use it in the F5, you need to provide your own code signing certificate that would raise 2 concerns. The first being the applet could be malicious anyway. Say for example it was intercepted in transit from the Vendor to the end customer and modified by say the reseller. The reseller could simple strip the code signing certificate and modify the applet.

     

    The 2nd concern is that by requiring the customer to buy their own code signing certificate would make our solution more of a burden, requiring certificate management as well as the cost of maintaining the certificate.

     

    There is no point for the vendor to provide a code signing certificate to the customer. The vendor would either have to create unique code signing certificates per customer or give the customer their own code signing certificate a private key. The latter is the obvious worst choice. I guess technically a reseller could provide the code signing certificate for their customers, but you still have the issue of the reseller being able to modify the code.

     

    This seems to be an oversight. Or at the very least I am missing something big here.