Creating a self-signed S/MIME certificate for Mac and iOS 5 email
Today I needed to send some passwords to someone over the internet again. The recipient recommended using PGP/GPG to send an encrypted email, but unfortunately that protocol appears to be quite a hacky hassle if you use the built-in email clients on Apple’s (and apparently Microsoft’s) platforms.
Fortunately, iOS 5 just added support for a more standard protocol called S/MIME, and so I had recently come across a nice article on setting up secure email on both Mac OS X and iOS 5. Since I mostly want S/MIME for email encryption rather than signing (there’s a good overview of the distinction on its Wikipedia article) I decided to just create a self-signed pair rather than procuring a certificate from some annoying, overpaid and insecure centralized certificate “authority” as that article recommends.
When configuring S/MIME for your account, you can choose to 'Encrypt by Default' when composing new messages. In iOS 13.4 and later, when you reply or forward a message, the encryption state of your message will match the state of the incoming message rather than your system default setting. With everything going on, is there going to be a 365 OWA S/MIME control for Edge on Mac OS? Unfortunately there is only one for the Windows version of Edge and not the Mac OS version. The files are an.MSI file (Windows application install) for the Chrome extension and an.appxbundle file (Microsoft Store application install). S Mime mac software, free downloads and reviews at WinSite. Free Mac S Mime Shareware and Freeware.
Creating a self-signed S/MIME certificate is actually very quick and relatively easy using the Keychain app that comes with Mac OS X, but I wanted to document the process as getting a certificate that Mail recognizes did require overriding at least one of the assistant’s defaults:
- In the Keychain utility application’s menu, choose “Create a Certificate…”:
- I had to override the defaults primarily so I could include my email address necessary for Mail.app to use it:
- Confirm that self-signed is okay
- I just accepted the default serial number (1) and validity period (365 days)
- Then the part where you enter (at least) the email address you want to use this certificate with:
- For the actual keypair, I went with DSA mostly just because:
- I unchecked all the certificate metadata stuff in the next 4 steps, you can try playing with it but didn’t seem worth the complication:
- Then just have the assistant create it in your login keychain unless you have some different setup. It will take a bit to generate the keypair.
- Once it’s created you’ll need to find the certificate and double click it…
- …so that you can manually trust it for at least S/MIME:
Once you’ve done that, you’ve taken care of the “The Certificate” step and can just follow the rest of the instructions in Ars Technica’s “How to secure your e-mail under Mac OS X and iOS 5 with S/MIME” article using the certificate you created instead of one from some corporation.
S Mime Certificate Cac Card
There is one major drawback to a self-signed (decentralized) certificate. As you’ve seen yourself after creating your certificate, it will not be trusted by default — only several dozen corporations and governments and rogue nations are trusted to forge certificates; you are not on any platform’s pre-approved issuer list. So: after you give your public key to your email contacts (as will be necessary for them to decrypt your messages) they will have to repeat steps 9 and 10 above to manually trust your self-signed certificate on their own machine.
| OSI model by layer |
|---|
|
|
S/MIME (Secure/Multipurpose Internet Mail Extensions) is a standard for public keyencryption and signing of MIME data. S/MIME is on an IETFstandards track and defined in a number of documents, most importantly RFC3369, 3370, 3850 and 3851. It was originally developed by RSA Data Security and the original specification used the IETF MIME specification[1] with the de facto industry standard PKCS#7 secure message format. Change control to S/MIME has since been vested in the IETF and the specification is now layered on Cryptographic Message Syntax (CMS), an IETF specification that is identical in most respects with PKCS #7. S/MIME functionality is built into the majority of modern email software and interoperates between them. Since it is built on CMS, MIME can also hold an advanced electronic signature.
Function[edit]
.jpg)
S/MIME provides the following cryptographic security services for electronic messaging applications:
- Message integrity
- Non-repudiation of origin (using digital signatures)
- Privacy
- Data security (using encryption)
S/MIME specifies the MIME type application/pkcs7-mime[2] (smime-type 'enveloped-data') for data enveloping (encrypting) where the whole (prepared) MIME entity to be enveloped is encrypted and packed into an object which subsequently is inserted into an application/pkcs7-mime MIME entity.
S/MIME certificates[edit]
Before S/MIME can be used in any of the above applications, one must obtain and install an individual key/certificate either from one's in-house certificate authority (CA) or from a public CA. The accepted best practice is to use separate private keys (and associated certificates) for signature and for encryption, as this permits escrow of the encryption key without compromise to the non-repudiation property of the signature key. Encryption requires having the destination party's certificate on store (which is typically automatic upon receiving a message from the party with a valid signing certificate). While it is technically possible to send a message encrypted (using the destination party certificate) without having one's own certificate to digitally sign, in practice, the S/MIME clients will require the user to install their own certificate before they allow encrypting to others. This is necessary so the message can be encrypted for both, recipient and sender, and a copy of the message can be kept (in the sent folder) and be readable for the sender.
A typical basic ('class 1') personal certificate verifies the owner's 'identity' only insofar as it declares that the sender is the owner of the 'From:' email address in the sense that the sender can receive email sent to that address, and so merely proves that an email received really did come from the 'From:' address given. It does not verify the person's name or business name. If a sender wishes to enable email recipients to verify the sender's identity in the sense that a received certificate name carries the sender's name or an organization's name, the sender needs to obtain a certificate ('class 2') from a CA who carries out a more in-depth identity verification process, and this involves making inquiries about the would-be certificate holder. For more detail on authentication, see digital signature.
Depending on the policy of the CA, the certificate and all its contents may be posted publicly for reference and verification. This makes the name and email address available for all to see and possibly search for. Other CAs only post serial numbers and revocation status, which does not include any of the personal information. The latter, at a minimum, is mandatory to uphold the integrity of the public key infrastructure.
Obstacles to deploying S/MIME in practice[edit]
- S/MIME is sometimes considered not properly suited for use via webmail clients. Though support can be hacked into a browser, some security practices require the private key to be kept accessible to the user but inaccessible from the webmail server, complicating the key advantage of webmail: providing ubiquitous accessibility. This issue is not fully specific to S/MIME: other secure methods of signing webmail may also require a browser to execute code to produce the signature; exceptions are PGP Desktop and versions of GnuPG, which will grab the data out of the webmail, sign it by means of a clipboard, and put the signed data back into the webmail page. Seen from the view of security this is a more secure solution.
- S/MIME is tailored for end-to-end security. Logically it is not possible to have a third party inspecting email for malware and also have secure end-to-end communications. Encryption will not only encrypt the messages, but also the malware. Thus if mail is not scanned for malware anywhere but at the end points, such as a company's gateway, encryption will defeat the detector and successfully deliver the malware. The only solution to this is to perform malware scanning on end user stations after decryption. Other solutions do not provide end-to-end trust as they require keys to be shared by a third party for the purpose of detecting malware. Examples of this type of compromise are:
- Solutions which store private keys on the gateway server so decryption can occur prior to the gateway malware scan. These unencrypted messages are then delivered to end users.
- Solutions which store private keys on malware scanners so that it can inspect messages content, the encrypted message is then relayed to its destination.
- Due to the requirement of a certificate for implementation, not all users can take advantage of S/MIME, as some may wish to encrypt a message, with a public/private key pair for example, without the involvement or administrative overhead of certificates.
Any message that an S/MIME email client stores encrypted cannot be decrypted if the applicable key pair's private key is unavailable or otherwise unusable (e.g., the certificate has been deleted or lost or the private key's password has been forgotten). However, an expired, revoked, or untrusted certificate will remain usable for cryptographic purposes. Indexing of encrypted messages' clear text may not be possible with all email clients. Neither of these potential dilemmas is specific to S/MIME but rather cipher text in general and do not apply to S/MIME messages that are only signed and not encrypted.
S/MIME signatures are usually 'detached signatures': the signature information is separate from the text being signed. The MIME type for this is multipart/signed with the second part having a MIME subtype of application/(x-)pkcs7-signature. Mailing list software is notorious for changing the textual part of a message and thereby invalidating the signature; however, this problem is not specific to S/MIME, and a digital signature only reveals that the signed content has been changed.
Security issues[edit]
Smime For Mail Contacts
On May 13, 2018, the Electronic Frontier Foundation (EFF) announced critical vulnerabilities in S/MIME, together with an obsolete form of PGP that is still used, in many email clients.[3] Dubbed EFAIL, this is a particularly critical hit to S/MIME that will require significant coordinated effort by many email client vendors to fix.[4]
See also[edit]
- DomainKeys Identified Mail for server-handled email message signing.
- EFAIL, a security issue in S/MIME
- GNU Privacy Guard (GPG)
- Pretty Good Privacy (PGP), especially 'MIME Security with OpenPGP' (RFC 3156).
References[edit]
- ^RFC 2045: Multipurpose Internet Mail Extensions (MIME). Part One was published in November 1996.
- ^Mission-critical Active Directory: Architecting a Secure and Scalable Infrastructure for Windows 2000. 2001. p. 550.
S/MIME adds new MIME content types that provide data confidentiality, integrity protection, nonrepudiation, and authentication services: application/pkcs7-mime, multipart/signed, and application/pkcs7-signature
- ^Gebhart, Danny O'Brien and Gennie (2018-05-13). 'Attention PGP Users: New Vulnerabilities Require You To Take Action Now'. Electronic Frontier Foundation. Retrieved 2018-05-29.
- ^Hansen, Robert (2018-05-20). 'Efail: A Postmortem'. Robert Hansen. Retrieved 2018-05-30.
S Mime For Chrome
External links[edit]
- RFC 5652: Cryptographic Message Syntax (CMS)
- RFC 3370: Cryptographic Message Syntax (CMS) Algorithms
- RFC 5751: Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 Message Specification
- RFC 8551: Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification
- Microsoft Exchange Server: Understanding S/MIME (high-level overview).
