Попробуй IPsec. По моему это то что тебе нужно, так как нативные клиенты есть и в Android и в iOS, и даже в Windows. Работает через NAT. Гибко настраивается. И да, можно аутентифицироваьт абонентов различными способами в частности по логину и паролю.