Я предполагаю, что вы создаете всеобъемлющую архитектуру безопасности, управляете удаленными соединениями и другими аспектами всей системы.Безопасность настольных приложений и веб-безопасность будут разными, но они по-прежнему решают многие из тех же проблем по-своему.
Только некоторые из тем, которые будут включены, будут: аутентификация, авторизация и аудит (AAA), безопасность данных при передаче и в состоянии покоя, отсутствие отказа от авторских прав, безопасность транспортного уровня, безопасность платформы (например, управление привилегиями платформы).
Двумя наиболее распространенными средами безопасности Java являются Spring Security и Apache Shiro .Обе они затрагивают ряд вышеупомянутых тем, но они представляют собой фреймворки. Это означает, что вам необходимо определить архитектуру и политики безопасности, а затем настроить / расширить фреймворки в своем конкретном домене.
Bouncy Castle предоставляет кучуготовая криптография, в том числе совместимая с Java Cryptography Extension (JCE) - она также соответствует стандарту FIPS 140-2, но не сертифицирована.Существует целая другая игра / индустрия для тех, кто продает сертифицированные решения.
Вот пример - допустим, что ваше настольное приложение будет использовать смарт-карту с сертификатом X.509 для получения доступа и взаимодействияс веб-приложением.В этом случае у вас есть несколько вещей, связанных с безопасностью смарт-карты - PIN-коды, шифрование и т. Д. Затем вы можете использовать сертификат клиента на стороне сервера и поставщика аутентификации X.509 на стороне сервера.Вы можете даже тогда иметь некоторые процедуры авторизации, основанные на Отличительном имени, предоставленном в сертификате.Вы найдете доступ к хранилищу доверенных сертификатов, провайдеров аутентификации, управление доступом на основе ролей и т. П. В вышеупомянутых инфраструктурах безопасности - но вы должны собрать их воедино.
Возможно, вы также захотите посмотреть @ OWASP для Интернетарекомендации по безопасности: https://www.owasp.org/index.php/Main_Page
Если вы отвечаете за предоставление решения по безопасности и начинаете с рассмотрения основ, я должен предупредить вас, что между экспертами по безопасности существует пробел в обмене знаниями /аналитики и разработчики программного обеспечения - то есть люди, которые рассказывают вам о том, как использовать слабые места, обычно не являются теми людьми, которые говорят вам, как настроить Spring Security или использовать JCE API.
Приличная стратегия смягчениявзглянуть на некоторые из решений «оболочки безопасности», которые по сути создают небольшие анклавы с закаленными / защищенными точками входа в анклав.Примером такого продукта может быть Layer-7 , который обычно используется в качестве шлюза безопасности веб-служб.
Удачной охоты!