The base scenario goes as follows: A program stores some user's confidential data encrypted on their disk. The user is most probably clueless and the disk might get stolen, but these are the classical problems.
Now there's a requirement to allow a sort of remote access without increasing the risk too much. The program gets split into a server and a client parts, each running on a different computer (both belonging to the user). The client part gets the password from the user and the server part gets the encrypted data from the disk. None of the parts is capable of authenticating itself to the other one, as both operate in a possibly compromised environment (so any secret stored in the program is void, but let's assume that the user can enter their password without being snooped).
The server part could send the encrypted data to anyone asking for them, but in comparison to the base scenario, it allows a remote attacker to obtain these data and let their cracking farm work on them. I wonder if there's a better protocol?