View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005407 | SOGo | Web Mail | public | 2021-10-15 11:52 | 2021-12-03 22:38 |
Reporter | Christian Mack | Assigned To | francis | ||
Priority | high | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 5.2.0 | ||||
Target Version | 5.3.0 | Fixed in Version | 5.4.0 | ||
Summary | 0005407: When using identities, you can sign with a not matching S/MIME certificate | ||||
Description | The problem is twofold. 2) When you receive in SOGo such an invalid signed email, it will be shown as validly signed! | ||||
Steps To Reproduce | 1) userA uploads certificate for his primary email address | ||||
Tags | No tags attached. | ||||
Just to show the mismatch, here a screenshot |
|
The viewer is fixed; a proper message is displayed if the certificate doesn't match the sender address. |
|
The fix looks for the email address in the CN attribute. This is wrong. The email address is either in the SubjectAltName (nowadays the prefered place) or in the emailAddress attribute. In many S/MIME certificates the CN field is either missing or contains the name of the certificate holder. From https://datatracker.ietf.org/doc/html/rfc8550#section-3 |
|
Can you share the JSON payload of the server response when viewing a signed message? I would like to see the content of .parts.certificates. |
|
Here we go... with_cn.json (347 bytes)
{ "certificates": [ { "issuer": [ [ "countryName", "DE" ], [ "organizationName", "Deutsche Post AG" ], [ "commonName", "DPDHL User CA I5" ] ], "subject": [ [ "commonName", "noreply, DHL, BN" ], [ "emailAddress", "noreply@dhl.de" ] ] } ] } without_cn.json (440 bytes)
{ "certificates": [ { "issuer": [ [ "countryName", "GB" ], [ "stateOrProvinceName", "Greater Manchester" ], [ "localityName", "Salford" ], [ "organizationName", "COMODO CA Limited" ], [ "commonName", "COMODO RSA Client Authentication and Secure Email CA" ] ], "subject": [ [ "emailAddress", "XX@XXXX.de" ] ] } ] } |
|
I'm closing the issue, but |
|
I created a S/MIME certificate with 2 alternate addresses for a test user. |
|
Subjects specify which is which. |
|
Thanks for the testmails. I can confirm that the email address check works as expected with the commit of 2021-11-22 (which is not part of SOGo 5.3.0 but should be included in the nightly builds): Only the third one fails the address check. The address test of the other two mails succeeded. For the first mail I got a "Message has been modified". Turned out that the umlauts got mangled. Corrected them manually and the mail got verified ok. |
|
The second part of the ticket (sign only if the certificate's mail addresses match the selected identity) has not been addressed yet. |
|
Signing a message using an address that is not part of the certificate will now fail. |
|
sogo: master 6eb5e971 2021-10-29 16:34 Details Diff |
fix(mail): check if smime certificate matches sender address Fixes 0005407 |
Affected Issues 0005407 |
|
mod - UI/MailPartViewers/UIxMailPartEncryptedViewer.m | Diff File | ||
mod - UI/MailPartViewers/UIxMailPartSignedViewer.m | Diff File | ||
mod - UI/MailerUI/English.lproj/Localizable.strings | Diff File | ||
sogo: master ab67e7d2 2021-11-02 11:04 Details Diff |
fix(mail): check if smime certificate matches sender address Fixes 0005407 |
Affected Issues 0005407 |
|
mod - UI/MailPartViewers/UIxMailPartSignedViewer.m | Diff File | ||
sogo: master e85576cb 2021-11-22 15:31 Details Diff |
fix(mail): check if smime certificate matches sender address Fixes 0005407 |
Affected Issues 0005407 |
|
mod - UI/MailPartViewers/UIxMailPartEncryptedViewer.m | Diff File | ||
mod - UI/MailPartViewers/UIxMailPartSignedViewer.m | Diff File | ||
mod - UI/MailerUI/English.lproj/Localizable.strings | Diff File | ||
sogo: master 4ad21055 2021-12-03 16:54 Details Diff |
fix(mail): sign and send only if smime certificate matches sender address Fixes 0005407 |
Affected Issues 0005407 |
|
mod - SoObjects/Mailer/SOGoDraftObject.m | Diff File | ||
mod - UI/MailerUI/English.lproj/Localizable.strings | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2021-10-15 11:52 | Christian Mack | New Issue | |
2021-10-22 09:05 | Christian Mack | Note Added: 0015570 | |
2021-10-22 09:05 | Christian Mack | File Added: sogo-spoofed-signed-valid-details.png | |
2021-10-29 20:36 | francis | Changeset attached | => sogo master 6eb5e971 |
2021-10-29 20:36 | francis | Assigned To | => francis |
2021-10-29 20:36 | francis | Resolution | open => fixed |
2021-10-29 20:41 | francis | Note Added: 0015594 | |
2021-11-01 21:16 | schmirl | Note Added: 0015596 | |
2021-11-02 12:29 | francis | Note Added: 0015597 | |
2021-11-02 14:06 | schmirl | Note Added: 0015598 | |
2021-11-02 14:06 | schmirl | File Added: with_cn.json | |
2021-11-02 14:06 | schmirl | File Added: without_cn.json | |
2021-11-02 15:04 | francis | Changeset attached | => sogo master ab67e7d2 |
2021-11-02 17:13 | francis | Status | new => resolved |
2021-11-02 17:13 | francis | Note Added: 0015599 | |
2021-11-02 17:13 | francis | Product Version | 5.3.0 => 5.2.0 |
2021-11-02 17:13 | francis | Target Version | => 5.3.0 |
2021-11-22 20:32 | francis | Changeset attached | => sogo master e85576cb |
2021-12-02 14:45 | Christian Mack | Status | resolved => feedback |
2021-12-02 14:45 | Christian Mack | Resolution | fixed => reopened |
2021-12-02 14:45 | Christian Mack | Note Added: 0015665 | |
2021-12-02 14:46 | Christian Mack | Note Added: 0015666 | |
2021-12-02 14:46 | Christian Mack | File Added: Email to myself.eml | |
2021-12-02 14:46 | Christian Mack | File Added: message to myself alternate email address.eml | |
2021-12-02 14:46 | Christian Mack | File Added: message to myself with not matching from.eml | |
2021-12-02 14:46 | Christian Mack | Status | feedback => assigned |
2021-12-02 15:58 | schmirl | Note Added: 0015667 | |
2021-12-02 16:02 | schmirl | Note Added: 0015668 | |
2021-12-03 21:55 | francis | Changeset attached | => sogo master 4ad21055 |
2021-12-03 21:55 | francis | Resolution | reopened => fixed |
2021-12-03 22:38 | francis | Status | assigned => resolved |
2021-12-03 22:38 | francis | Fixed in Version | => 5.4.0 |
2021-12-03 22:38 | francis | Note Added: 0015671 |