Статья опубликована в рамках: XLVIII Международной научно-практической конференции «Наука вчера, сегодня, завтра» (Россия, г. Новосибирск, 12 апреля 2017 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
АСПЕКТЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ ПРИ ПРОГРАММИРОВАНИИ НА ЯЗЫКЕ JAVA
SECURITY ISSUES OF THE JAVA PROGRAMMING LANGUAGE
Vladimir Nikolaev
Сandidate of Science, assistant professor of the department of Information Technologies, Middle Russian Institute of Management branch of the Russian Federation Presidential Academy of National Economy and Public Administration, Russia, Orel
Konstantin Maneev
Undergraduate, Middle Russian Institute of Management branch of the Russian Federation Presidential Academy of National Economy and Public Administration,
Russia, Orel
АННОТАЦИЯ
Язык программирования Java позволяет создавать два типа программ: приложения и апплеты. В настоящее время архитектура безопасности платформы Java включает большой набор прикладных интерфейсов программирования, алгоритмов безопасности, средств, механизмов и протоколов. Это позволяет разработчикам сосредоточить усилия на реализации требований информационной безопасности в своих программах.
ABSTRACT
There are two types of programs that may be created with Java: applications and applets. Today the Java security architecture includes a large set of application programming interfaces (APIs), security algorithms, tools, mechanisms and protocols. This allows developers to focus on how to integrate security into their applications.
Ключевые слова: безопасность, программирование, Java, интегрированная среда разработки
Keywords: security, Java programming, integrated development environment
Развитие глобальной сети Интернет способствовало выдвижению языка Java на передний край программирования. В свою очередь, язык Java не только упростил создание программ для Интернета, но и обусловил появление нового типа прикладных программ, предназначенных для работы в сети и получивших название апплетов. Апплет - это несамостоятельный компонент программного обеспечения, написанный на языке Java, предназначенный для передачи через Интернет и выполняемый в совместимых с Java браузерах. Кроме того, язык Java позволил решить две наиболее острые проблемы программирования, связанные с Интернетом: переносимость кода и безопасность выполнения программ. Исключением является браузер Google Chrome, разработчики которого с 2015 года полностью отключили поддержку межплатформенной архитектуры подключаемых модулей NPAPI, в связи с чем использование Java-апплетов и других модулей, использующих эту технологию, стало невозможно (начиная с версии 42 и более поздних).
Основная особенность языка Java состоит в том, что компилятор Java выдает не машинный код, а так называемый байт-код - оптимизированный набор инструкций, интерпретируемый в среде виртуальной машины Java (Java Virtual Machine - JVM). Трансляция программы Java в байт-код значительно упрощает её выполнение на различных аппаратных и программных платформах, поскольку в каждой среде требуется реализовать только виртуальную машину JVM. Организация выполнения байт-кода позволяет, во-первых, создавать по-настоящему переносимые программы, во-вторых, способствует повышению безопасности выполнения программы. Виртуальная машина, управляющая выполнением программы, позволяет изолировать программу и воспрепятствовать появлению побочных эффектов от её выполнения за пределами данной исполняющей среды.
Особенности языка Java [4 - 6]:
- простота: язык Java обладает простыми в изучении языковыми средствами;
- объектная ориентированность: реализуемая современная концепция объектно-ориентированного программирования проста и легко расширяема;
- архитектурная независимость: язык Java не привязан к конкретной архитектуре компьютера или типу операционной системы;
- переносимость: программы выполняются в любой среде, в которой имеется виртуальная машина Java;
- безопасность: Java ограничивает действие апплета исполняющей средой и не предоставляет ему доступ к другим частям операционной системы;
- надежность: проверка кода Java выполняется и во время компиляции и во время выполнения программы;
- многопоточность: исполняющая среда Java обеспечивает встроенную поддержку многопоточного программирования;
- высокая производительность: байт-код Java оптимизирован для преобразования в машинный код конкретной архитектуры компьютера;
- распределенность: поддержка удаленных вызовов методов позволяет использовать программы в глобальной сети;
- динамичность: программы на языке Java содержат данные, используемые для проверки полномочий и разрешения доступа к объектам во время выполнения, что позволяет безопасно и рационально выполнять динамическое связывание кода.
В языке Java реализован строгий контроль типов, автоматический сбор мусора и проверка выхода за границу массива.
Для повышения производительности в состав виртуальной машины Java включается динамический компилятор байт-кода (JIT-компилятор). При его работе фрагменты байт-кода, компиляция которых принесет выгоду, транслируются в машинный код в реальном времени (Just-in-Time - точно вовремя, “на лету”), а остальной код просто интерпретируется. При динамической компиляции байт-кода характеристики переносимости и безопасности сохраняются, поскольку виртуальная машина Java по-прежнему отвечает за целостность исполняющей среды.
Платформа Java включает в себя набор интерфейсов API, охватывающих основные аспекты информационной безопасности, в частности, криптографию, архитектуру открытого ключа (PKI), аутентификацию и контроль доступа. Сервисы безопасности реализуются через провайдеры (provider), которые интегрируются в платформу Java через стандартный интерфейс.
Язык Java в архитектуре “клиент-сервер” может использоваться не только в браузерах пользователя [1, 2], но и на Web-серверах, где для создания динамического генерируемого содержимого сайта могут использоваться сервлеты. Сервлет (servlet) - это небольшая прикладная программа на языке Java, расширяющая функциональные возможности сервера. Как и все программы Java, сервлеты компилируются в байт-код и могут применяться в различных аппаратных и программных средах при наличии на сервере виртуальной машины Java.
Для создания программного обеспечения на языке Java используется бесплатно распространяемый компанией Oracle комплект разработчика приложений JDK (Java Development Kit). В состав комплекта входит компилятор Java, стандартные библиотеки классов Java, различные утилиты и исполнительная система Java (JRE - Java Runtime Environment), включающая в себя виртуальную машину Java. Существует несколько редакций JDK:
- Java SE (Standard Edition) включает в себя всё необходимое программное обеспечение для создания приложений и апплетов Java [3];
- Java EE (Enterprise Edition) предоставляет инструменты для создания больших серверных бизнес-приложений, предоставляющих сервисы через Всемирную паутину глобальной сети Интернет;
- Java ME (Micro Edition) - это небольшая высоко оптимизированная среда исполнения для смартфонов, сотовых телефонов и подобных устройств.
В 2014 году фирма Oracle выпустила Java SE 8, в которой произошли значительные изменения благодаря внедрению лямбда-выраженией и возможности определять реализацию по умолчанию метода, объявленного в интерфейсе. Кроме того, в состав JDK 8 включена поддержка JavaFX 8 - последней версии платформы для создания унифицированных приложений с графическим интерфейсом пользователя.
В состав JDK не входит интегрированная среда разработки - IDE (Integrated Development Environment). Для разработки приложений на языках Java, Си++, HTML, PHP, JavaScript, Python и ряда других можно использовать свободную интегрированную среду разработки приложений NetBeans IDE 8.2. Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, но относится к фонду свободного программного обеспечения с лицензиями Common Development and Distibution License (CDDL) и GNU General Public License (GPL). Для компиляции программ на языке Java в среде NetBeans IDE требуется предварительная инсталляция JDK.
Список литературы:
1. Николаев В.В. Особенности реализации домена с тонкими клиентами на базе Microsoft Windows Server 2012 R2 // Технические науки - от теории к практике: Сб. ст. по материалам LVII междунар. науч.-практ. конф. №4(52). - Новосибирск: Изд. АНС “СибАК”, 2016.- С.70-77
2. Николаев В.В. Информационная система мониторинга защищенности образовательных учреждений // Наука вчера, сегодня, завтра: Сб. статей по материалам XXXVI Междунар. науч.-практ. конф. №7(29).- Новосибирск: Изд. АНС «СибАК», 2016.- С. 13-19
3. Николаев В.В. Современные технологии программирования: Учебное пособие.- Орел: ОФ РАНХиГС, 2016.- 204 с.
4. Шилдт Г. Java 8. Полное руководство: Пер. с англ.- М.: ООО “И.Д. Вильямс”, 2015.- 1376 с.
5. Gaddis T. Starting Out With JavaTM. From Control Structures through Objects.- Haywood Community College: Pearson Education, Inc., 2016.- 1435 p.
6. Savitch W. Absolute Java.- Harlow: Pearson Education Ltd, 2016.- 1295 p.
дипломов
Оставить комментарий