Microsoft Office 365 Message Encryption Insecure Mode of Operation
labs.withsecure.com
labs.withsecure.com
deprecated
Depreciated == reduced in value.
The ECB mode of operation is strictly intended for the encryption of random or pseudo-random numbers that have a negligible chance of repetition, for example for the encryption of secret keys.
Any other application for ECB is a serious error that cannot be justified in any way.
If this was some kind of attempt of implementing a weak encryption method for export purposes, then it is much more stupid than limiting the length of the secret keys to 40 bit, like it was done in the Internet browsers many decades ago.
[1] I've talked to a lot of software developers about the dangers of using ECB over the years. The discussion I'm referring to was the only time I've really been surprised. Usually it's been because the library they were using defaulted to it.
no excuse really
Moreover, the implementation of the CTR mode is trivial when an ECB function is available from a library, a CTR encryption or decryption is done by invoking ECB on some non-repeating value, e.g. the value of a counter incremented after each encrypted block, and computing the sum modulo 2 (a.k.a. XOR) with the plaintext (for encryption) or ciphertext (for decryption).
For random access, an appropriate offset is added to the counter.
When the threat model for a SSD or HDD is only that it might be stolen, the CTR mode is a perfectly secure method to encrypt the SSD or HDD, using the sector number as the counter value.
The slower and more complex encryption modes that have been standardized for full disk encryption, and which are used in most full disk encryption programs, are conceived for the use against a much more powerful opponent, who is not just a thief but who is someone able to access the SSD or HDD frequently, for many weeks or months, without the knowledge of the owner, and who will be able to frequently make snapshots of the SSD/HDD as it evolves during that time, to be analyzed for values that change in time, which can reveal differences between the corresponding plaintexts, which might allow the plaintexts to be guessed (i.e. if a text file is edited frequently, the content of the parts that change between versions might be guessed by the opponent who watches the SSD).
This threat model is valid only for someone who is a person of interest for the surveillance by some TLA.
All of these are reasons why you want to avoid using full disk encryption outside of the narrow problem of your laptop getting stolen out of the back of your car or something.
The right place where storage encryption must be inserted is in the file system implementation, where it is possible to implement a completely secure form of authenticated encryption. This is especially easy to do in the so-called copy-on-write file systems or log-structured file systems.
However, file system implementations are much more complex than block device drivers, so modifying them to insert encryption in the right way requires a lot of work, which nobody has done for any of the popular file systems.
While there are some commercial solutions that claim to be secure I have not seen anyone that manages the secret keys correctly (no secret keys should be stored in the encrypted device itself, regardless if they are encrypted with a password, because encryption based on a password is much weaker than with a long random key).
CBC mode does support that, though (decryption is parallelizable, but not encryption).
There was an issue that slipped into the iOS backup a while back, where some engineer had added a bare sha1 hash of your password (it's been a while, but I think they were trying to add encryption of the metadata in addition to the existing file encryption).
The existing encryption was GCM, AES keywrap, and pbkdf2, so those things were done by teams of widely varying skills.
I probably could have gotten another CVE from that, but I wasn't sure I was supposed to be poking around in that stuff in beta. Somebody else did report it and it was fixed.
HIPAA and BAAs are for lawyers to argue about after your medical records has been exposed, and if attempts to remedy the situation deteriorate.
If this encryption genuinely allows structural data retrieval - eg common invoice templates or medical reports - then this is absolutely a HIPAA problem, and once a facility is made aware of it they would need to respond.
FWIW, this message encryption is also accepted by UK NHS, in fact it's virtually the standard.
The mitigating factor is that typically the user is fully authenticated before being allowed to access the encrypted data...
AS OP mentioned, this is not about assumptions but laws and their interpretation during consideration in a court of law.
Sounds spammy, but this is industry norm from personal experience on Ironport and Exchange. Downside is the spam imitations of this that are likely quite successful at phishing creds from corporate users.
Should clinicians just ignore this or should they demand a response?
Despite all the talk about "Purview Advanced Message Encryption" replacing whatever came before it, a recent demonstration[2] shows attachments labelled "message_v4.rpmsg"[3] and "message_v3.rpmsg"[4] being sent to an external Gmail recipient so it appears [MS-OXORMMS]/[MS-RMPR] are still being relied upon but perhaps the server part of [MS-RMPR] is now only implemented by Azure and has no on-premises implementation?
In one of the examples[4], the "Purview Advanced Message Encryption" feature allows "message_v3.rpmsg" to be sent as an attachment to an external recipient that then doesn't have permission to view the e-mail. Why send an encrypted message to someone that is meant to have no means to decrypt it?
[MS-OXORMMS] https://interoperability.blob.core.windows.net/files/MS-OXOR...
[MS-RMPR] https://winprotocoldoc.blob.core.windows.net/productionwindo...
[1] https://support.microsoft.com/en-us/office/end-of-support-fo...
[2] https://youtu.be/9NydrGVG_mI?t=164
Here, the probably mostly in fact is that you can see penguins through the encryption.
https://learn.microsoft.com/en-us/microsoft-365/compliance/o...
Open source is also a good start but it is certainly no guarantee as not all code is audited even when open.
Microsoft. Mitigation. Even basic spell check would have caught these, which make the whole work look sloppy.
Yet enterprises annd governments are throwing $$$ at them. Maybe that’s why they don’t care.
Exactly my point. Every company follows standard security policies. But for a company like Microsoft, given the responsibility it has and the profits it makes and the amount of money it’s executives make is it unreasonable to expect more?
In the context being discussed here it should be more clear that big vendors implement features like encryption or IPv6 purely to tick a compliance checkbox.
These types of features are not supposed to be used. They’re there just to exist and enable sales to government institutions where someone who who’ll never use the product directly is ticking things off on a checklist.
Another classic example is Android encryption. The marketing materials literally look like this:
Encryption: Yes
I didn’t realise how much of a farce this was until I saw a presentation at an Apple developer conference where they outlined the four different “rings” of encryption they do. For example, when an iPhone boots up from cold most of it remains encrypted and requires the pin to decrypt. Even if you take it apart physically before the pin entry, you can’t get at the user data!Android unlocks everything on boot, because its encryption support is “yes”.
(This may have changed since then)
The icing on the cake? "The report was not considered meeting the bar for security servicing, nor is it considered a breach. No code change was made and so no CVE was issued for this report."
So basically, they know about it and don't seem to give a shit.
They hide this under marketing blogs.
They <3 open source!!!
Would be interesting to know whether they suffer the same issue, or those implementations chose a proper encryption mode..
https://commons.wikimedia.org/wiki/File:Tux_ecb.jpg
I guess next we'll find out MS are still using DES or RC4
Do that enough and wrap it around at the width, and you end up with a diagonal/houndstooth-like pattern.
[1] Serious Cryptography, Jean-Philippe Aumasson