Page MenuHomePhabricator

Element (Matrix client) Bridge Encryption - security review request
Closed, ResolvedPublic

Description

Hey folks. New Vector (the Element vendor) completed the encryption tool they told us they would develop in the hope that we could use it to bridge our private Slack channels and DMs to Element. As a reminder, Legal, ITS, and Security agreed to only bridge "public" Slack channels (public in the sense that anyone in our Slack workspace can join these channels) to our Matrix server until New Vector developed a bridge encryption tool that satisfied our security needs. Below is the information New Vector shared with me.

The basics of the tool are explained in the bridge's documentation at Bridge Encryption

The code is open-source and mainly contained in these projects:

matrix-appservice-slack – The Matrix <-> Slack bridge
matrix-appservice-bridge – A foundational library for most Matrix bridges.
pantalaimon – An encryption-aware proxy daemon for Matrix clients.

Do you need any additional information to complete an audit of their data encryption solution and determine whether it satisfies our security needs? Would you like me to set up a meeting with the vendor to discuss this tool?

Thank you!

Event Timeline

sbassett subscribed.

@bcampbell - Can you provide us with an estimated deployment date for this? Something more specific than "as soon as possible" is desirable, for scheduling purposes. And is there any kind of working test or development environment that the Security-Team can have access to? That would likely be a requirement for this review.

This review will likely be a hybrid review where the Security-Team performs some additional vendor review (or just re-confirms a few items) in addition to a security readiness review mainly focused upon the pantalaimon daemon.

@Aklapper Got it, noted!

@sbassett Estimated deployment date is end of fiscal year. Is that a realistic goal for your team? Per my request, New Vector enabled the encryption tool on one Slack channel bridged to Element, #matrix-encryption-test, but I don't have any visibility into the backend. Would server logs suffice or do you need some sort of real-time access to the bridge to see what's going on?

@sbassett Estimated deployment date is end of fiscal year. Is that a realistic goal for your team? Per my request, New Vector enabled the encryption tool on one Slack channel bridged to Element, #matrix-encryption-test, but I don't have any visibility into the backend. Would server logs suffice or do you need some sort of real-time access to the bridge to see what's going on?

It probably is, though I don't believe we will perform any extensive application security review for the codebases you've provided, as we're not really resourced to do so and simply cannot do this for every vendor engaged by the Foundation. So this request will likely entail another round of vendor review with some variety of risk rating.

Understood, thanks. I'll see what New Vector can provide us with and follow up here.

@sbassett The vendor let me know that they will not be able to provide us with server logs, but they are willing to work with us to get access to the backend of a testing environment. They told me that because the testing environment they set up is running on their private infrastructure, they would prefer to move it to a separate instance for us to be able to freely access. They prefer that we use our own hardware, but offered to set something up for us on their side that we would be able to access.

I can take them up on their offer to set up a test environment for us that we can access on their end if that would be useful for you. Would that be part of the vendor review that you mentioned? Thanks.

I can take them up on their offer to set up a test environment for us that we can access on their end if that would be useful for you. Would that be part of the vendor review that you mentioned? Thanks.

@bcampbell - I'm not certain how necessary this would be at this point in time, and would defer to @Dsharpe. Our team really is not resourced to perform exhaustive audits of vendor-supplied code, especially for business productivity systems like this.

@sbassett - Will do, understood.

@Dsharpe - Do you need any additional resources to review the bridge encryption solution other than the details I provided in the task description? I can set up a meeting with the Privacy team and whoever you want on your team to pick this discussion back up if you think that would be a more efficient way to figure out what needs to be done here.

Hi @bcampbell ! Is the last diagram from the vendor from our 24 July 2020 meeting still accurate given what the vendor has created now, especially for the part about burning keys after use? I'll send over the link if that helps. Are the listed pros and cons from that document still exactly the same with their current offering and our planned implementation?

sbassett triaged this task as Medium priority.Apr 19 2021, 3:25 PM

Hey @Dsharpe! Can you please share the diagram you are referencing with me? Are you referring to the confidential Element recommendation memo we put together with the Privacy team?

I believe the pantalaimon tool I referenced in the Task description is what they have implemented to mitigate our encryption-at-rest concerns. Our planned implementation remains the same (to bridge all Slack comms to Matrix, and selected non-sensitive channels to IRC), but we'll need to readjust the timeline.

As long as the new vendor-maintained solution works in accordance with the writeup we got on 24 July 2020, the vendor security review portion of this request is fine.

Hey @Dsharpe. The vendor just completed the burning keys after use feature and deployed it to our server. They told me that the document shared with us in July is essentially still accurate, so I followed up and requested that they revise the document so that it describes the exact solution implemented for us. I'll follow up with you here when I hear back.

@Dsharpe I heard back from the vendor and they let me know that the developer confirmed that the encryption implementation is the same as the method described in the document. I'll now schedule a follow-up meeting with ITS, Security, and Privacy to discuss.