6 ms·
Snapchat images that have "disappeared forever" stay right on your phone...
- potatolicious 13y agoGood God. If true, this is deplorable. As a mobile dev, client-side image caching is one of the easiest things you can do. When an image expires, nuke it off the filesystem. There are a million and one ways to compromise a local image cache that's intended to be private. You can potentially recover it from the NAND flash if you're sophisticated enough, you can decrypt the data while it's still alive, but deleting the image when you said you would is, well, a pretty basic feature that would prevent the easiest of easy attacks. I'd expect this sort of thing from an app where people are sending private images, against the initial intent/design. But Snapchat?
- wil421 13y agoAs a mobile dev, how would you stop users from taking a screenshot? My girlfriend uses snapchat with her friends a lot and if she is quick enough she can grab a screenshot of the snap, I assume other people are doing this often.
- bennyg 13y agoYou can't really, and that's fine. Just after a snap has reached it's time limit - literally delete it. That's all you have to do to prevent snaps from staying on the system.
- dingaling 13y agoThat requires the Snapchat application, or an associated service, to remain running in order to delete the cached image. A quick user could kill -9 the app and leave the image on the filesystem.
- potatolicious 13y agoYou can't. You stop the attack vectors you can and inform people about the attack vectors you can't do anything about. In this case, making sure the file isn't on the device longer than it should be. Keep in mind, when it comes to extracting images, you can't stop a sufficiently informed or sufficiently determined end user, because all of your code runs on a device that's wholly in control by the end user. All you can do is basic due diligence. There is the side problem where the attacker isn't the end user (e.g., malware attempting to extract private images from a phone). At the end of the day though, there is squat all you can do against code that has root.
- highphive 13y agoThe short answer is there really isn't a way to prevent screenshots. Snapchat has attempted to do so, but without much success. On iOS, it detects if either of the two buttons required to take a screenshot are pressed, and hides the image right away - preventing a screenshot unless the two are pressed truly simultaneously. In my experience, this works much better than on Android, where phones have a variety of ways to screenshot, and no great method exists to stop people from taking one.
- deleted 13y ago[deleted]
- joshmlewis 13y agoI am not a dev but is there a way to know when one of the two screen buttons is being pressed? If so, and it'd have to be almost immediate, but you could fuzz the image or make it go black so the screenshot is black. Is this possible?
- Herald_MJ 13y agoOn iOS at least, both of these pieces of information are not available to developers, because both buttons perform OS-specific tasks which apps are not allowed to interfere with. Contrary to some other platforms (to my knowledge, most notably Android), iOS apps are very sandboxed.
- ahlatimer 13y agoThey're somehow available to Snapchat since they'll send you a notification if someone takes a screenshot of a snap. Edit: I have personally confirmed this on iOS. According to a commenter below, this is also true on Android.
- TsiCClawOfLight 13y agoYou get a notification if someone on android took a screenshot of your snap.
- grey-area 13y agoWhat about snapchat makes you think it is some kind of uber-secure private picture messaging app? If they represent it as that, then it's very misleading, but do they? The analog hole makes this app a fun game at best, it's certainly not secure in any way, so I don't see why this is a big deal. By sending a photo to someone, you are leaking info, and if they can see it, they can copy it trivially with a cameraphone (far more trivially than by trying to get it off a locked down file system on something like ios).
- deleted 13y ago[deleted]
- seiji 13y agoGood God. If true, this is deplorable. Their startup game isn't about engineering quality, it's about rapid growth at all costs. In this game, you aren't even a product—you're just something to be walked all over. When you think Snapchat, go back to their origin stories: http://valleywag.gawker.com/snapchat-had-the-frattiest-creation-in-startup-history-639615051 http://valleywag.gawker.com/snapchat-had-the-frattiest-creat... and http://valleywag.gawker.com/snapchats-creator-another-spoiled-l-a-brat-1451658343 http://valleywag.gawker.com/snapchats-creator-another-spoile... So hilariously sad.
- objclxt 13y ago>I'd expect this sort of thing from an app where people are sending private images, against the initial intent/design. But Snapchat? The thing about Snapchat is that it's basically held together with sticky tape and string. It's not totally dissimilar to where Facebook was a year or so from launch (2006 or so): code that was pretty much thrown together, and hasn't had much time for improvement. I haven't seen the codebase itself, but I'm coming to this conclusion based upon pulling apart both the client apps and the god-awful API that's used. Perhaps in the last few months it has improved somewhat, but it was still pretty dodgy back in May or so.
- justinsb 13y agoCan anyone suggest why this might be the case (presuming that it is true)? It seems to be much more work to hide the image vs. simply deleting it, so I'm guessing that there is a reason...
- jijji 13y agosounds like developers pre-occupied with style and fancy coding rather than efficiency and performance.
- potatolicious 13y agoI haven't seen the Snapchat codebase at all, but my knee-jerk suspicion is use of an off-the-shelf image cache. Caching images on the device is basically a universal problem for mobile apps. It improves responsiveness and prevents unnecessary network usage. As such, there are open source libs that do all the boring heavy lifting for you. Most images caches also don't hold sensitive images, nor do they really expire. In this case, you may have deleted the database row around the post, but the image cache still has the image on-disk.
- endlessvoid94 13y agoI just can't get upset about this.
- jijji 13y agoso much for unlink(filename);
- playhard 13y agoThe issue is six months old. I think snapchat fixed the bug.
- yellow 13y agoThis is exactly what has happened.
- BuildTheRobots 13y agoas someone who's just read the article and installed snap-chat on both phones, colour me disappointed.
- shawabawa3 13y agoAll the crypto stuff he suggests is absolutely stupid. The fundamental concept of snapchat is impossible. It's the same problem as DRM. You can't control how somebody views some content because as long as they can see it, they can copy it (even if they magically fixed all screenshot and 3rd party app issues, you could always take a picture of the phone screen) Doing all that crypto stuff is the equivalent of using 6 locks on your bikes wheel. No matter how good the locks are, it's still going to get stolen by removing the wheel. Them not removing the images client side is a bit bad, yes, but 99% of people who could recover images like that could recover them 101 other ways
- nly 13y agoIt's not impossible or stupid. His crypto proposal is to protect you from (or at least limit) the impact of any malicious action by Snapchat or anyone they may turn images over to (the police for example). I'm sure that isn't the biggest concern for Snapchat users, but it's still a worthwhile precaution. Of course, for a company valued at billions (hah!), implementing anything that can get them in to hot water with the authorities, or breaks the user experience, isn't going to happen just before or after an IPO or buyout.
- shawabawa3 13y ago> is crypto proposal is to protect you from (or at least limit) the impact of any malicious action by Snapchat but...his proposal involves trusting snapchat... so it's completely useless. Even if they did implement all of it, at any point they could update a backdoor into it and you would have no way of knowing. It's essentially the same problem as javascript crypto[1] [1] http://www.matasano.com/articles/javascript-cryptography/
- riquito 13y agoNot really, his crypto propsal doesn't protect you from any malicious action by Snapchat, and thus they is pretty much useless. You either trust Snapchat or don't. Having Snapchat create for you private keys and thinking that now your data is more private is naive
- danabramov 13y agoThis is exactly why Telegram rocks. From http://telegram.org/privacy http://telegram.org/privacy: Secret chats use end-to-end encryption. We do not store your secret chats on our servers. We also do not keep any logs for messages in secret chats. What this all means, is that there is no way for us to know who or when you message via secret chats — as soon as the messages are delivered, they're gone. And there is no way for anybody, including us, to learn what was in those messages, photos or videos. For the same reasons secret chats are not available in the cloud — you can only access those messages from the device they were sent to or from. And from [the FAQ](http://telegram.org/faq#q-whats-this-encryption-key-39-thing http://telegram.org/faq#q-whats-this-encryption-key-39-thing): When a secret chat is created, the participating devices exchange encryption keys using the so called Diffie-Hellman key exchange. After the secure end-to-end connection has been established, we generate a picture that visualizes the encryption key for your chat. You can then compare this image with the one your friend has — if the two images are the same, you can be sure that the secret chat is secure and no man-in-the-middle attack can possibly succeed. Note: I'm in no way affiliated with Telegram—I just happen to think it's a great piece of software and deserves more highlight. And Telegram [supports](http://telegram.org/faq#q-how-do-self-destructing-messages-work http://telegram.org/faq#q-how-do-self-destructing-messages-w...) true self-destructing messages.
- potatolicious 13y agoThis isn't the problem the blog post talks about. The issue isn't the security of the network layer for Snapchat, it's the security of the data once it's on the devices. Which is to say, when the message self-destructs, it doesn't actually self-destruct on the device, at least not fully.
- benmanns 13y agoHow does the Diffe-Hellman key exchange happen? How do you know that Telegram is not secretly intercepting the keys? Based on the FAQ, it looks like they are using some form of RSA public/private keys. Does each user have their own set of keys signed by a CA? Has the source code been vetted on both client and server side to ensure that the encryption is happening properly? There are a lot of problems with just saying "it's encrypted."
- nly 13y agoThe crypto solution he proposes is the same as employed by TextSecure* for encrypted SMS. The problem from a user experience perspective is that it requires a secondary channel of communication like a face-to-face meeting or a secondary IM service for key exchange. * https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms https://play.google.com/store/apps/details?id=org.thoughtcri...
- thatthatis 13y agoEvery time I see "snap chats can be screen shot" I get frustrated. This seems to be a trivially solvable problem. Most smart phones can display 60 frames per second or more. The human eye registers about 20-30 frames per second as fluid. Thus, couldn't you write an algorithm to cut the photo into 4-10 non-overlapping masks, and play those bits sequetially as a pseudo movie at 60+ fps. To the human eye it could look nearly or totally like a static image but to any camera it would be broken image (like taking a picture of an old CRT monitor, or worse) Am I missing something about what would make this hard or impossible? It just seems like such an obvious solution to me.
- MattBearman 13y agoI remember a while ago someone had done just this as a proof of concept, it worked really well.
- emilga 13y agoI don't know how the "screen shot" works for a given phone, but it seem your solution could work. But it would still be possible to just videotape a snap.
- dec0dedab0de 13y agoYes, it was obvious after you explained it.
- thatthatis 13y agoThat's high praise in my, and Douglas Adams book.
- angersock 13y agohttp://en.wikipedia.org/wiki/Analog_hole http://en.wikipedia.org/wiki/Analog_hole
- shawabawa3 13y agoIt would waste huge amounts of battery, provide a worse user experience (would take longer to load, and would make images darker) and barely do anything to solve the problem, 3rd party apps would still be able to scrape it, as well as taking pictures of your phone screen, or just stitching together screenshots.
- callum85 13y agoWorrying about this is like worrying that it's possible for your Scrabble Mobile opponent to secretly use a dictionary.
- gabemart 13y agoI never assumed the purpose of snapchat was provide bullet-proof self-destructing images, in the same way that I wouldn't assume the purpose of a lock on a diary or medicine cabinet was to provide bullet-proof physical security. I assumed the purpose was to shift the expectation of reasonable behavior from "keep for as long as your like" to "let the image expire". If you send someone an image via email or some other platform, it's perfectly reasonable for them to keep the image in their archives forever. If you send someone a snapchat, the expectation of reasonable behavior is to let the image expire and disappear. If one discovered that someone was using clandestine means to keep snapchats sent to them, that person will suffer social repercussions. In other words, snapchat have created a system where it's creepy to keep snaps forever, against the will of the sender. Yes, it's possible, perhaps even trivial. But it's also trivial to rummage through a friend's underwear drawer when visiting their home. The "security" of the underwear drawer is established by trust and social convention. That's how I feel about snapchat. It's an easy way of saying "please don't keep my messages".
- pirateking 13y agoI think a root problem here is a lack of understanding of the modern nature of information. Nobody fully understands it yet, but here is an example of some that are less aware of its properties (users of Snapchat) and something that is obfuscating it further (Snapchat). Encryption does not fully seal the analog hole, at best it is suitable for protecting structured groups of bits until they must be prepared for crossing the analog gate. The only way to have exclusive control of any analog or digital property is to exclusively own all access vectors to it. Any form of communication that is not neuron-based removes this lock by necessity, permitting various external channels and receivers access. Share freely or share nothing - possibly not just a zealous philosophy, also a honest reflection of reality.
- callum85 13y agoI use Snapchat, and loads of my friends use it. I have never met a single Snapchat user who is under the false impression that there is any guarantee that their messages will be deleted. The 'self-destruct' feature is just a fun twist on picture messaging; nobody would rely on it for securing sensitive info! Have a bit more faith in people's intelligence. All this hand-wringing is by non-Snapchat users who have read about the app in the media and completely misunderstood what it is for. It's just for sending funny pictures to your friends, not for sending PIN numbers or secret mission briefings.