Java все чаще применяется в современных вычислительных сетях и системах. Вы должны быть готовы принять особые меры защиты, связанные с применением Java.
Хотя брандмауэр - надежное средство защиты внутренней сети при работе с Internet, он не обеспечивает защиту от многих опасностей, связанных с применением Java. В вашей схеме защиты должны быть предусмотрены особые меры предосторожности в связи с использованием таких источников повышенной опасности, как приложения, аплеты и сервлеты Java. Кроме того, вы должны изучить взаимосвязь между средствами Java и системой защиты ресурсов применительно к идентификации и разграничению доступа для программ на Java.
Язык программирования Java обладает определенными характеристиками, благодаря которым программисты Java избегают нежелательных ошибок, способных привести к нарушению целостности приложений. (Другие языки программирования для PC такие как C или C++, не обеспечивают такую надежную защиту от нежелательных ошибок, как Java.) Например, в Java применяются строгие правила контроля типов без исключений, что позволяет избежать некорректного использования объектов. Java не позволяет выполнять некоторые операции с указателями, благодаря чему случайный выход за пределы допустимого диапазона памяти становится невозможным. Java можно рассматривать в качестве средства разработки приложений так же, как и другие языки высокого уровня. При разработке приложений Java следует принимать такие же меры защиты, как и при работе с другими языками программирования системы.
Аплеты Java - это небольшие программы Java, которые можно добавлять на страницы HTML. Они выполняются на клиенте и могут обладать доступом к операционной системе i5/OS. Кроме того, к операционной системе также могут обращаться программы, в которых используются интерфейсы ODBC и APPC. Например, если система обслуживает приложения или применяется в качестве Web-сервера. В общем случае, аплеты Java могут устанавливать соединения только с той операционной системой i5/OS, из которой они были загружены. Таким образом, аплет Java, работающий в удаленном компьютере, обладает доступом к операционной системе i5/OS только в том случае, если он был загружен из этой операционной системы i5/OS.
Аплет может попытаться подключиться к любому порту TCP/IP системы. При этом он может не обращаться к программному серверу, написанному на Java. Системы, разработанные с помощью IBM Toolbox for Java, дополнительно запрашивают у аплета идентификационные данные. В этом документе рассматриваются только операционные системы i5/OS. (Сервер приложений Java не требует применения IBM Toolbox for Java.) Как правило, классы IBM Toolbox for Java предлагают пользователю ввести ИД и пароль при первом подключении.
Аплет сможет использовать функциональные возможности операционной системы i5/OS только в том случае, если у пользовательского профайла есть права доступа к этим функциям. Таким образом, при реализации новых функций приложений с помощью аплетов Java необходимо разработать надежную схему защиты ресурсов. При обработке запросов, поступающих от аплетов, система не учитывает параметр ограничения возможностей пользовательского профайла.
Программа запуска аплетов позволяет проверить работу аплетов в операционной системе i5/OS, но она не учитывает ограничений прав доступа, установленных для браузера. Поэтому программу запуска аплетов следует использовать только для проверки собственных аплетов. Никогда не пользуйтесь этой программой для запуска аплетов, полученных из посторонних источников. Аплеты Java часто записывают данные на диски компьютера пользователя, что позволяет аплетам выполнять потенциально опасные действия. Тем не менее, для проверки подлинности аплетов Java можно использовать цифровые сертификаты. Аплет с цифровой подписью может выполнять даже те операции, которые запрещены браузеру по умолчанию, - например, записывать данные на локальные диски PC и даже на сетевые диски, которые теоретически могут быть дисками системы, подключенными к PC.
Вы можете снабдить цифровой подписью все аплеты Java, загружаемые из системы. Однако следует запретить пользователям принимать подписанные аплеты из непроверенных источников.
Начиная с выпуска V4R4, среду Secure Sockets Layer (SSL) можно настраивать с помощью IBM Toolbox for Java. Кроме того, продукт IBM Developer Toolkit for Java также позволяет обеспечивать защиту приложений на Java с помощью SSL. Поддержка SSL в приложениях Java обеспечивает шифрование данных, в том числе ИД пользователей и паролей, передаваемых между клиентскими и серверными системами. Настройку использования SSL в программах Java можно выполнять с помощью Администратора цифровых сертификатов (DCM).
Сервлеты - это размещенные на сервере компоненты Java, которые динамически расширяют функциональные возможности Web-сервера, не изменяя его программный код. Продукт IBM WebSphere Application Server, входящий в состав IBM Web Enablement for i5/OS, обеспечивает поддержку сервлетов в операционных системах i5/OS.
При работе с сервлетами необходимо настроить защиту для объектов сервлетов, используемых системой. Однако обычных средств защиты ресурсов в данном случае недостаточно. Когда сервлет загружен на Web-сервер, средства защиты ресурсов не исключают возможности запуска этого сервлета другими пользователями. Следовательно, помимо этих средств вы должны применять управляющие функции и директивы защиты сервера HTTP. Прежде всего, запретите запуск сервлетов под управлением профайла Web-сервера. Кроме того, необходимо применять функции защиты, поддерживаемые средствами разработки сервлетов, такие, как функции продукта WebSphere Application Server for i5/OS.
Продукт IBM Toolbox for Java содержит классы защиты, позволяющие выполнять проверку ИД пользователей, а также присваивать эти ИД нитям сервлетов или приложений в операционной системе i5/OS. Дальнейшее управление доступом осуществляется средствами операционной системы.
Продукт IBM Developer Kit for Java поддерживает Службу идентификации Java (JAAS), которая является стандартным расширением Комплекта для разработки приложений Java 2 (J2SDK) (Стандартный выпуск). В настоящее время J2SDK предоставляет средства управления доступом, основанные на определении источника и автора кода.
Протокол Secure Sockets Layer (SSL) позволяет обеспечить защиту сетевых соединений приложений i5/OS, разработанных с помощью IBM Developer Kit for Java. Клиентские приложения, в которых используется IBM Toolbox for Java, также поддерживают SSL. Реализация поддержки SSL в пользовательских приложениях на Java отличается от аналогичного процесса в других приложениях.