[MlMt] Hash Function Parameter? What Am I Missing Here?

Benny Kjær Nielsen mailinglist at freron.com
Mon Dec 2 09:26:04 EST 2013


On 30 Nov 2013, at 18:48, Scott Blystone wrote:

> The release notes of the latest developer build contained the 
> following text:
>
> "Revision 3872 (Friday, November 29, 2013)
>
> The following can be used to change the hash function used for OpenPGP 
> messages:
>
> 	defaults write com.freron.MailMate MmOpenPGPHashFunction -string 
> sha256
>
> Do not use this if you do not know what you are doing."
>
> What am I missing here? I have many years encryption experience but I 
> do not understand the purpose of this parameter.The digest and hash 
> functions are determined when the actual key itself is generated and 
> not by the mail client!

First, I'm certainly no security expert and I welcome any 
comments/corrections to the following.

For OpenPGP the hash function is not set in stone, but you can set a 
list of preferred hash functions, e.g., one of my keys has the following 
list:

	Digest: SHA256, SHA1, SHA384, SHA512, SHA224

Unfortunately (embarrassingly) MailMate ignores this setting. It simply 
enforces the use of SHA1 to make sure that the “Content-Type” of a 
message shows the correct hash function in the so-called `micalg` 
parameter. I have it on my ToDo to improve this. The setting above was a 
quick fix for a user with a key which could not be used with SHA1 at 
all.

For S/MIME in MailMate, it's kind of worse, and it's partly because I'm 
not 100% sure how it works for S/MIME certificates. MailMate doesn't 
(and maybe cannot?) enforce a particular hash function, but MailMate 
also doesn't try to find out which hash algorithm is used.

The `micalg` parameter is simply set to `sha1` even if it's not true. 
It's actually my impression that this parameter is ignored most of the 
time, but I would of course like it to be correct. So far, I've figured 
out how to read the “Signature Algorithm” of a certificate and I've 
found so-called OIDs for various popular hashing functions. (I cannot 
seem to find any Apple API to do this more easily.) For example,

* sha1WithRSAEncryption: 
http://www.oid-info.com/get/1.2.840.113549.1.1.5
* sha256WithRSAEncryption: 
http://www.oid-info.com/get/1.2.840.113549.1.1.11

Documentation is scarce and I'm not sure this is the right way to go. 
For example, I just tried signing a message with Apple Mail using a 
certificate with a Signature Algorithm of “SHA-256 with RSA 
Encryption”, but the `micalg` parameter was still `sha1`. Obviously, I 
need to do more testing to understand this :-)

-- 
Benny
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freron.com/pipermail/mailmate/attachments/20131202/9e68cb61/attachment.html>


More information about the mailmate mailing list