<p>Both options, <code>bitcoind</code> and blockchain.info API are equally vulnerable.</p>

<p>When the attacker gains to access to your server, they can empty the hot wallet through an API call, regardless if they or your server has access to the private keys. This API call can be blockchain.info API call or bitcoind JSON-RPC API call.</p>

<p>The best practices to strengthen a bitcoin service against server compromising attacks</p>

<ul>
<li><p>Use separate hot and cold wallets, only manually top up hot wallet from the cold wallet. You will lose the ability to withdraw everything at any time, without manual interaction from the team, but this is the only way to prevent losing everything at once.</p></li>
<li><p>Encrypt your server and use bare metal servers, so that your server is protected against physical attacks and malicious hosting provider attacks. You can only put relevant config files containing the API tokens to the encrypted partition and symlink the config file to the right location after manually decrypting the server on boot. This way anybody gaining the physical or service port access to the server  is less likely to gain withdraw ability.</p></li>
</ul>

<p><a href="http://opensourcehacker.com/2014/05/28/securing-your-site/" rel="nofollow">Here are some other best practices for operations security</a>.</p>

CC BY-SA 3.0
2014-11-18T16:26:20.603Z
Thanks a lot for taking the time to answer my question. I have enough information to make a decision.
user3586358
CC BY-SA 3.0
2014-11-17T04:32:30.070Z
2014-11-17T04:32:30.070Z
Mikko Ohtamaa
<p>I want to set up a website that needs an online bitcoin wallet (able to deposit and withdraw at any time). Would it be better to use the blockchain.info's infrastructure through API commands or should I set up bitcoind on my own server?</p>

<p>The problem with using blockchain.info's API is that I can't use commands (such as withdrawing) while having 2FA enabled or other security measures (please correct me if Im wrong).</p>

<p>How can I make the website as safe as possible with blockchain.info's api?</p>

<p>In short: I prefer not to store the private keys myself. On the other hand I also dont want to provide all credentials to blockchain.info in a file on the server that can't be encrypted.</p>

<bitcoind><blockchain.info>
Security: Blockchain.info vs bitcoind
user3586358
# Security: Blockchain.info vs bitcoind

(Asked by: username_0 on 2014-11-16)

I want to set up a website that needs an online bitcoin wallet (able to deposit and withdraw at any time). Would it be better to use the blockchain.info's infrastructure through API commands or should I set up bitcoind on my own server?

The problem with using blockchain.info's API is that I can't use commands (such as withdrawing) while having 2FA enabled or other security measures (please correct me if Im wrong).

How can I make the website as safe as possible with blockchain.info's api?

In short: I prefer not to store the private keys myself. On the other hand I also dont want to provide all credentials to blockchain.info in a file on the server that can't be encrypted.

**Tags:** bitcoind, blockchain.info


---

## 1 answers

### Answer by username_1 on 2014-11-17. Score: 1 | Accepted answer

Both options, `bitcoind` and blockchain.info API are equally vulnerable.

When the attacker gains to access to your server, they can empty the hot wallet through an API call, regardless if they or your server has access to the private keys. This API call can be blockchain.info API call or bitcoind JSON-RPC API call.

The best practices to strengthen a bitcoin service against server compromising attacks

* Use separate hot and cold wallets, only manually top up hot wallet from the cold wallet. You will lose the ability to withdraw everything at any time, without manual interaction from the team, but this is the only way to prevent losing everything at once.
* Encrypt your server and use bare metal servers, so that your server is protected against physical attacks and malicious hosting provider attacks. You can only put relevant config files containing the API tokens to the encrypted partition and symlink the config file to the right location after manually decrypting the server on boot. This way anybody gaining the physical or service port access to the server is less likely to gain withdraw ability.

[Here are some other best practices for operations security](http://opensourcehacker.com/2014/05/28/securing-your-site/).

> **Comments:**
> **username_0**: Thanks a lot for taking the time to answer my question. I have enough information to make a decision.  

---

