Oh blimey!! Thanks Gary :)

Now the card displays firmware version as 1.1.2...

And one more thing.. I went back and tried configuring from the scratch, and
I found that the issue is with openssl (6731839 & 6725903 and a few others)
So I added the Solaris patches with corrections for those bugs and Apache
now works with mod_ssl!!
RSA and AES are now offloaded to the card..

I still have some problems with mod_nss though and I imagine I may have to
recompile nss again (mod_nss is derived from mod_ssl and hence I think it
probably makes use of Openssl as well, right?). I shall try this and see if
it works..


On Mon, Aug 24, 2009 at 8:51 PM, <Gary.Morton at sun.com> wrote:

> On 08/23/09 22:31, Sandeep Cavale wrote:
>
>>
>> Yes.. I did upgrade to firmware 1.1 update 2... And I also installed all
>> the patches that came with that update.
>>
>> This is what I get with "scadiag"
>>
>> # scadiag -V mca0
>> scadiag (Sun Crypto Accelerator 6000) 1.1
>> Copyright 2006 Sun Microsystems, Inc.
>> All rights reserved.
>> Use is subject to license terms.
>>
>> The board status as shown in scamgr show status is:
>> Board Status
>> ----------------------------------------------------------------
>> Device Info:
>> * Hardware Version: 1.4.50
>> * Bootrom Version : 1.0.4
>> * Firmware Version: 1.1.0
>>
>
>
> You did not install the fw patch (the version would be 1.1.2).  In the tar
> there's a directory
>
> /Sun_Crypto_Acc_6000-1_1-u2-Solaris/Solaris/firmware/Patches
> sr1-ubrm-31> ls
> 128364-02  128371-02
>
> You need to install 128371-02 via patchadd.  After install you must install
> the firmware on to the card - the patchadd just places the files on the
> files system and not the card.
>
> you can use scamgr to do the upgrade.
>
> > load firmware /usr/lib/crypto/firmware/sca/sca6000fw
>
> you must then reset the card.
>
> -gary
>
>
>
>
>>
>> I have also attached the /var/adm/messages
>>
>> Again, we seem to have no problems running Tomcat web server (configured
>> to use the  card via JSSE). We can see that aesbytes, aesjobs, casubmit,
>> cbsubmit, dhderive, dhkeygen, rsaprivate, sha1bytes, sha1hmacbytes,
>> sha1hmacjobs, sha1jobs are the counters that increase in kstat indicating
>> that all these operations are being done on the card...
>>
>> Only Apache(with mod_ssl or mod_nss) cannot access the hashing algorithms
>> :(
>> We would like the Apache web server to be able to make full use of the
>> card just like Tomcat..
>>
>> Kindly let us know if there is anything wrong with the configuration or if
>> something is not properly initialised..
>>
>>
>> On Fri, Aug 21, 2009 at 9:03 PM, <Gary.Morton at sun.com <mailto:
>> Gary.Morton at sun.com>> wrote:
>>
>>    On 08/21/09 07:15, Sandeep Cavale wrote:
>>
>>        Hi,
>>
>>        I upgraded the firmware to 1.1..
>>
>>
>>    You pulled down 1.1 update 2, correct?  Did you install all of the
>>    patches  included in that download as well?  Can you send me the
>>    output from scadiag -v mca0
>>
>>
>>
>>        The cryptoadm lists the HMAC algs:
>>        mca/0:
>>
>>  
>> CKM_SHA_1,CKM_SHA512,CKM_DES_CBC,CKM_DES3_CBC,CKM_AES_CBC,CKM_AES_CTR,CKM_DES_CBC_PAD,CKM_DES3_CBC_PAD,CKM_AES_CBC_PAD,CKM_SHA_1_HMAC,CKM_SHA512_HMAC,CKM_SHA_1_HMAC_GENERAL,CKM_SHA512_HMAC_GENERAL,CKM_RSA_X_509,CKM_RSA_PKCS,CKM_DSA,CKM_DH_PKCS_KEY_PAIR_GEN,CKM_DH_PKCS_DERIVE,CKM_ECDSA_KEY_PAIR_GEN,CKM_ECDH1_DERIVE,CKM_ECDSA,CKM_RSA_PKCS_KEY_PAIR_GEN,CKM_DSA_KEY_PAIR_GEN,CKM_DES_KEY_GEN,CKM_DES2_KEY_GEN,CKM_DES3_KEY_GEN,CKM_AES_KEY_GEN,CKM_DES_CBC_PAD,CKM_DES3_CBC_PAD,CKM_AES_CBC_PAD,CKM_DES_CBC,CKM_DES3_CBC,CKM_AES_CBC,CKM_AES_CTR,CKM_RSA_X_509,CKM_RSA_PKCS,0x80004653
>>
>>
>>        But now we seem to have stranger problems :(
>>
>>        I tried 2 things with Apache
>>
>>        i) When I used mod_nss, something funny seems to be happening
>>        with the card. Here's what the nss logs say:
>>
>>        [Fri Aug 21 17:17:19 2009] [info] Configuring server for SSL
>>        protocol
>>        [Fri Aug 21 17:17:19 2009] [info] In FIPS mode, enabling TLSv1
>>        [Fri Aug 21 17:17:19 2009] [debug] nss_engine_init.c(765): FIPS
>>        mode enabled, permitted SSL ciphers are:
>>        [+rsa_3des_sha,+fips_3des_sha,+rsa_aes_128_sha,+rsa_aes_256_sha]
>>        [Fri Aug 21 17:17:19 2009] [debug] nss_engine_init.c(770):
>>        Configuring permitted SSL ciphers
>>
>>  
>> [+rsa_3des_sha,-rsa_des_sha,-rsa_rc4_40_md5,-rsa_rc2_40_md5,-rsa_null_md5,-rsa_null_sha,+fips_3des_sha,-fips_des_sha,-fortezza,-fortezza_rc4_128_sha,-fortezza_null,-rsa_des_56_sha,-rsa_rc4_56_sha,+rsa_aes_128_sha,+rsa_aes_256_sha]
>>        [Fri Aug 21 17:17:19 2009] [info] Using nickname ksfips:certfips.
>>        [Fri Aug 21 17:17:19 2009] [error] Certificate not verified:
>>        'ksfips:certfips'
>>  ------------------------------------------------------------------------->
>>        Note certificate is found but not verified
>>        [Fri Aug 21 17:17:19 2009] [error] SSL Library Error: -8156
>>        Issuer certificate is invalid
>>        [Fri Aug 21 17:17:23 2009] [info] Configuring server for SSL
>>        protocol
>>        [Fri Aug 21 17:17:23 2009] [info] In FIPS mode, enabling TLSv1
>>        [Fri Aug 21 17:17:23 2009] [debug] nss_engine_init.c(765): FIPS
>>        mode enabled, permitted SSL ciphers are:
>>        [+rsa_3des_sha,+fips_3des_sha,+rsa_aes_128_sha,+rsa_aes_256_sha]
>>        [Fri Aug 21 17:17:23 2009] [debug] nss_engine_init.c(770):
>>        Configuring permitted SSL ciphers
>>
>>  
>> [+rsa_3des_sha,-rsa_des_sha,-rsa_rc4_40_md5,-rsa_rc2_40_md5,-rsa_null_md5,-rsa_null_sha,+fips_3des_sha,-fips_des_sha,-fortezza,-fortezza_rc4_128_sha,-fortezza_null,-rsa_des_56_sha,-rsa_rc4_56_sha,+rsa_aes_128_sha,+rsa_aes_256_sha]
>>        [Fri Aug 21 17:17:23 2009] [info] Using nickname ksfips:certfips.
>>        [Fri Aug 21 17:17:23 2009] [error] Certificate not found:
>>        'ksfips:certfips'
>> ------------------------------------------------------------------------->
>>        Cannot find it anymore!!
>>        [Fri Aug 21 17:17:23 2009] [info] Configuring server for SSL
>>        protocol
>>        [Fri Aug 21 17:17:23 2009] [info] In FIPS mode, enabling TLSv1
>>        [Fri Aug 21 17:17:23 2009] [debug] nss_engine_init.c(765): FIPS
>>        mode enabled, permitted SSL ciphers are:
>>        [+rsa_3des_sha,+fips_3des_sha,+rsa_aes_128_sha,+rsa_aes_256_sha]
>>        [Fri Aug 21 17:17:23 2009] [debug] nss_engine_init.c(770):
>>        Configuring permitted SSL ciphers
>>
>>  
>> [+rsa_3des_sha,-rsa_des_sha,-rsa_rc4_40_md5,-rsa_rc2_40_md5,-rsa_null_md5,-rsa_null_sha,+fips_3des_sha,-fips_des_sha,-fortezza,-fortezza_rc4_128_sha,-fortezza_null,-rsa_des_56_sha,-rsa_rc4_56_sha,+rsa_aes_128_sha,+rsa_aes_256_sha]
>>        [Fri Aug 21 17:17:23 2009] [info] Using nickname ksfips:certfips.
>>        [Fri Aug 21 17:17:23 2009] [error] Certificate not found:
>>        'ksfips:certfips'
>>        [Fri Aug 21 17:17:23 2009] [info] Configuring server for SSL
>>        protocol
>>
>>
>>        If I try listing using "cryptoadm list -v", the hardware
>>        providers which earlier listed mca/0 is now empty!!!
>>
>>
>>    That would indicate the card has unregistered/crashed.  Can you send
>>    o/p from /var/adm/messages.  There are some important bug fixes in
>>    the patches in that update 2 download so lets make sure they are
>>    installed.
>>
>>    -gary
>>
>>
>>        This seems to be similar to these bugs:
>>        https://bugzilla.redhat.com/show_bug.cgi?id=446851 and
>>        https://bugzilla.mozilla.org/show_bug.cgi?id=434043 though I use
>>        the latest NSS 3.12.3
>>
>>
>>        ii) Secondly I replaced mod_nss with mod_ssl
>>
>>        I still get the "same bad mac errror" but surprisingly if I
>>        disable the HMAC algs (which I really do not want to do) Apache
>>        starts working. This was pointed to me by this discussion:
>>
>> http://mail.opensolaris.org/pipermail/crypto-discuss/2007-December/000442.html
>>         <
>> http://mail.opensolaris.org/pipermail/crypto-discuss/2007-December/000442.html
>> >
>>
>>
>>        Only that with kstat I observe except rsaprivate, all other
>>        operations are not offloaded to the card at all (I'd like to
>>        have all operations especially RSA, AES offloaded to the card)
>>
>>        I have also verified that the case is the same with firmware 1.0
>>        for mod_ssl
>>
>>        The above problem seems to be a bug
>>        (http://bugs.opensolaris.org/view_bug.do?bug_id=6606361) and my
>>        Solaris machine has the patch 127128-11 which is having this
>>        correction. I am not sure why I still have to use the workaround
>>        mentioned inspite of having the fix
>>
>>        I know my posts are really getting lengthy , but any guidance
>>        will be truly appreciated :)
>>
>>
>>
>>
>>        On Fri, Aug 21, 2009 at 1:48 AM, <Gary.Morton at sun.com
>>        <mailto:Gary.Morton at sun.com> <mailto:Gary.Morton at sun.com
>>        <mailto:Gary.Morton at sun.com>>> wrote:
>>
>>
>>           You should download the 1.1 code - the 1.0 code does not
>>        support this.
>>
>>           http://www.sun.com/products/networking/downloads.html
>>
>>
>>           -gary
>>
>>
>>           On 08/20/09 11:22, Sandeep Cavale wrote:
>>
>>               Thanks Gary..
>>                The guide seems to be 1.1 but the firmware we have is 1.0..
>>                Anyway I shall give it a try, not sure if it would work
>>        with 1.0
>>                Is there any other way to get the HMAC algorithms
>> accessible
>>               from NSS/mod_nss/cryptoadm without firmware upgrade to 1.1 ?
>>               Because JSSE/JCE can access them with existing firmware..
>>
>>
>>                On Thu, Aug 20, 2009 at 8:29 PM, <Gary.Morton at sun.com
>>        <mailto:Gary.Morton at sun.com>
>>               <mailto:Gary.Morton at sun.com <mailto:Gary.Morton at sun.com>>
>>        <mailto:Gary.Morton at sun.com <mailto:Gary.Morton at sun.com>
>>
>>               <mailto:Gary.Morton at sun.com
>>        <mailto:Gary.Morton at sun.com>>>> wrote:
>>
>>                  If you are going to use the sca 6000 for hmac you will
>>        need to
>>                  enable some options in the mca.conf driver config file:
>>
>>                  take a look at the user's guide for details - you will
>>        need
>>               to add
>>                  entries for
>>
>>                  enable-hmac=1;
>>
>>                  and then assuming you are running the card in FIPS
>>        mode (only
>>               sha1
>>                  is available in FIPS mode)
>>
>>                  enable-multipart-sha1=1;
>>
>>                  You need to reboot for the config changes to take effect.
>>
>>                  -gary
>>
>>
>>                  On 08/20/09 07:38, Sandeep Cavale wrote:
>>
>>                      Hi,
>>
>>                      We have a problem with running Apache mod_nss with
>>        SCA6000 in
>>                      FIPS mode..
>>                      When we disable the "Sun Metaslot", so that nss
>>        can use
>>               only the
>>                      Hardware token completely, we get the following
>>        error when we
>>                      try to connect to our server from openssl:
>>
>>                      # openssl s_client -connect localhost:443 -tls1
>> -state
>>                      CONNECTED(00000005)
>>                      SSL_connect:before/connect initialization
>>                      SSL_connect:SSLv3 write client hello A
>>                      SSL_connect:SSLv3 read server hello A
>>                      depth=0 /C=US/ST=California/L=Santa
>>               Clara/O=Sun/OU=Org/CN=nobody
>>                      verify error:num=18:self signed certificate
>>                      verify return:1
>>                      depth=0 /C=US/ST=California/L=Santa
>>               Clara/O=Sun/OU=Org/CN=nobody
>>                      verify return:1
>>                      SSL_connect:SSLv3 read server certificate A
>>                      SSL_connect:SSLv3 read server done A
>>                      SSL_connect:SSLv3 write client key exchange A
>>                      SSL_connect:SSLv3 write change cipher spec A
>>                      SSL_connect:SSLv3 write finished A
>>                      SSL_connect:SSLv3 flush data
>>                      *SSL3 alert read:fatal:bad record mac
>>
>>  ---------------------------------------------------------------*>
>>                      The fatal error!!
>>                      SSL_connect:failed in SSLv3 read finished A
>>                      1723:error:140943FC:SSL
>> routines:SSL3_READ_BYTES:sslv3
>>               alert bad
>>                      record
>>        mac:../../../../common/openssl/ssl/s3_pkt.c:1052:SSL
>>                      alert number 20
>>                      1723:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl
>>               handshake
>>                      failure:../../../../common/openssl/ssl/s3_pkt.c:529:
>>
>>
>>                      According to a thread on Opensolaris forum
>>                                  (
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120
>>        <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120>
>>                     <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120
>>        <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120>>
>>                                  <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120
>>        <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120>
>>                     <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120
>>        <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120>>>
>>                                  <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120
>>        <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120>
>>                     <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120
>>        <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120>>
>>                                  <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120
>>        <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120>
>>                     <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120
>>        <
>> http://jp.opensolaris.org/jive/thread.jspa?threadID=64742&tstart=120>>>>)
>>
>>
>>                      "By default, the SCA 6000 does not export any hash
>>               algorithm to
>>                      user space apps because the hw can not support
>>        multi-part
>>                      operations"
>>
>>                      Output of cryptoadm confirms this:
>>                      bash-3.00# cryptoadm list -m provider=mca/0
>>                      *mca/0*:
>> *---------------------------------------------------------------*>
>>                      our Sun Crypto Accelerator
>>
>>  
>> CKM_SHA_1,CKM_DES_CBC,CKM_DES3_CBC,CKM_AES_CBC,CKM_AES_CTR,CKM_DES_CBC_PAD,CKM_DES3_CBC_PAD,CKM_AES_CBC_PAD,CKM_RSA_X_509,CKM_RSA_PKCS,CKM_DSA,CKM_DH_PKCS_KEY_PAIR_GEN,CKM_DH_PKCS_DERIVE,CKM_RSA_PKCS_KEY_PAIR_GEN,CKM_DSA_KEY_PAIR_GEN,CKM_DES_KEY_GEN,CKM_DES2_KEY_GEN,CKM_DES3_KEY_GEN,CKM_AES_KEY_GEN,CKM_DES_CBC_PAD,CKM_DES3_CBC_PAD,CKM_AES_CBC_PAD,CKM_DES_CBC,CKM_DES3_CBC,CKM_AES_CBC,CKM_AES_CTR,CKM_RSA_X_509,CKM_RSA_PKCS,0x80004653
>>
>>                      (CKM_SHA_1 is the only hashing algorithm we see)
>>                      This probably means that since I am forcing the NSS
>> to
>>               use only
>>                      hardware token (by disabling Sun Metaslot), even
>>        the HMAC
>>                      hashing algorithm is being looked for in the SCA6000
>>               card. But
>>                      since it does not expose any hashing algorithm it
>>        fails to
>>                      decode the hash client sends after change cipher spec
>>               msg, right?
>>
>>                      However if using JCE I list out all the supported
>>               algorithms of
>>                      SCA6000, I see even these hashing algs amongst
>>        them:                      Mac.HmacSHA384
>>                             Mac.HmacSHA512
>>                             Mac.HmacMD5
>>                             Mac.SslMacMD5
>>                             Mac.HmacSHA1
>>                             Mac.SslMacSHA1
>>                             Mac.HmacSHA256
>>
>>                      So, I tried configuring Tomcat to use the SCA6000
>>        as its JSSE
>>                      provider, and as I had guessed this worked without a
>>               glitch (by
>>                      this I mean connecting with openssl) !!! I believe
>>        that's
>>                      because for JSSE the above hashing algs are
>>        visible. To
>>               confirm
>>                      this, I disabled these hashing algorithms in the
>>        sca6000.cfg
>>                      file used by the JSSE provider and trying with
>>        openssl I
>>               get an
>>                      error similar to Apache web server:
>>
>>                      # openssl s_client -connect localhost:443 -tls1
>> -state
>>                      CONNECTED(00000005)
>>                      SSL_connect:before/connect initialization
>>                      SSL_connect:SSLv3 write client hello A
>>                      SSL_connect:SSLv3 read server hello A
>>                      depth=0 /C=US/ST=California/L=Santa
>>               Clara/O=Sun/OU=Org/CN=nobody
>>                      verify error:num=18:self signed certificate
>>                      verify return:1
>>                      depth=0 /C=US/ST=California/L=Santa
>>               Clara/O=Sun/OU=Org/CN=nobody
>>                      verify return:1
>>                      SSL_connect:SSLv3 read server certificate A
>>                      SSL_connect:SSLv3 read server key exchange A
>>                      SSL_connect:SSLv3 read server done A
>>                      SSL_connect:SSLv3 write client key exchange A
>>                      SSL_connect:SSLv3 write change cipher spec A
>>                      SSL_connect:SSLv3 write finished A
>>                      SSL_connect:SSLv3 flush data
>>                      *SSL3 alert read:fatal:unexpected_message*
>>
>> ---------------------------------------------------------------------------------------->
>>                      Again after client's change cipher spec
>>                      SSL_connect:failed in SSLv3 read finished A
>>                      2089:error:140943F2:SSL
>>        routines:SSL3_READ_BYTES:sslv3 alert
>>                      unexpected
>>
>>  message:../../../../common/openssl/ssl/s3_pkt.c:1052:SSL
>>               alert
>>                      number 10
>>                      2089:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl
>>               handshake
>>                      failure:../../../../common/openssl/ssl/s3_pkt.c:529:
>>
>>
>>                      So the question is, how is JSSE able to access the
>>        hashing
>>                      algorithms while NSS cannot?? Our SCA card and web
>>               servers have
>>                      to be running in FIPS mode too...
>>                      Any help is greatly appreciated..
>>
>>
>>
>>  ------------------------------------------------------------------------
>>
>>                      _______________________________________________
>>                      crypto-discuss mailing list
>>                      crypto-discuss at opensolaris.org
>>        <mailto:crypto-discuss at opensolaris.org>
>>               <mailto:crypto-discuss at opensolaris.org
>>        <mailto:crypto-discuss at opensolaris.org>>
>>                      <mailto:crypto-discuss at opensolaris.org
>>        <mailto:crypto-discuss at opensolaris.org>
>>               <mailto:crypto-discuss at opensolaris.org
>>        <mailto:crypto-discuss at opensolaris.org>>>
>>
>>
>> http://mail.opensolaris.org/mailman/listinfo/crypto-discuss
>>
>>
>>
>>
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.opensolaris.org/pipermail/crypto-discuss/attachments/20090825/f5a95f9e/attachment.html>

Reply via email to