finos / FDC3

An open standard for the financial desktop.
https://fdc3.finos.org
Other
196 stars 116 forks source link

FDC3 Identity & Threat Modelling - 8 Feb 2024 #1150

Closed Yannick-Malins closed 6 months ago

Yannick-Malins commented 7 months ago

Group overview

FDC3 revolves around several types of independent entities:

Each of these has an identity, and needs to know and trust the identities of several of the others in order to work seamlessly.However, at present there are few or no methods for them to validate those identities within the FDC3 Standard, meaning trust must be assumed. This comes with problems and risks : data loss, identity theft, oauth hell, or an inability to adopt interop via FDC3 - all of which are a threat to the FDC3 ecosystem’s continued growth. This complexity is multiplied by the different types of FDC3 setups now possible - desktop app interop, in-container interop, web interop, and interop between Desktop Agents (Bridging).

Over the past few years, various discussions, demos and roundtables have addressed this topic, but the outcome each time has been “what do our users need?”.

Therefore our first objective in this stream is to dig into what these risks and problems are, before we discuss and work on potential solutions

Relevant issue tags

https://github.com/finos/FDC3/labels/identity-security

Meeting Date

Thursday 8 Feb 2024 - 11am (US eastern timezone EDT/EST) / 4pm (London, GMT/BST)

Zoom info

Meeting notices

Agenda (30mn)

Minutes

Summary Attendance and Introductions Community code of conduct

The discussion revolved around limitations in the current FDC 3 standard when it comes to higher trust operations such as sending orders between applications. The need for greater trust levels within applications was emphasised by various speakers.

We kicked off the conversation with the question of trust levels for applications receiving data, involving considerations about authenticating sender identity and ensuring data integrity. The role of different entities like users, applications themselves, application directories, and desktop agents in establishing trust was discussed at length.

The group discussed recommendations regarding high-trust activities within applications using FDC3 standard. It was suggested that sensitive actions should always require manual user confirmation before execution within an application.

There is also the question of authorisation within the context of implementing actions and making decisions. It would enable varying levels of activity, such as filling out a form or directly executing an action, each requiring different levels of trust. Of course this requires identity verification. The conversation delved into authentication versus authorisation and how applications determine authorisation rules based on permissions roles assigned to identities.

The next point was encryption. We discussed encryption methods for sending information between applications via FDC3, emphasising concerns about data security and potential vulnerabilities when sharing information across applications. We explored scenarios involving intent-based communication as well as channels, seeing how asymmetric encryption schemes could guarantee confidentiality

There was an exploration into potential challenges associated with web-based desktop agents operating within the FDC3 framework. Concerns were raised regarding security controls for interactions with desktop agents on web platforms, particularly in scenarios where third-party vendors are involved or when users engage with suspect agents through URLs.

One interesting point raised is that although user identity may be needed for securing actions, it could also exposing this to malicious applications

Regarding trust of the desktop agent, the general consensus was that not trusting the agent means pushing that need for trust to yet another service, unless heavier techniques are used (full encryption/decryption of payloads, with signed acks etc). We then segued onto using encryption keys inaccessible to the agent, using tokenisation for sensitive information like payment details, distributing keys securely when removing agents from certain processes, adopting web authentication capabilities for end-to-end security measures etc..

In any case, we all agree that we need to focus on concrete problems that need solving before selecting specific solutions. Hence the action items for all industry participants requesting concrete examples that require trust levels between applications, so that we can debate the various solutions together

This will then allow us to find the correct balance between security and implementation simplicity, publishing the use-cases and proposed solutions as a form of documentation

Action Items

Untracked attendees

Full name Affiliation GitHub username
mistryvinay commented 7 months ago

Vinay Mistry / Symphony 🎶

Yannick-Malins commented 7 months ago

Yannick Malins / Symphony

kriswest commented 7 months ago

Kris West / interop.io 🚀

kziemski commented 7 months ago

Kryspin Ziemski / qcompute

robmoffat commented 7 months ago

Rob / FINOS 🤡

nkolba commented 7 months ago

Nick / Connectifi

paulgoldsmith commented 7 months ago

Paul Goldsmith / Morgan Stanley

danielblignaut commented 7 months ago

Daniel Blignaut / T. Rowe Price

Lecss commented 7 months ago

Alex Dumitru / Citi

hughtroeger commented 7 months ago

Hugh Troeger / FactSet