I want to design and implement an epayments system (I will not be handling credit card payments). The system will have a RESTful API. I am already familiar with RESTful servies, and have built a few in my time.
However, this time round, security is of paramount importance and I want a system that is as robust against external attacks, as anything out there (e.g. Paypal).
The way I see it, there are two points of attack:
The physical machines (servers) and the network they reside on
Attacks via the exposed RESTful API (man in the middle attacks, snooping etc).
Paypal, which is a model of what I want to replicate, provides a RESTful API, using OAuth etc, so I know it is possible to provide a secure RESTFul API to sensitive data.
So my question basically decomposes into the following two questions:
A. What technologies/practises are employed by companies such as Paypal, to ensure that their machines are not hacked or compromised?
B. Is OAuth the way to go to present a secure interface to the world? - or can this be improved?