airdcpp / airdcpp-windows

http://www.airdcpp.net
GNU General Public License v3.0
82 stars 19 forks source link

AirDC++ does not provide encryption key with ADC search requests #122

Open iceman50 opened 4 months ago

iceman50 commented 4 months ago

Prerequisites

Describe the issue

AirDC++ advertises itself as a DC client with support of fully encrypted communication on ADCS hubs, enabled by default. Currently, this does not seem to be the case as the client does not provide any encryption key with active ADC search requests thus other clients responding with search hits through UDP are unable to encrypt their response.

Expected behavior

AirDC++ signals SUDP support and sends KY parameter with all SCH commands on ADCS hubs by default.

Actual behavior

AirDC++ does not signal SUDP support and doesn't send KY parameter with any SCH commands on ADCS hubs. It seems like parts of the feature are disabled by default with a setting. AirDC++ does not appear to have any mechanism in the UI available to enable this feature. AirDC++ does respond with properly encrypted search results when it receives an encryption key with an SCH command coming from another client. Manually editing the setting that controls this feature is the only way to fully enable this feature

EnableSUDP type="int">1

to the persistent settings file results in the expected behavior.

Steps to reproduce the behavior if needed

No response

Screenshot

No response

Crash log

No response

AirDC++ version and architecture (x86 or x64)

4.21 x64

Operating System name, version and architecture

Win 11 Version 10.0.22631.3593

Additional information

No response

maksis commented 2 months ago

AirDC++ advertises itself as a DC client with support of fully encrypted communication on ADCS hubs

Where did you find that? It's not correct.

SUDP isn't enabled by default since it can't be used with all UDP traffic handled by AirDC++ as it's designed basically only for searching. Even the PSR extension is problematic as the client may request information about the completed segments at any point for existing partial source, not just as a response for the SCH command. Let alone extensions that could send information about the total file/folder progress and speed for the uploader when there are active downloads from multiple users that can go on for hours. Starting from the next version, AirDC++ also allows third party extensions to send ADC commands over UDP via the API.

This was discussed with klondike years ago but unfortunately there's still no replacement for SUDP available.