ТЕХНОЛОГИЯ ОРГАНИЗАЦИИ ЗАЩИТЫ ИНФОРМАЦИИ В WEB-БАНКИНГЕ
Байжуманова Асель Эрнисбековна
Студент Евразийского национального университета им. Л.Н.Гумилева, Астана
Научный руководитель - доцент кафедры вычислительной техники Атанов С.К.
Системы интернет-банкинга относятся к классу систем защищенного электронного
документооборота. Для обеспечения аутентичности (доказательство авторства) и
целостности документа в Internet-Банкинге используется механизм электронной цифровой
126
подписи (ЭЦП) под электронными документами. Именно электронный документ с ЭЦП
является основанием для совершения финансовых операций и доказательной базой при
разрешении
конфликтной
ситуации
[1].
Электронная
цифровая
подпись
–
последовательность символов, являющаяся реквизитом электронного документа и
предназначенная для подтверждения целостности и подлинности электронного документа.
Средство электронной цифровой подписи – программное, программно-аппаратное или
техническое средство, реализующее одну или несколько следующих функций: выработку
электронной цифровой подписи, проверку электронной цифровой подписи, создание
личного ключа подписи или открытого ключа [2]
Существует несколько схем построения цифровой подписи:
На
основе
алгоритмов
симметричного
шифрования.
Данная
схема
предусматривает наличие в системе третьего лица — арбитра, пользующегося доверием
обеих сторон. Авторизацией документа является сам факт шифрования его секретным
ключом и передача его арбитру.
На основе алгоритмов асимметричного шифрования. На данный момент такие
схемы ЭЦП наиболее распространены и находят широкое применение.
Кроме этого, существуют другие разновидности цифровых подписей (групповая
подпись, неоспоримая подпись, доверенная подпись), которые являются модификациями.
Для обеспечения конфиденциальности в Internet-Банкинге используется механизм
шифрования данных. При взаимодействии через Интернет осуществляется шифрование и
контроль целостности передаваемой информации, проводится криптографическая
аутентификация сторон. На данный момент стандартным решением проблемы обеспечения
безопасности платежей в интернете является использование технологий SSL(Secure Sockets
Layer) сертификатов, базирующейся на криптографическом алгоритме RSA. Для повышения
безопасности при работе в глобальном информационном пространстве, а именно в таком
аспекте электронной коммерции, как интернет-банкинг, используются самые различные
методы защиты, в том числе и методы защиты на программно-аппаратном уровне: системы
одноразовых паролей. Речь идет о таких аппаратных устройствах, как смарт карты, eToken,
KazToken. К примеру KazToken служит для строгой двухфакторной аутентификации,
защиты электронной переписки, установлении защищенных соединений (VPN, SSL). При
нажатии кнопки на корпусе KazToken дисплей устройства отображает одноразовый пароль
(OTP PIN). Данный пароль действуют только в течении одного сеанса связи.
Аппаратная реализация криптографических алгоритмов и протоколов в устройстве
[3]:
Алгоритм ЭЦП по ГОСТ 34.310 -2004;
генерация ключей;
формирование электронной цифровой подписи.
Вычисление ключа согласования Диффи -Хеллмана (RFC 4357);
Хэширование по ГОСТ 34.311 -95;
Симметричное шифрование по ГОСТ 28147 -89 (простая замена, гаммирование,
гаммированние с обратной связью);
RSA 1024 и 2048 бит (подпись и генерация ключей);
Аппаратная реализация клиентской части TLS;
Выработка ключа согласования по методу Эль -Гамаля.
Наряду с традиционными методами защиты информации в последнее время многие
интрнет-банкинги стали использовать механизм защиты от вредоносных программ –
виртуальную клавиатуру для ввода долговременного пароля. Либо механизм защиты от
фишинга - персональный интерфейс клиента (индивидуальная клавиатура, персональное
обращение к клиенту, цвета фона и рамки виртуальной клавиатуры).
Защита информации в веб-банкинге продолжает оставаться актуальной проблемой на
сегодняшний день. Аспекты, методы организации защиты информации в веб-банкинге
должны быть реализованы в веб-банкинге как можно полнее. На примере система
127
Homebank.kz (Казкомерцбанк), которая была взломана в ночь с 6 на 7 мая 2003, в силу того,
что являлась слабозащищенной (отсутствие ЭЦП, аппаратных устройств генерации
паролей)[4], можно утверждать о необходимости использования всех доступных средств
защиты, начиная с аутентификации, заканчивая кодированием потоков операции.
Литература
1.
«Электронная идентификация», Дшхунян В.Л., Шаньгин В.Ф., стр. 30.
2.
«Электронно-цифровая подпись», www.wikipedia.org.
3.
Официальный сайт KazToken http://www.kaztoken.kz/.
4.
Первый Банковский Форум «Дистанционное обслуживание клиентов» www.Banker.kz
УДК 681.587
ОРГАНИЗАЦИЯ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ НА ПЛАТФОРМЕ .NET, MSDN
VIRTUAL LABS
Байжуманова Асель Э., Конурбаева Айгуль М.
Студенты Евразийского национального университета им. Л.Н.Гумилева, Астана
Научный руководитель - доцент кафедры теоретич. информатики Сексенбаева А.К.
В настоящий момент широкое распространение параллельных архитектур
вычислительных систем, таких как многоядерные процессоры, кластеры и GRID-
архитектуры, вызывает повышение интереса к средствам разработки программного
обеспечения, способного максимально полно использовать аппаратные ресурсы данного
типа.
Параллельные вычисления — это способ организации компьютерных вычислений,
при котором программы разрабатываются как набор взаимодействующих вычислительных
процессов,
работающих
параллельно.
Термин
охватывает
совокупность
вопросов параллелизма
в
программировании,
а
также
создание
эффективно
действующих аппаратных реализаций.
Существуют различные способы реализации параллельных вычислений. Например,
каждый вычислительный процесс может быть реализован в виде процесса операционной
системы, либо же вычислительные процессы могут представлять собой набор потоков
выполнения внутри одного процесса ОС. Параллельные программы могут физически
исполняться либо последовательно на единственном процессоре — проходя по очереди шаги
выполнения каждого вычислительного процесса, либо параллельно — выделяя каждому
вычислительному
процессу
один
или
несколько
процессоров
(находящихся рядом или распределѐнных в компьютерную сеть).
Чтобы задачу можно было решить с помощью параллельных вычислений, алгоритм
решения задачи должен допускать распараллеливание, не каждая задача может быть решена
параллельным алгоритмом. [1]
Доступны следующие программные интерфейсы и библиотеки для организации
параллельных вычислений: OpenMP (www.openmp.org) (для систем с общей (shared)
памятью) и MPI (Message Passing Interface,www.mcs.anl.gov/mpi) (для систем на основе
передачи сообщений) [2]. Они ориентированы, в основном, на языки C и Fortran.
Программирование на MPI часто сравнивают с программированием на ассемблере, каждый
процесс работает в своем адресном пространстве, никаких общих переменных или данных в
MPI нет. Основным способом взаимодействия между процессами является явная посылка
сообщений от одного процесса другому.
На основе платформы . NET фирмы Microsoft также доступна модель асинхронного
параллельного программирования в рамках языка Polyphonic C# [3]. Эта модель базируется
на так называемом join-исчислении - математическом исчислении процессов с
128
высокоуровневым механизмом обработки сообщений, адекватно абстрагирующим
соответствующий низкоуровневый механизм (на основе IP-адресов, портов и сокетов),
который используется в современных компьютерных системах.
Введение новых конструкций для параллельного программирования - асинхронных
методов и связок (chords) в язык Polyphonic C#, который является расширением языка C#,
позволяет обойтись без библиотеки System.Threading, которая обычно требуется для
реализации мультипоточных приложений в рамках .NET.
Следующим шагом навстречу к увеличению количества программистов, владеющих
основами параллельного программирования, и к повышению продуктивности их работы
стало создание языка MC# на платформе .NET.
Язык MC# является адаптацией и развитием базовых идей языка Polyphonic C# на
случай параллельных и распределенных вычислений.
По сравнению с применением интерфейса MPI, в программах на языке MC# нет
необходимости явно управлять распределением вычислительных процессов по процессорам
(ядрам, узлам кластера, машинам Grid-сети), хотя необходимые для этого средства в языке
также предоставляются. Чтобы написать параллельную программу на языке MC#,
достаточно только указать с помощью специальных ключевых слов (async или movable)
какие функции (методы классов) могут быть выполнены параллельно (распределено). Кроме
того, новые вычислительные процессы могут создаваться и распределяться по доступным
узлам (в распределенном режиме) динамически во время исполнения MC#-программ, что
невозможно для MPI-программ [4]
Начинающие изучать параллельные вычисления могут посетить официальный сайт
Microsoft (http://www.microsoft.com), там представлена виртуальная лаборатория MSDN
Virtual Lab, где любой желающий может изучить новый инструмент, платформу или
технологию через удаленные вызываемые виртуальные машины [5]. Здесь находятся
детализированные, пошаговые лабораторные задания по все направлениям, в том числе и по
алгоритмам параллельного вычисления. Лабораторные задания расписаны довольно
понятно, шаг за шагом, выполняя каждое задание, программист учиться распараллеливать
существующие алгоритмы используя статичный класс Parallel helper, создавать и выполнять
задачи, способные завершать процессы и возвращать значения, а также использовать Parallel
LINQ (PLINQ) для оптимизации LINQ запросов на выполнения в параллельной среде.
В MSDN Virtual Lab Introducing.NET4.Parallel Extensions [6] мы проделали 4
лабораторные работы, позволяющие понять суть параллельного вычисления. Для каждой
работы на сайте можно скачать готовый исходный код, запустить и посмотреть результат.
Лабораторные работы можно делать как в самой виртуальной лаборатории, так и локально
на собственной машине.
В первой лабораторной работе нам дан класс служащих, с соответствующим номером
ID, на консоль выводиться время начала процесса обработки для служащего с его ID
номером, и время окончания процесса. После запуска программы на консоли мы видим
следующую картину: все служащие обрабатываются в соответствии с их ID номерами, то
есть процессы выполняются последовательно. Затем нам предлагается распараллелить этот
алгоритм, используя статичный класс Parallel helper и его методы. После добавления в
алгоритм методов класса Parallel helper, мы наблюдаем другую картину: теперь служащие
необязательно обрабатываются в соответствии с их номерами, более того, следующий
процесс начинается, не дожидаясь завершения предыдущего. В целом вся работа программы
выполняется намного быстрее, чем в случае последовательного выполнения.
В последующих лабораторных мы работаем над тем же классом служащих, достигая
параллелизма другими методами. Во второй лабораторной работе, параллелизм достигается
использованием класса Task, и его Task Manager. В третьей лабораторной работе
используется Generic Task с возвращением значения. В четвертой лабораторной работе для
распараллеливания алгоритма используются Parallelized LINQ (PLINQ) запросы.
129
Проделав лабораторные работы в MSDN Virtual Lab Introducing.NET4.Parallel
Extensions, мы расширили свое представление о параллельных вычислениях, ознакомились с
логикой работы параллельных алгоритмов и получили практические навыки
распараллеливание линейных алгоритмов в среде .Net.
Так как параллельные вычисления в настоящий момент меняют наше представление о
сути разработки ПО и в ближайшем будущем именно параллельное программирование
займет приоритетные позиции в сфере разработки ПО, подобные виртуальные лаборатории
служат хорошим пособием для изучения такой сложной парадигмы программирования, как
параллельные вычисления.
Литература
1)
Статья «Параллельные вычисления» http://www.wikiznanie.ru
2)
Лекция: Новые средства языка MC#: async- и movable-методы, каналы и обработчики,
стр 4, Интернет Университет, http://www.intuit.ru/department/calculate/clusterexec/4/
3)
Статья
«Introducing
to
Polyphonic
C#»,
http://research.microsoft.com/en-
us/um/people/nick/polyphony/intro.htm
4)
Лекция: Новые средства языка MC#: async- и movable-методы, каналы и обработчики,
стр 5, Интернет Университет, http://www.intuit.ru/department/calculate/clusterexec/4/
5)
Официальный сайт MSDN раздел Microsoft Developer Network>Lern>MSDN Virtual
Labs «Welcome to MSDN Virtual labs» http://msdn.microsoft.com/en-us/aa570323
6)
Виртуальная лаборатория https://cmg.vlabcenter.com/default.aspx?moduleid=cc0bc14f-
b222-4c3b-b29b-7f729df2af08
ӘОЖ 371.04
КЛИНТ-СЕРВЕР ТЕХНОЛОГИЯСЫ КӚМЕГІМЕН СТУДЕНТТЕРДІҢ БІЛІМІН
БАҚЫЛАУДЫ ЖҤЗЕГЕ АСЫРУ
Болат Берік
Л.Н.Гумилев атындағы Евразиялық ҧлттық университет, Астана қаласы
Ғылыми жетекші: педагогика ғылымдарының докторы, профессор М. Серік
Студенттердің білімін клиент-сервер технологиясы арқылы тест алу жҥйесін
пайдаланып және осы технология кӛмегімен әр студенттің деңгейін бақылау жҥргізу
жасалады.
Клиент-сервер ортасында студенттенрдің білімін тексеруде тӛмендегі программалық
орталардың кӛмегіне сҥйендік:
Visual Studio 2008 Beta 2 (қазіргі Visual Studio 2010 net-тен айырмашылығы аз,
сондықтан қолдануға болады )
Программалау тілі – C#
Мәліметтер базасы – Ms Sql Server 2000
Клиент-серверге-IIS 3.0(Internet information Server).
Мәліметтер базасы қарапайым мәліметтер базасы бір компьютер дискісінің бір немесе
бірнеше файлына орналасады. Мәліметтер базасы ҥлкен компания немесе оқу орыны ҥшін
қҧрылған болса, ондайда бір мәліметті бір мезгілде бірнеше компаниялардың филиалдары
қолдану ҥшін, компьютерлерді бір компьютерлік желіге біріктіріп мәліметтер базасын
серверге негізгі ЭЕМ орналастыру қажет. Желінің жҧмыс станциялары терминал рӛлін
атқарып, қажетті мәліметтерді керек кезінде мәліметтер базасының басқару жҥйесі
орналасқан серверден сҧрап, оның дискісінен алып отырады. Мәліметтер базасын басқару
жҥйесі орналасқан серверге сҧраныс тҥскеннен кейін, керекті мәліметтер жҧмыс
станцияларына жіберіліп отырады. Северлік компьютер әр жерде орналасқан ЭЕМ-дермен,
130
яғни мәліметті пайдаланушымен, тек желілік байланыс арқылы ғана мәлімет алмаса алады.
Тӛмендегі сурет-1 және программалық кодтар студенттің тест тапсыруы және базаға тіркелу
арқылы, ақпаратқа ие болуына қол жетімді болады.
Клиент–сервер интернетке қосылған барлық компьютерлерді екі типке бӛледі, олар:
серверлер және клиенттер. Бір компьютерде серверді де және клиентті де орнату
мағынасында бӛлу онша қатаң жҥргізілмейді. Жергілікті компьютерде Web-сервер
орнатылуы мҥмкін және осыған қарамастан, дәл осы компьютерде браузермен және
почталық клиентпен де жҧмыс жасауға болады. Басқа компьютерлерге анықталған сервис
ҧсынатын компьютерлерді серверлер деп атайды, ал осы сервисті қолданатындар -
клиенттер.
Компьютерлерді серверлер мен клиенттер деп атағаннан гӛрі, оларды бағдарламалық
қамсыздандыру деңгейіндегі клиенттер немесе серверлер деп атаған жӛн. Бір бағдарлама
клиент есебінде, ал екіншісі сервер есебінде іске қосылатын қосымшалардың ӛзара
байланысы клиент-сервер архитектурасы болады.
Сервердің басты тапсырмасы – сервиске қайсыбір клиент сҧраныс жібермейінше әр
кезде жҧмыс жасап және кҥту жағдайында болу болып табылады.
Серверде сҧраныстардың кӛптігінен оның жҧмысы баяулап және белгілі бір
сҧраныстарға қызмет кӛрсетуді тежейді. Серверге сҧраныс белгілі бір протокол шегінде
болады – бҧл Желіде компьютерлер арасында байланысты қамтамасыз ететін стандарттар
жиыны. Серверлік бағдарламалар клиенттік бағдарламаларға қызмет кӛрсету ҥшін
компьютердің аппаратты ресурстарын қолданады. Клиент-бағдарлама сҧраныс қҧрып, оны
Желі арқылы белгілі бір адреске жібереді және алдын ала белгіленген протокол арқылы
сервер-бағдарламамен ӛзара байланысады. Сол бір компьютерде бірнеше серверлік
бағдарламалар орналаса алады. Клиенттік қосымша серверлік қосымша орналасқан
компьютерде де, сонымен қатар, серверден керегінше жойылған компьютерде де орналаса
алады, бірақ олар Желімен байланысса, бҧл айырмашылық тек уақыт бойынша жауаптың
кідіруіне сәйкестеледі.
Серверлік бағдарлама әрқашан сҧранысты орындауға дайын болу керек және
сондықтан да сервер-бағдарлама жҧмыс жасайтын компьютерлерге сенімділікке және
ӛнімділігіне байланысты жоғары шарттар қойылады. Клиенттік компьютердің жҧмысының
тҧрақтылығы бір адамның жҧмысына әсер ететіндіктен, олардың жҧмысына сенімділігіне
байланысты аз талаптар қойылады, ал аппаратты сервердің жҧмысының сенімділігіне
байланысты кӛптеген клиенттердің жҧмысының жҥргізілуі тәуелді болады. Жоғарыда
кӛрсетілген тәсіл (клиент-серверлік архитектура) дербес компьютердің қолданушысына
миллиондаған серверлердің ресурстарына қол жеткізуге мҥмкіндік береді.
Сурет 1 – Қолданбалы программа кестелерінің байланысы
131
Программаның кодынан ҥзінді:
//кітапханалар
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
namespace WindowsFormsApplication1
{
public partial class _Default : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{}
protected void SumbitBtn_Click(object sender, EventArgs e)
{ DataSet DSLogin = new DataSet();
Программаның келесі бӛлігінде базаға сілтеме жасау болып табылады.
//Базаға сілтеу жасау
OleDbConnection
DBConn
=
new
OleDbConnection("Provider=SQLOLEDB;DataSource=sun;IntegratedSecurity=SSPI;Initial
Catalog=education");
Сонымен бірге SQL мәлметтер базасына ӛңдеу жасау былайша орындалады:
//SQL мәлметтер базасына ӛңдеу жасау
string zapr = "Select StudentID from Students Where ((StudentName='" + txtStudentName
+ "') AND (Passwords='" + txtPassword + "'))";
OleDbDataAdapter DBCommand = new OleDbDataAdapter(zapr, DBConn);
DBCommand.Fill(DSLogin, "StudentInfo");
// vsego = DBCommand.Fill(DSLogin);
if (DSLogin.Tables["StudentInfo"].Rows.Count == 0)
{ // if (DSLogin.Tables[0].Rows.Count == 0)
lblMessage.Text = "Студенттің аты-жӛні толық емес" + ", Қайталап енгізіңіз"; }
else
{Session["StudentID"]=DSLogin.Tables["StudentInfo"].Rows[0]["StudentID"];
Session["StudentName"] = txtStudentName.Text;
Response.Redirect("Hom_page.aspx");
/*OleDbConnection
conStat=new
OleDbConnection
("Provider=sqloledb;Server
=localhost;Integrated Security=True;Database=education");
string zaprStat = " INSERT StudentEvent (StudentInfoID, StudentNames, Password)"+ "
VALUES (3,GETDATE()," + DSLogin.Tables[0].Rows[0][0] + ",'зарегистрирован','" +
Request.UserHostAddress.ToString() + "')";
OleDbCommand cmdStat = new OleDbCommand (zaprStat, conStat);
conStat.Open();
cmdStat.ExecuteNonQuery();
conStat.Close();*/}}}}
132
/////////////////////////////////,,,,,
Тестке кіру барысы мына код бойынша жҥзеге асырылады:
// if ((Session["StudentID"]) == 0){Response.Redirect("Dafault,aspx");}
// int all;
if (!IsPostBack)
{DataSet DSPageData = new DataSet();
OleDbConnection DBConn=new OleDbConnection ("Provider=SQLOLEDB; Data
Source=sun;Integrated Security=SSPI;Initial Catalog=education");
string zapr =
"Select Courses.CourseID,CourseName From Courses" +
"Inner Join StudentsCourses on" +
" Courses.CoursesID=StudentsCoursesID" +
" Where StudentID= " + Session["StudentID"];
OleDbDataAdapter DBCommand = new OleDbDataAdapter(zapr, DBConn);
ibTitle.Text = " Студент" + Session["StudentID"] + "";
DBCommand.Fill(DSPageData, "CoursesEnrolled");
if (DSPageData.Tables["CoursesEnrolled"].Rows.Count == 0)
{IbiMessage.Text = "сіз" + "курысқа жазылмағансыз";
ddlCoursesEnrolled.Visible = false;
Button1.Visible = false;}else
{IbiMessage.Text = "Ӛзіңіз талдаған " + "пәнді талдаңыз";
ddlCoursesEnrolled.DataSource =
DSPageData.Tables["CoursesEnrolled"].DefaultView;
ddlCoursesEnrolled.DataBind();}}
Мақалада жасалып жатқан программаның белгілі бір бӛлігінің жҥзеге асырылуы
келтірілген.
УДК 004.432.4
Достарыңызбен бөлісу: |