I am doing a project that needs device authentication with a gateway. What are some of the best ways of doing that ? Whether a certificate based mechanism is feasible in this case ?
Yes, you could use a SSL client certificate for this. Each device would receive its own SSL client certificate. The device could authenticate to the gateway by connecting over SSL and authenticating using its client cert. This would allow the gateway to allow access for authorized devices (those devices whose client cert is on an approved list, or those devices who cert is signed by an internal CA set up for this purpose).
Token based frameworks like OAuth 2.0 and OpenID can also be used for Device Authentication