Ни один из указанных вами подходов не является более безопасным, чем другой. Если вы используете TCP-сокет, тогда опасность состоит в том, что кто-то замечает, что сервер прослушивает TCP-соединения, подключается к нему и разрабатывает ваш протокол обмена данными. Если вы используете подход веб-приложения, то существует опасность, что кто-то обнаружит URL-адрес веб-сайта, пройдет его фильтрацию и сможет установить (или перехватить) аутентифицированный сеанс.
Любой из них требует, чтобы злоумышленник выполнил те же основные действия (обнаружение, что служба существует, подключение / доступ к службе, убедить службу в том, что у них есть права на выполнение защищенных операций). Любой из них также требует, чтобы вы либо знали, что делаете, либо тщательно выполняли домашнюю работу, чтобы создать действительно защищенную систему.
Так что в этом смысле я бы предложил использовать тот подход, который вам более знаком. Конечно, стоит учесть, что, если вы пойдете по пути веб-приложения, вам, вероятно, придется выбирать из более широкого набора готовых библиотек и инструментов безопасности. Например, существует, вероятно, ряд реализаций Java Filter, которые могут позволить вам указывать параметры черного и белого списков на основе IP, и многие серверы будут включать в себя встроенную инфраструктуру для обработки аутентификации пользователей и т. Д.