РАЗРАБОТКА ANDROID-ПРИЛОЖЕНИЙ «MOBILE BANKING» ДЛЯ СИСТЕМЫ «INTERNET BANKING» - Студенческий научный форум

VII Международная студенческая научная конференция Студенческий научный форум - 2015

РАЗРАБОТКА ANDROID-ПРИЛОЖЕНИЙ «MOBILE BANKING» ДЛЯ СИСТЕМЫ «INTERNET BANKING»

Пиший С.А. 1, Пиший С.А. 2
1ООО "Компас плюс"
2Магнитогорский государственный технический университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Актуальность работы Использование банками всего мира технологий удаленного доступа и передачи информации предоставляет высокий уровень удобства для клиентов банка, а также дает возможность экономить на оплате труда персонала и аренде помещений. Удаленный банкинг – это предоставление банковских услуг не в банковском офисе при непосредственном контакте клиента и банковского служащего, а на дому, в офисе, т.е. везде, где это удобно клиенту.

Оценка содержания работы: Работа студента выполнена на высоком научном и методическом уровне с явно выраженной практической направленностью. Пиший С. А. показал знания в области разработки приложений и смог применить эти знания для решения специфической задачи банковской сферы.

Положительные стороны работы: Исследование Пиший С.А. хорошо структурировано, продумана и выдержана логика представления материала.

В работе хорошо представлены преимущества Интернет-банкинга, характеристика основных компонентов и анализ систем Интернет-банкинга для частных клиентов, техническое задание на разработку пакета приложений «Mobile banking» под мобильную платформу Android и реализованный студентом пакет приложений.

Рекомендуемая оценка: Данная работа соответствует всем требованиям, установленным к выпускным квалификационным работам по направлению «Прикладная информатика» 080800.62 и заслуживает высокой оценки.

Дополнительная информация для ГАК:Основным результатом данного исследования является разработанный студентом пакет приложений «Mobile banking» под мобильную платформу Android версии 4.0 и выше (виджет обменных курсов валют и виджет информации по личному счету), который будет реализовываться банками в качестве дополнительного сервиса.

Научный руководитель ____________ Назарова Ольга Борисовна

подпись фамилия, имя, отчество

к. пед. наук, доцент, зав. кафедрой информационных систем МГТУ_____

ученая степень, звание, должность, место работы 17 июня2014 г.

РЕФЕРАТ

Бакалаврская работа

Пояснительная записка: 94 с., 23 рис., 36 источников, 2 приложения.

Ключевые слова: виджет, Android, приложения, сервис, базовая валюта, валюта конвертации, транзакция, платформа.

Пакет приложений «Mobile banking» для системы «Internet banking» представляет собой набор, состоящий из двух виджетов, разработанных под мобильную платформу Android версии 4.0 и выше. Приложения реализованы на языке Java с использованием библиотек Android SDK (software development kit).

Виджеты работают в операционной системе Android на уровне сервисов и отображаются на рабочем столе пользователя после разблокировки экрана. В виджетах предусмотрена возможность настраивать информацию с помощью конфигурационного экрана, который появляется при добавлении виджета на рабочий стол пользователем. Они играют роль поставщиков небольшого объема содержательной информации, время доступа к которой можно и нужно уменьшить. Пакет Android-приложений «Mobile banking» содержит: «Currency widget» (виджет обменных курсов валют), «Account widget» (виджет информации по личному счету).

«Currency widget» отображает обменные курсы покупки и продажи базовой валюты по отношению к валюте конвертации, а так же изменения этих курсов по сравнению с предыдущим бизнес днем.

«Account widget» отображает баланс конкретного счета клиента, названия и суммы двух последних операций по счету в валюте этих транзакций.

Виджеты в операционной системе Android представляются наилучшим выбором для отображения постоянно интересующей пользователя информации, поскольку являются приложениями с наименьшим временем доступа к ней.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 8

Глава 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ СИСТЕМ ИНТЕРНЕТ-БАНКИНГА 10

1.1 Общие сведения о системах Интернет-банкинга 10

1.2 Анализ систем Интернет-банкинга для частных клиентов 17

1.3 Характеристика основных компонентов системы Интернет-банкинг для частных клиентов 24

ВЫВОДЫ ПО ГЛАВЕ 1 31

ГЛАВА 2. РАЗРАБОТКА КОНЦЕПЦИИ ANDROID-ПРИЛОЖЕНИЙ «MOBILE BANKING» 32

2.1 Разработка требований к обеспечению безопасности 33

47

2.2 Разработка требований к графическому интерфейсу 47

2.3 Выбор средств разработки 53

ВЫВОДЫ ПО ГЛАВЕ 2 58

ГЛАВА 3. РЕАЛИЗАЦИЯ ANDROID-ПРИЛОЖЕНИЙ «MOBILE BANKING» 59

3.1 Реализация модуля связи с серверной частью системы «Internet banking» 59

3.2 Реализация ядер виджетов 70

3.3 Реализация графических интерфейсов виджетов 80

3.4 Расчет стоимости и анализ эффективности проекта 85

ВЫВОДЫ ПО ГЛАВЕ 3 90

ЗАКЛЮЧЕНИЕ 91

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 92

1. ТЕРМИНЫ, ОПРЕДЕЛЕНИЯ, СОКРАЩЕНИЯ 98

2. ОБЩИЕ СВЕДЕНИЯ 99

2.1 Полное наименование приложений и их условное обозначение 99

2.2 Наименование разработчика и заказчика (пользователя) приложений 99

2.3 Плановые сроки начала и окончания работы 99

2.4 Порядок оформления и предъявления заказчику результатов работ 99

3. НАЗНАЧЕНИЕ И ЦЕЛИ СОЗДАНИЯ ПРИЛОЖЕНИЙ 100

3.1. Назначение приложений 100

3.2. Цели создания приложений 101

4. ХАРАКТЕРИСТИКА ОБЪЕКТА АВТОМАТИЗАЦИИ 102

5. ТРЕБОВАНИЯ К ПРИЛОЖЕНИЯМ 106

5.1 Требования к приложениям в целом 106

5.2 Требования к структуре и функциям ПО 110

5.3 Требования к видам обеспечения 111

6. СОСТАВ И СОДЕРЖНИЕ РАБОТ ПО СОЗДАНИЮ ПРИЛОЖЕНИЙ 115

7. ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ ПРИЛОЖЕНИЙ 116

7.1 Виды и объем испытаний приложений 116

7.2 Требования к приемке работ по стадиям 116

8. ТРЕБОВАНИЯ К СОСТАВУ И СОДЕРЖАНИЮ РАБОТ ПО ПОДГОТОВКЕ К ВВОДУ ПРИЛОЖЕНИЙ В ДЕЙСТВИЕ 116

9. ТРЕБОВАНИЯ К ДОКУМЕНТИРОВАНИЮ 117

ВВЕДЕНИЕ

Ни для кого не секрет, что мы живем в эпоху информационных технологий, и с появлением сети Интернет стало популярным предоставлять услуги в совершенно разных областях удаленно. Эта тенденция не обошла стороной и банковскую сферу. Сейчас в кредитных организациях всего мира используют системы удаленного доступа и передачи информации по сети, называемые Интернет-банкингом.

Существование таких систем дает возможность клиентам банка выполнять практически все операции с их банковскими продуктами из любой точки мира, используя при этом только устройство с возможностью доступа в Интернет. Системы Интернет-банкинга позволяют предоставлять клиентам банка более высокий уровень удобства по сравнению со стандартной схемой взаимодействия Клиент-Банк. Кроме того внедрение систем Интернет-банкинга позволяют банку экономить на оплате труда персонала, аренде помещений и других затратах, связанных с содержанием офисов и отделений, обслуживающих клиентов.

В наше время даже небольшие банки часто имеют свои системы Интернет-банкинга, что безусловно указывает на высокую скорость развития данного направления. Более того, существуют банки, не имеющие отделений и предоставляющие своим клиентам доступ к банковским операциям и продуктам только через системы Интернет-банкинга.

На сегодняшний день одним из самых перспективных направлений развития систем Интернет-банкинга является разработка приложений, обеспечивающих дистанционное обслуживание клиентов банка с использованием различных мобильных устройств. Такие приложения часто называют мобильным банкингом.

Разрабатываемые Android-приложения «Mobile banking» являются по своей сути виджетами, предоставляющими пользователю еще более быстрый доступ к небольшому объему содержательной информации. Разработки в этом направлении являются новыми для компании «Compass plus», что обуславливает их актуальность.

Тема исследования: разработка Android-приложений «Mobile banking» для системы «Internet banking».

Объект исследования: процесс взаимодействия частного клиента банка с банковской системой.

Предмет исследования: обеспечение дистанционного взаимодействия частного клиента банка с банковской системой.

Цель исследования: проектирование и реализация Android-приложений «Mobile banking» для системы «Internet banking» для обеспечения дистанционного взаимодействия частного клиента банка с банковской системой

Задачи:

  1. Анализ характеристик, функций и архитектуры систем Интернет-банкинга для частных клиентов.

  2. Разработка требований к функциональности, безопасности и графическому интерфейсу приложений «Mobile banking».

  3. Разработка архитектуры модуля связи с серверной частью системы «Internet banking» и приложений «Mobile banking».

  4. Выбор средств разработки приложений «Mobile banking».

  5. Разработка технического задания на разработку Android-приложений «Mobile banking» для системы «Internet banking».

  6. Реализация модуля связи с серверной частью системы «Internet banking» и приложений «Mobile banking».

  7. Расчет стоимости и анализ эффективности приложений «Mobile banking».

На защиту выносятся:

  • техническое задание на разработку Android-приложений «Mobile banking» для системы «Internet banking»;

  • Android-приложения «Mobile banking»;

  • листинг фрагмента кода Android-приложений «Mobile banking».

Глава 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ СИСТЕМ ИНТЕРНЕТ-БАНКИНГА 1.1 Общие сведения о системах Интернет-банкинга

Интернет-банкинг, по сути, является одним из видов так называемого удаленного банкинга, который появился на Западе еще в 1980-х гг. и начинался с телефонного обслуживания клиентов.

В общем смысле, как это и следует из названия, удаленный банкинг – это предоставление банковских услуг не в банковском офисе при непосредственном контакте клиента и банковского служащего, а на дому, в офисе клиента, т.е. везде, где это удобно последнему. Необходимо добавить, что если система полностью автоматизирована, чаще всего она доступна круглосуточно в любой день недели, в отличие от самого банка, работающего по строгому расписанию. Можно выделить четыре основные разновидности удаленного банкинга: PC banking, telephone banking и video banking, Internet banking.[19]

Под PC банкингом (PC banking), как правило, подразумевают доступ к счету с помощью персонального компьютера, осуществляемый посредством прямого модемного соединения с банковской сетью, а не через Интернет. Клиенту при этом предоставляется специальное программное обеспечение для работы со счетом.

Видеобанкинг (video banking) – это, по сути, система интерактивного общения клиента с персоналом в банке, своего рода видеоконференция. Обычно для видеобанкинга применяются устройства, называемые «киосками» (kiosk). Это аппараты с экраном, позволяющие клиенту получить доступ к различной информации, а также «вживую» пообщаться со служащим в банке и провести с его помощью практически любые операции. Эти устройства устанавливаются, разумеется, не дома, а в супермаркетах, университетах или других людных местах. Часто «киоски» совмещаются с банкоматами (ATM – automatic teller machine). В России системы видеобанкинга не нашли применения.

Телефонный банкинг является удобной системой с точки зрения мобильности, так как, если у вас есть под рукой телефон – значит, вам доступны банковские услуги. Дополнительные возможности открывает использование телефонов с дисплеем (screen phone). С другой стороны, телефон – это изначально средство устного общения, и для совершения банковских операций приспособлен плохо, поэтому количество банков и их клиентов, работающих с сетью Интернет, постоянно растет.

Передача информации от клиента в банк может производиться различными способами в зависимости от реализации системы: общение клиента с оператором телефонного обслуживания (Call Center); с использованием кнопочного телефона (Touch Tone Telephone) и голосового меню (средств компьютеризованной телефонной связи (технологии IVR (Interactive Voice Response)), Speech to Text, Text to Speech); посредством передачи SMS сообщений (SMS-banking).

Интернет-банкинг можно отождествить с предоставлением клиенту возможности прямого доступа к банковскому счету через Интернет с помощью обычного компьютера и с использованием стандартного браузера или специального приложения, взаимодействующего с банковской системой через Интернет.[19] Иными словами, Интернет-банкинг – это возможность совершать все стандартные операции, которые могут быть осуществлены клиентом в офисе банка (за исключением операций с наличными), с возможностью круглосуточного доступа в любой день недели из любого места, где есть доступ к Интернету.

Система Интернет-банкинга включает функции, которые позволяют: осуществлять с банком обмен всеми видами финансовых документов; обеспечить отслеживание обработки финансовых документов на всех этапах и получить информацию о результатах обработки; осуществлять все коммунальные платежи, оплачивать счета за связь и прочие услуги; производить денежные переводы, в том числе в иностранной валюте, на любой счет в любом банке; переводить средства в оплату счетов за товары (например, купленные через Интернет-магазины); покупать и продавать иностранную валюту; пополнять/снимать денежные средства со счета пластиковой карты; открывать различные виды счетов и переводить на них денежные средства; получать информацию о состоянии счета за определенный период в различных форматах; получать информацию о платежах в режиме реального времени; пользоваться другими дополнительными услугами (имеется в виду, например, брокерское обслуживание); cвоевременно получать оповещения об ошибках и других нештатных ситуациях; взаимодействовать с любыми видами счетов любых банков в одном интерфейсе (в случае системы Интернет-банкинга, предоставляемой не одним банком, а сторонней компанией);

Все перечисленные действия были доступны еще до появления глобальной мировой сети Интернет, когда банки оказывали услугу PC banking. При помощи компьютера и модема клиент мог соединиться со специальной банковской системой для управления своим счетом. В данном случае на компьютере клиента обязательно устанавливалось специальное программное обеспечение.

Услуга Интернет-банкинг имеет несколько преимуществ по сравнению с услугой PC banking. Помимо того, что клиент получает новые возможности при работе со счетом через сеть Интернет, а не посредством прямого модемного соединения, эта деятельность становится для него намного проще и доступнее. Клиенту не нужно дозваниваться до модемного пула банка, достаточно иметь выход в Интернет, и, главное, клиенту не всегда нужно устанавливать специальное программное обеспечение на своем компьютере. Все необходимые операции и платежи он может осуществлять с помощью браузера при заполнении стандартных web-форм (иногда для этого могут использоваться Java-апплеты).

Чтобы понять актуальность Интернет-банкинга в наше время, достаточно рассмотреть его основные преимущества.

Преимущества Интернет-банкинга

Простота в использовании – чтобы управлять своими счетами, не обязательно быть специалистом в сфере информационных технологий и обладать специальными навыками и знаниями.

Оперативность – взаимодействие между пользователем и финансовой организацией происходит в режиме реального времени. Отслеживание всех этапов обработки документов на экране устройства, используемого для доступа в Интернет. Обновление информации о состоянии платежей и счетов с заданной периодичностью или по запросу.[27]

Удобство – простота подключения и взаимодействия с системой Интернет-банкинг. Необходимо иметь счет в банке, договор с банком о возможности обслуживания через Интернет, устройство с помощью которого можно выйти в Интернет через браузер или с установленным клиентским приложением системы Интернет-банкинг. Возможность совершать платежные операции в адрес тех клиентов банка, которые не подключены к системе Интернет-банкинг.[27] Отсутствие необходимости многократной проверки ошибок в финансовых документах, поскольку система проверяет наличие ошибок и оповещает о них клиента. В случае, если документ с ошибкой был отправлен или подтвержден, то можно в течение некоторого времени отменить операцию.

Конфиденциальность – передаваемая информация шифруется в соответствии с международным протоколом криптографии SSL. Безопасность обеспечивается так же использованием взаимодействующими сторонами электронных цифровых подписей(ЭЦП).[27] Система идентификации и аутентификации обеспечивает подлинность взаимодействующих сторон.

Возможность контроля - все этапы электронного взаимодействия подтверждаются соответствующими документами и отчетами, которые пользователь может просмотреть и распечатать в любой удобный для него момент. Электронные финансовые документы, подтвержденные ЭЦП, обладают такой же юридической силой, как и бумажные документы, подтвержденные подписями и печатью.

Необходимо также понимать, что в наше время Интернет-банкинг является гораздо более удобной системой, чем классическая система клиент-банк. Несмотря на то, что система клиент-банк в некоторых случаях, например, при операциях с наличностью, необходима, большинство ее функций успешно реализованы в системе Интернет-банкинг

Отличие Интернет-банкинга от классической системы Клиент-банк

Интернет-банкинг – это более совершенная система взаимодействия между клиентом и банком. Эта система сохранила в себе все положительные стороны оффлайн банкинга, но так же имеет множество преимуществ перед ним:

Клиент может получать любую информацию о состоянии своего счета, финансовых документах и о банке, предоставляющем ему услуги в любое время, в любой точке мира с помощью любого устройства подключенного к сети Интернет.

Весь документооборот производится в электронном виде, нет необходимости предоставлять банку документы на бумажном носителе, но по запросу клиент может получить любые документы в виде бумажных копий электронных, с соответствующими подписями и печатями.

Чаще всего система Интернет-банкинга включает в себя следующие компоненты: фронт-офисное программное обеспечение, клиентское программное обеспечение, используемые средства защиты.[19]

Фронт-офисное программное обеспечение

Для взаимодействия с данной системой сотрудников банка имеется соответствующее программное обеспечение. Поскольку нужды клиентов и работников банка в рамках данной системы различаются, то программное обеспечение для работников банка является узкоспециализированным и ориентировано на сотрудников определенной квалификации.

Фронт-офис банка – это зона приобретения и обслуживания банковского клиента отвечающая за коммуникацию с клиентами, получение и ввод для последующей обработки документов от клиентов, предоставление клиенту информации, рассылка клиентам информационных сообщений, обработка входящих звонков.

Клиентское программное обеспечение

Одни системы Интернет-банкинга доступны через любое устройство, подключенное к Интернету и имеющее какой-либо браузер, другие требуют установку специального приложения. Сейчас встречаются и те и другие виды, предоставляемые как банком, так и сторонними компаниями-разработчиками. Мобильность системы с использованием браузера намного выше. Однако, многие предпочитают системы с дополнительным программным обеспечением в связи с более высоким быстродействием и высоким уровнем безопасности. В больших системах чаще всего реализована возможность нескольких видов взаимодействия клиента с системой.

Используемые средства защиты

Для обоих видов системы Интернет-банкинга предусматриваются как программные, так и аппаратные средства защиты передаваемой информации, которые обеспечивают высокий уровень безопасности. Этому уделяется очень большое внимание, поскольку с ростом популярности подобных систем, растет и количество мошенничеств в этой сфере.

Следует отметить, что использование системы Интернет-банкинга чаще всего не влияет на установленную в банке бэк-офисную систему, поскольку Интернет-банкинг предназначен не для изменения порядка и структуры расчетов, а для упрощенного доступа к банковскому функционалу.

Бэк-офис банка – операционное подразделение, которое выполняет расчеты по денежным средствам и ценным бумагам в соответствии с заключенными фронт-офисом сделками, готовит управленческую отчетность по выполненным операциям, контролирует соблюдение лимитов и предоставляет информацию для бухгалтерии, ведет внутренний учет в соответствии с требованиями Федеральной комиссии по рынку ценных бумаг (ФКЦБ) и Федеральной службы по финансовым рынкам (ФСФР) для операций с ценными бумагами.[23]

Сейчас системы Интернет-банкинга обычно классифицируются по виду клиента – физическое или юридическое лицо. По-другому их еще называют системами для частных клиентов и организаций.

Система для юридических лиц предоставляет большее количество возможностей, большее быстродействие, а так же чаще всего интегрируется с другими автоматизированными информационными системами предприятия, для достижения более высокого уровня управления финансовыми операциями, учитывая особенности предметной области организации. То есть фактически система для юридических лиц является большим дополнением или надстройкой к системе для физических лиц, что позволяет облегчить ее проектирование и разработку, но, все же, сохраняет уникальность.

1.2 Анализ систем Интернет-банкинга для частных клиентов

Интернет-банкинг для частных клиентов – это полнофункциональное программное решение для организации дистанционного обслуживания клиентов банка (физических лиц) с помощью Интернет посредством широкого спектра устройств: ПК, ноутбуков, КПК, мобильных телефонов и др., а также терминалов самообслуживания в офисах, отделениях банков и других возможных местах установки.

Функциональность

Система рассчитана на круглосуточное предоставление клиентам удобного, надежного и безопасного дистанционного банковского обслуживания по принципу «всегда и везде» и полностью удовлетворяет потребность пользователей в доступности банковских сервисов.

Система Интернет-банкинг для частных клиентов должна обеспечить пользователя широким спектром возможностей.

Обслуживание счетов: информация о параметрах и текущих состояниях счетов; информация о движениях по счетам (выписка).

Операции по депозитам: открытие нового депозита; депозитный калькулятор; досрочное закрытие депозита; пополнение депозита; частичное снятие средств с депозита.

Операции по кредитам: оформление заявки на предоставление кредита; кредитный калькулятор; информация о параметрах и текущих состояниях взятых кредитов; получение фактического и планового графика погашения взятых кредитов; погашение кредита.

Переводы и платежи: платежи в рублях и валюте между своими счетами и картами; платежи в рублях и валюте в пользу произвольных получателей; платежи в пользу поставщиков услуг (коммунальных, связи, ТВ и т.п.); платежи в бюджет РФ; оплата выставленных счетов/задолженностей; операции через системы денежных переводов; конвертация средств.

Операции по картам: информация о параметрах и текущих состояниях карт клиента; информация о движениях по карте (с учетом авторизаций); выпуск новой карты; выпуск дополнительной карты; активирование вновь выпущенной карты; блокирование и разблокирование карты; установка/изменение лимитов по картам; перевыпуск карты; отказ от планового перевыпуска карты; заказ и получение реквизитов виртуальной карты. подключение карты другого банка; пополнение карты другого банка.

Учет личных финансов: возможность ведения клиентом своих доходов и расходов; возможность формирования клиентом бюджета на период; возможность анализа движения денежных средств, доходов и расходов в виде отчетов.

Оплата государственных услуг: получение информации по государственным пошлинам, денежным платежам(штрафам) и сборам в ведомства, подключенные к системе учета начислений и фактов оплаты Федерального казначейства Российской Федерации (УНИФО ФК РФ); предоставление клиенту информации по его неоплаченным начислениям; оплата государственных пошлин, денежных платежей(штрафов) и сборов в ведомства, подключенные к системе УНИФО ФК РФ.

Инвестиции: пополнение инвестиционного фонда (покупка паев); заявка на многократное приобретение паев; погашение и обмен паев.

Брокерские операции: неторговые операции: поручение на ввод и вывод денежных средств и ценных бумаг; предоставление отчетности по торговым и неторговым операциям; предоставление информации, обязательной для прочтения или подписания; прием запросов и сообщений от клиента; предоставление новостей и информации клиенту.

Преимущества использования системы

Система Интернет-банкинг для частных клиентов обладает рядом преимуществ по сравнению с оффлайн обслуживанием.

Высокая производительность и надежность

Система предназначена для круглосуточного обслуживания сотен тысяч пользователей – частных клиентов банка. Технология распределения нагрузки обеспечивает системе неограниченное масштабирование и высокую стабильность работы. Система рассчитана на бесперебойное функционирование 24 часа в сутки, 7 дней в неделю, 365 дней в году.

Минимизация издержек

Система позволяет на порядок снизить себестоимость осуществления банком розничных операций по сравнению с традиционными способами обслуживания за счет сокращения затрат на аренду и оснащение офисов (включая дорогостоящее развитие филиальной сети), фонд оплаты труда персонала и т.д. Клиентское программное обеспечение так же используется как дополнительный канал демонстрации рекламы банка, что минимизирует издержки на ее размещение в средствах массовой информации сторонних компаний.

Продвижение услуг банка

Система обеспечивает финансовой организации возможность доступа клиентов ко всему спектру банковских продуктов. Независимо от того, какими продуктами пользуется клиент, ему видна информация обо всех услугах банка, которые могут быть доступны клиенту для использования в системе после их приобретения. Так же клиент имеет возможность посмотреть список акций и другой рекламной информации банка, что облегчает донесение до клиента информации о других продуктах банка.

Привлекательность и удобство

Система Интернет-банкинг для частных клиентов – это минимальная стоимость удаленного доступа к банковским услугам при максимальной простоте и функциональности. Интерфейс пользователя в системе Интернет-банкинг для частных клиентов адаптирован для работы пользователей с минимальными знаниями в области информационных технологий и банковских операций. Пользователю достаточно общих навыков работы с браузером, мобильным телефоном, КПК и другими средствами доступа к данной системе, т. е. не требуются никаких сторонних лицензий или обучающих программ. В случае предоставления доступа к банковскому функционалу посредством клиентского приложения, а не браузера, клиенту нужно всего лишь скачать программное обеспечение с сайта банка или других общедоступных источников. К таким источникам можно отнести магазины приложений, созданные компаниями производителями конкретных операционных систем, например, Google Play, App Store, Windows Phone Store и т.д.

Гибкость и простота кастомизации

Стандартная конфигурация системы служит базой для расширения функциональности в соответствии с индивидуальными потребностями банка, требованиями и ожиданиями его клиентов. Адаптация может быть легко произведена как силами самого банка, в случае встроенного инструментария разработки или другой возможности кастомизации заказанной системы, так и компанией-разработчиком по заказу банка. Система может легко приобрести индивидуальный внешний вид в соответствии с корпоративным стилем банка (логотип, цветовая палитра, размещение блоков и пунктов меню на web- странице или в приложении), а так же система может быть индивидуально адаптирована под предоставляемый банком функционал.

Архитектура

Система Интернет-банкинг для частных клиентов объединяет в себе целый ряд подсистем обусловленных функционалом системы, обеспечивающих дистанционное обслуживание клиента банка по различным каналам доступа: «Интернет-клиент», «Мобильный клиент», «Терминал самообслуживания», «Фронт-офис».

Подсистемы обычно интегрированы общим ядром – центральной базой данных и единым сервером дистанционного банковского обслуживания (ДБО). Каждая из подсистем может быть использована как самостоятельный продукт, так и в составе комплексного решения в единой информационной среде. Многопользовательская и многопоточная модель обработки данных позволяет неограниченно масштабировать систему, что позволяет применять такие системы в банках любых размеров.

Безопасность и защита информации

Для обеспечения защиты информации в системах Интернет-банкинг для частных клиентов применяется полный комплекс современных технологий, в том числе системы криптографической защиты информации (СКЗИ), сертифицированные ФСБ РФ.

Авторизация пользователя проводится по паре логин-пароль:

логин – уникальная символьная последовательность, вводимая в систему и позволяющая однозначно идентифицировать пользователя;

пароль – секретный набор символов, известный только пользователю, используемый для входа в систему.

Также для аутентификации могут применяться одноразовые пароли или другие виды динамической аутентификации.

Для защиты от DDOS-атак чаще всего применяются виртуальная клавиатура и ввод пользователем символов с предоставленного системой изображения – капча.

Защита соединения обычно обеспечивается посредством протокола SSL (Secure Socket Layer).

В качестве аналога собственноручной подписи клиента предусмотрена электронная цифровая подпись (ЭЦП). Обычно подпись происходит некоторым динамически полученным ключом. Таким ключом может выступить полученный по какому либо каналу связи (SMS, email) одноразовый числовой код; ключ «MobiPass» – технология, обеспечивающая генерацию ключей непосредственно на сотовом телефоне клиента; ключ eToken PASS – использование автономных генераторов одноразовых ключей;

Интегрируемые сервисы

В системах Интернет-банкинг для частных клиентов чаще всего присутствует возможность интеграции сервисов, обеспечивающих взаимодействие не только с банком, но и с другими финансовыми частными и государственными системами. Обычно данное взаимодействие заключается в пользовании возможностей сторонних систем, которые каким-либо образом могут быть связаны с деятельностью банка.

Платежные системы и сервисы

В системе Интернет-банкинг может присутствовать возможность взаимодействия с электронными платежными системами(ЭПС), поскольку в наше время расчеты посредством таких систем достаточно часты, удобны и популярны. Это позволяет: отправить средства со счета клиента в банке на счет в любой поддерживаемой ЭПС(в том числе на счет этого же клиента); получить денежные средства на банковский счет клиента со счета в платежной системе, поддерживаемой такие перечисления(в том числе со счета этого же клиента); получить справочную информацию о комиссиях, взимаемых за любой вид взаимодействия с ЭПС;

Системы денежных переводов

В системе может быть реализована интеграция с системами денежных переводов. Это позволит банку предоставить клиенту возможность произвести некоторые действия с денежными переводами удаленно: отправить денежный перевод со счета клиента в любой из пунктов обслуживания системы денежных переводов; получить денежный перевод, отправленный из пункта обслуживания системы денежных переводов, непосредственно на счет клиента в банке; воспользоваться калькулятором для расчета размера комиссии, которая будет взиматься за отправку денежного перевода; изменить параметры ранее отправленного денежного перевода; вернуть ранее отправленный денежный перевод; вернуть комиссию, оплаченную за отправку денежного перевода, который подлежит возврату отправителю.

Государственная информационная система о государственных и муниципальных платежах (ГИС ГМП)

В системы Интернет-банкинг для частных клиентов часто бывает встроена возможность взаимодействия с государственными надзорными органами. В настоящее время такое взаимодействие возможно через ГИС ГМП. Тем самым клиентам предоставляется возможность оперативного получения информации о задолженностях перед поставщиками государственных услуг, о наличии неоплаченных начислений от таких ведомств, как ФНС, ГИБДД и др., а также возможность оплаты авансовых платежей и имеющихся перед поставщиком услуг задолженностей.

Система оповещения

Система, предназначенная для организации информационного взаимодействия банка с клиентами в автоматическом режиме по различным каналам передачи информации (sms, e-mail, голосовая почта и т.д.).

Используя систему оповещения, банк может проинформировать своих клиентов о состоянии их банковских продуктов (кредитов, счетов, депозитов и пр.), организовать информационные рассылки текущим и потенциальным клиентам, сообщить клиентам о новых продуктах и услугах банка, предоставить справочную информацию о работе банка, отправить клиентам оповещения из интегрированных систем и т.д.

Данная система эффективна для оповещения клиентов о наступлении событий, важных с точки зрения информационной безопасности (начало/завершение сеанса работы с системой, исполнение расчетного документа, ошибка аутентификации, изменение настроек аутентификации и пр.). А так же о событиях и ситуациях, требующих реакции клиента в определенные сроки (неоплаченные платежи, задолженности и т.д.).

Брокерские операции

Система брокерские операции – это система, не являющаяся необходимой для большинства клиентов, поэтому считается дополнительной функциональностью. Благодаря данной системе клиент имеет возможность осуществлять действия, связанные с обеспечением всех видов деятельности на фондовом рынке дистанционно через Интернет в режиме, обеспечивающем высокий уровень безопасности, включая осуществление поручений на ввод и вывод ценных бумаг и денежных средств, получение по первому требованию отчетности по торговым и неторговым операциям, оперативное получение информации обязательной для прочтения или подписания, прочие информационные и новостные сервисы. Так же в функционал данной системы входит управление брокерскими счетами и осуществление неторговых операций.

Существуют так же и другие сервисы, с которыми может быть интегрирована система Интернет-банкинг. Часто в качестве таких сервисов выступают системы дополнительного обеспечения безопасности дистанционного банковского обслуживания.

1.3 Характеристика основных компонентов системы Интернет-банкинг для частных клиентов

Подсистема «Фронт-офис»

«Фронт-офис» – подсистема системы Интернет-банкинг для частных клиентов, позволяющая обеспечить обслуживание физических лиц операционистами банков по всему набору банковских услуг в отделениях и офисах банка.[23] Данная подсистема использует те же формы платежных документов и те же интеграционные технологии, что и подсистема другие подсистемы, благодаря чему намного упрощается формирование единой информационной среды в банке.

Подсистема «Фронт-офис» позволяет операционистам банка пользоваться следующим набором сервисов: предоставление клиентам всей информации по счетам и картам; осуществление платежей и переводов клиентов (рублевые и валютные переводы, конвертация средств, внутрибанковский перевод другому клиенту, брокерские переводы, пополнение и снятие средств с карты, платежи за услуги); работа с депозитами: открытие депозитов, досрочное закрытие, пополнение и частичное снятие средств; работа с кредитами: прием заявок на кредиты, отображение графика платежей, кредитный калькулятор; оплата различных услуг в пользу соответствующих поставщиков; прием и выдача наличных; покупка и продажа паев ПИФов, обмен паев, прием различных заявлений по ПИФам.

Все операции по обслуживанию клиентов операционист совершает из единого окна с помощью браузера или специального приложения и подтверждает своей электронной цифровой подписью. Для клиентов банка, имеющих собственную электронную подпись или другие средства подписи документов, поддерживается подтверждение операций ими. В подсистеме «Фронт-офис» с помощью оператора клиенту обеспечена возможность осуществления всех операций, доступных клиенту в подсистеме «Интернет-клиент».

Все документы, созданные как клиентами, так и операционистами поступают в единую базу и единым способом выгружаются в автоматизированную банковскую систему(АБС) банка. На каждом документе остается пометка о том, кто его создал – клиент или операционист. Это позволяет осуществлять более детальный контроль за документооборотом.

Преимущества использования подсистемы «Фронт-офис»

У данной подсистемы есть ряд преимуществ: комплексный единый Web-интерфейс или графический интерфейс приложения для работы операционистов банка; online обработка транзакций в автоматизированной банковской системе; низкие требования к рабочим местам сотрудников банка и ИТ-инфраструктуре дополнительных офисов; простота внедрения; защита соединения с помощью сертифицированных системы криптографической защиты информации; безбумажная технология в допофисе за счет подписи ЭП каждого документа; мгновенное внесение изменений во всей сети дополнительных офисов и отделений (новые банковские продукты, изменения законодательства, изменения внутренних технологий обслуживания клиентов и пр.).

Подсистема «Интернет-клиент»

«Интернет-клиент» – основная подсистема системы Интернет-банкинг для частных клиентов, обеспечивающая клиентов возможностью совершать целый комплекс банковских операций дистанционно, гарантирующая высокий уровень защищенности.[23] «Интернет-клиент» используется совместно с другими подсистемами, обеспечивая тем самым единую электронную среду взаимодействия между банком и клиентом, с помощью которой значительно упрощается обслуживание банком своих клиентов.

Подсистема «Интернет-клиент» позволяет клиенту банка пользоваться полным объемом функций системы Интернет-банкинг для частных клиентов. Она может работать как в режиме полного функционала, так и в информационном режиме.

При работе в информационном режиме клиент лишь получает информацию об остатках на счетах, задолженностях по платежам, кредитных картах, новых продуктах и возможностях банка. Настройки «Интернет-клиента» в данном режиме позволяют выбрать какую информацию хочет получать клиент и с каким приоритетом.

При работе клиентов с подсистемой «Интернет-клиент» управление счетами и проведение банковских операций происходит через Web-сайт банка, доступ к которому осуществляется через сеть Интернет или через специальное программное обеспечение. Клиент банка из дома, с работы или любого другого места через браузер или с помощью специального приложения на компьютере обращается по стандартному протоколу HTTPS к Web-серверу банка.

При успешной аутентификации пользователь начинает защищенный сеанс работы с системой «Интернет-клиент» – производится обмен информацией в доступных форматах HTML и XML.

Вся информация необходимая клиентам для полноценного использования системы «Интернет-клиент» находится на стороне банка. Это позволяет пользователям не зависеть от конкретного компьютера и получать доступ к управлению счетом из любого удобного места, используя компьютер, подключенный к Интернету. Клиент имеет возможность создавать, редактировать и отправлять в обработку поручения на исполнение платежных операций (в рублях РФ и иностранной валюте), отслеживать этапы обработки документов на сервере банка и просматривать архив ранее отправленных документов, обмениваться с банком сообщениями свободного формата (почтовый сервис), формировать выписки за указанный период, использовать справочники с целью упрощения формирования документов, запрашивать формирование различных видов отчетов и т.д.

Благодаря онлайн-обмену информацией в подсистеме «Интернет-клиент» реализован контроль корректности вводимых данных, обеспечивающий банку получение от клиентов только верно заполненных документов. Функция онлайн-контроля облегчает и ускоряет для банка обработку поступивших документов и предоставляет удобство их оформления клиентам.

Система должна поддерживать большинство современных браузеров, для обеспечения клиента удобным доступом к функциям системы. Сейчас чаще всего встречается именно браузерная версия подсистемы «Интернет-клиент». Устанавливаемое программное обеспечение в наше время в основном применяется в подсистеме «Мобильный клиент».

Подсистема «Терминал самообслуживания»

«Терминал самообслуживания» – это автономный банковский терминал, предоставляющий пользователям полный набор средств управления банковскими продуктами посредством Интернет-банкинга и теле-банкинга в круглосуточном режиме.[23] «Терминал самообслуживания» позволяет клиенту банка легко и быстро получить любую необходимую банковскую информацию или услугу непосредственно в месте размещения.

«Терминал самообслуживания» предназначен для массового предоставления частным лицам широкого спектра банковских услуг в режиме online как в операционном зале (снижение нагрузки на операционистов розничного отдела), так и вне офиса (например, в популярных местах досуга и отдыха – аэропортах, торговых центрах, на АЗС и т.д.).

Обычно терминал выполнен в виде отдельной стойки в современном дизайне и снабжен сенсорным дисплеем и специальным прочным корпусом.

Установка «Терминала Самообслуживания» обеспечивает банку:

  1. удобство настройки и простоту обслуживания; добавление новых продуктов, редактирование параметров конкретных услуг и удаление заведенных в «Терминале» продуктов предусмотрено силами ИТ-специалистов банка без помощи разработчика;

  2. круглосуточный режим работы и возможность для клиентов пользоваться услугами банка независимо от времени суток и дней недели;

  3. очевидные имиджевые и клиентоориентированные преимущества. Современный дизайн «Терминала» создает для банка образ высокотехнологичной кредитной организации, стремящейся предоставить клиентам максимальное удобство работы;

  4. весь спектр услуг банка в одном месте и в одно время. «Терминал самообслуживания» позволяет банку продавать не отдельные банковские продукты, а полный набор современных продуктов и услуг. Принципиальными особенностями «Терминала самообслуживания» являются многофункциональность и безопасность удаленной работы клиентов с банком;

  5. большие объемы обслуживаемых клиентов (десятки и сотни в день);

  6. осуществление более 50-ти разнообразных банковских операций;

  7. повышение доходности розничного обслуживания без открытия дополнительных отделений или привлечения к работе «на точках» новых сотрудников;

  8. мгновенный доступ массового пользователя к услугам банка в местах с высокой посещаемостью, где перспектива открытия мини-офиса, имеющая привлекательные маркетинговые показатели, осложнена стоимостью аренды, ограниченным пространством и т.д.

Подсистема «Мобильный клиент»

«Мобильный клиент» – это подсистема системы Интернет-банкинг для частных лиц, позволяющая совершать различные банковские операции со счетами и картами через Интернет с использованием мобильного телефона или планшета.[23] «Мобильный клиент» используется совместно с другими подсистемами, обеспечивая тем самым единую электронную среду взаимодействия между банком и клиентом, с помощью которой значительно упрощается обслуживание банком своих клиентов.

«Мобильный клиент» – удобный массовый сервис, имеющий высокий потенциал для развития. В данном решении удачно реализована концепция «банк в кармане». За счет простого и надежного сервиса банк получает дополнительный канал продаж своих услуг. «Мобильный клиент» представляет собой приложение, устанавливаемое на устройство с определенной мобильной операционной системой.

Работа в системе осуществляется в режиме 24х7х365 в сетях любых операторов сотовой связи. Авторизация в системе осуществляется по логину/паролю. Для авторизации транзакций используются сеансовые ключи, авторизация с помощью динамического пароля, получаемого по различным каналам связи (email, SMS и другие), «MobiPass», а также устройства eToken Password.

Подсистема «Мобильный клиент» позволяет клиенту пользоваться стандартным набором сервисов.

Справочный сервис: отделения/банкоматы банка – поиск отделения, банкомата банка с просмотром местоположения на карте; новости банка – адресные информационные рассылки, анонсы новых банковских продуктов; комиссии; просмотр кросс-курсов банка; список банков; кредитный калькулятор и калькулятор вкладов.

Информационный сервис: список счетов клиента; выписка по счетам клиента; карты; выписка по картам клиента; депозиты; кредиты; кредитный калькулятор; график платежей по кредитам.

Платежный сервис: операции по картам; операции по депозитам; операции по кредитам; перечень платежных операций; пополнение счета; пополнение карты; оплата услуг; управление собственным списком услуг; конвертация валют; пополнение карты другого клиента; внутренний перевод валюты(создание документов на основе уже существующих); механизм шаблонов(использование готовых шаблонов без возможности создания новых); отзыв документов; история платежей.

Сервисные операции: смена пароля; обмен сообщениями с банком; настройка аналога собственноручной подписи(АСП) (привязка нового комплекта сеансовых ключей, замена ключа «MobiPass» и т. п.).

Справочные сервисы доступны всем клиентам банка без авторизации в системе. Для проведения платежных операций и просмотра персональной финансовой информации клиент должен авторизоваться, указав логин и пароль при входе в «Личный кабинет».

ВЫВОДЫ ПО ГЛАВЕ 1

В данной главе были рассмотрены некоторые виды систем удаленного банкинга, которые являлись предпосылками к появлению систем Интернет-банкинга, а так же выявлены их преимущества перед стандартной схемой взаимодействия Клиент-Банк. Были проанализированы возможности, функционал, характеристики, архитектура и преимущества систем Интернет-банкинга для частных клиентов.

В рамках исследования архитектуры систем Интернет-банкинга для частных клиентов была рассмотрена подсистема, предназначенная для удаленой работы операционистов банка, а так же проанализированы основные подсистемы, обеспечивающие взаимодействие клиента с банком через различные каналы доступа.

В связи со стремительным развитием в наше время мобильных технологий, одним из самых перспективных способов взаимодействия клиента с банком является взаимодействие через сеть Интернет с использованием мобильного устройства и установленного на нем специального приложения - мобильного клиента.

ГЛАВА 2. РАЗРАБОТКА КОНЦЕПЦИИ ANDROID-ПРИЛОЖЕНИЙ «MOBILE BANKING»

Сейчас на рынке мобильного программного обеспечения доминируют две операционные системы: Android от компании Google и IOS от компании Apple. Однако средства разработки для ОС от компании Google являются доступнее в связи с их бесплатным распространением, и большинство устройств в современном мире работают именно на операционной системе Android.

Сегодня люди все больше и больше стремятся к тому, чтобы максимально экономить свое время. Такая тенденция не обошла стороной и владельцев мобильных устройств. Система Android предоставляет возможность своим пользователям работать с так называемыми виджетами, которые значительно упрощают доступ к нужной информации.

Пакет приложений «Mobile banking» представляет собой набор, состоящий из двух виджетов, разработанных под мобильную платформу Android версии 4.0 и выше. Техническое задание на разработку виджетов представлено в Приложении А.

Виджеты, несмотря на то, что их называют приложениями, работают в операционной системе Android не на уровне приложений, а на уровне сервисов и отображаются на рабочем столе пользователя. То есть это то, что видит пользователь в самом начале работы со своим устройством после разблокировки экрана. Виджеты чаще всего играют роль поставщиков небольшого объема содержательной информации, время доступа к которой можно и нужно уменьшить.

В связи с этим было решено разработать пакет Android-приложений, а точнее виджетов, «Mobile banking», содержащий:

  1. «Currency widget» – виджет обменных курсов валют.

  2. «Account widget» ­– виджет информации по личному счету.

«Currency widget» отображает обменные курсы покупки и продажи базовой валюты по отношению к валюте конвертации, а так же изменения этих курсов по сравнению с предыдущим бизнес днем.

«Account widget» отображает баланс конкретного счета клиента, названия и суммы двух последних операций по счету в валюте этих транзакций.

«Currency widget» является виджетом с общедоступной информацией, а «Account widget» отображает информацию и реализует некоторый функционал для конкретного клиента системы «Internet banking», поэтому к нему предъявляются более высокие требования безопасности.

2.1 Разработка требований к обеспечению безопасности

В наши дни в связи со всеобщей информатизацией и компьютеризацией банковской деятельности значение информационной безопасности удаленного взаимодействия клиента и банка многократно возросло. В результате повсеместного распространения электронных платежей, пластиковых карт, компьютерных сетей объектом информационных атак стали непосредственно денежные средства и персональная информация как банков, так и их клиентов, как во время хранения денежных средств, так и во время их перемещения. Совершить попытку хищения может любой человек, владеющий компьютером, подключенным к сети Интернет и владеющий определенными знаниями, навыками и умениями.

Поэтому вопрос защиты удаленных банковских систем является актуальным и существует большое количество механизмов и средств их защиты. В этом направлении прилагаются серьезные усилия, как в практическом, так и в теоретическом плане, используются самые последние достижения науки, привлекаются передовые технологии.

В нашем случае виджеты выступают в роли клиентского программного обеспечения системы «Internet banking» и следовательно необходимо предусмотреть защиту как самих приложений на локальном устройстве, так и защиту каналов связи с сервером системы.

Для начала рассмотрим общее средство обеспечения безопасности, применяемое для всего пакета приложений. Таким средством является защита канала связи между сервером и Android-приложением посредством протокола SSL (Secure Socket Layer).

Secure Socket Layer

Криптографический протокол SSL (Secure Socket Layer) был разработан в 1996 году компанией Netscape и вскоре стал наиболее популярным методом обеспечения защищенного обмена данными через Интернет. Он использует асимметричную криптографию для аутентификации ключей обмена, симметричное шифрование для сохранения конфиденциальности, коды аутентификации сообщений для целостности сообщений.[17] Протокол SSL обеспечивает целостность и конфиденциальность обмена данными между двумя общающимися приложениями, использующими TCP/IP.

Соединение с использованием протокола SSL позволяет решать следующие задачи:

  1. обеспечить сокрытие передаваемой информации, то есть ее защиту от несанкционированного доступа;

  2. обеспечить целостность этой информации, то есть ее защиту от случайной или умышленной модификации;

  3. обеспечить аутентификацию сервера и клиента, то есть взаимную уверенность сторон в том, что они обмениваются данными именно с теми, кто им нужен, а не с подставными субъектами.

Протокол SSL обеспечивает защиту соединения благодаря цифровым сертификатам, аутентификации и шифрованию.

Цифровые сертификаты в основном служат двум целям: установить личность владельца; сделать доступным первичный ключ владельца.

Цифровой сертификат выпускается и подписывается приватным ключом проверенной полномочной организацией - источником сертификатов (certificate authority - CA) и выдается только на ограниченное время. После истечения срока действия сертификата его необходимо заменить. Так же существуют и самоподписанные сертификаты. [34] Протокол SSL использует цифровые сертификаты для обмена ключами, аутентификации серверов и, при необходимости, аутентификации клиентов. Кроме того сертификаты могут быть самовыпускаемыми.

Цифровой сертификат содержит следующие фрагменты информации о личности владельца сертификата и источнике сертификатов: полное (уникальное) имя владельца сертификата; публичный ключ владельца; дата выдачи цифрового сертификата; дата окончания действия сертификата; полное (уникальное) имя издателя (источника сертификата); цифровая подпись издателя.

Протокол SSL использует сертификаты для проверки соединения. Эти SSL-сертификаты расположены на безопасном сервере и служат для шифрования данных и идентификации сервера. Сертификат SSL помогает подтвердить, что сервер действительно принадлежит тому, кто это заявляет, и содержит информацию о держателе сертификата, домена, для которого был выдан сертификат, и название источника (CA), выдавшего сертификат.

Есть два способа получить SSL-сертификат:

  1. Использовать сертификат от источника сертификатов. Источники сертификатов (CA) - это организации, которым доверяет вся отрасль и которые занимаются выдачей Интернет-сертификатов.[34] Например, такой сертификат можно получить от компании VeriSign. Чтобы получить сертификат, подписанный источником, необходимо предоставить достаточно информации источнику, чтобы он смог проверить вашу личность. Тогда источник создаст новый сертификат, подпишет его и доставит его вам. Популярные Web-браузеры заранее настроены доверять сертификатам, выданным определенными источниками, так что не нужно никакой дополнительной конфигурации для подключения клиента через SSL к серверу, для которого был выдан сертификат.

  2. Самоподписанный сертификат - это сертификат, созданный самим пользователем. При использовании такого сертификата издатель совпадает с владельцем сертификата. Удобство такого решения в том, что для создания самоподписанного сертификата нужно меньше времени, чем для получения сертификата, подписанного источником сертификатов. Однако самоподписанный сертификат требует, чтобы любой клиент, подключающийся по SSL к серверу, установившему такой сертификат, был настроен доверять подписавшему сертификат. Так как сертификат был подписан самим пользователем, такая подпись скорее всего не окажется в файле списка доверенных источников клиента и поэтому должна быть туда добавлена. Если получить доступ к такому файлу любого клиента невозможно, то не стоит использовать такую конфигурацию, лучше получить сертификат от проверенного источника. Самоподписанные сертификаты полезны только тогда, когда каждый клиент, взаимодействующий с сервером, можно настроить так, чтобы он доверял данному сертификату.[34]

Аутентификация – процесс установления соответствия между реальным субъектом и тем, за кого он себя выдает. В случае удачного завершения этого процесса можно с уверенностью считать что проверяемый субъект действительно является тем, кем он представляется.

Аутентификация в протоколе SSL осуществляется путем проверки электронно-цифровой подписи. ЭЦП проверяемого субъекта может быть проверена на корректность с помощью его открытого ключа, но при этом создать корректную подпись можно только обладая закрытым ключом субъекта, известным только владельцу (т.е. субъекту). Таким образом, зная открытый ключ клиента и предложив ему подписать случайный блок данных, можно определить его соответствие проверкой подписи.[25]

Аутентификация может производиться как на стороне сервера, так и на стороне клиента, что увеличивает гибкость использования данного протокола в смысле возможного уровня защиты.

SSL-аутентификация сервера позволяет клиенту проверить подлинность сервера. Клиентское ПО, поддерживающее SSL, может с помощью стандартных приемов криптографии с открытым ключом проверить, что сертификат сервера и открытый ключ действительны и были выданы источником, находящимся в списке доверенных источников сертификатов этого клиента. Это подтверждение может быть важным, если пользователь, например, отправляет номер кредитной карты по сети и хочет проверить подлинность сервера-получателя.

SSL-аутентификация клиента позволяет серверу проверить личность пользователя. Используя те же приемы, что и в случае с аутентификацией сервера, серверное ПО с поддержкой SSL может проверить, что сертификат клиента и открытый ключ действительны и были выданы источником сертификатов, имеющимся в списке доверенных источников сервера. Это подтверждение может быть важным, если, например, сервер - это банк, отправляющий конфиденциальную финансовую информацию заказчику, и он хочет проверить личность получателя.

Шифрование – это процесс преобразования информации в нечитаемый для всех вид, кроме конкретного получателя. Оно основывается на необходимых для электронной коммерции гарантиях конфиденциальности передачи информации и невозможности ее фальсификации.

Протокол SSL позволяет серверу и клиенту перед началом информационного взаимодействия аутентифицировать друг друга (client-server authentification), согласовать алгоритм шифрования и сформировать общие криптографические ключи. С этой целью в протоколе используются двухключевые (ассиметричные) криптосистемы, в частности, RSA. Т. е. один ключ используется для шифрования сообщения, а для его расшифровки необходимо использовать другой. Это позволяет получать защищенные сообщения, просто публикуя один (открытый) ключ и храня другой (секретный) ключ в тайне.

Пара таких ключей обладает следующими свойствами:

  1. Зашифрованное с помощью открытого ключа сообщение может быть расшифровано только с помощью соответствующего закрытого ключа.

  2. ЭЦП, созданная с помощью закрытого ключа может быть проверена на соответствие с помощью открытого ключа.

Т.к. ассиметричное шифрование довольно медленное, то конфиденциальность информации, передаваемой по установленному защищенному соединению, обеспечивается путем шифрования потока данных на сформированном общем секретном ключе с использованием симметричных криптографических алгоритмов (например, RC4, RC2, DES и др.). Контроль целостности передаваемых блоков данных производится за счет использования кодов аутентификации сообщений (Message Autentification Code, MAC), вычисляемых с помощью хэш-функций (например MD5).[34]

SSL состоит из двух уровней. На нижнем уровне многоуровневого транспортного протокола (например, TCP) он является протоколом записи и используется для инкапсуляции (то есть формирования пакета) различных протоколов. Для каждого инкапсулированного протокола он обеспечивает условия, при которых сервер и клиент могут подтверждать друг другу свою подлинность, выполнять алгоритмы шифрования и производить обмен криптографическими ключами, прежде чем протокол прикладной программы начнёт передавать и получать данные.

Протокол SSL включает три этапа взаимодействия сторон защищаемого соединения: переговоры о типе SSL-сессии; обмен ключами и аутентификация посредством сертификатов, защита потока данных.[25]

На первом этапе стороны договариваются об используемых криптографических алгоритмах.

На втором этапе осуществляется аутентификация сервера и (опционально) клиента, стороны формируют общий «секрет», на основе которого создаются общие сеансовые ключи для последующей защиты соединения. Первые два этапа называют также процедурой «рукопожатия» (handshake).

На третьем этапе (защита потока данных) информационные сообщения прикладного уровня нарезаются на блоки, для каждого блока вычисляется код аутентификации сообщений, затем данные шифруются с использованием симметричных криптографических алгоритмов и отправляются приемной стороне. Приемная сторона производит обратные действия: расшифрование, проверку кода аутентификации сообщения, сборку сообщений, передачу на прикладной уровень.

Рассмотрим процесс установки безопасного соединения между клиентом и сервером:

В процесс SSL «рукопожатия» входят следующие этапы:

  1. Клиент посылает серверу версию своего SSL протокола, криптографические настройки и другие данные, которые необходимы серверу для взаимодействия с клиентом с использованием SSL протокола.

  2. Сервер посылает клиенту версию своего SSL протокола, криптографические настройки и другие данные, которые необходимы клиенту для взаимодействия с сервером посредством SSL протокола. Сервер также посылает свой сертификат и, если клиент запросил область ресурсов сервера, для обращения к которой необходим сертификат со стороны клиенты, сервер посылает запрос на сертификат клиента.

  3. Клиент использует информацию, принятую от сервера, чтобы аутентифицировать сервер. Более подробно процесс аутентификации сервера будет рассмотрен ниже. Если сервер не может быть аутентифицирован, пользователь информируется о том, что защищенное соединение не может быть установлено. Если сервер успешно аутентифицирован, клиент переходит к этапу г).

  4. Используя все сгенерированные до этого этапа данные, клиент(в зависимости от выбраного метода шифрования) создает предварительный секретный ключ сеанса(premaster secret), шифрует его открытым ключом сервера(полученным из сертификата сервера, который был послан на этапе 2) и посылает его серверу.

  5. Клиент подписывает следующую порцию данных, которая уникальная для текущего «рукопожатия» и известна и клиенту и серверу. Если сервер запросил аутентификацию клиента, то клиент посылает серверу кроме подписанных данных и зашифрованного предварительного секретного ключа(pre-master secret) еще и свой сертификат.

  6. Если сервер запросил аутентификацию клиента, то сервер пытается аутенфицировать клиента. Если клиент не может быть аутентифицирован, сеанс заканчивается. Если клиент может быть аутентифицирован, сервер использует свой секретный ключ(private key) для расшифрования предварительного секретного ключа(pre-master secret), производит некоторые действия(которые клиент также производил) для того, чтобы сгенерировать секретный ключ(master secret).

  7. И клиент и сервер используют секретный ключ (master secret), чтобы создать сеансовые ключи, которые являются симметричными ключами, необходимые для шифрования и расшифрования информации, которой обмениваются во время SSL сеанса и для проверки целостности данных(то есть определения любых изменений данных в моменты времени, когда они посылаются и когда они принимаются).

  8. Клиент посылает сообщение серверу, информирующее о том, что будущие сообщения от клиента будут шифроваться сеансовыми ключами. Затем клиент посылает отдельное зашифрованное сообщение, обозначающее, что клиент закончил свою часть «рукопожатия».

  9. Сервер посылает сообщение клиенту, информирующее о том, что будущие сообщения от сервера будут шифроваться сеансовыми ключами. Затем сервер посылает отдельное зашифрованное сообщение, обозначающее, что сервер закончил свою часть «рукопожатия».

  10. SSL «рукопожатие» завершено и сеанс начинается. Клиент и сервер используют сеансовые ключи для шифрования и расшифрования данных, которых они посылают друг другу, и для проверки их целостности.

  11. Нормальное условие защищенного канала. В любое время, вследствие внутренней или внешней причины, любая сторона провести повторное «рукопожатие», вследствие чего, процесс «рукопожатия» повторится.

Во время «рукопожатия» сервер посылают клиенту сертификат, чтобы стать аутентифицированным. В процесс аутентификации сервера входят следующие этапы:

  1.  
    1. Текущая дата лежит в пределах периода действия сертификата? Клиент проверяет период действия сертификата сервера. Если текущяя дата лежит за пределами периода действия, то процесс аутентификации заканчивается неудачей. Если текущая дата и время лежит в этом пределе, клиент переходит к этапу 2).

    2. Проверяемый Certificate Authority (CA) является доверяемым CA? Каждый клиент имеет список доверенных СА сертификатов. Если проверяемый сертификат найден в этом списке, то клиент переходит к этапу 3). Если не найден, то процесс аутентификации заканчивается неудачей.

    3. Проверяемый СА открытый ключ удовлетворяет цифровой подписи? Клиент использует открытый ключ СА сертификата чтобы установить достоверность цифровой подписи сертификата. Если информация в сертификате сервера изменилась с момента, когда он был подписан СА, или открытый ключ СА сертификата не соответствует секретному ключу, который был использован СА чтобы подписать СА сертификат, то клиент не аутентифицирует сервер. Если цифровая подпись достоверна, клиент рассматривает сертификат сервера как валидный и переходит к шагу 4).

    4. Доменное имя в сертификате сервера совпадает с доменным именем сервера? Этот этап подтверждает, что сервер действительно находится по тому сетевому адресу, заявленному в сертификате. Хотя этап г) не является технической частью протокола SSL, он предоставляет защиту от формы атаки, называемой «человек посередине». Клиент должен выполнять этот этап и должен завершать аутентификацию сервера или установку соединения, если доменные имена не совпадают. Если доменные имена совпадают, то переход на этап 5).

    5. Сервер аутентифицирован. Клиент продолжает SSL «рукопожатие».

Таким образом, по завершении процедуры «рукопожатия» между клиентом и сервером устанавливается защищенное соединение, обеспечивающее целостность и сокрытие от посторонних субъектов передаваемой информации.

Для передачи общедоступной информации системы «Internet banking» протокол SSL является достаточным средством обеспечения защиты информации, однако, как было сказано ранее, в «Account widget» содержится личная информация клиента, в том числе о его денежных средствах, следовательно, она требует более серьезного уровня защиты. Для этих целей применяется многоступенчатая аутентификация пользователя.

Аутентификация

Основой любых систем защиты информационных систем являются идентификация и аутентификация, так как все механизмы защиты информации рассчитаны на работу с поименованными субъектами и объектами автоматизированной информационной системы.[36] В качестве субъектов автоматизированной информационной системы чаще всего выступают пользователи и процессы, а в качестве объектов – информация и другие информационные ресурсы системы.

Присвоение субъектам и объектам доступа личного идентификатора и сравнение его с заданным перечнем называется идентификацией. Идентификация обеспечивает выполнение следующих функций:

  • установление подлинности и определение полномочий субъекта при его допуске в систему;

  • контролирование установленных полномочий в процессе сеанса работы;

  • регистрация действий и др.

Аутентификацией (установлением подлинности) называется проверка принадлежности субъекту доступа предъявленного им идентификатора и подтверждение его подлинности. Другими словами, аутентификация заключается в проверке: является ли подключающийся субъект тем, за кого он себя выдает.

Если в процессе аутентификации подлинность субъекта установлена, то система защиты информации должна определить его полномочия (совокупность прав). Это необходимо для последующего контроля и разграничения доступа к ресурсам.

В нашем случае на каждом этапе используется так называемая аутентификация «по факту знания» или «то, что мы знаем». Это тайные сведения, которыми должен обладать только авторизованный субъект. Паролем может быть речевое слово, текстовое слово, комбинация для замка или личный идентификационный номер (PIN). Парольный механизм может быть довольно легко воплощён и имеет низкую стоимость. Но имеет существенные недостатки: сохранить пароль в тайне зачастую бывает сложно, злоумышленники постоянно придумывают новые способы кражи, взлома и подбора пароля. Это делает парольный механизм слабо защищённым.

Приложение «Account widget» имеет четырехступенчатую аутентификацию, что позволяет снизить риск несанкционированного доступа к информации клиента.

Рассмотрим этапы аутентификации:

Этап 1 – Аутентификация по многоразовому паролю

Один из способов аутентификации в компьютерной системе состоит во вводе вашего пользовательского идентификатора, называемого «логином» (англ. login – регистрационное имя пользователя) и пароля – неких конфиденциальных сведений. Достоверная (эталонная) пара логин-пароль хранится в специальной базе данных.

Простая аутентификация имеет следующий алгоритм:

  1. Субъект вводит личный идентификатор и пароль и запрашивает доступ в систему.

  2. Введённые неповторимые данные поступают на сервер, где сравниваются с эталонными.

  3. При совпадении данных с эталонными аутентификация признаётся успешной, при различии – субъект перемещается к 1-му шагу.

Введенные логин пароль передаются в сети с использованием шифрования протокола SSL. Кроме того пароль шифруется специальной криптофункцией с использованием ключа сессии и расшифровывается другой криптофункцией на сервере. Поскольку данные функции не являются частью протокола SSL, а принадлежат клиентской и серверной части системы «Internet banking», это обеспечивает более высокий уровень защиты передаваемого пароля.

Этап 2 – Аутентификация по символам с изображения (капча)

Капча – это компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером.[25] Пользователь вводит символы, изображённые на рисунке. Обычно на изображение добавляют различного рода помехи, прозрачность, частичное наложение символов и т.д. У пользователя обычно есть возможность запросить другое изображение, если он не может прочитать символы с текущего.

Аутентификация по символам с изображения имеет следующий алгоритм:

  1. Сервер подтверждает успешное завершение этапа 1.

  2. Субъект получает с сервера изображение.

  3. Субъект вводит символы, с полученного изображения.

  4. Введённые данные поступают на сервер, где сравниваются с реальными символами, соответствующими данному изображению.

  5. При совпадении введенных данных с реальными, аутентификация признаётся успешной, при различии – субъект перемещается ко 2-му шагу.

Этап 3 – Аутентификация по символам секретного слова

Каждый клиент при создании учетной записи в системе «Internet banking» получает некоторое секретное слово, которое он так же может по запросу изменить.

Аутентификация по символам секретного слова имеет следующий алгоритм:

  1. Сервер подтверждает успешное завершение этапа 2.

  2. Субъект получает с сервера случайным образом сгенерированные номера позиций символов секретного слова, которые пользователь должен ввести.

  3. Субъект вводит символы секретного слова, стоящие на соответствующих позициях и подтверждает ввод.

  4. Введённые данные поступают на сервер, где сравниваются с реальными символами, стоящими на позициях с номерами, полученными пользователем на шаге 2).

  5. При совпадении введенных данных с реальными, аутентификация признаётся успешной, при различии – субъект перемещается к этапу 2.

Введенные символы секретного слова передаются в сети с использованием шифрования протокола SSL.

Этап 4 – Аутентификация с помощью динамического (одноразового) пароля

Данный вид аутентификации представляет собой генерацию на сервере случайного набора символов – одноразового пароля и отправку его пользователю для дальнейшего ввода в системе.

Отправка таких паролей осуществляется в место назначения, которое напрямую не связано с клиентским приложением. Чаще всего для отправки таких паролей используют электронную почту и SMS-сообщения.

  1. Сервер подтверждает успешное завершение этапа 3.

  2. Субъект из списка возможных мест назначений выбирает то, куда он хотел бы получить пароль и подтверждает свой выбор.

  3. Сервер генерирует одноразовый пароль и отправляет его в соответствующее место назначения.

  4. Субъект вводит полученный пароль и подтверждает ввод.

  5. Введённые данные поступают на сервер, где сравниваются с ранее сгенерированными эталонными.

  6. При совпадении данных с эталонными аутентификация признаётся успешной и пользователь получает доступ к своим личным данным, при различии – субъект перемещается к этапу 2.

Введенный пароль передается в сети с использованием шифрования протокола SSL. Кроме того, как видно на схеме, при вводе неверного пароля пользователь снова возвращается на шаг аутентификации по символам секретного слова.

Поскольку приложения пакета «Mobile banking» являются приложениями с графическим интерфейсом, необходимо определить, какую информацию они должны отображать, в каком виде, а так же определить требования удобства использования этих виджетов.

2.2 Разработка требований к графическому интерфейсу

Каждое приложение из пакета «Mobile banking» состоит из двух частей – конфигурационный экран(Configuration activity) и сам отображаемый виджет. После того, как пользователь добавляет один из виджетов на рабочий стол своего устройства, автоматически открывается конфигурационный экран. После того, как пользователь выбрал все необходимые настройки и подтвердил свой выбор, конфигурационный экран закрывается и на виджете отображается вся предусмотренная настройкой информация.

Конфигурационный экран необходим для того, чтобы пользователь мог настроить свой виджет индивидуально, то есть выбрать некоторые параметры отображаемой на виджете информации. Кроме того в случае «Account widget» информацию для аутентификации пользователь будет вводить именно при отображении конфигурационного экрана.

Каждый из виджетов пакета «Mobile banking» выполняет разный функционал, поэтому необходимо рассмотреть требования к их графическим интерфейсам по отдельности.

Разработка требований к графическому интерфейсу приложения «Currencywidget»

Рассмотрим виджет обменных курсов валют – «Currency widget». После добавления виджета на рабочий стол, должен отобразиться конфигурационный экран.

На «рисунке 1» представлено визуальное отображение конфигурационного экрана «Currency widget».

Рисунок 1 – Конфигурационный экран «Currency widget»

После нажатия кнопки подтверждения на рабочем столе должен появиться виджет размером 4x2.

На «рисунке 2» представлено визуальное отображение «Currency widget».

Рисунок 2 – «Currency widget»

Разработка требований к графическому интерфейсу приложения «Accountwidget»

Рассмотрим виджет информации по личному счету – «Account widget». После добавления виджета на рабочий стол, должен отобразиться конфигурационный экран. На «рисунке 3» представлено визуальное отображение конфигурационного экрана «Account widget».

Рисунок 3 – Конфигурационный экран «Account widget»

После нажатия кнопки ввода, при условии верно введенных данных, появляется диалог для ввода символов с изображения (если этот вид аутентификации настроен для данного пользователя).

На «рисунке 4» представлено визуальное отображение диалога ввода символов с изображения.

Рисунок 4 – Диалог ввода символов с изображения

После нажатия кнопки ввода, при условии верно введенных данных, появляется диалог для ввода символов секретного слова (если этот вид аутентификации настроен для данного пользователя).

На «рисунке 5» представлено визуальное отображение диалога ввода символов секретного слова.

Рисунок 5 – Диалог ввода символов секретного слова

После нажатия кнопки подтверждения, при условии верно введенных данных, появляется диалог для выбора адреса доставки одноразового пароля (если этот вид аутентификации настроен для данного пользователя).

На «рисунках 6 и 7» представлено визуальное отображение диалога выбора адреса доставки одноразового пароля.

Рисунок 6 – Диалог выбора адреса доставки одноразового пароля

Рисунок 7 – Диалог выбора адреса доставки одноразового пароля

После нажатия кнопки подтверждения появляется диалог для ввода полученного одноразового пароля.

На «рисунке 8» представлено визуальное отображение диалога ввода одноразового пароля.

Рисунок 8 – Диалог ввода одноразового пароля

После нажатия кнопки подтверждения, при условии верно введенных данных, первая часть конфигурационного экрана становится неактивной.

На «рисунках 9 и 10» представлено визуальное отображение конфигурационного экрана после аутентификации.

Рисунок 9 – Конфигурационный экран после аутентификации

Рисунок 10 – Конфигурационный экран после аутентификации

После нажатия кнопки подтверждения на рабочем столе должен появиться виджет размером 4x1.

На «рисунке 11» представлено визуальное отображение «Account widget».

Рисунок 11 – «Account widget»

Язык надписей приложений зависит от языка устройства. Виджеты должны поддерживать 2 языка – английский и русский. В случае если язык устройства не русский, компоненты виджетов отображаются на английском.

2.3 Выбор средств разработки

Разработка мобильных приложений относительно новая и динамически развивающаяся область. Поэтому работа в этой области требует самых современных средств разработки.

EclipseIDE

Для разработки Android-приложений «Mobile banking» использовалась среда разработки (IDE) eclipse 4.3.2.

Eclipse – это программная платформа с открытым исходным кодом, написанная на языке Java. Основная цель ее создания – повышение производительности процесса разработки ПО.

Большинство пользователей Eclipse используют данную платформу как интегрированную среду разработки Java IDE (Integrated Development Environment). Но ее возможности обширнее. Eclipse также располагает средой разработки плагинов PDE (Plugin Development Environment), которой заинтересуются в первую очередь желающие расширить сам Eclipse.

В силу того, что эта программная платформа состоит полностью из плагинов, все разработчики инструментариев имеют возможность предложить собственные расширения к ней, предоставив пользователям цельную и последовательную интегрированную среду разработки.

К основным особенностям Eclipse относится:

  • кроссплатформенность – стабильная работа под различными операционными системами (Mac OS X, Solaris, Windows, Linux);

  • платформа позволяет программировать на множестве языков, среди которых Python, Java, PHP, Cobol, C и C++, Perl;

  • для разработки иных инструментов среда является фреймворком и предлагает широкую подборку интерфейсов прикладного программирования для создания модулей;

  • использование подхода Rich Client Platform делает Eclipse инструментом, с помощью которого можно создать практически любое клиентское программное обеспечение.

Разработка проекта в Eclipse выполняется в нескольких направлениях, три основные – работа над платформой, разработка Java IDE и создание плагинов с целью расширения функциональности.

Главный элемент архитектуры платформы – исполняющая среда Runtime, в ней выполняются коды модулей и расширений. Она обеспечивает базовую функциональность Eclipse – управление обновлениями и расширениями, взаимодействие с ОС, обеспечение работоспособности системы помощи.

Следующий по важности элемент – это IDE, среда, отвечающая за управление главными элементами программы, их настройку и расположение, управление проектами, командную разработку и поиск по файлам.

Eclipse SDK – наиболее облегченная версия утилиты, подходит для ознакомления с платформой и обучения. Определившись с целями, пользователь может установить подходящую для его задач версию, укомплектованную нужными расширениями.

AndroidDeveloperTools

Для разработки под мобильную операционную систему Android используется один из плагинов, расширяющих возможности eclipse, Android Developer Tools (ADT).

Android Developer Tools представляет собой среду разработки профессионального уровня для создания приложений для Android.[22] Это полный Java IDE с расширенными возможностями, которые помогают создавать, тестировать, отлаживать и упаковывать программы, учитывая все специфические особенности операционной системы Android. ADT обеспечивает разработчика следующими инструментами:

Полная Java IDE

  1. Android-специфичный рефакторинг, быстрые исправления, интегрированная навигация между Java и XML ресурсами.

  2. Расширенные редакторы XML для Android XML ресурсов.

  3. Инструменты статического анализа, чтобы увеличить производительность, удобство использования, а также решить проблемы корректности написанного кода.

  4. Поддержку сложных проектов, поддержка командной работы для непрерывной интеграции через Ant. Включает обфускатор ProGuard и систему подписи приложений.

Обфускация - это процесс, в результате которого код программы приобретает вид, трудный для анализа. Обфускация, как нетрудно догадаться, осуществляется с целью защиты программного кода и алгоритмов, которые он реализует, от чужих глаз, которые, несмотря на строжайшие запреты разработчиков, любят подсматривать за тем, что и каким именно образом написано.[31]

Существует несколько разных видов обфускации в зависимости от того, какой именно код запутывается при ней. Для тех языков программирования, для которых программа представляется прямо в виде исходных текстов, используются специальные методы, делающие код нечитабельным для человека, но приемлемым для интерпретатора. Среди них – запись программы в одну строку, замена имён переменных и функций, вставка ничего не значащих комментариев. Для обфускации двоичного кода (как для исполняемых файлов, так и двоичного кода виртуальных машин .NET и Java) используются уже более серьёзные методы, в том числе и шифрование.

Инструмент ProGuard сжимает, оптимизирует и запутывает код путем удаления неиспользуемого кода и переименования классов, полей и методов в семантически непонятные названия. Результатом является АПК файл меньшего размера, что затрудняет обратное проектирование.[22] Поскольку ProGuard делает ваше приложение сложнее для обратного проектирования, его использование очень важно, когда приложение использует возможности, которые чувствительны к безопасности, например лицензирование.

ProGuard интегрирован в Android систему сборки, поэтому не нужно вручную запускать его. ProGuard работает только тогда, когда приложение собирается режиме релиза, так что вам не придется иметь дело с обфускацией, кода приложения собирается в режиме отладки.

  1. Мастер шаблонного создания стандартных Android проектов и компонентов.

Редакторы графического интерфейса

  1. Построение любого Android пользовательского интерфейса с помощью перетаскивания визуальных компонентов.

  2. Визуализация пользовательского интерфейса на планшетах, телефонах и других устройствах. Переключение тем и даже версии платформы мгновенно, без сборки приложения.

  3. Редактор поддерживает работу с компонентами пользовательского (custom) интерфейса.

Настройки параметров разработки на устройстве

  1. Включение отладки по USB.

  2. Получение отчета об ошибках с устройства.

  3. Отображение на экране загрузки центрального процессора устройства.

Разработка на реальных устройствах

  1. Использование любого коммерческого Android устройства или нескольких устройств.

  2. Развертывание приложения для подключенных устройств прямо из IDE eclipse.

  3. Запуск на устройстве отладки, тестирования и профилирования.

Разработка на виртуальных устройствах

  1. Эмуляция любого устройства. Используйте нестандартные размеры экрана, клавиатуры и другие аппаратные компоненты.

  2. Расширенная аппаратная эмуляция, в том числе камера, датчики, мультитач, телефония.

  3. Разработка и тестирование приложения на совместимость с большим количеством устройств.

Мощные инструменты отладки

  1. Полный Java отладчик с возможностью отладки на устройствах и Android-специфические инструменты.

  2. Графические инструменты для отладки и оптимизации пользовательского интерфейса, с помощью проверки структуры пользовательского интерфейса и производительности.

Тестирование

  1. Инструменты тестирования на основе скриптов.

  2. Интегрированные отчеты, использующие стандартный пользовательский интерфейс.

  3. Создание и запуск тестов модулей на устройстве или эмуляторе.

Native разработка

Поддержка компиляции и упаковки пакетов существующего кода, написанного на C или C + +.

Поддержка упаковки нескольких архитектур в единой двоичной, для расширения совместимости.

Приложения «Mobile banking» разрабатываются с использованием компонентов, добавленных в Android API 14 (Application programming interface), поэтому данные приложения поддерживают Android версии 4.0 и выше.

ВЫВОДЫ ПО ГЛАВЕ 2

В данной главе была разработана концепция Android-приложений «Mobile banking». Так же были разработаны требования, предъявляемые к графическому интерфейсу виджетов «Mobile banking» и их конфигурационных экранов, а так же к отображаемой на них информации. Вместе с тем были разработаны требования к функциональности «Currency widget» и «Account widget».

В процессе разработки требований к безопасности работы приложений была детально рассмотрена последовательность установления соединения по протоколу Secure Socket Layer, проанализированы его возможности и принципы работы. Кроме того были разработаны требования к возможным типам аутентификации в приложении «Account widget», рассмотрен порядок взаимодействия пользователя с приложением на каждом этапе аутентификации.

Помимо этого были проанализированы характеристики, функциональность и преимущества выбранных средств разработки, а именно интегрированной среды разработки Eclipse, и плагина Android Developer Tools для разработки под мобильную платформу Android.

На основе предъявляемых требований в качестве основания для реализации виджетов, было разработано техническое задание на разработку Android-приложений «Mobile banking» для системы «Internet banking».

ГЛАВА 3. РЕАЛИЗАЦИЯ ANDROID-ПРИЛОЖЕНИЙ «MOBILE BANKING» 3.1 Реализация модуля связи с серверной частью системы «Internet banking»

Модуль связи с серверной частью системы «Internet banking» – платформонезависимый модуль, написанный на языке программирования Java с использованием стандартных свободно распространяемых библиотек Java Development Kit (JDK). Это позволяет использовать данный модуль как инструментарий для создания других клиентских приложений системы «Internet banking», в независимости от платформы конечного программного обеспечения.

Модуль связи с серверной частью состоит из следующих классов:

ServerConnection – основной класс, содержащий в себе средства, позволяющие получать необходимую информацию с сервера системы «Internet banking».

ConnectionChannel – класс, отвечающий за сетевое взаимодействие сервера и класса ServerConnection.

SimpleXML – класс, предоставленный компанией Compass Plus для упрощения разбора информации, полученной с сервера, а так же для удобной работы со справочниками компании.

Реализация методов данных классов содержит коммерческую тайну, в связи с чем для каждого метода будут рассмотрены только его имя, тип возвращаемого значения, параметры, а так же общее назначение.

Реализация класса ServerConnection

Поля класса:

private String RuResponse – приватная строка формата XML с данными об ответах, возвращаемых сервером, на русском языке.

private String EnResponse – приватная строка формата XML с данными об ответах, возвращаемых сервером, на английском языке.

private String CurrencyIsoXML – приватная строка формата XML содержащая справочник по валютам.

private HashMap EnResponseMap – приватная коллекция с элементами ключ-значение. Ключ – код ответа, значение – расшифровка ответа на английском языке.

private HashMap RuResponseMap – приватная коллекция с элементами ключ-значение. Ключ – код ответа, значение – расшифровка ответа на русском языке.

private HashMap CodeIsoMap – приватная коллекция с элементами ключ-значение. Ключ – код валюты, значение – сокращенное название валюты.

private HashMap IsoCodeMap – приватная коллекция с элементами ключ-значение. Ключ – сокращенное название валюты, значение – код валюты.

private LanguageSettings Language – приватный объект, хранящий язык инстанции класса.

private String SessionID – приватная строка, содержащая идентификатор сессии.

private String SessionKey – приватная строка, содержащая ключ сессии.

private String AuthKey – приватная строка, содержащая ключ аутентификации.

private String PAN – приватная строка, содержащая идентификатор клиента системы «Internet banking».

private ArrayList SecretLettersPos – приватный объект, хранящий массив номеров позиций символов секретного слова.

private URL DataUrl ­­– приватный объект, хранящий адрес для отправки запросов серверу.

private URL IndexUrl ­– приватный объект, хранящий адрес для получения идентификатора сессии.

private static Logger logger ­– приватный объект, предназначенный для вывода логов.

private ConnectionChannel Channel – приватный объект, предназначенный для сетевого взаимодействия сервера и класса ServerConnection.

Перечисляемые типы класса:

enum LanguageSettings {RUSSIAN, ENGLISH} – перечисляемый тип языковых настроек.

enum RateMode {VALUE, ATTITUDE} – перечисляемый тип формата вывода обменного курса валют. VALUE ­– число с плавающей точкой, ATITUDE ­– отношение.

enum RateDirection {BUY, SELL} ­– перечисляемый тип направления конвертации валюты. BUY – покупка, SELL – продажа.

enum ProtocolSettings {http, https} – перечисляемый тип доступных сетевых протоколов соединения.

Методы класса:

public ServerConnection(ProtocolSettings protocol, String host, int port,

String dataFile, String indexFile, LanguageSettings language) throws MalformedURLException

Конструктор класса.

Параметры: protocol – протокол сетевого соединения; host – адрес сервера; port – порт сервера; dataFile – путь файла, к которому нужно обращаться, чтобы отправлять запросы на сервер; indexFile – путь файла для получения идентификатора сессии; language – язык инстанции класса.

Возможно возникновение MalformedURLException – исключение, возникающее при неправильном формате формируемых URL.

public static void trustAll();

Приватный метод, предназначенный для установления доверия серверам с самоподписанным сертификатом SSL.

public ConnectionChannel getChannel();

Публичный метод, предназначенный для получения объекта типа ConnectionChannel из поля класса channel.

public ArrayList getSecretLettersPos();

Публичный метод, предназначенный для получения объекта типа ArrayList из поля класса secretLettersPos.

public String getSessionId();

Публичный метод, предназначенный для получения идентификатора текущей сессии инстанции класса.

private static String getStrFromXmlByPath(String xmlFilePath);

Статический приватный метод, предназначенный для получения содержимого XML файла, находящегося по адресу XmlFilePath, в виде объекта-строки типа String.

public int setRuResponseByPath(String ruResponsePath);

Публичный метод, предназначенный для установления справочника ответов сервера на русском языке, находящегося по адресу ruResponsePath, для инстанции класса. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

public int setEnResponseByPath(String enResponsePath);

Публичный метод, предназначенный для установления справочника ответов сервера на английском языке, находящегося по адресу enResponsePath, для инстанции класса. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

public int setCurrencyIsoListByPath(String currencyListPath)

Публичный метод, предназначенный для установления справочника валют, находящегося по адресу currencyIsoXMLPath, для инстанции класса. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

public int setRuResponse(String newRuResponse);

Публичный метод, предназначенный для установления справочника ответов сервера на русском языке newRuResponse для инстанции класса. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

public int setEnResponse(String newEnResponse);

Публичный метод, предназначенный для установления справочника ответов сервера на английском языке языке newEnResponse для инстанции класса. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

public int setCurrencyIsoList(String newCurrencyIsoXML);

Публичный метод, предназначенный для установления справочника валют newCurrencyIsoXML для инстанции класса. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

public void setLanguage(LanguageSettings newLanguage);

Публичный метод, предназначенный для установления языковых настроек для инстанции класса.

public boolean existSecretWord();

Публичный метод предназначенный для определения, заполнялся ли массив secretLettersPos для данной инстанции. Если да, то возвращает true, если нет – false.

private String getSessionID(URL url);

Приватный метод, предназначенный для получения идентификатора сессии по url. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

private String getSessionKey(URL url, String sessionID);

Приватный метод, предназначенный для получения ключа сессии по url и идентификатору сессии sessionID. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

private String getAuthKey(URL url, String sessionID, String sessionKey);

Приватный метод, предназначенный для получения ключа аутентификации по url, идентификатору сессии sessionID и ключу сессии sessionKey. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

private String getPAN(URL url, String sessionID, String sessionKey,

String authKey, String login, String PIN

String captcha)

Приватный метод, предназначенный для получения идентификатора клиента системы по url, идентификатору сессии sessionID, ключу сессии sessionKey, ключу аутентификации authKey и символов captcha с изображения. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

private static String xorString(String pin, int key);

Приватный криптографический метод, используемый для шифрования пароля pin ключом key.

private ArrayList getSecretLettersPosFromGetPANResponse(

String getPANResponse);

Приватный метод, предназначенный для получения массива, содержащего номера позиций символов секретного слова из ответа getPANResponse, пришедшего с сервера. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

public int createSession(String login, String PIN, String captcha);

Публичный метод, предназначенный для создания сессии с аутентификацией. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

public int fillSecretLettersPos(String login, String PIN, String captcha);

Метод, предназначенный для заполнения массива secretLettersPos, при ошибочно введенных символах секретного слова или элементов другой динамической аутентификации. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

public int createPublicSession();

Публичный метод, предназначенный для создания публичной сессии, то есть с возможностью получения только общей информации системы «Internet banking», а не по конкретному пользователю. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

public int login(String secretLetters, String dynamicPassword);

Публичный метод, предназначенный для входа в систему с параметрами: символы секретного слова – secretLetters, динамический одноразовый пароль – dynamicPassword. Возвращает 1 при успешном выполнении и 0 при ошибке. Комментарии по ошибке выводятся в лог.

private String getCards();

Приватный метод, предназначенный для получения с сервера информации о картах клиента в виде строки формата XML. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

private String getAcctsRp();

Приватный метод, предназначенный для получения с сервера информации о счетах клиента в виде строки формата XML. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

public ArrayList getAcctsList();

Публичный метод, предназначенный для получения с сервера информации о счетах клиента в виде объекта ArrayList. Каждый элемент коллекции ArrayList содержит номер, валюту, доступный баланс и название счета. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

private String getAllVendors();

Приватный метод, предназначенный для получения с сервера информации о всех вендорах (поставщиках услуг) в системе «Internet banking» в виде строки формата XML. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

private String getVendors();

Приватный метод, предназначенный для получения с сервера информации о вендорах (поставщиках услуг) конкретного клиента в виде строки формата XML. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

public static String getResponseCode(String xmlTWIBResponse)

Публичный метод, предназначенный для получения кода по ответу, полученному с сервера в виде строки формата XML. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

public String getResponseMessageByCode(String responseCode);

Публичный метод, предназначенный для получения расшифровки ответа с сервера по коду. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

public String payByTemplate(String fromAcct, String templateNo,

double amount, String period);

Публичный метод, предназначенный для осуществления платежа по шаблону с номером templateNo со счета fromAcct, на сумму amount, с кодом периодичности period. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

Значения period:

0 – однократно (немедленно), 1 – ежедневно, 2 – еженедельно, 3 – раз в 2 недели, 4 – ежемесячно, 5 – раз в 2 месяца, 6 – раз в квартал, 7 – раз в год.

public HashMap getFormWithValues(String seqNo);

Публичный метод, предназначенный для получения формы платежа с заполненными значениями. Возвращает null при ошибке. Комментарии по ошибке выводятся в лог.

public String schedule(HashMap

Просмотров работы: 6338