[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