« first day (1937 days earlier)      last day (3241 days later) » 

16:00
@ArtOfCode This is because of turnover
@Quill Dunno what you're talking about. Aside from the recent @TildalWave/@Shog9 debacle, I can't remember the last time I've seen SEI actually step in and kick someone off.
It's a classic symptom of turnover. Inability to add new features because nobody knows what does what
Anyway, my opinions probably don't matter to SEI but hey, they have lost me as an active contributor.
whispersystems.org/blog/whatsapp-complete <-- end-2-end encryption on whatsapp....
@Iszi exactly. If the CMs jumped in at every instance of a chat argument to "support existing communities", it'd be overbearing
16:01
that'll annoy some people
@RоryMcCune Nice to see them actually get that done.
@Quill Now mods do jump in when needed, which still isn't very often. My point was that seeing SEI themselves get involved is extremely rare.
As for Meta burnout, anyone else remember when this was a thing?
@TerryChia signal protocol and all
@Iszi Oh Packy, we need you here.
@RоryMcCune Axolotl was a much cooler name. :P
16:03
@TerryChia true true
@RоryMcCune Argh! ENCRYPTION!
Foiled again
@Iszi Heh.
Mobile chat, where mods aren't blue and room owners not in italic
#mobileproblems
Coding in languages that don't require a semicolon has broken me for life.
@ThomasPornin Stupid question time. Is revokable encryption possible? Let's say a key was compromised. You revoke that key, and it can not be decrypted again. Even retroactively. ..?
16:18
Markus pls, that implies that there's a server somewhere controlling the decryption.
@MarkBuffalo that does't sound possible
Would probably need a third party?
Yup
@Simon or there's a server with a third key
Verify if key is allowed to be used... if so, send a randomized key that matches something
@MarkBuffalo en.wikipedia.org/wiki/Forward_secrecy is a similar concept.
You would have to control the key and only deliver it in the right condition. Once the data and the key are out somewhere, you have no mean of avoiding decryption.
@TerryChia Interesting, thank you.
@M'vy And I'd ike to find a solution to this
16:23
No, more like: Data is stored encrypted with DK (data key) on server. User requests data from server, authenticating with UK (user key). Server verifies privileges, decrypts data, then re-encrypts with UK before sending to the user.

Problem remains after this point though: User has (and may have copied) the data in a form that can be decrypted with UK perpetually. Revocation of UK would only restrict the user from accessing additional data sets that they formerly had permissions to.
We have enough Brits in here already oszi.
@Simon hello Simon
@diagprov !!!!!!!!
Simon simoning
Oh you sneaky bastard.
16:25
@Simon did you know.. that during WWII there was a plan to relocate the monarchy to Canada, in the event of a possible German invasion of the UK
@RоryMcCune !!!!!!!!!!!!!!!!!!!!!
I ALMOST WAS BORN BRIT
@MarkBuffalo The key (no pun intended) to keeping the user from exercising broad access rights beyond the lifetime of their permissions is to never give them decryption keys for more data than they actually need and request at any given time.
@Simon yep but for some tactical changes, I could've been speaking german and you'd be the one with the tea and the stiff upper lip!
@Simon I feel you are really an honorary Brit.
I'm already a fan of tea.
16:27
Exactly.
Maybe I have Brit ancestors, I should check it out.
@Simon Earl Grey, hot.
I just want a Shengen zone passport...
wot
"Almost a brit"
16:28
A wild @JeffFerland appears!
Well he got pinged iirc
@JeffFerland depending on June, a British one may or may not be any good for that purpose. You'll need to become French or something :)
Although, confusingly, the UK is not actually in the Shengen Zone right now, although we do have free movement.
@JeffFerland o/
Could you imagine a French Canadian with a British accent?
Maybe you should join us. You're on the wrong side of the fun line
16:30
@Simon I can't even imagine a french canadian
:DDDD
@M'vy The fun line? Is that a euphemism?
@TerryChia @MarkBuffalo Also, regarding comparisons to PFS: The problem with implementing the same logic that provides PFS is that you are handing the user the encrypted data *and* the decryption key (session key) every time. If the user retains the session key, they will be able to decrypt the data sent within that session regardless of what happens to the long-term key.

Again, this does still prevent the user from getting *additional* data in the future so long as the additional data uses a key that the user has not been given. It just doesn't keep the user from accessing the same data (
@DavidFreitag no further comment
@M'vy ( ͡◉ ͜ ʖ ͡◉)
Huge sale on Spartan 6 FPGA boards
Has 1 10Gbps Ethernet and a x1 PCIe lane
$400
16:33
@Iszi Even if 3+ keys are used
?
Okay, Chat.SE: What's the point of hiding one line behind "(see full text)"?
@Iszi My idea is for a chat protocol
@MarkBuffalo I'm not sure what your suggested implementation would look like. Walk me through a scenario?
Rule #1 of Internet, once the data is out, it's not yours anymore.
16:35
Rule #34 of the internet...
@M'vy That's Rule #1 of computing in general.
W/e
Not Internet-dependent. Hell, really not computer-dependent for that matter. They just make it a hell of a lot easier.
@Iszi Not for an offline machine with full-system encryption
@DavidFreitag Maybe if the key's been destroyed.
16:36
@Iszi With a remotely destroyable key
@DavidFreitag No, it must already be destroyed. Else one with the key may exfiltrate the data.
@Iszi If they have data but no key exfiltrated data is useless
@DavidFreitag In the context of my statement "exfiltrated" implies "decrypted and copied".
User A sends encrypted messages to User B. User B requests information from the server to decrypt, checks if User B is allowed to do so. If so, send third key so user B can decrypt contents. Don't worry if user b shares decrypted information... just prevent him from requesting information with that key if revoked
And discard the server key after use
Each time a communication occurs, generate new server key information
This is very rough example
I feel I'm not explaining it right
I can't believe you guys are talking about theoretical crypto systems and nobody has pinged @ThomasPornin
16:40
@MarkBuffalo What's the threat of being able to decrypt the message, though? Isn't the main threat the risk to the decrypted data being shared in the first place - that is, if all parties retain a decrypted message, any one of them will do as a target to leak that message.
@DavidFreitag I pinged him earlier
@DavidFreitag The first message did.
Why bother sending the third key? Sure, there should be at least three keys involved:

1. Server key used for secure communications.
2. User key used for secure communications and authentication.
3. Data key used to protect data in storage.

But the server never needs to send the user any additional keys. Just use key 3 to decrypt the data, then re-encrypt with key 2 before sending. (Note: User never has key 3.)
Nearly all encryption is a moot point if you can compromise either end point
16:41
Sorry for the extraneous ping, @ThomasPornin, please don't maul me!
I get that
The idea is to discard the third key, the man in the middle key, after use. So each individual message will be encrypted with new information. This way, if either User A or B is comprised, there's at least an additional layer of protection there
Now, if User B receives the server key, they can save that, yes
@MarkBuffalo User should never have Server Key.
No, no. I mean their public key
I already see issues with this design
@MarkBuffalo Public keys are meant to be public.
The problem you posed was how to use encryption to revoke a user's access to data. If you assume the user retained a copy during a time that they were allowed access, the answer is you can't.
Yes, I'm aware
@Iszi This is true, but the user would have to store evwry single key
Each new message would have a new key
16:46
@MarkBuffalo Not at all impossible, and really not even necessary. Once they have the key and the data, they can simply decrypt the data and store it in the clear.
@Iszi Yep or re-encrypt.
Key set*
@Iszi Or store the id for that message and request the message and key again from the server
@Iszi Right. Now imagine for millions of users. You'll be storing a ridiculous amount of key information
So you might get some details eventually, but all of them? Currently feels impractical.
@MarkBuffalo I can't see what the additional key protects that is not already protected in the end-to-end scenario - actually, with a third party able to read the clear you have the server in the middle as a target.
16:49
You are correct, but what if the server doesn't know what's being sent?
Either to or fro
@MarkBuffalo Now I think you're threat modeling wrong. Are we talking a rogue user wanting to use privileges that have been revoked? Or are we talking an attacker trying to compromise accounts that have already been - or are becoming, during the attack - disabled?
@Iszi Both, presumably
@Iszi I'm bored at lunch and just thinking.
@MarkBuffalo how would it not know?
Let's say a rogue attacker is collecting communications
@diagprov Hence why I'm trying to brainstorm and find out if there is a way
16:50
@diagprov Ogres & Onions.
@Iszi Layers.
@MarkBuffalo Okay, that's what TLS is for. What are you trying to fix?
The attacker stores the encrypted communications for later date, such as a time when they find a weakness in the protocol or something
Or maybe they're on the hunt for private keys from User A, or User B
But they need a third key, which is no longer stored anywhere.
Unless User A or B stores it
Or maybe there is a way around this. .
@MarkBuffalo I'm still not clear on what you're looking to do that isn't either covered in TLS with PFS, or just impossible.
Yeah, assume TLS is broken
16:54
@MarkBuffalo Take the specific protocol out of the equation. Apply same concepts.
@Iszi To be frank, I am not sure what I'm trying to do lol
Okay, then I VtC as unclear what you are asking.
Other than this: discard third key after encryption
Yeah, no worries... I'm just rambling
Like @TerryChia said, check this out.
In cryptography, forward secrecy (FS; also known as perfect forward secrecy) is a property of secure communication protocols in which compromise of long-term keys does not compromise past session keys. Forward secrecy protects past sessions against future compromises of secret keys or passwords. If forward secrecy is utilized, encrypted communications and sessions recorded in the past cannot be retrieved and decrypted should long-term secret keys or passwords be compromised in the future, even if the adversary actively interfered. == History == The term "perfect forward secrecy" was coined by C...
I will. Gotta get back to work
16:56
@Iszi That's possible but assuming a scenario decrypt with data key, re-encrypt with user key, delete data key, the plaintext still exists on the server, following what is described. Layering encryption won't bring in an ability to revoke keys, which was what as asked for.
I think it covers what you're after, otherwise what you're after is probably impossible, impractical, or not worth the expense.
Well, actually, you could refuse to decrypt something encrypted twice, I guess.
@diagprov You'd need multiple servers handling the request and sending data/keys to the user either separately or under separate keys not held by the central server.
And now I have a meeting. Back later.
@Iszi Actually, I think you can do it with just one server. User A encrypts with the pubkey of B, then encrypts again with the ephemeral key for server S. Server S stores the message+ephermeral key. It then either decides to deliver (decrypt with eph key) or just delete the ephemeral key, rendering the data it has undecryptable.
An attack on the server will reveal the ephemeral key used to encrypt the data encrypted with the PK of B already.
@diagprov This
17:01
So, basically, it peels a layer.
Server wont even have the key required to decrypt the message after the first time
@MarkBuffalo Yeah my mistake was thinking you were proposing to decrypt on the server, sorry.
@diagprov no worries
The idea is to somehow make it more annoying and difficult for attackers
oh look i missed another drama bomb
17:04
You should also look at the "future secrecy" in the axolotl ratchet. Essentially even a compromise of an ephemeral key at any given point in time is not supposed to affect the security of any later key - whispersystems.org/blog/advanced-ratcheting
Will read later, thanks. Meeting time.
@MarkBuffalo I guess your original question was more along the lines of "can this be enforced in the actual properties of the system" rather than having the server arbitrarily decide, though, right?
17:28
@Ohnana yarp
I've been so good at not starting the drama lately, I might have to request to be awarded a medal.
@Simon hands over a chocolate medal reading "Not a Drama Llama"
@Matthew Aw, that's lovely, thanks.
@LucasKauffman is gonna be really jealous.
hands @LucasKauffman a chocolate medal reading "Llama, not Drama"
Lucky Lucas.
He didn't even have to work for it.
17:45
Basic HTML code
^_^
@Simon Well, he has been being a llama for years with minimal drama
He is rewarded for his non-action?
Blasphemy!
@Simon He is rewarded for not fitting the stereotype of his kind!
Oh look, over there! Is that a Phemy? Oh noooo, it's the Blas kind of phemy!
Do you want me to take your medal away?
17:53
I already ate it.
OK, I'm not touching it...
I can let you know when you can get it back though.
@Simon technically though your medal was also awarded for not causing drama.
I.e., not doing something.
No, mine was for good behavior and acting nice surely is an action!
18:29
did anybody already bring up the topic of WhatsApps Signal Protocol incorporation yet?
@SEJPM I mentioned it, but there wasn't much chat :)
@RоryMcCune :/
@RоryMcCune We don't talk anymore
what a bunch of security professionals, do not even care about 1 billion new end-to-end encryption users :/
@SEJPM it'll likely need to wait till @CodesInChaos and/or @ThomasPornin are about :)
18:31
@Matthew YOU ALWAYS FORGET
YOU DONUT
@Matthew but we still talk Security :)
I know...
@SEJPM Is it actually end-to-end? Or does Facebook still have access?
@Matthew it now deploys the Signal Protocol (formerly known as Axolotl, an improved version of OTR)
I'm reading the whitepaper right now
@SEJPM But does it apply that between userA and userB or between userA-Facebook, and Facebook-userB? I've not investigated in detail, I will admit
@Matthew it's end-2-end using the signal protocol
so there should be no facebook opportunity to decrypt
18:35
@Matthew it says it's end-to-end and you can actually verify the other party
@RоryMcCune That's good then. I like this. I might actually use it...
and unless they've left a dynamic code push backdoor in their mobile app, apart from upgrades it wouldn't be easily removable
@Matthew yeah I wish there was a desktop client too, then it would be even better
but they don't seem too interested in that.
Would clash with Facebook messenger too much?
@RоryMcCune there is...
@SEJPM ooh wherebouts, I was looking but couldn't easily find it.
I found some unofficial clients and a web client
@SEJPM You edited that to add ellipsis?
@RоryMcCune it was pointed out on HN that actually while it might be e2e, we have no idea how many keys the messages are encrypted for. It's conceivable (although hopefully RE will prove it wrong) that the client could encrypt for a WhatsApp key and share all your messages with them.
You might just be the worst human being on earth.
@Simon YES
@SEJPM but I'd guess the web client can't do end-2-end
18:37
YOU'RE A BAD PERSON
COME HERE YOU GOTTA GET WHIPPED 1500 TIMES
@diagprov yeah backdoors are still possible, but I'd guess harder to pull off
@diagprov there are ways to confirm the use of the protocol
@RоryMcCune indeed.
somebody will do this soon(tm), I'm sure
I'd be even happier with an open implementation, so could choose my app and infrastructure - XMMP with full end to end, for example
18:41
one difference between WhatsApp and Signal: WhatsApp uses Server-side fanout for group chats and Signal uses Client-side fanout, thus Whatsapp can still build group chats social graphs as opposed to OpenWhisperSystems
@SEJPM yeah that's why I said RE might confirm it. If every message happens to use SenderKeys with multiple keys even with one contact, you know they're up to no good.
other interesting fact: IIRC Signal uses ZRTP for voice encryption, WhatsApp uses SRTP
I'd like to use a such encryption with my donut to make sure that no one intercepts our xox's.
Noise pipes (AES/GCM/Curve25519/SHA256) is used for Client-Server encryption
@SEJPM that's a shame, but then, almost nobody uses ZRTP.
18:45
@SEJPM What's the purpose of this?
What happens once you scan the code?
@Simon idk
@Simon I guess it syncs your phone with your browser and authorizes your browser
^^^ the library used by WhatsApp (as per their Whitepaper)
That'd be cool.
hey @Simon found a pic of you on the Internet!
om
I might just go get a dozen donuts and eat that for dinner.
18:50
I wasn't even born in 2006.
^^ ZRTP, SRTP, ... VoIP protocol comparison
TL;DR: ZRTP is a key negotiation protocol apparently and SRTP is a data transfer protocol
and if you have a means for a secure key exchange (e.g. Signal Protocol / Axolotl) you can skip ZRTP and start outright with SRTP
"Signal voice calls are encrypted with the RedPhone encryption protocol, which is based on the ZRTP key-agreement protocol (developed by Phil Zimmermann) and SRTP."
@FiloSottile The desktop client is a view onto your phone, and the connection between desktop and phone is e2e.
^answer to the web client E-2-E thing
that's an interesting approach for sure
so the website essentially mirrors what's on the phone
unusual
@RоryMcCune how else would you implement multi target e2e?
wat
Offline messaging to multiple devices doesn't play nicely with forward secrecy.
18:54
o
@CodesInChaos each message has it's own key
a bunch of one-time (public) keys are buffered on the server
@SEJPM well I'd have thought they'd have a full desktop client (windows/osx/linux) and it would be a first class citizen with the mobile clients
@SEJPM But if one device doesn't read the messages, its keys will be around forever.
rather than have the web be this kind of proxy for the mobile client
so bad for forward secrecy.
18:55
@SEJPM one user can (I presume) already have multiple mobile devices, so they must handle multi device stuff
@CodesInChaos the keys get removed after they were used and the server apparently opts for "error on the sender" rather than "loose FS"
@SEJPM But if one device doesn't read messages for a week, it can't delete its keys for a week. And all messages in the mean time will be vulnerable.
@RоryMcCune phone was there first and as soon as you switch your primary client, your long term keys change and the other end gets a security warning
@SEJPM sure you should get told when the keys change, that doesn't preclude multiple clients per user
@CodesInChaos I'm not sure if you're still talking about FS as I know it (each message has it's own unique, strong key), because buffering public keys doesn't count as "breaking FS" AFAIK
18:59
Hello Everyone.
@RоryMcCune a) the protocol was designed to be 1-1 b) if there were multiple clients, this would actually be kinda bad (?) because Facebook may add itself as standard recipient silently if the protocol allows such things, right now the recipient would just drop a malformed message (i.e. multiple recipients)
Also, the WhatsApp security guide is no fun to read. I only enjoy reading crypto specifications when they're broken.
The beautiful thing is: once you have a secure messaging channel, the security for phone calls is simple. https://t.co/2TmYnkDEtI
@SEJPM huh seems a bit of a limitation, you would've thought it would be possible to have a master key for the user and explicitly authorize sub-keys to enable individual devices, but then I'm no cryptographer, so i am likely wrong
@RоryMcCune I'd say the reason here is: "Hey, this is an awesome protocol, please don't mess with it", using a e2e proxy is the easiest (modular) solution which can be independently (of the main IM protocol) verified secure (even by non-cryptographers)
@MarkBuffalo Heil NSA. Your hobby of spying and data-mining WhatsApp messages is gone
@SEJPM I view FS as "how much of my old messages can be decrypted if an endpoint gets compromised"
@SEJPM lulz
I'm not NSA
19:05
@SEJPM Is that meant ironically? Because voice is actually not that easy to encrypt: it has very leaky timing side channels
@Gilles this is serious
voice messages are easy, but phone calls aren't
@SEJPM and no its not ;)
The selectors still exist
They'll wait for it to be broken and decrypt
@Gilles the message is written by a cryptographer, codec related stuff wasn't taken into account there, but only raw data security
@CodesInChaos every old message is vulnerable, because you stored them!
I think FS is more about, "my endpoint got compromised today, will an attacker be able to read tomorrow's messages (passively)"?
@MarkBuffalo they're using Signal Protocol (aka Axolotl) which has already withstood cryptanalysis for years
Also, compromising either end point = your unencrypted data. If I were NSA, I wouldn't care
19:12
@SEJPM Actually, quite the opposite. Say you interface with a system on 300 consecutive days. Days 1-100 are all fine, everything's hunky-dory. On day 101 an attacker starts sniffing your network and somehow simultaneously compromises your main encryption key. You move along blissfully unaware until day 201. Once you discover the compromise, you nuke from orbit, kick the attacker out of his MitM spot, change keys, and resume business until the end of the story at day 300.
@Iszi nice explanation, thank you!
@SEJPM Without PFS, all transmissions from day 1-200 would be vulnerable if the attacker somehow was able to get the chunk of time he was missing. With PFS, only days 101-200 are vulnerable even if the attacker somehow finds the traffic from 1-100.
@SEJPM that'd be "future secrecy", which is part of the self-healing ratchet in axolotl.
@CodesInChaos, I'm sorry about being wrong :(
I don't there is one "correct" definition
19:16
> In cryptography, forward secrecy (FS; also known as perfect forward secrecy[1]) is a property of secure communication protocols in which compromise of long-term keys does not compromise past session keys.
In cryptography, forward secrecy (FS; also known as perfect forward secrecy) is a property of secure communication protocols in which compromise of long-term keys does not compromise past session keys. Forward secrecy protects past sessions against future compromises of secret keys or passwords. If forward secrecy is utilized, encrypted communications and sessions recorded in the past cannot be retrieved and decrypted should long-term secret keys or passwords be compromised in the future, even if the adversary actively interfered. == History == The term "perfect forward secrecy" was coined by C...
even was in the HAC apparently :(
In fact, even if the attacker has your keys, good PFS should ensure the protection of days 101-200 unless the attacker is actually resident on one of the endpoints instead of just MitM.
For offline messages it gets trickier, because there is no clear distinction between long and short term keys.
@MarkBuffalo I thought you were NSA.
@Iszi the only government I've ever worked for was a tribal government
Also, to all: Forgive me if I'm jumping in and covering territory you've already been through. Was AFK for a bit, and didn't trawl log.
@MarkBuffalo Right, the Navajo-Seminole Alliance. NSA. ;-) #TotallyNotRacist
19:19
Baha
> buffalos are the NSA
:|
I'm not saying anything.
@MarkBuffalo #NSAconfirmed
DJB suggested renaming FS to "key erasure".
@CodesInChaos I guess the closest you'd get is that a compromise of the key that identifies you doesn't compromise the keys you have created on a per-message basis that you intend to throw away once the message is delivered.
19:31
@diagprov I don't think that's a good definition, since it doesn't preclude long term encryption keys.
I don't like viewing FS as something you have or don't have. It's more about windows of vulnerability.
@CodesInChaos better?
@CodesInChaos well you do have it, assuming you haven't done something silly, but only from the moment you dispose of the ephemeral keys.
So long as those keys are required to exist, they can be stolen.
For example even a ephemeral DH TLS connection remains vulnerable until it gets closed.
Compare that with Noise, where you rotate keys after each message.
@CodesInChaos isn't it per record?
@diagprov I doubt it. Pretty sure it's only per-connection.
'evening
19:35
And if you have multiple devices and don't use one of them for a long time, it'll keep its keys around for a long time, you're vulnerable for a long time.
Which is why I said that multiple devices doesn't play well with FS.
@CodesInChaos huh some how I have it in my head it was per record. Maybe I am being too optimistic :) I will find out though.
@CodesInChaos yeah you're right, I was being way too optimistic.

« first day (1937 days earlier)      last day (3241 days later) »