Gregory,
 
>> * - Windows indeed will not handle a .p12 cert+key with the PKCS5 v2 [i.e. 
>> aes-256] encryption on it. It appears to only handle 3DES. [I didn't test 
>> every possible PBE - just 3DES and AES256] 

The Microsoft Windows operating system uses Cryptographic Service Provider 
(CSP) plug-in modules to do the actual implementation of the cryptographic 
functions so that Microsoft can ship their products world-wide, including to 
countries where cryptography may be restricted. The Base CSP shipped with all 
recent versions of Microsoft Windows is most likely restricted to 
lower-strength cryptography.
 
For a more complete discussion of this concept and to find out what providers 
are available for your country, see the MSDN article here:
http://msdn.microsoft.com/en-us/library/aa386983.aspx
 
According to the MSDN article referenced; in the US, Microsoft _does_ provide 
full support for AES-256 algorithms, but it is probable that the CSP that 
provides this capability might not be loaded by default on the operating system 
baseline.
 
Apple also uses this concept of "Cryptographic Service Provider", so search 
their web site(s) using this term. you may also be able to leverage Java and 
OpenSSL as the Apple OS X is UNIX-based.
 
Java 6 SE (and above) supports this under Java Cryptographic Architecture (JCA) 
and Java Secure Sockets Extensions (JSSE),  splitting the API and 
implementations using a similar concept of Providers.
 
A good starting point for Oracle Java Cryptographic Architecture that discusses 
which Providers are available is at this URL: 
http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html
 
Good luck with your testing of .p12.
 
Cheers!
 
Simba
Engineering

While this, as far as I can tell, is all true - it's also somewhat misleading. 
It's true that Windows and OSX have underlying API's and functions that will 
handle AES etc - but that only helps if you're planning to code/program your 
own tools to import p12's. It won't help if you're an "end-user" or IT Admin 
person using the built-in tools [certmgr.msc] and the iOS keychain importer, 
etc. These built-in tools only understand p12's with 3DES and there's no way 
around that, as far as I can tell.

And frankly it would be insane for me to spend, probably, hundreds of hours 
[yeah, I am a lousy programmer. :)] learning the respective API's and such, 
just so I could code a way to import AES encrypted P12's into Windows. And then 
do it all over again for iOS and again for OSX.

You're not the only one to suggest this - and I really don't mean to make light 
of the suggestion, it's a valid suggestion - but it just doesn't make sense in 
the current context. 

The bigger take-home issue is: Why Microsoft and Apple haven't updated their 
PKCS import tools in so freeking long and still appear to only support 3DES 
encryption of keys? This seems really irresponsible to me. It's not like 3DES 
is so horrible - but it's really not that great with ~112bit key vs 256bit key 
for AES-256.

I'd feel a lot more secure emailing a p12 with a private key to someone with a 
good tough password and AES-256 than I would with 3DES. And in quite a number 
of cases, it's far easier to distribute them this way - a web-server, FTP, 
email... 

Just try getting a p12 to an iOS device. iTunes, email, web-browser and that's 
basically it. [But iOS and iTunes just to copy a few files!?!? - well that's 
another unhinged rant for another thread... <unhinged manic laugh>...]

Thanks for the suggestion though! I do appreciate the time and effort expended, 
even if it doesn't make sense for me.

-Greg

Reply via email to