БЕЗОПАСНОСТЬ ПЕРСОНАЛЬНЫХ ПЛАТЕЖЕЙ ФИЗИЧЕСКИХ ЛИЦ




 

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

- он знает некую информацию (секретный код, пароль);

- он имеет некий предмет (карточку, электронный ключ, жетон);

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

- он знает, где находится или как подключается специализированный ключ.

Первый способ требует набора на клавиатуре определенной кодовой последовательности - персонального идентификационного номера (Personal identification number - PIN). Обычно это последовательность из 4-8 цифр, которую пользователь должен ввести при осуществлении транзакции.

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

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

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

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

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

Пластиковые карты.

В настоящее время выпущено более миллиарда карточек в различных странах мира. Наиболее известные из них:

- кредитные карточки Visa (более 350 млн. карточек) и MasterCard (200 млн. карточек);

- международные чековые гарантии Eurocheque и Posteheque;

- карточки для оплаты путешествий и развлечений American Express (60 млн. карточек) и Diners Club.

Магнитные карточки

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

Минусы:

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

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

Преимущества:

- расходы на выпуск и обслуживание таких карт невелики;

- индустрия магнитных пластиковых карт развивалась в течение нескольких десятилетий и на настоящий момент более 90% карт - это пластиковые карты;

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

Proximity-карты

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

Смарт-карты

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

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

Для работы со смарт-картой компьютер должен быть оснащен специальным устройством: встроенным или внешним картридером. Внешние картридеры могут подключаться к различным портам компьютера (последовательному, параллельному или клавиатурному порту PS/2, PCMCIA-слоту, SCSI или USB).

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

Электронные жетоны

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

Для удобства "таблетка" может закрепляться на брелоке или запрессовываться в пластиковую оболочку.

В настоящее время эти устройства широко используются для управления электромеханическими замками (двери помещений, ворота, двери подъездов и т.п.). Однако их "компьютерное" использование также достаточно эффективно.

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

Жетоны обладают несколько лучшей износоустойчивостью, чем магнитные карты.


ЗАКЛЮЧЕНИЕ

 

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

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

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


 

СПИСОК ЛИТЕРАТУРЫ

1. Информационная безопасность открытых систем. В 2 томах. Том 1. Угрозы, уязвимости, атаки и подходы к защите / С.В. Запечников и др. - М.: Горячая линия - Телеком, 2009. - 536 c.

2. Партыка, Т. Л. Информационная безопасность / Т.Л. Партыка, И.И. Попов. - М.: Форум, Инфра-М, 2014. - 368 c.

3. Партыка, Т.Л. Информационная безопасность / Т.Л. Партыка, И.И. Попов. - М.: ИНФРА-М, 2013. - 368 c.

4. Степанов, Е.А. Информационная безопасность и защита информации. Учебное пособие / Е.А. Степанов, И.К. Корнеев. - М.: ИНФРА-М, 2013. - 304 c.

5. Ярочкин, В.И. Информационная безопасность / В.И. Ярочкин. - М.: Академический проект, 2008. - 544 c.


ПРИЛОЖЕНИЕ А

Листинг программы

package souces.javabegin.bankomat;

 

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

 

public class Bankomat implements ActionListener {

 

//компоненты GUI

private JFrame frame;

private JPanel mainPanel;

private JLabel jlblBalanceCaption, jlblBalance, jlblMoneyCaption;

private JTextField jtxtMoney;

private JButton jbtnWithdraw, jbtnDeposit;

 

//изначально баланс равен 100

private Account account = new Account(100.00);

 

// запуск программы

public static void main(String[] args) {

//запуск программы в safe потоке

javax.swing.SwingUtilities.invokeLater(new Runnable() {

 

public void run() {

setGUI();

}

});

}

 

private static void setGUI() {

Bankomat gui = new Bankomat();

}

 

//конструктор

public Bankomat() {

//контейнеры

frame = new JFrame("Банкомат");

mainPanel = new JPanel();

mainPanel.setLayout(new GridLayout(3, 2)); //3 строки 2 столбца

 

frame.getContentPane().add(mainPanel);

 

addComponents();

 

//свойства фрейма

frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

frame.setResizable(false);

frame.setSize(200, 150);

frame.setLocation(300, 300);

frame.setVisible(true);

 

//показать баланс в формате в текстовом окне

displayBalance();

}

 

// добавление всех необходимых компонентов

private void addComponents() {

jlblBalanceCaption = new JLabel("Баланс: \u20AC ");// \u20AC - символ валюты Евро

jlblBalance = new JLabel(" ");

jlblMoneyCaption = new JLabel("Деньги: \u20AC ");

jtxtMoney = new JTextField();

jbtnWithdraw = new JButton("Снять");

jbtnDeposit = new JButton("Пополнить");

 

//выравнивание

jlblBalanceCaption.setHorizontalAlignment(JLabel.RIGHT);

jlblMoneyCaption.setHorizontalAlignment(JLabel.RIGHT);

 

//зеленый цвет на черном фоне

jlblBalance.setForeground(Color.GREEN);

jlblBalance.setBackground(Color.BLACK);

jlblBalance.setOpaque(true);

 

//добавление компонентов на панель

mainPanel.add(jlblBalanceCaption);

mainPanel.add(jlblBalance);

mainPanel.add(jlblMoneyCaption);

mainPanel.add(jtxtMoney);

mainPanel.add(jbtnWithdraw);

mainPanel.add(jbtnDeposit);

 

//слушатели событий

jbtnWithdraw.addActionListener(this);

jbtnDeposit.addActionListener(this);

}

 

//перехват нажатия кнопки

@Override

public void actionPerformed(ActionEvent e) {

 

//нажали кнопку "Снять"

if (e.getSource() == jbtnWithdraw) {

withdraw();

 

//нажали кнопку "Пополнить"

} else if (e.getSource() == jbtnDeposit) {

deposit();

}

 

}

 

//показывает баланс

private void displayBalance() {

//конвертировать число в строку

String balance = String.format("%.2f", account.getBalance());

 

//показать результат в текстовом поле

jlblBalance.setText(balance);

}

 

//пополнение

private void deposit() {

// проверка - пополнять можно минимум 100

if (isValidDepsoit()) {

//получить введенные данные

double money = Double.parseDouble(jtxtMoney.getText());

 

//добавить деньги на счет

account.deposit(money);

 

//сообщение пользователю

JOptionPane.showMessageDialog(frame, "Пополнение прошло успешно", "Сообщение", JOptionPane.INFORMATION_MESSAGE);

 

// пересчет баланса

displayBalance();

}

}

 

//снятие

private void withdraw() {

// проверка на снятие суммы

if (isValidWithdrawal()) {

//получить введенные данные

int money = Integer.parseInt(jtxtMoney.getText());

 

//вычесть деньги со счета

account.withdraw(money);

 

//сообщение пользователю

JOptionPane.showMessageDialog(frame, "Снятие прошло успешно", "Сообщение", JOptionPane.INFORMATION_MESSAGE);

 

// пересчет баланса

displayBalance();

}

}

 

//проверка суммы для пополнения

private boolean isValidDepsoit() {

String message = "";

 

//если не число

if (!isDouble(jtxtMoney.getText())) {

message = "Введите число";

 

//если < 100

} else if (Double.parseDouble(jtxtMoney.getText()) < 100.0) {

message = "Минимум для пополнения: 100";

 

//если > 500

} else if (Double.parseDouble(jtxtMoney.getText()) > 500.0) {

message = "Максимум для пополнения: 500";

 

// если все ок

} else {

return true;

}

 

//сообщение пользователю об ошибке

JOptionPane.showMessageDialog(frame, message, "Ошибка", JOptionPane.WARNING_MESSAGE);

jtxtMoney.requestFocus();

jtxtMoney.selectAll();

return false;

}

 

//проверку на сумму снятия

private boolean isValidWithdrawal() {

String message = "";

 

//если не число

if (!isInteger(jtxtMoney.getText())) {

message = "Введите число";

 

//если < 10

} else if (Integer.parseInt(jtxtMoney.getText()) < 10) {

message = "Минимум для снятия: 10";

 

//если > 250

} else if (Integer.parseInt(jtxtMoney.getText()) > 250) {

message = "Максимум для снятия: 250";

 

// если не кратно 10

} else if (Integer.parseInt(jtxtMoney.getText()) % 10!= 0) {

message = "Сумма должна быть кратной 10";

 

// недостаточно средств

} else if (account.getBalance() - Integer.parseInt(jtxtMoney.getText()) < 0) {

message = "Недостаточно средств";

 

//если все ок

} else {

return true;

}

 

//сообщение пользователю

JOptionPane.showMessageDialog(frame, message, "Ошибка", JOptionPane.WARNING_MESSAGE);

jtxtMoney.requestFocus();

jtxtMoney.selectAll();

return false;

}

 

//проверка строки на тип Double

private boolean isDouble(String num) {

try {

Double.parseDouble(num);

return true;

} catch (NumberFormatException e) {

return false;

}

}

 

//проверка строки на тип Integer

private boolean isInteger(String num) {

try {

Integer.parseInt(num);

return true;

} catch (NumberFormatException e) {

return false;

}

}

}



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: