Freelance Web & Mobile Developer @ TwitSpark. PHP - Mac - iOS - Mobile Web - ಠ_ಠ - Jeep fan
4 stories
·
2 followers

Johnny Cash sings “Barbie Girl”

1 Comment and 2 Shares
another in a series of There I Ruined It's cursed experiments with AI voice cloning #
Read the whole story
jonaswouters
277 days ago
reply
Arendonk, Belgium
Share this story
Delete

Dilbert Classics by Scott Adams for June 17, 2019

1 Share

Dilbert Classics by Scott Adams for June 17, 2019

Source - Comics RSS - Patreon

Read the whole story
jonaswouters
1766 days ago
reply
Arendonk, Belgium
Share this story
Delete

Why we don't offer PGP

1 Share

This is the tenth post in the 2016 FastMail Advent Calendar. Stay tuned for another post tomorrow.


Security is important at FastMail

We pride ourselves on our threat-based approach to modelling security decisions, and the transparency with which we're willing to talk about and justify our choices.

Indeed the initial concept for the advent blog post series was formed when I wanted to write about FastMail's approach to Integrity, Availability, and Confidentiality.

Why don't you ...?

Which brings us to a very common class of questions: by customers, by potential customers, and even by people who have no intention of becoming customers but are happily evangelising their favourite idea.

These questions are of the form "Why don't you support {thing}", or "I would be a customer if you implemented {thing}", or my personal favourite: "It's 2016, I can't believe you don't even {thing}!"

Occasionally we write about our reasons for NOT doing something, for example we have a position on STARTTLS on top of plaintext protocols that is at odds with a lot of the rest of the world's thinking. We don't provide IMAP or POP access on the standard non-encrypted port. We explain in our help pages that we feel the risk of clients being fooled into sending the password in plaintext is higher when they aren't forced to do the SSL negotiation up-front. And if the password goes across the wire in plaintext, it doesn't matter that we won't accept it, a passive sniffer could already have it.

So let's talk about encrypted email and why we're not rushing to provide solutions in the fully end-to-end encrypted space. Firstly;

Encryption on the wire is getting better

Since Facebook posted this in 2014 the amount of server-to-server traffic that's been encrypted has grown enormously.

Google also provide a report on how much email is encrypted in transit over time.

We've been doing server to server transit encryption for quite a while ourselves.

And of course all client to server traffic is fully encrypted at FastMail, we've been enforcing that since 2012. We provide best practices SSL encryption with perfect forward secrecy and we are very quick to remove broken algorithms and disallow insecure connections.

Traceability is getting better

With DKIM Signing which is widely deployed and which FastMail has supported for quite a while, you can authenticate the source of an email and confirm it hasn't been altered in transit. Combining DKIM with SPF, most email between well configured sites is now authenticated as well as being encrypted in transit.

Email senders are willing to make the effort because it makes their email display better in popular sites and be less likely to be marked as spam.

We make it very easy for all our users, including those with their own domains, to have their email signed with DKIM which protects the integrity of messages in transit.

End-To-End Encryption

Which brings us to end-to-end encryption, where even the users' mail providers (aka, us) don't have access to the plaintext of emails.

Pretty Good Privacy (PGP) itself is a commercial program, but when people say PGP they mostly mean The OpenPGP Standard (RFC4880) so for the rest of this document, when I say PGP I will mean the standard protocol.

PGP is the most popular way of end-to-end encrypting emails.

PGP offers two things, encryption and signatures. These are both stronger guarantees than those offered by DKIM and SPF, iff (if and ONLY if) you manage your key store and web of trust well. Otherwise you're just pulling keys from a keyserver.

And perfect forward secrecy isn't a thing with asynchronous communications like emails, so you're creating a pool of messages which will all be broken at the same time if your key ever leaks, which is why the current gold standard for secure messaging is real time end-to-end instant messaging apps that delete messages after reading.

What's the tradeoff?

If the server doesn't have access to the content of emails, then it reverts to a featureless blob store:

  • Search isn't possible
  • Previews can't be calculated
  • If you lose your private key, we can't recover your email
  • Spam checking on content isn't possible
  • To access mail on multiple devices, the private key needs to be shared securely between them

Our great replication, availability and backups still work of course, but you lose a lot of the value that FastMail provides in exchange for not trusting our servers.

Maybe you want to make that trade, so let's consider the potential threats:

Threat modelling

The fundamental questions: who is a plausible attacker, what are their motivations, what is their budget, what is their risk if caught?

Some of the best security information is found in humour, it's definitely worth having a read of this masterpiece (pdf) by James Mickens.

If you have an attacker with a budget of millions of dollars trying to get into your email specifically, you need very tight operational security. You'll want the plaintext of messages displayed for a short time in software with minimum complexity, and you definitely don't want to be seduced by a secret agent or hit with a $5 wrench, which would bypass the email channel entirely.

Alternatively, you may be concerned about being caught in a dragnet, where an attacker (potentially a state-sponsored entity) wants to scan everyone's email, and you suspect that they may have compromised your provider or be scanning your provider's uplinks. That's a realistic threat, so let's look at it in more depth.

If we implement PGP, would that protect against server compromise?

PGP could be implemented purely in the browser, or running on our servers. Clearly if it's running on our servers then either we have the key, or you send us the key every time you read your email.

Pretty much every user accesses their email every day, so within a day of a server compromise, most private keys would be compromised.

If it's running in the browser with code downloaded from our servers, then if we get compromised, we can serve up a version of the PGP code which leaks keys or plaintext. Game over.

Either way, if you're trusting code from somewhere for your crypto, you're trusting that somewhere not be compromised.

Even key management is not something we could do for you. You need to maintain your own web of trust on machines that you trust, or you can be subverted to encrypt secret messages to a different key, one controlled by an attacker.

In summary - there's no way for us to provide PGP or similar encryption technology to you that's immune to a compromise of our service.

If we implement PGP, would that protect against wiretaps?

This is more interesting. If you trust us with your key, we could do the PGP crypto for you and check signatures for you.

This is something that's on our roadmap as a potential feature. In this case it makes sense from both a usability standpoint (interoperability with others who use PGP), and from a sane threat model standpoint.

Certainly relating messages and showing that they have been signed by the same key and hence are from the same person (by keeping full key fingerprints in an addressbook VCARD or similar) could be a useful thing.

But key management is hard, and explaining how it works is hard, and there's a very small set of users in the gap between those who don't care about PGP at all, and those who care enough to do it themselves.

Usable crypto is about the whole process

We're not interested in building something and claiming it as a security feature unless we are providing a real security benefit for users. We don't see a way to do that right now with PGP. Not securely enough to be worth the complexity (and it's not zero sum, added complexity often opens up new security risks.)

You can't just automatically "turn on encryption" and become secure. Data is as secure as the weakest link in the chain.

If you have a strong need for end-to-end encryption, then you need to be controlling the entire environment. Regardless of what we do, you need to make sure your endpoint devices (phones, computers, etc) are secure, because they will be displaying the plaintext, and are part of the security chain. You also need to be certain that your correspondent is practicing equally good hygiene.

For maximum security you should be doing the encryption yourself - either running a tool entirely independently and copy-pasting ciphertext to our web interface on your secure machine, or by running an IMAP/SMTP (or hopefully one day JMAP) client to communicate with our servers and only transferring pre-encrypted emails over those protocols. At which point FastMail are just a blob store and forward service.

Using PGP with FastMail

We're fine with being a blob store for you, you'll still be using and paying for our rock solid storage backend, replication, backups, availability, etc - you'll just be missing out on the rest of our features.

We definitely support you running PGP on your own secure machine and using that with our service.

There will be another blog post later in this Advent series explaining ways you can integrate PGP with FastMail.

Read the whole story
jonaswouters
2681 days ago
reply
Arendonk, Belgium
Share this story
Delete

Nexus 7, One Year In

9 Comments and 12 Shares

Dustin Earley:

I can’t find one person who has been using the Nexus 7 for an extended period of time, and hasn’t seen a massive downgrade in performance. Just what kind of downgrade are we talking here? I cannot pick up my Nexus 7 without experiencing problems like a lag of ten seconds, or more, just to rotate the display; touches refusing to acknowledged; stuttering notification panel actions; and unresponsive apps.

I tried the basics at first, like a factory reset. I then moved onto drastic measures, like rooting and installing CyanogenMod 10.1 (which I thought would surely fix everything, since I’ve used faster devices with lesser hardware, and performance problems were merely a lack of software optimization). And nothing seems to work.

My first-generation iPad from 2010 works just as well as the day I bought it. Actually, even better, because iOS has gotten better.

Update: A lot of pushback from readers on my claim above, arguing that their first-gen iPads have been rendered slow and unstable by iOS 5 (the last OS to support the hardware). My son uses mine for iBooks, watching movies, and playing games. Mileage clearly varies with other apps. (And yes, the App Store app in particular is a bit crashy.)

Read the whole story
jonaswouters
3951 days ago
reply
Arendonk, Belgium
popular
3957 days ago
reply
Share this story
Delete
7 public comments
lywyn
3957 days ago
reply
"My nexus has got slower with each os upgrade. My iPad is still fast". Interesting people have both devices. Well I have had a nexus for over year and a half now and it's as fast as the day I got it so maybe its the apps installed on it that slows other peoples down? Can't believe Gruber has got to the level he has to blog about one persons view of how they think their android tablet has gotten slower. Has Apple got nothing new to blog about? Seriously is this what he blogs about now? Boring. And a blog with out comments section is just a soap box
very large rock orbiting a sun
jdguitard
3951 days ago
I have to say I agree with Gruber on this one. 3 years ago I bought a Droid Incredible and an iPad. I don't have the Incredible anymore but friends do and I have noticed how LAGGY the device has become especially since the Gingerbread update. So freaking slow I would rather break the phone in a million pieces than actually use this garbage. How can people be ok with such bad performance is beyond me. BTW my iPad first gen still runs like a charm.
lywyn
3950 days ago
I had an iPhone 3g and iPhone 4 for a while and noticed they slowed with each upgrade. Should I say that this was an Apple plan to force me to upgrade? I have had 3 iMacs over the years and each new OS release the systems got slower so again should I accuse Apple? No. In most cases a factory reset and installing the apps I use (rather than the all the apps I had accumulated). Gruber is a joke to blogging (don't even call it journalism) for quoting "my mate had a x and it went really slows after an upgrade". Report facts or opinions but not "what he said". Anyone backing this is up just joining the mob mentality of "yeah it must be true" he said!
Svart
3957 days ago
reply
I'm no Android fan and gave up my Nexus 7 in 2 weeks after purchase. But Gruber is stretching it a bit, saying his iPAD 1 is working better with iOS 5. Mine became slow as a dog particularly Safari also many games. And would crash all the time.
London
adamturoff
3957 days ago
reply
N7 seems to get slower with every OS update.
stefanetal
3957 days ago
reply
What did my mother-in-law get?
Northern Virginia
cjhubbs
3957 days ago
reply
Gruber may be an Apple fanboy, but on this one he's right. My wife's Nexus 7 has gotten unbearably slow over the past year. My first-gen iPad is still awesome.
Iowa
davebriggs
3957 days ago
+1 - mine is soooo slow. Very annoying!
chengjih
3957 days ago
Hmm, mine is about the same as the day I got it. There's some lagginess when it's doing app updates, but it's obviously doing app updates, so there's no mystery on why it's slow at that point.
mcormier
3957 days ago
Except for maybe safari which crashes frequently in the original iPad, because it runs out of memory trying to render the page.
cjhubbs
3957 days ago
I suppose it's possible that my wife's N7 *seems* slower because I'm now subconsciously comparing it to my iPhone 5, but still, geez, it's slow. Next tablet she gets is an iPad mini.
yyota
3957 days ago
My 1st gen iPad is much slower than when I bought it. It lacks ram and the iOS 5 update uses much more than iOS 4 :-(
cjhubbs
3957 days ago
My biggest frustration with my iPad 1 is that it doesn't support iOS6 and the multitude of apps that require it.
samuel
3957 days ago
I test the NewsBlur Android app on a Nexus 7 and it's always been a dog. Which is good, I guess, because it means I am forced to figure out a faster means of sync and feed fetching.
ericdano
3957 days ago
Except that the newsblur client doesn't work well on an iPad 1 and Sam has no intention on supporting it anymore
samuel
3957 days ago
I'm also removing iOS 5 support from the next iOS app with offline support. Too much of a burden and not enough users use iOS 5. Hell more are on iOS 7 than iOS 5 right now.
ericdano
3957 days ago
Stupid. Removing iPad 1 support is stupid. I don't think a lot of us want offline reading support. I'd rather have something that works with an ipad1 But what do I know. I'm just a paid user
leonick
3957 days ago
It isnt stupid, Samuel gave you a perfectly sensible reason, there are ore users on iOS 7 than on iOS 5. I'll say this though, the original iPad got a far to short life span, by apple standards anyway, it has gotten great support by Android standards, the problem is that someone screwed up when deciding on the techincal specs and it only got 256mb of ram even if the iPhone introduced later the same year ended up having double that.
lukeman
3957 days ago
I still think it's a shame that the first-gen iPad was hamstrung by a tiny amount of RAM (256MB which is the same amount as the 3GS but with ~5x the pixels to push). Had they bumped that up to 512MB it would be running iOS 6 and as viable as the 3GS still is today. Even when it shipped with iOS 3.2 and no multitasking, Safari would often need to reload tabs when switching as memory was such a limited resource. Gruber's review of the original iPad limited the RAM talk mostly to Safari, but within a few months those same pain points applied system-wide from iOS 4+. Given that and the uptake of newer devices, you can't blame developers for dropping support for the OG iPad.
trekkie
3957 days ago
THey work great as 3 year old kid netflix viewing devices though, my daughter loves my original model 16gb for that. If she breaks it, I don't care. Then again she's used it since she was 2 and hasn't broken it.
islandzero
3957 days ago
It's just the reality of the technology in the iPad 1 and the new APIs in the ios7, it's just not going to be able to handle things like spriteKit appropriately. Those complaining about slow iPad 1s are you actually complaining about games and other content that wern't intended to be run on the iPad 1's slower processor and video hardware? My iPad 1 is still snappy enough when using mail and moderate browsing, but it certainly can't handle many recent games.
JamesDiGioia
3957 days ago
I'm actually in the opposite situation - I have a first gen iPad that is pretty much unusably slow, while my girlfriend has a Nexus 7 she uses regularly and loves.
nmmds69
3957 days ago
Is that the 16GB N7 with less than 3GB free gotcha? Apparently the 8GB and 32GB models are normally OK. Cheapo eMMC I guess, mine was really slow at times...
lukeman
3957 days ago
@islandzero: iPad 1 couldn't even handle switching tabs in Safari without needing to reload. Also, no one said anything about it getting iOS 7 as iOS 6 dropped support for the iPad a year ago. The processor and GPU in the iPad 1 weren't terrible—I tested lots of apps (traditional and games I worked on using Cocos2d, a spiritual precursor to SpriteKit) on my iPad and it wasn't a slouch. It simply didn't have enough RAM given the larger screen size (which means more assets that need to be stored in RAM no matter if it's a game or a UITableView). I still love my OG iPad, but comparing a product that Apple no longer supports itself to the N7 which is still being sold as a flagship device is silly even if the thing runs a little like poo. It _is_ Android after all. ;)
pyrho
3956 days ago
I've managed to restore my Nexus 7's performance by disabling Google currents background sync + clearing the cache (in settings>Storage)...