Proposal: Syncthing server usage in German AusweisApp

Hi Syncthing Team,

We are currently exploring the possibility of having our client software make use of Syncthing server components (relay servers, discovery servers). Specifically, this concerns the German AusweisApp, which does not implement the Block Exchange Protocol, but would like to leverage the relay server functionality to enable its “Smartphone as Card Reader” feature [1].

In the past, we submitted pull requests [2][3] aiming to allow different types of client software to interact with these servers without interfering with each other.

We would like to understand your perspective on reusing Syncthing server software for other clients. Our preferred approach would be to contribute any necessary changes upstream and potentially run our own discovery and relay servers. This would allow a strict separation between different types of clients, maintaining the intended usage patterns of the server components.

Without such separation, there is a risk that different types of clients could use servers intended for other purposes. While this might technically work, it would mean that the AusweisApp could potentially use all public relay servers.

Could you share your opinion on this matter and any guidance on how you would prefer external clients to interact with Syncthing server components?

Thank you very much for your time and input.

Best regards

[1] BSI - Bundesamt für Sicherheit in der Informationstechnik - Ergänzung zu BSI TR-03112 Teil 6 eCard-API-Framework - IFD Service, Version 1.1 [2] Add support for custom ALPN by misery · Pull Request #9529 · syncthing/syncthing · GitHub [3] Use config.NextProtos instead of hardcoded value by misery · Pull Request #9667 · syncthing/syncthing · GitHub

Do not do this. Use your own relay infrastructure.

Today, I’d use TURN and set up servers for the purpose.

1 Like

Thanks for your quick response.

Of course, we would like to set up our own infrastructure. We are currently evaluating different solutions, and the Syncthing software for discovery and relay servers is one of the options we are considering.

Well, let me put it this way then. It’s open source, you can do what you want within the confines of the license, of course, including standing up your own infra with whatever modified version of it you can produce.

However I do not want to make it some sort of general-purpose discovery and relay system for all kinds of apps to use and would not accept patches for that purpose. Additionally I would consider use of the existing Syncthing infrastructure by other apps a form of attack.

I would highly recommend looking at other more industry-standard solutions for this.

2 Likes