Kevin Coffman wrote: > On Mon, Feb 11, 2008 at 8:46 AM, Mark Phalan <mbp at opensolaris.org> wrote: >> On Fri, 2008-02-08 at 17:33 -0500, Kevin Coffman wrote: >> > I finally have basic AES128 working in our kernel code and >> > interoperating with OpenSolaris (snv_78). I'm now trying to test that >> > I can handle the rrc (rotate count) correctly. (Implementing this is >> > complicated by our buffering primitives in the kernel.) I'd also like >> > to test using aes256 against OpenSolaris. >> > >> > So now for my questions: >> > >> > 1) Is there a way to turn on testing of the rrc stuff (have the >> > OpenSolaris machine send me rotated data) in your kmech code without >> > re-compiling? >> >> I'm not aware of any way. Others may have more here... >> >> >> > >> > 2) Is it possible to enable aes256 in OpenSolaris? >> >> Yes. Currently the strong crypto is not delivered by default with >> OpenSolaris but there is a plan to add it Real Soon Now (really). >> >> >> > If so, where >> > should I look? (Will simply getting and installing the >> > on-closed-bins.i386.tar.bz2 from here >> > (http://dlc.sun.com/osol/on/downloads/current/) be enough? >> >> Yes that should be enough. To see if you've got aes256 try running >> "cryptoadm list". >> >> If you have problems here, its probably best to mail >> security-discuss at opensolaris.org > > Thanks. Keeping this on kerberos-discuss because I think it is > kerberos-specific. > > Dumb question number 37: > AFAICT, I have aes-256 support in the kernel. "cryptoadm list" lists > it, and I have the /etc/crypto/kcf.conf entry that Will mentioned: > > # uname -a > SunOS roll 5.11 kwc-snv_78 i86pc i386 i86pc > # cryptoadm list > > User-level providers: > Provider: /usr/lib/security/$ISA/pkcs11_kernel.so > Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so > > Kernel software providers: > des > aes > aes256 > arcfour > blowfish > sha1 > sha2 > md4 > md5 > rsa > swrand > > Kernel hardware providers: > # grep aes /etc/crypto/kcf.conf > aes:supportedlist=CKM_AES_ECB,CKM_AES_CBC,CKM_AES_CTR > aes256:supportedlist=CKM_AES_ECB,CKM_AES_CBC,CKM_AES_CTR > > Now it looks as though the user-land stuff is missing (full) aes256 support: > > # kinit kwc > Password for kwc at CITI.UMICH.EDU: > # klist -e > Ticket cache: FILE:/tmp/krb5cc_0 > Default principal: kwc at CITI.UMICH.EDU > > Valid starting Expires Service principal > 03/26/08 14:38:35 03/30/08 18:38:35 krbtgt/CITI.UMICH.EDU at CITI.UMICH.EDU > renew until 04/05/08 14:38:35, Etype(skey, tkt): AES-128 CTS > mode with 96-bit SHA-1 HMAC, unsupported encryption type 18 > # ls /mnt/home > kwc > # klist -e > Ticket cache: FILE:/tmp/krb5cc_0 > Default principal: kwc at CITI.UMICH.EDU > > Valid starting Expires Service principal > 03/26/08 14:38:35 03/30/08 18:38:35 krbtgt/CITI.UMICH.EDU at CITI.UMICH.EDU > renew until 04/05/08 14:38:35, Etype(skey, tkt): AES-128 CTS > mode with 96-bit SHA-1 HMAC, unsupported encryption type 18 > 03/26/08 14:39:13 03/30/08 18:38:35 nfs/london.citi.umich.edu at > CITI.UMICH.EDU > renew until 04/05/08 14:38:35, Etype(skey, tkt): AES-128 CTS > mode with 96-bit SHA-1 HMAC, unsupported encryption type 18 > > # cat /etc/krb5/krb5.conf > [libdefaults] > default_realm = CITI.UMICH.EDU > > [realms] > CITI.UMICH.EDU = { > kdc = kerberos.citi.umich.edu > kdc = kerberos-2.citi.umich.edu > admin_server = kerberos.citi.umich.edu > } > > [domain_realm] > .citi.umich.edu = CITI.UMICH.EDU > citi.umich.edu = CITI.UMICH.EDU > > [logging] > default = FILE:/var/krb5/kdc.log > kdc = FILE:/var/krb5/kdc.log > kdc_rotate = { > > # How often to rotate kdc.log. Logs will get rotated no more > # often than the period, and less often if the KDC is not used# frequently. > > period = 1d > > > # how many versions of kdc.log to keep around (kdc.log.0, kdc.log.1, ...) > version = 10 > } > [appdefaults] > kinit = { > renewable = true > forwardable= true > } > # > > I just built the kernel. I have not run "nightly". What am I still > missing to get full aes256 support? > > Thanks, > K.C.
As far as the crypto goes... aes256 contains 192 and 256bit, aes only has 128bit. As of b85, aes256 has been folded into aes... For your b78, you should only have aes256 in the kcf.conf. Having aes in kcf.conf will probably cause 192 & 256bit operations to fail because aes will be the module loaded for the operation as it's a first-come-first-serve operation. As far as userland strong crypto. Again for b78, you need the pkcs11_softtoken_extra.so. That contains AES 192 & 256bit. And you should only have pkcs11_softtoken_extra in the pkcs11.conf, not both softtokens. In b85, pkcs11_softtoken_extra.so has also be folded into pkcs11_softtoken.so. Tony