And how can the user tell? AFAIK, no one really knew about the stunning incompetence of cryptopia before the hack (apparently large number of hot wallets, no backup of private keys, all private keys stored on 1 server), in fact largely the reviews and comments were positive.
Most of the exchange service providers prefer to avoid security discussion for either of two reasons:
1. They are amateurs on the hunt for easy money and know nothing about security, therefore, they avoid discussion on the subject.
2. They know the subject and avoid talking about it because they don't want to give any clues to the potential attackers.
We are operating our token
exchange for quite some time now and I will try to give you an as much detailed response as I can. But don't expect to get too many technical details because this is a very sensitive subject (for obvious reasons).
Now I can reveal basic measures we took to maintain a secure environment on
einax.
1. As we designed exchange architecture (back in late 2017) we began from designing a secure development environment for our employees and came up with some rules:
- All employees must work full time in the office. No exceptions, no freelancers, no stay-at-home work.
- All employees must sign legally binding NDA
- Developers workstations must be located in secure LAN. USB ports are locked, keystrokes and screenshots are tracked with commercially licensed DLP. Every developer has an additional PC for internet surfing. We use the local repository and dedicated system administrator/dev-ops that impose his rule with Iron fist.
- We follow practice "restrict first, allow when really needed" for everything, starting with internet access for the team
- a Very small fraction of personnel have access to the production environment. Senior management and support staff have NO access.
- All code has to be reviewed before getting in production
- We don't use 3d party code unless we really have to (no known templates, no CMS, no open-source trade engines/snippets/libraries. We don't even rely on infura and host our own archive node for ETH blockchain). We obviously avoid giving away any hints of what tech we use through the apps like https://www.wappalyzer.com/
- We have multi-stage production upload/testing process that never being broken to speed up the process
- Our office have 24/7 security and surveillance on site
- All hard drives are encrypted and stored on-site without ever leaving the building. We have a data-center grade server room, fire protection, power supply, and cooling
- We thoroughly review every line of code of every smart-contract or coin we intend to list
2. We have very specific rules on how to deal with private keys which I will partially disclose:
- We never store keys on rented servers
- We use RAID to store backups
- We don't store unencrypted keys (or unencrypted anything for that matter)
- We don't use standard key storages/formats like wallet.dat
- Keys are separated from the node
- We are doing some other stuff to obfuscate hot wallet activity
3. We have a cold wallet that we won't discuss.
The problem is anyone can tell you they take security seriously but in reality, they may not and it's very hard to tell. There are signs that are a dead giveaway of negligent exchanges:
Stay away if exchange:
1. Raising money for development (Or raised money). This usually means they probably can't afford to maintain a secure environment and will cut costs. Proper security always results in additional costs for your project and you should integrate it from the very beginning. Of course, there are notable exceptions, but overall it is usually clear and visible. It costs a lot to develop and run a secure exchange.
2. Using open source/templates is again indirectly points to lack of funding and be sure - if the company can't afford to develop custom frontend they can't afford to secure their platform. There are of course some exceptions where opensource provides great and secure tools but those are rarely visible at glance. It's fine to find out exchange website using Bootstrap or JQuery but You definitely should avoid someone using free CMS like WordPress/Joomla etc. In general, knowing how it ended for mt. Gox I would recommend avoiding anyone using backend written on PHP.
3. Exchange with bad/unresponsive support. Contact exchange support. Ask non-invasive questions, point at bugs and see how they respond. The good exchange is always up for a healthy discussion, will acknowledge faults and stay friends with you. Don't hesitate to ask anything about their security, because it is YOUR tokens they want to take, and they should answer you what steps they took to keep it safe. Even if you won't get a full technical answer it should never be a taboo to discuss like it is now.
But in the end, use a rule of thumb that will always be valid for crypto: Don't use exchange as your main storage of funds, put your reserve in cold storage and trade with what you can afford to lose. If you want to hodl an asset - withdraw it.
Everyone on the market will keep telling you they are most secure and have an impenetrable defense, but reality is same for everyone - there are NO impenetrable systems, no unbreakable security. There are only things that harder to break than the others. Stay safe!