1

My query is about the security - or lack thereof - of private view keys when they are placed on a server (web host) as part of a payment integration system to accept Monero payments from customers. As it says here:

https://github.com/monero-integrations/monerowp Secret Viewkey (if confirmation type is viewkey) - Your private viewkey (No default) Monero wallet RPC Host/IP (if confirmation type is monero-wallet-rpc) - IP address where the wallet rpc is running. It is highly discouraged to run the wallet anywhere other than the local server! (Default: 127.0.0.1)

So does this mean that the website hosting company has access to private view keys if the Monero Wallet RPC is on the same server as the website? It means they can see the funds?

I ask because i wonder if you can host the RPC elsewhere, at home for example, but the 'good practice' advice in the help files says that it should be on the same server as website.

I am aware that the funds will be safe on a hard wallet, but what to do if you don't want personnel (server admin and staff) connected to the webhost company to see what should be private info?

What is the Payment Wallet RPC or what does it connect to? a special node for payments?

Thanks.

3

The secret view key allows one to see outputs going to the address corresponding to that key. It does not allow spending them. If that secret view key is on a machine, whoever has physical access to that machine can ultimately extract it, if they care enough. Whoever has control over a hypervisor where a VM which contains this key runs can also do, even if they do not have control over the actual hardware. From the above, anyone who has extracted your secret view key can therefore see incoming monero (and usually see when you spend too, since you usually get change back, which is seen by the view key).

The reason is is recommended to run the wallet on the same host is because you can have the wallet listen to the loopback interface (lo), which means it does not listen to anything coming from the outside NIC. Only local connections will succeed. You can however run the wallet server on a machine you control, and enforce SSL usage as well as whitelist the SSL certificate to use. Of course, this does not help as much as you might think since the certificate will be extractable by the hardware/VM provider in the same way they could get the view key previously, and they can make requests to your wallet server as if it was coming from whatever website client you use. You do get an auditable trace of the request, however, so it is objectively better in that respect.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.