[{"author": "Daniel Gillmor", "text": "<p>are we meeting here, or will there be an ietf-117 subchannel?</p>", "time": "2023-07-24T20:04:19Z"}, {"author": "Jonathan Lennox", "text": "<p>This is what's reflected in the meetecho chat</p>", "time": "2023-07-24T20:04:43Z"}, {"author": "Daniel Gillmor", "text": "<p>there we go, thanks <span class=\"user-mention\" data-user-id=\"426\">@Jonathan Lennox</span></p>", "time": "2023-07-24T20:04:56Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>Not like that. Rooms are owned by participants. Not servers.</p>", "time": "2023-07-24T20:09:08Z"}, {"author": "Martin Thomson", "text": "<p>I wonder if anyone who was involved in the P2P messaging stuff at Skype is here and can comment on whether it makes sense to have a distributed \"owner\"</p>", "time": "2023-07-24T20:10:00Z"}, {"author": "Ross Schulman", "text": "<p>Is there a video feed for today's meeting? I can listen to the audio stream but I am getting \"Unauthorized\" when I try to log into the video stream.</p>", "time": "2023-07-24T20:10:08Z"}, {"author": "Alissa Cooper", "text": "<p>@Ross maybe reload your web client? video is streaming from the room in the full client.</p>", "time": "2023-07-24T20:10:41Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>@Ross, the slides are about authorization...</p>", "time": "2023-07-24T20:10:42Z"}, {"author": "Nick Doty", "text": "<p>I'm seeing video streams and slides in meetecho here: <a href=\"https://meetecho.ietf.org/conference/?group=mimi\">https://meetecho.ietf.org/conference/?group=mimi</a></p>", "time": "2023-07-24T20:10:58Z"}, {"author": "Ross Schulman", "text": "<p>Chrome and Firefox are giving me the same. Its ok, though I'll just listen!</p>", "time": "2023-07-24T20:12:21Z"}, {"author": "Pete Resnick", "text": "<p><span class=\"user-mention\" data-user-id=\"793\">@Rohan Mahy</span> I would still put sequencing arbitration in the \"hub\" category. It's not clear that such arbitration is a \"policy\" function.</p>", "time": "2023-07-24T20:13:42Z"}, {"author": "Konrad Kohbrok", "text": "<p>Sequencing could be another type of ownership.</p>", "time": "2023-07-24T20:14:49Z"}, {"author": "Pete Resnick", "text": "<p>Possibly.</p>", "time": "2023-07-24T20:15:44Z"}, {"author": "Andrew Sullivan", "text": "<p>You kind of have to permit them to have different opinions about what the policy should be, because the competing \"owners\" could be under incompatible legal/regulatory regimes that require enforcement of the minimal compatible subset, no?</p>", "time": "2023-07-24T20:17:41Z"}, {"author": "Pete Resnick", "text": "<p>There's a category of stuff (which seems to me to include sequencing) where no server should care which of the servers takes on the function. Then there are policies, where servers might disagree.</p>", "time": "2023-07-24T20:17:55Z"}, {"author": "Pete Resnick", "text": "<p>Are there policies envisioned where the implementation of the policy is other than \"deliver the message/don't deliver the message\"?</p>", "time": "2023-07-24T20:19:42Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>The MIMI charter assumes we are building gateways. The WG participants assume we are building gateways.</p>\n<p>And yet, that is what email was before SMTP reached critical mass and suddenly everything else was first legacy and then obsolete.</p>", "time": "2023-07-24T20:20:26Z"}, {"author": "Travis Ralston", "text": "<p>There's some policies related to features as well. For example, whether it's possible to \"knock\" on a room and whether that action was legal.</p>", "time": "2023-07-24T20:21:06Z"}, {"author": "Nick Doty", "text": "<p>wouldn't it be possible for servers to have incompatible policies? Server B can block all messages from Person X, even if Server A owns the room and allows Person X</p>", "time": "2023-07-24T20:22:13Z"}, {"author": "Alissa Cooper", "text": "<p>Rohan just addressed this -- the way you manage through incompatible policies in the presence of an owning server is having clients of non-owning servers not able to join if the non-owning server's is incompatible with the policy chosen by the client of the owning server.</p>", "time": "2023-07-24T20:23:49Z"}, {"author": "Konrad Kohbrok", "text": "<p>Are we assuming that policies are fixed for the lifetime of the room?</p>", "time": "2023-07-24T20:24:13Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>@Nick, everyone can have whatever limitations they like on day 1. But then they will have to explain to their users why they don't do X. And it is usually easier (and cheaper) to write code than explanations.</p>", "time": "2023-07-24T20:24:29Z"}, {"author": "Jonathan Lennox", "text": "<p>Does this require that owning services describe their policies honestly?</p>", "time": "2023-07-24T20:24:31Z"}, {"author": "Konrad Kohbrok", "text": "<p>Whoever does the sequencing of messages can decide not to accept a commit and not tell anyone that that happened. I don't think there is a lot we can do about that.</p>", "time": "2023-07-24T20:25:31Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>@Konrad, surely we are going to need policies of the sort 'everyone from the Marketing Group'. Which need to be standing policies.</p>", "time": "2023-07-24T20:25:37Z"}, {"author": "Nick Doty", "text": "<p>+1 for user transparency into how the room is administered</p>", "time": "2023-07-24T20:26:01Z"}, {"author": "Jonathan Rosenberg", "text": "<p>You could have policies set by the hub, which are enforced by clients (because they are inside the envelope) by distributing the policy to the clients from the hub</p>", "time": "2023-07-24T20:27:00Z"}, {"author": "Konrad Kohbrok", "text": "<p>@Phillip I agree. But do we also need to be able to change policies as well? At least in my mind that would complicate things.</p>", "time": "2023-07-24T20:27:02Z"}, {"author": "Konrad Kohbrok", "text": "<p>The easiest would probably be to put the policy as an extension into the MLS group state, which means that clients know and agree on the policy.</p>", "time": "2023-07-24T20:27:46Z"}, {"author": "Martin Thomson", "text": "<p>If the rule is \"kick users who mention nazis\" (Godwin's law), then the enforcer needs to be in the room.  If you want that to be enforced before the message is forwarded, then the enforcer also needs to receive the message before forwarding.  Totally doable, but maybe not desirable.</p>", "time": "2023-07-24T20:29:02Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>Umm, the server has no idea who is in the group in my chat protocol.</p>", "time": "2023-07-24T20:29:07Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>@Martin, the way I enforce that in an E2E scheme is every message is moderated. So Alice makes a post, Bob's client checks for policy compliance and if so, tells the service to redistribute.</p>", "time": "2023-07-24T20:30:48Z"}, {"author": "Martin Thomson", "text": "<p>How do you prevent Carol from seeing the message then?  Is Bob a moderator that gets the message first?</p>", "time": "2023-07-24T20:32:04Z"}, {"author": "Konrad Kohbrok", "text": "<p>@Phillip But then wouldn't Bob have to be online at the moment the message is distributed?</p>", "time": "2023-07-24T20:32:10Z"}, {"author": "Andrew Morgan", "text": "<p>If servers want to be able to evaluate the policies of other providers, then surely we do need a set of common policy definitions.</p>", "time": "2023-07-24T20:32:45Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>@martin, the message is initially encrypted so only the moderator's clients can decrypt it. Then it is re-encrypted under the room key.</p>", "time": "2023-07-24T20:33:12Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>@Konrad, If you need that level of moderation, there will have to be at least one party in the conversation that can decrypt the message prior to general release. It does not necessarily mean Bob having to click 'approve' 'approve', there can be automation.</p>", "time": "2023-07-24T20:34:46Z"}, {"author": "Konrad Kohbrok", "text": "<p><span aria-label=\"+1\" class=\"emoji emoji-1f44d\" role=\"img\" title=\"+1\">:+1:</span>\ud83c\udffb</p>", "time": "2023-07-24T20:35:04Z"}, {"author": "Pete Resnick", "text": "<p>Maybe it's because I don't understand available MLS mechanisms, but I'm still not clear how \"closed/open\" gets implemented (without being inside the encryption envelope). (Logging seems like just another client, not a policy enforceable by the server.)</p>", "time": "2023-07-24T20:39:21Z"}, {"author": "Martin Thomson", "text": "<p>isn't enforce thrice?</p>", "time": "2023-07-24T20:40:03Z"}, {"author": "Daniel Gillmor", "text": "<p>That's a policy that makes it possible to block messages that should <em>not</em> have been allowed.  But it doesn't let the clients <em>accept</em> a message that the server decided to <em>block</em> against policy.</p>", "time": "2023-07-24T20:40:07Z"}, {"author": "Martin Thomson", "text": "<p>that is, don't the non-owning servers have a potential role in enforcement?</p>", "time": "2023-07-24T20:40:16Z"}, {"author": "Daniel Gillmor", "text": "<p><span class=\"user-mention\" data-user-id=\"26\">@Martin Thomson</span> right, but there's an asymmetry between block and accept.</p>", "time": "2023-07-24T20:40:42Z"}, {"author": "Daniel Gillmor", "text": "<p><em>any</em> enforcer can block, but <em>all</em> enforcers must accept</p>", "time": "2023-07-24T20:41:00Z"}, {"author": "Nick Doty", "text": "<p>be conservative in what you enforce before sending?</p>", "time": "2023-07-24T20:41:05Z"}, {"author": "Travis Ralston", "text": "<p><span class=\"user-mention\" data-user-id=\"139\">@Pete Resnick</span> MLS supports a way for clients to say \"I'm adding this person, but you can't see the key material for that\" (and it's authenticated)</p>", "time": "2023-07-24T20:41:06Z"}, {"author": "Martin Thomson", "text": "<p><span class=\"user-mention\" data-user-id=\"637\">@Daniel Gillmor</span> not following you entirely</p>", "time": "2023-07-24T20:41:17Z"}, {"author": "Martin Thomson", "text": "<p>blocking what? accepting what?</p>", "time": "2023-07-24T20:41:26Z"}, {"author": "Daniel Gillmor", "text": "<p>if the server blocks a message from distribution (based on whatever policy), then the receiving client can't tell that they've deviated from the published policy.</p>", "time": "2023-07-24T20:41:53Z"}, {"author": "Martin Thomson", "text": "<p>ah, good point, but I don't think that there is much recourse for a client in that position</p>", "time": "2023-07-24T20:42:11Z"}, {"author": "Daniel Gillmor", "text": "<p>aren't all clients in that position?</p>", "time": "2023-07-24T20:42:23Z"}, {"author": "Martin Thomson", "text": "<p>yeah, you are somewhat dependent on your server passing your messages in</p>", "time": "2023-07-24T20:42:40Z"}, {"author": "Phillip Hallam-Baker", "text": "<p>@Martin, what about the UK hub which filters everything for OSB compliance?</p>", "time": "2023-07-24T20:42:56Z"}, {"author": "Pete Resnick", "text": "<p><span class=\"user-mention\" data-user-id=\"637\">@Daniel Gillmor</span> If the server is outside the envelope, on what policy <em>could</em> it block a message?</p>", "time": "2023-07-24T20:42:59Z"}, {"author": "Jonathan Rosenberg", "text": "<p>To be clear - i was specifying a slight change to Richard's strawman - that we don't say \"enforced by the server\" but rather \"enforced by the server and client\"</p>", "time": "2023-07-24T20:43:01Z"}, {"author": "Martin Thomson", "text": "<p>for a case where your server isn't the hub/owner, then you are also subject to rules at the owning server</p>", "time": "2023-07-24T20:43:05Z"}, {"author": "Benjamin Schwartz", "text": "<p>It's certainly possible to make moderation work by flagging, and make selective removal of messages impossible</p>", "time": "2023-07-24T20:43:05Z"}, {"author": "Daniel Gillmor", "text": "<p><span class=\"user-mention\" data-user-id=\"139\">@Pete Resnick</span> maybe based on timing, provenance, or size?</p>", "time": "2023-07-24T20:43:26Z"}, {"author": "Benjamin Schwartz", "text": "<p>What does having a hub do to migration of rooms across providers?</p>", "time": "2023-07-24T20:45:39Z"}, {"author": "Martin Thomson", "text": "<p>there is another one, wherein messages are sent from the home server of the client directly to all servers - though that would depend on the state of the being group known</p>", "time": "2023-07-24T20:46:37Z"}, {"author": "Daniel Gillmor", "text": "<p><span class=\"user-mention\" data-user-id=\"26\">@Martin Thomson</span>  that's the <em>other</em> CSSC (but the S's are different S's)</p>", "time": "2023-07-24T20:47:45Z"}, {"author": "Nick Doty", "text": "<p>\"client-server API\" sounded to me like an API for each client to talk to their home server ... so that there can be interoperable clients that can work with different server providers</p>", "time": "2023-07-24T20:48:05Z"}, {"author": "Pete Resnick", "text": "<p>If it looks just like another hub connecting, then it <em>is</em> a hub.</p>", "time": "2023-07-24T20:48:17Z"}, {"author": "Martin Thomson", "text": "<p>right, whch addresses JDR's concern, but creates a state consistency issue</p>", "time": "2023-07-24T20:48:19Z"}, {"author": "Pete Resnick", "text": "<p>s/hub/server</p>", "time": "2023-07-24T20:48:36Z"}, {"author": "Pete Resnick", "text": "<p>A single-client server is fine. An open access server that lets random clients join is fine (well, bad, but fine as far as protocol goes). CSSC is bad.</p>", "time": "2023-07-24T20:51:28Z"}, {"author": "Daniel Gillmor", "text": "<p>the CSSSC model is the same as an SMTP mailing list -- we have a lot of history of dealing with that.</p>", "time": "2023-07-24T20:52:49Z"}, {"author": "Konrad Kohbrok", "text": "<p>The CSSC model can also prevent  leaking to my own server to which other server(s) I'm talking. So if at some point we discuss metadata, that might be an interesting consideration.</p>", "time": "2023-07-24T20:55:55Z"}, {"author": "Konrad Kohbrok", "text": "<p>*talking to</p>", "time": "2023-07-24T20:56:11Z"}, {"author": "Harald Alvestrand", "text": "<p>I keep hearing this word \"simultaneously\" - I don't understand what it means....</p>", "time": "2023-07-24T20:59:17Z"}, {"author": "Murray Kucherawy", "text": "<p>It's all about timing.</p>", "time": "2023-07-24T21:00:38Z"}, {"author": "Martin Thomson", "text": "<p><span class=\"user-mention\" data-user-id=\"1449\">@Harald Alvestrand</span> it's a tic, but I hope you understand the concept of race conditions</p>", "time": "2023-07-24T21:00:40Z"}, {"author": "Richard Barnes", "text": "<p>Strawman for consensus</p>\n<ul>\n<li>At any given time, a room has an \"owning provider\"<ul>\n<li>The owning provider is a transport-level hub for events within the room</li>\n<li>The owning provider unilaterally sets the policy envelope for the room</li>\n<li>Over the life of the room, the owning provider might change</li>\n</ul>\n</li>\n<li>Clients specify the details of the policy within the policy envelope</li>\n<li>All clients and servers involved in a room have a consistent view of the policy for the room</li>\n<li>All servers involved in a room enforce the policy for the room</li>\n</ul>", "time": "2023-07-24T21:01:17Z"}, {"author": "Daniel Gillmor", "text": "<p><span class=\"user-mention\" data-user-id=\"2069\">@Konrad Kohbrok</span> won't the backflow in CSSC (of your own messages in the chat to your own client) make it clear to your server that you're involved in a chat with that server?</p>", "time": "2023-07-24T21:01:33Z"}, {"author": "Benjamin Schwartz", "text": "<p><span class=\"user-mention\" data-user-id=\"526\">@Richard Barnes</span> Is the policy envelope \"policy that can be applied from outside the encryption envelope\"?</p>", "time": "2023-07-24T21:01:58Z"}, {"author": "Martin Thomson", "text": "<p><span class=\"user-mention\" data-user-id=\"526\">@Richard Barnes</span> do you want to add that clients (or maybe even other servers) can request that the policy be changed by the owning provider?</p>", "time": "2023-07-24T21:02:11Z"}, {"author": "Travis Ralston", "text": "<p><span class=\"user-mention\" data-user-id=\"526\">@Richard Barnes</span> can we get definitions added to ralston-mimi-terminolgy please? <span aria-label=\"innocent\" class=\"emoji emoji-1f607\" role=\"img\" title=\"innocent\">:innocent:</span></p>", "time": "2023-07-24T21:02:36Z"}, {"author": "Konrad Kohbrok", "text": "<p><span class=\"user-mention\" data-user-id=\"637\">@Daniel Gillmor</span>  True. It certainly depends on the specifics of the fan-out protocol. But at least there's the possibility.</p>", "time": "2023-07-24T21:02:39Z"}, {"author": "Martin Thomson", "text": "<p><span class=\"user-mention\" data-user-id=\"1025\">@Travis Ralston</span> isn't that your responsibility?  I'm assuming that the name match is no coincidence.</p>", "time": "2023-07-24T21:03:09Z"}, {"author": "Richard Barnes", "text": "<p><span class=\"user-mention\" data-user-id=\"1025\">@Travis Ralston</span> - Yes, though I think we need to elaborate -terminology into -architecture</p>", "time": "2023-07-24T21:03:42Z"}, {"author": "Benjamin Schwartz", "text": "<p>I think we should consider keying each message from a hash of the previous message, so that messages cannot be removed from the room once admitted.  Then we can be sure that all servers are applying a strictly consistent view of the \"policy envelope\"</p>", "time": "2023-07-24T21:03:59Z"}, {"author": "Richard Barnes", "text": "<p><span class=\"user-mention\" data-user-id=\"2424\">@Benjamin Schwartz</span> - No, that means \"the range of acceptable policies\"</p>", "time": "2023-07-24T21:04:03Z"}, {"author": "Travis Ralston", "text": "<p><span class=\"user-mention\" data-user-id=\"26\">@Martin Thomson</span>  the draft is largely treated as a WG item without being a WG item (yet?). (it is technically my problem though, yes)</p>", "time": "2023-07-24T21:04:09Z"}, {"author": "Richard Barnes", "text": "<p><span class=\"user-mention\" data-user-id=\"26\">@Martin Thomson</span> - That's what i mean by \"Clients specify the details of the policy\".  I don't think clients can request changes to the policy <em>envelope</em> that the owning provider sets</p>", "time": "2023-07-24T21:04:50Z"}, {"author": "Konrad Kohbrok", "text": "<p><span class=\"user-mention silent\" data-user-id=\"2424\">Benjamin Schwartz</span> <a href=\"#narrow/stream/354-mimi/topic/ietf-117/near/79337\">said</a>:</p>\n<blockquote>\n<p>I think we should consider keying each message from a hash of the previous message, so that messages cannot be removed from the room once admitted.  Then we can be sure that all servers are applying a strictly consistent view of the \"policy envelope\"</p>\n</blockquote>\n<p>MLS already does that, at least for handshake-type messages. Application type messages are trickier, because they are not ordered.</p>", "time": "2023-07-24T21:04:58Z"}, {"author": "Martin Thomson", "text": "<p><span class=\"user-mention\" data-user-id=\"526\">@Richard Barnes</span> thanks, that helps</p>", "time": "2023-07-24T21:05:24Z"}, {"author": "Cullen Jennings", "text": "<p>I agree with Rohan on we need a design that facilitates batch processing of large number of messages.</p>", "time": "2023-07-24T21:05:52Z"}, {"author": "Raphael Robert", "text": "<p><span class=\"user-mention silent\" data-user-id=\"2069\">Konrad Kohbrok</span> <a href=\"#narrow/stream/354-mimi/topic/ietf-117/near/79341\">said</a>:</p>\n<blockquote>\n<p><span class=\"user-mention silent\" data-user-id=\"2424\">Benjamin Schwartz</span> <a href=\"#narrow/stream/354-mimi/topic/ietf-117/near/79337\">said</a>:</p>\n<blockquote>\n<p>I think we should consider keying each message from a hash of the previous message, so that messages cannot be removed from the room once admitted.  Then we can be sure that all servers are applying a strictly consistent view of the \"policy envelope\"</p>\n</blockquote>\n<p>MLS already does that, at least for handshake-type messages. Application type messages are trickier, because they are not ordered.</p>\n</blockquote>\n<p>And for application messages we potentially have the AppAck extension.</p>", "time": "2023-07-24T21:05:53Z"}, {"author": "Richard Barnes", "text": "<p><span class=\"user-mention\" data-user-id=\"2424\">@Benjamin Schwartz</span> The standard approach to this is a \"causality DAG\", where each message includes a hash of its predecessors (not plural, though, bc async).  It could be added on top of MLS, in principle.</p>", "time": "2023-07-24T21:06:13Z"}, {"author": "Benjamin Schwartz", "text": "<p><span class=\"user-mention\" data-user-id=\"526\">@Richard Barnes</span> Not just including a hash, but being keyed off of that hash, so that the message is not decipherable without its preceding messages.  That ensures that servers don't apply differing policies, as that would immediately render the room unusable.</p>", "time": "2023-07-24T21:07:42Z"}, {"author": "Benjamin Schwartz", "text": "<p>But this is mostly a detail.  My point is that we should be cautious about providing servers with the technical ability to implement differing policies.</p>", "time": "2023-07-24T21:08:52Z"}, {"author": "Pete Resnick", "text": "<p>IMAP has been doing this asynchronous stuff just fine for a long time.</p>", "time": "2023-07-24T21:11:05Z"}, {"author": "Pete Resnick", "text": "<p>We know how to do this stuff without the client \"helping\".</p>", "time": "2023-07-24T21:11:26Z"}, {"author": "Daniel Gillmor", "text": "<p>trouble is that a DAG represents the actual causality pretty well.  but it can't be easily be displayed in a way that humans understand.</p>", "time": "2023-07-24T21:11:31Z"}, {"author": "Pete Resnick", "text": "<p>Submarines ought not batch at the upper layer. They should buffer at the lower layer.</p>", "time": "2023-07-24T21:13:52Z"}, {"author": "Daniel Gillmor", "text": "<p>(note that \"represents the actual causality pretty well\" only works for messages where the parentage relationship is cryptographically strong pointers (e.g., digests).  Otherwise, there is the possibility of maliciously (or accidentally) injected cycles, at which point it's no longer a DAG.</p>", "time": "2023-07-24T21:13:52Z"}, {"author": "Benjamin Schwartz", "text": "<p><span class=\"user-mention\" data-user-id=\"637\">@Daniel Gillmor</span> I don't think we need the DAG to be user-visible at all.  The idea I'm floating is that if a message reaches some users but not others, this quickly breaks the room.  That allows servers to say \"sorry, I don't have the technical ability to drop certain messages\".</p>", "time": "2023-07-24T21:14:00Z"}, {"author": "Martin Thomson", "text": "<p>I will also point out that batching is harder to specify and implement, which for a questionable performance gain is probably not worth it</p>", "time": "2023-07-24T21:14:56Z"}, {"author": "Daniel Gillmor", "text": "<p><span class=\"user-mention silent\" data-user-id=\"139\">Pete Resnick</span> <a href=\"#narrow/stream/354-mimi/topic/ietf-117/near/79390\">said</a>:</p>\n<blockquote>\n<p>Submarines ought not batch at the upper layer. They should buffer at the lower layer.</p>\n</blockquote>\n<p>upper meaning above the surface of the ocean?</p>", "time": "2023-07-24T21:14:58Z"}, {"author": "Konrad Kohbrok", "text": "<p><span class=\"user-mention\" data-user-id=\"2424\">@Benjamin Schwartz</span> This is already built into MLS. At least for messages the server can read. For the others, we might be able to build something like <span class=\"user-mention\" data-user-id=\"526\">@Richard Barnes</span> suggested and, for example, feed it into the MLS key schedule.</p>", "time": "2023-07-24T21:16:35Z"}, {"author": "Benjamin Schwartz", "text": "<p><span class=\"user-mention\" data-user-id=\"2069\">@Konrad Kohbrok</span> Yes, I'm talking about the end-to-end application messages.</p>", "time": "2023-07-24T21:17:17Z"}, {"author": "Martin Thomson", "text": "<p>isn't a linearized matrix a vector?</p>", "time": "2023-07-24T21:17:51Z"}, {"author": "Harald Alvestrand", "text": "<p>Batching can be problematic if the server you're talking to is in fact a distributor for a set of backend servers - it has to break up the batch, and forcing it to reassemble the responses is a large architectural burden. If the operations in the batch can be answered directly and separately, the batching is no more useful than sending all the messages end-to-end on a (QUIC, I assume) connection.</p>", "time": "2023-07-24T21:17:59Z"}, {"author": "Martin Thomson", "text": "<p>that you might remove encryption entirely seems like an undesirable \"feature\"</p>", "time": "2023-07-24T21:21:09Z"}, {"author": "Andrew Morgan", "text": "<p>I largely agree, but in some private deployments, potentially with very low-bandwidth or high-latency requirements, you may not want encryption.</p>", "time": "2023-07-24T21:22:14Z"}, {"author": "Britta Hale", "text": "<p><span class=\"user-mention\" data-user-id=\"1449\">@Harald Alvestrand</span>  That depends on the computational power of respective points (clients vs distributor, etc.) and potentially bandwidth differences as well.</p>", "time": "2023-07-24T21:22:47Z"}, {"author": "Daniel Gillmor", "text": "<p><span class=\"user-mention\" data-user-id=\"1921\">@Andrew Morgan</span> perhaps in that environment MLS/MIMI is not the appropriate technology choice.</p>", "time": "2023-07-24T21:22:57Z"}, {"author": "Martin Thomson", "text": "<p>Can we do CSSSC over ATSSS?</p>", "time": "2023-07-24T21:24:01Z"}, {"author": "Richard Barnes", "text": "<p>Matthew is operating at about 0.8 EKR</p>", "time": "2023-07-24T21:24:01Z"}, {"author": "Benjamin Schwartz", "text": "<p>\"h2c\" (cleartext HTTP/2) seems like a good precedent here: the unencrypted form of the protocol does exist for testing and unusual cases, but in practice it is not possible to deploy it for public use.</p>", "time": "2023-07-24T21:24:16Z"}, {"author": "Richard Barnes", "text": "<p><span class=\"user-mention\" data-user-id=\"2424\">@Benjamin Schwartz</span> that's exactly what i enqueued to say</p>", "time": "2023-07-24T21:24:28Z"}, {"author": "Martin Thomson", "text": "<p>In retrospect, a great number of people regard \"h2c\" as a mistake.  At best, it was a waste of effort.</p>", "time": "2023-07-24T21:24:58Z"}, {"author": "Andrew Morgan", "text": "<p>Going back to the room policy agreement discussion, if someone does try it in the wild you can refuse to participate in a group that does not have encrypted messaging.</p>", "time": "2023-07-24T21:25:25Z"}, {"author": "Nick Doty", "text": "<p>is there any significant cost to creating a new room? banning spammers one by one and having to create a new room every time could become a frequent operation</p>", "time": "2023-07-24T21:25:30Z"}, {"author": "Martin Thomson", "text": "<blockquote>\n<p>The \"h2c\" string was previously used as a token for use in the HTTP Upgrade mechanism's Upgrade header field (Section 7.8 of [HTTP]). This usage was never widely deployed and is deprecated by this document. The same applies to the HTTP2-Settings header field, which was used with the upgrade to \"h2c\".</p>\n</blockquote>\n<p>-- <a href=\"https://datatracker.ietf.org/doc/html/rfc9113#section-3.1-2.2.1\">https://datatracker.ietf.org/doc/html/rfc9113#section-3.1-2.2.1</a></p>", "time": "2023-07-24T21:25:53Z"}, {"author": "Richard Barnes", "text": "<p><span class=\"user-mention\" data-user-id=\"550\">@Nick Doty</span> seems like a local provider policy decision</p>", "time": "2023-07-24T21:26:03Z"}, {"author": "Konrad Kohbrok", "text": "<p>MLS is extensible. You can always extend it with a proprietary extension that defines an unencrypted application message.</p>", "time": "2023-07-24T21:26:24Z"}, {"author": "Richard Barnes", "text": "<p>not helpful <span class=\"user-mention\" data-user-id=\"2069\">@Konrad Kohbrok</span> :)</p>", "time": "2023-07-24T21:26:38Z"}, {"author": "Martin Thomson", "text": "<p><span class=\"user-mention\" data-user-id=\"2069\">@Konrad Kohbrok</span> but you should not do that</p>", "time": "2023-07-24T21:26:38Z"}, {"author": "Raphael Robert", "text": "<p>The MLSWG would strongly push back on such an extension I think</p>", "time": "2023-07-24T21:27:32Z"}, {"author": "Daniel Gillmor", "text": "<p>we have the same argument all the time in SSH (\"what about authenticated cleartext for ham radio operators?\") and TLS itself (\"why not an authenticated only mode with NULL encryption algorithm?\").  let's just not.</p>", "time": "2023-07-24T21:27:37Z"}, {"author": "Martin Thomson", "text": "<p>Just as the TLS WG now pushes back against NULL ciphersuites</p>", "time": "2023-07-24T21:27:47Z"}, {"author": "Konrad Kohbrok", "text": "<p>That's why I said _proprietary_.</p>", "time": "2023-07-24T21:28:11Z"}, {"author": "Raphael Robert", "text": "<p><span class=\"user-mention silent\" data-user-id=\"526\">Richard Barnes</span> <a href=\"#narrow/stream/354-mimi/topic/ietf-117/near/79445\">said</a>:</p>\n<blockquote>\n<p>Matthew is operating at about 0.8 EKR</p>\n</blockquote>\n<p>And now EKR operates at 1.1 EKR</p>", "time": "2023-07-24T21:33:59Z"}, {"author": "Martin Thomson", "text": "<p>Let's be clear, inflation has really gotten to the EKR as a unit of measure.  One 2023 EKR is worth far less than a 2011 EKR.</p>", "time": "2023-07-24T21:35:38Z"}, {"author": "Martin Thomson", "text": "<p>this is making a really good case for MLS being the only option</p>", "time": "2023-07-24T21:37:14Z"}, {"author": "Andrew Morgan", "text": "<p>reference_hash = hash(redact(event))</p>\n<p>\"unimportant things\" like message text is removed when the event is redacted. The content hash is kept, and feeds into the reference hash.</p>", "time": "2023-07-24T21:37:18Z"}, {"author": "Nick Doty", "text": "<p>please use the mic</p>", "time": "2023-07-24T21:37:32Z"}, {"author": "Ted Hardie", "text": "<p>At level 100, you can protest your rank, and nothing else.</p>", "time": "2023-07-24T21:38:19Z"}, {"author": "Jonathan Rosenberg", "text": "<p>So auth rules in linear matrix are - linear</p>", "time": "2023-07-24T21:38:52Z"}, {"author": "Benjamin Schwartz", "text": "<p>This seems excessively linear</p>", "time": "2023-07-24T21:38:53Z"}, {"author": "Benjamin Schwartz", "text": "<p>Also I believe Telegram has more flexibility than this.</p>", "time": "2023-07-24T21:39:17Z"}, {"author": "Martin Thomson", "text": "<p>attribute-based authorization seems more flexible than this</p>", "time": "2023-07-24T21:39:28Z"}, {"author": "Jonathan Rosenberg", "text": "<p>Did I hear Matthew say that this concept can be mapped to a bunch of systems but NOT Discord?</p>", "time": "2023-07-24T21:39:31Z"}, {"author": "Daniel Gillmor", "text": "<p><span class=\"user-mention\" data-user-id=\"547\">@Jonathan Rosenberg</span> yes, that's what he said</p>", "time": "2023-07-24T21:39:43Z"}, {"author": "Jonathan Rosenberg", "text": "<p>well, that seems like a problem</p>", "time": "2023-07-24T21:39:52Z"}, {"author": "Martin Thomson", "text": "<p>that is, can add person, can remove person, etc...</p>", "time": "2023-07-24T21:40:05Z"}, {"author": "Daniel Gillmor", "text": "<p>many things have more flexibility than linear levels</p>", "time": "2023-07-24T21:40:21Z"}, {"author": "Daniel Gillmor", "text": "<p>the question is do we need the flexibility</p>", "time": "2023-07-24T21:40:31Z"}, {"author": "Martin Thomson", "text": "<p>well, usually you have the ability to add some at a lower level than the ability to kick someone, but I can imagine a moderator role that only has the ability to kick</p>", "time": "2023-07-24T21:41:06Z"}, {"author": "Mallory Knodel", "text": "<p>100 will never be as awesome as 777</p>", "time": "2023-07-24T21:41:35Z"}, {"author": "Nick Doty", "text": "<p>@chairs, will you ask Matthew to use the mic, please?</p>", "time": "2023-07-24T21:41:57Z"}, {"author": "Thom Wiggers", "text": "<p>power levels should at least go over 9000</p>", "time": "2023-07-24T21:43:33Z"}, {"author": "Pete Resnick", "text": "<p>Nobody loves fixed-point anymore.</p>", "time": "2023-07-24T21:44:00Z"}, {"author": "Andrew Morgan", "text": "<p>we have seen people often set the max power level in matrix to 9001</p>", "time": "2023-07-24T21:44:04Z"}, {"author": "Mohammad Al Abbadi", "text": "<p>The ones will overcome</p>", "time": "2023-07-24T21:45:02Z"}, {"author": "Daniel Gillmor", "text": "<p>rlidwka</p>", "time": "2023-07-24T21:45:18Z"}, {"author": "Mallory Knodel", "text": "<p>Enumerating the capabilities is more helpful than defining categories</p>", "time": "2023-07-24T21:45:36Z"}, {"author": "Martin Thomson", "text": "<p>maybe we could have a linearized matrix of bits instead of an integer</p>", "time": "2023-07-24T21:46:01Z"}, {"author": "Martin Thomson", "text": "<p>rank ordering might be determined by $\\Sum_i bit_i * 2^i$</p>", "time": "2023-07-24T21:46:43Z"}, {"author": "Raphael Robert", "text": "<p>qubits could provide even more flexibility</p>", "time": "2023-07-24T21:48:43Z"}, {"author": "Martin Thomson", "text": "<p>maybe the way to deal with different provider capabilities is to provide a function supported([capabilities]) -&gt; bool that tells client whether a given expression can be supported by the system</p>", "time": "2023-07-24T21:48:54Z"}, {"author": "Ted Hardie", "text": "<p>I left the queue here, but I was going to point out that in any ordinal system you can't assume that the two different systems have the same \"power\" unless there is a mapping to a capability.  A brigadier general has more power than an EVP, even if both are 99s in their respective systems.  So I think Alissa's point is true even if you have two different, linked systems using linearized powers.</p>", "time": "2023-07-24T21:48:57Z"}, {"author": "Richard Barnes", "text": "<p>yeah can we just enumerate capabilities here?  there are not that many</p>", "time": "2023-07-24T21:49:30Z"}, {"author": "Darrel Miller", "text": "<p>It is not clear to me what the value of the ranking is, other than a shortcut to determining capabilities that then brings a host of limitations.</p>", "time": "2023-07-24T21:49:56Z"}, {"author": "Andrew Morgan", "text": "<p><a href=\"https://www.ietf.org/rfc/rfc9232.html\">https://www.ietf.org/rfc/rfc9232.html</a></p>", "time": "2023-07-24T21:51:14Z"}, {"author": "Martin Thomson", "text": "<p>gRPC will probably result in some strong reactions</p>", "time": "2023-07-24T21:51:29Z"}, {"author": "Daniel Gillmor", "text": "<p><span class=\"user-mention silent\" data-user-id=\"526\">Richard Barnes</span> <a href=\"#narrow/stream/354-mimi/topic/ietf-117/near/79594\">said</a>:</p>\n<blockquote>\n<p>yeah can we just enumerate capabilities here?  there are not that many</p>\n</blockquote>\n<p>can we get consensus among the would-be interoperators of an exhaustive list of capabilities?</p>", "time": "2023-07-24T21:53:12Z"}, {"author": "Richard Barnes", "text": "<p>how many layers of the stack can we reinvent at once?</p>", "time": "2023-07-24T21:53:21Z"}, {"author": "Benjamin Schwartz", "text": "<p>I think \"add/remove users but not read\" admin bots and \"read but not add/remove users\" ordinary user roles are both going to be valuable, so the space is not linearizable.</p>", "time": "2023-07-24T21:53:26Z"}, {"author": "Richard Barnes", "text": "<p><span class=\"user-mention\" data-user-id=\"637\">@Daniel Gillmor</span> the nice thing about using capabilities is that you can extend the set of capabilities, and not have to touch all the combos</p>", "time": "2023-07-24T21:53:49Z"}, {"author": "Daniel Gillmor", "text": "<p>not to mention \"add but not kick\"  and \"kick but not add\"</p>", "time": "2023-07-24T21:53:58Z"}, {"author": "Daniel Gillmor", "text": "<p><span class=\"user-mention silent\" data-user-id=\"526\">Richard Barnes</span> <a href=\"#narrow/stream/354-mimi/topic/ietf-117/near/79614\">said</a>:</p>\n<blockquote>\n<p><span class=\"user-mention silent\" data-user-id=\"637\">Daniel Gillmor</span> the nice thing about using capabilities is that you can extend the set of capabilities, and not have to touch all the combos</p>\n</blockquote>\n<p>the challenge here is how to deploy a new capability across multiple interoperating providers</p>", "time": "2023-07-24T21:54:27Z"}, {"author": "Martin Thomson", "text": "<p>TLS grammar is NOT extremely compact</p>", "time": "2023-07-24T21:54:36Z"}, {"author": "Martin Thomson", "text": "<p>it's quite wasteful in a few ways</p>", "time": "2023-07-24T21:54:47Z"}, {"author": "Raphael Robert", "text": "<p><span class=\"user-mention silent\" data-user-id=\"26\">Martin Thomson</span> <a href=\"#narrow/stream/354-mimi/topic/ietf-117/near/79621\">said</a>:</p>\n<blockquote>\n<p>TLS grammar is NOT extremely compact</p>\n</blockquote>\n<p>Forgot say with the QUIC variable length encoding</p>", "time": "2023-07-24T21:55:19Z"}, {"author": "Konrad Kohbrok", "text": "<p>We have it in the DS draft because MLS already uses it. But we're open to other options.</p>", "time": "2023-07-24T21:55:46Z"}, {"author": "Darrel Miller", "text": "<p>Does anyone have any pointers to perf comparisons between gRPC and HTTP/3 using a binary payload?  Most comparisons I have seen compare gRPC vs HTTP/1.1 + uncompressed JSON.</p>", "time": "2023-07-24T21:57:37Z"}, {"author": "Martin Thomson", "text": "<p>binary HTTP (RFC 9292) has a very compact form; you can generate a 2 byte response.  Requests are a tiny bit bigger, but still they can be small.  HTTP/3 has a little more overhead, but it also has header compression.</p>", "time": "2023-07-24T22:00:45Z"}, {"author": "Mohammad Al Abbadi", "text": "<p>Featured bug</p>", "time": "2023-07-24T22:00:58Z"}, {"author": "Mallory Knodel", "text": "<p>This shows that maybe that Matrix interoperates with MIMI but it\u2019s likely not the architecture that underpins it? Useful to arrive at that</p>", "time": "2023-07-24T22:02:12Z"}, {"author": "Mallory Knodel", "text": "<p>And really useful to have this fully built out set of examples for discussion</p>", "time": "2023-07-24T22:03:02Z"}, {"author": "Daniel Gillmor", "text": "<p>it seems much more complicated to try to reason about many various parts moving together than it does to reason about a single particular widely-analyzed protocol at the core of the upper layers.</p>", "time": "2023-07-24T22:03:21Z"}, {"author": "Richard Barnes", "text": "<p><span class=\"user-mention\" data-user-id=\"666\">@Mallory Knodel</span> - I think we might end up slicing Matrix in two, with some parts above the E2EE line and some parts below</p>", "time": "2023-07-24T22:04:15Z"}, {"author": "Richard Barnes", "text": "<p>strong diagree with <span class=\"user-mention\" data-user-id=\"677\">@Phillip Hallam-Baker</span> here.  if we need different crypto in 10 years, we can make a new thing</p>", "time": "2023-07-24T22:05:17Z"}, {"author": "Raphael Robert", "text": "<p>MLS is in the charter, so we would have to recharter if we want to change that</p>", "time": "2023-07-24T22:06:12Z"}]