Қол жеткізуді басқару жүйесін жобалау
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
Ғұмарбек Дәукеев атындағы Алматы энергетика және байланыс университеті коммерциялық емес АҚ
Ақпараттық технологиялар институты
Ақпараттық жүйелер және киберқауіпсіздік кафедрасы
ҚОРҒАУҒА ЖІБЕРІЛДІ
Кафедра меңгерушісі
PhD, доцент
_______________А.К.Мукашева
____ _____________ 2023 ж.
ДИПЛОМДЫҚ ЖОБА
Тақырыбы: Кәсіпорындағы дербес деректерді қорғау жүйесі
Мамандығы: 6B06306 - Ақпараттық қауіпсіздік жүйелері
Орындаған: Тұрсынбаева Б.Ғ. Тобы: СИБк-19-2
Ғылыми жетекші: PhD, доцент Большибаева А.К.
Кеңесшілер:
Экономикалық бөлім: э.ғ.к., доцент____________________ Нұрпейіс Е.М.
____ ____________ 2023 ж.
Өміртіршілік қауіпсіздігі: т.ғ.д., доцент_____________ Жандаулетова Ф.Р
____ ____________2023 ж.
Программалық қамтама: аға оқытушы __________________Сейтқали Ғ.Т.
____ ____________ 2023 ж.
Норма бақылаушы: аға оқытушы _________________________Серік А.Қ
____ ____________ 2023 ж.
Сын-пікір беруші: ф.-м.ғ.к., доцент_________________Шаяхметова А.С.
____ ____________ 2023 ж.
Алматы, 2023
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
Ғұмарбек Дәукеев атындағы Алматы энергетика және байланыс университеті коммерциялық емес АҚ
Ақпараттық технологиялар институты
Ақпараттық жүйелер және киберқауіпсіздік кафедрасы
Мамандығы 6B06306 - Ақпараттық қауіпсіздік жүйелері
Дипломдық жобаны орындауға берілген
ТАПСЫРМА
Білім алушы Тұрсынбаева Баян Ғаниқызы
Жобаның тақырыбы: Кәсіпорындағы дербес деректерді қорғау жүйесі
2022 жылғы 10 қазан №107 университет бұйрығымен бекітілген.
Аяқталған жобаны тапсыру мерзімі: ___ _________ 2023 ж.
Дипломдық жобаның бастапқы мәліметтері (зерттеу (жоба) нәтижелерінің талап етілген параметрлері мен объектінің бастапқы мәліметтері): Ұсынылып отырған дипломдық жобада Қауіпсіз банк жүйесін құру. Жобаны орындау барысында Django және Python тілін қолданамын.
Дипломдық жобада қарастырылған мәселелер тізімі немесе дипломдық жобаның қысқаша мазмұны:
талдау бөлімі;
жобалау бөлімі;
жобаны жүзеге асыру және тестілеу бөлімі;
экономикалық бөлім;
өміртіршілік қауіпсіздігі;
А қосымшасы. Бағдарлама листингі
Графикалық материалдар тізімі (міндетті сызбалар дәл көрсетілуі тиіс): 9 кесте, 13 сурет ұсынылған.
Ұсынылатын негізгі әдебиеттер:
1 Шилдт Г. Python 8. Полное руководство, 9-е изд.: Пер. с англ. - М.: ООО И.Д. Вильямс, 2015. - 1376 с.
2 Прохоренок Н.А. Django и Python7 - СПб.: БХВ - Петербург, 2018. - 320с
3 Menezes, A., van Oorschot, P., & Vanstone, S. Справочник по прикладной криптографии-C.R.C. Press,1996 - 810c.
4 Попов, С. Хеш-функция SHA-3: Keccak. На международном семинаре по криптографическому оборудованию и внедренным системам,2014 - 383 c.
5 Журавлева Л. В., Стригулин К. А. Исследования особенностей развития нейронных сетей в современном мире, Свое издательство, 2016. - 134 с.
Дипломдық жобаның бөлімдеріне қатысты белгіленген кеңес берушілер
Бөлімдер
Кеңесшілер
Мерзімі
Қолы
Экономикалық бөлім
Нұрпейіс Е.М.
14.04.2023- 01.05.2023
Өміртіршілік қауіпсіздігі
Жандаулетова Ф.Р
14.04.2023- 01.05.2023
Программалық қамтама
Сейтқали Ғ.Т.
24.05.2023-29.05.2023
Норма бақылау
Серік А.Қ.
24.05.2023-29.05.2023
Дипломдық жобаны дайындау
КЕСТЕСІ
Бөлімдер атауы, қарастырылатын
мәселелер тізімі
Ғылыми жетекшіге
ұсыну мерзімдері
Ескерту
Талдау бөлімі
2.02.2023-13.03.2023
Жобалау бөлімі
16.03.2023-8.04.2023
Жобаны жүзеге асыру және тестілеу бөлімі
9.04.2023-21.05.2023
Тапсырманың берілген күні ___ ____________ 20__ ж.
Кафедра меңгерушісі________________________ _______А.К. Мукашева
Жобаның ғылыми жетекшісі ________________________ А.К. Мукашева
Тапсырманы орындауға алған
білім алушы______________________________ _______Б.Ғ.Тұрсынбаева
Аңдатпа
Дипломдық жұмыстың бір бөлігі ретінде әзірлеуді жоспарлап отырған банк жүйесі - бұл Python бағдарламалау тілінде Django негізін қолданатын веб-қосымша. MySQL ДҚБЖ деректерді сақтау үшін пайдаланылады.
Бұл жұмыстың мақсаты - қауіпсіздік пен функционалдылықтың заманауи талаптарына жауап беретін қауіпсіз банк жүйесін әзірлеу және енгізу.
Жұмыстың басты назары қауіпсіздік мәселелеріне аударылады. SHA-256 алгоритміне негізделген шифрлау жүйесі енгізілетін болады, ол деректерді қауіпсіз сақтауды және беруді қамтамасыз етеді. Жүйеге кіру үшін рұқсат етілмеген кіруден қорғаудың жоғары деңгейін қамтамасыз ететін бір реттік құпия сөз (OTP) әдісі қолданылады.
Дипломдық жобаның соңғы тараулары бағдарламаның аяқталған нұсқасын қолдана отырып, қауіпсіздік бөлімінің әлеуетті қызметкерінің жұмыс орнын және микроклиматтық жағдайын талдауды, сонымен қатар проблемаларға байланысты жағдайларды шешуді қамтитын өмір қауіпсіздігі мәселелерін қарастырылды. Сонымен қатар, осы қосымшаның техникалық-экономикалық негіздемесінің мәселелері қарастырылады, оған жобаны әзірлеуге кететін шығындардың мөлшері есептелді.
Аннотация
Банковская система, которую вы планируете разработать в рамках своей диссертации, представляет собой веб - приложение, использующее основу Django на языке программирования Python. СУБД MySQL используется для хранения данных.
Целью данной работы является разработка и внедрение безопасной банковской системы, отвечающей современным требованиям безопасности и функциональности.
Основное внимание в работе уделяется вопросам безопасности. Будет внедрена система шифрования на основе алгоритма SHA-256, которая обеспечит безопасное хранение и передачу данных. Для входа в систему используется метод одноразового пароля (OTP), который обеспечивает высокий уровень защиты от несанкционированного доступа.
В последних главах дипломного проекта рассмотрены вопросы безопасности жизнедеятельности, включающие анализ рабочего места и микроклиматических условий потенциального сотрудника отдела безопасности с использованием завершенной версии программы, а также решение ситуаций, связанных с проблемами. Кроме того, рассматриваются вопросы технико-экономического обоснования данного приложения, в котором рассчитан размер затрат на разработку проекта.
Annotation
The banking system, which we plan to develop as part of the thesis, is a web application that uses the basis of Django in the Python programming language. The MySQL DBMS is used to store data.
The purpose of this work is to develop and implement a secure banking system that meets modern requirements for security and functionality.
The main focus of the work is on security issues. An encryption system based on the SHA-256 algorithm will be introduced, which will ensure safe storage and transmission of data. To enter the system, the one-time password (OTP) method is used, which provides a high level of protection against unauthorized access.
The final chapters of the diploma project considered life safety issues, which include an analysis of the workplace and microclimate conditions of a potential employee of the Security Department using the completed version of the program, as well as solving situations related to problems. In addition, the issues of the feasibility study of this application are considered, for which the amount of costs for the development of the project was calculated.
Мазмұны
1 Банк жүйесін құру бойынша теориялық негіздеме 10
1.1 Қолданыстағы банк жүйелеріне шолу және олардың қорғалу деңгейі 10
1.2 Криптография және шифрлау негіздері 10
1.2.1 SHA-256 сипаттамасы және жұмысы 12
1.2.2 OTP (Бір реттік пароль) сипаттамасы және жұмыс принципі 13
1.3 Банктік жүйелердегі қолжетімділікті бақылау әдістері 14
1.4 Трансферттік жүйелердің жұмыс істеу принципі және банктік жүйелердегі қосымшаларды өңдеу 15
1.5 Веб-қосымшаларды әзірлеу контекстіндегі Django құрылымы мен MySQL деректер қорына шолу 18
2 Жүйе талаптары 19
2.1 Жүйе талаптарын талдау 19
2.2 Құралдар мен технологияларды таңдау 21
2.3 MySQL деректер қорының құрылымын жобалау 22
2.4 Django көмегімен қолданба архитектурасын жобалау 23
2.5 Қол жеткізуді басқару жүйесін жобалау 24
2.6 Тасымалдау және қосымшаларды өңдеу жүйесін жобалау 25
3 Банк жүйесін құруды тәжірибе жүзінде жүзеге асыру 26
3.1 Django көмегімен веб-қосымшаны жасау 26
3.2 SHA-256 шифрлау жүйесінің интеграциясы 27
3.3 Функционалдық тестілеу 28
3.4 Қауіпсіздікті тексеру 29
3.5 Өнімділік пен жүктемені сынау 29
3.6 Сынақ нәтижелері және қателерді түзету 30
4 Өмір-тіршілік қауіпсіздігі 35
4.1.1 Еңбек процесінде, әзірлеушіге әсерететін жұмыс орны мен факторлардың сипаттамалары. Жұмыс орны. 35
4.1.2 ДК - мен жұмыс істеу кезінде дұрыс отыру 36
4.1.3 Әзірлеушінің жұмыс орнының құрамы 36
4.1.4 Бөлме ішіндегі жұмыс орнының орналасуы 38
4.1.5 Ғимараттағы жұмыс аймағындағы микроклиматқа қойылатын талаптар. Жұмыс санаты 39
4.2 Жұмыс орнын жарықтандыру 40
4.2.1 Жарықтандыру жүйесін анықтау 41
4.2.2 Жасанды жарықтандыруды есептеу 41
5. Техникалық-экономикалық негіздеме 45
5.1 Бағдарламалық жасақтаманы әзірлеудің көлемі мен күрделілігін анықтау 45
5.2 Орындаушылар саны және бағдарламалық қамтамасыз етуді әзірлеу кезеңі 51
5.3 Ақпараттық технологияларды әзірлеуге арналған шығындарды есептеу 52
Қорытынды 58
Пайдаланылған әдебиеттер 60
А қосымшасы ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .61
Кіріспе
Ақпараттық қауіпсіздік - бүгінгі таңда ең танымал ұғымдардың бірі. Біздің өміріміз қазіргі заманғы концепцияда ақпараттық технологиялармен ажырамас байланысты, сондықтан әрқайсымыз өз деректерімізді қорғауымыз керек. Ақпараттық қауіпсіздікті қамтамасыз етудегі негізгі бағыттардың бірі қашықтағы қызметтерді пайдалану кезіндегі қауіпсіздік болып табылады, бұл әсіресе қаржылық операцияларды жасау кезінде маңызды.
Ақпараттық технологиялар саласындағы қауіпсіздік шаралар кешені болып табылады және оны жүйе ретінде қабылдау керек. Компьютерлік қауіпсіздіктің әртүрлі аспектілері бар, олардың арасында маңыздырақ немесе азырақ ерекшелеу мүмкін емес. Мұнда бәрі маңызды. Сіз бұл шаралардың кез келген бөлігінен бас тарта алмайсыз, әйтпесе жүйе жұмыс істемейді.
Компьютерлік қауіпсіздік жалпы мағынадағы қауіпсіздіктен аз ерекшеленеді. Қарапайым өмірде қабырғасы тесілген ағаш қораға жақсы құлыпты темір есікті ешкім салмайды. Сол сияқты, жақсы шиналары бар, бірақ тежегіштері ақаулы көлік қауіпсіз болмайды. Сол сияқты, компьютердің қауіпсіздігін қамтамасыз ету кезінде агрессивті ортамен байланыста болған барлық жерлерде қорғаныс шараларын сақтау маңызды. Әрбір ақпараттық ресурс, мейлі ол пайдаланушының компьютері немесе ұйымның сервері болсын, толық қорғалуы керек. Файлдық жүйелер, желі және т.б. қорғалуы керек. Деректерге қол жеткізу де қауіпсіз болуы керек, ақпаратпен жұмыс істейтін адамдарды бүкіл жүйенің жұмыс қабілеттілігі мен қауіпсіздігін қамтамасыз ететін механизм тізбегінің буыны ретінде қарастыруға болады.
Біз өз жұмысымызда қашықтағы жүйелерге қол жеткізу кезінде ақпараттық қауіпсіздікті қамтамасыз етудің негізгі аспектілерін қарастырамыз, сонымен қатар қашықтағы жүйелерді кешенді қорғауды жүзеге асыру үшін жүзеге асырылуы қажет бірқатар ұсыныстарды береміз.
Дипломдық жоба кіріспеден, 4 тараудан, қорытындыдан, пайдаланылған көздер тізімінен, қосымшалардан тұрады.
1 Банк жүйесін құру бойынша теориялық негіздеме
1.1 Қолданыстағы банк жүйелеріне шолу және олардың қорғалу деңгейі
Қазіргі заманғы банк жүйелері операциялардың кең спектрін қамтамасыз ететін күрделі және көп функциялы платформалар болып табылады: аударымдар мен төлемдер сияқты қарапайым операциялардан бастап, несие беру және инвестициялық операцияларды қоса алғанда, күрделі процедураларға дейін. Осыған байланысты маңызды аспект клиенттердің деректері мен транзакцияларының қауіпсіздігі мен қорғалуын қамтамасыз ету болып табылады.
Банктік жүйелердің көпшілігі деректерді беру қауіпсіздігін қамтамасыз ету үшін заманауи шифрлау әдістерін пайдаланады. Дегенмен, арнайы әдістер мен алгоритмдер әртүрлі болуы мүмкін. Кейбір жүйелер AES сияқты симметриялық шифрлауды пайдаланады, ал басқалары RSA немесе ECC сияқты асимметриялық әдістерді таңдайды.
Дегенмен, шифрлауды қолдануға қарамастан, барлық жүйелерде жеткілікті қорғаныс деңгейі жоқ. Мысалы, кейбір жүйелерде жеткілікті күшті пайдаланушы аутентификация механизмдері жоқ, бұл тіркелгі деректерінің ағып кетуіне және рұқсатсыз кіруге әкелуі мүмкін.
Тағы бір маңызды аспект - вирустар мен зиянды бағдарламалар сияқты сыртқы қауіптерден қорғау. Бұл тұрғыда барлық жүйелерде жеткілікті тиімді қорғау шаралары жоқ, бұл жүйенің бұзылуына және деректердің ағып кетуіне әкелуі мүмкін.
Банктік жүйелердің қауіпсіздігін арттыру жолдарының бірі көп факторлы аутентификацияны енгізу, оның ішінде OTP және биометриялық деректерді пайдалану болып табылады. Бұл қорғаныс деңгейін арттырады және рұқсатсыз кіру қаупін азайтады.
Тұтастай алғанда, қолданыстағы банктік жүйелерді қорғау деңгейі әртүрлі және көптеген факторларға, соның ішінде таңдалған технологияларға, қорғау механизмдерінің қолжетімділігі мен тиімділігіне, сондай-ақ қауіпсіздік мәселелері бойынша пайдаланушылардың хабардар болуы мен оқыту деңгейіне байланысты деп айтуға болады. .
1.2 Криптография және шифрлау негіздері
Криптография - ақпаратты тек тиісті кілтпен оқуға болатын пішінге түрлендіру арқылы қорғау әдістері туралы ғылым. Бұл рұқсатсыз кіруден қорғау арқылы деректердің құпиялылығын қамтамасыз етеді.
Криптографияның негізгі әдістерінің бірі шифрлау болып табылады, ол бастапқы деректерді (мәтінді) шифрленген мәтін деп аталатын шифрланған пішінге түрлендіреді. Шифрленген мәтінді кәдімгі мәтінге қайта түрлендіру процесі шифрды ашу деп аталады.
Шифрлау симметриялық немесе асимметриялық болуы мүмкін. Симметриялық шифрлау шифрлау үшін де, шифрды шешу үшін де бірдей кілтті пайдаланады. Мысалы, AES (Advanced Encryption Standard) алгоритмі симметриялық шифрлаудың мысалы болып табылады.
Python тіліндегі AES алгоритмін пайдаланып шифрлау және шифрды шешудің мысалын беруге рұқсат етіңіздер:
``` питон
Crypto.Cipher импорттау AES
Crypto.Random импортынан get_random_bytes _
деректер = " құпия деректер ".encode ()
кілт = алу_кездейсоқ_байт ( 16 ) # Жасау кездейсоқ кілт
шифр = AES.new ( кілт, AES.MODE_EAX)
шифрланған мәтін, тег = cipher.encrypt _and_digest (деректер)
# Деректердің шифрын шешу үшін бізге бірдей кілт қажет және бір рет емес
cipher_dec = AES.new ( кілт, AES.MODE_EAX, nonce= cipher.nonce )
ашық мәтін = cipher_dec.decrypt _and_verify (шифрлық мәтін, тег)
print( plaintext.decode ()) # Шығарулар: "құпия деректер"
```
Екінші жағынан, асимметриялық шифрлау екі түрлі кілтті пайдаланады, біреуі шифрлау үшін, екіншісі шифрды шешу үшін. Бұл ашық кілтті шифрлау деп те аталады. Асимметриялық шифрлаудың мысалы RSA алгоритмі болып табылады.
Мұнда Python-да RSA көмегімен асимметриялық шифрлауды пайдалану мысалы берілген:
``` питон
Crypto.PublicKey импорттау RSA
Crypto.Cipher импорттауынан PKCS1_OAEP
# Кілттер жұбын жасаңыз (жалпы және жеке)
KeyPair = RSA.generate (1024)
pubKey = keyPair.publickey ()
pubKeyPEM = pubKey.export_key ( ) _
privKeyPEM = keyPair.export_key ( ) _
# Ашық кілтті пайдаланып хабарламаны шифрлау
шифрлаушы = PKCS1_OAEP.new( pubKey )
шифрланған = encryptor.encrypt ( құпия деректер ".encode())
# Жеке кілт арқылы хабарламаның шифрын шешіңіз
шифрлаушы = PKCS1_OAEP.new ( кілт жұбы )
дешифрланған = деcryptor.decrypt (шифрланған)
print( decrypted.decode ()) # Шығарулар : " құпия деректер
```
Криптографияның маңызды аспектісі деректерді хэш ретінде белгілі тіркелген ұзындықтағы таңбалардың бірегей жиынына түрлендіретін хэштеу болып табылады. Бұл процесс қайтымсыз, яғни хэштен бастапқы деректерді қалпына келтіру мүмкін емес. Хэширлеудің мысалы ретінде SHA-256 алгоритмін келтіруге болады.
Python-да деректерді хэштеу үшін SHA-256 пайдалану мысалы:
``` питон
хэшлибін импорттау
деректер = " құпия деректер ".encode ()
hasshed_data = hashlib.sha 256(деректер). hexdigest ()
print(hashed_ data) # Бастапқы деректердің хэшін басып шығарады
```
Жалпы алғанда, криптография деректер мен транзакцияларды рұқсатсыз қол жеткізуден және айла-шарғы жасаудан қорғау арқылы банктік жүйелердің қауіпсіздігін қамтамасыз етуде маңызды рөл атқарады.
1.2.1 SHA-256 сипаттамасы және жұмысы
Қауіпсіз хэш алгоритмі 256-бит дегенді білдіретін SHA-256 -- кез келген өлшемдегі енгізуді бекітілген өлшемді (256 бит немесе 64 он алтылық таңба) бірегей хэш-кодқа түрлендіретін хэштеу алгоритмі. Бұл процесс бір жақты, яғни бастапқы деректерді хэштен қалпына келтіру мүмкін емес.
SHA-256 SHA-2 алгоритмдер тобына жатады және деректердің тұтастығы мен шынайылығын қамтамасыз ету үшін криптографияда кеңінен қолданылады. Ол веб-сайттарды қорғаудан бастап Bitcoin сияқты блокчейн желілерін құруға дейін әртүрлі салаларда қолданылады.
SHA-256 жұмыс істеу тәсілі бірқатар математикалық операцияларды, соның ішінде разрядты ауыстыруды, логикалық операцияларды және модульдерді қосу операцияларын қамтиды. Ол кіріс деректерін 512 биттік блоктарға бөледі және әр блокты бірнеше айналымда бөлек өңдейді, мұнда әрбір раунд белгілі бір операциялар жиынтығын қамтиды.
Мұнда жолды хэштеу үшін SHA-256 пайдалануды көрсететін Python кодының мысалы берілген:
``` питон
хэшлибін импорттау
деректер = " құпия деректер ".encode ()
hasshed_data = hashlib.sha 256(деректер). hexdigest ()
басып шығару ( хэшірілген_деректер )
# Шығарулар : "5d576e73b5e8740147d0b8cbb1dc79558c e4a024c67bd7e7024bf8d0d8a9803a"
```
Бұл мысалда алдымен әртүрлі хэштеу алгоритмдерімен, соның ішінде SHA-256-мен жұмыс істеу функционалдығын қамтамасыз ететін хэшлиб модулін импорттаймыз. Содан кейін бастапқы деректерді байттарға түрлендіреміз және оны ` hashlib.sha 256()` функциясы арқылы хэштейміз. Хэш нәтижесі ` hexdigest( )` әдісі арқылы он алтылық көрініске түрлендіріледі .
1.2.2 OTP (Бір реттік пароль) сипаттамасы және жұмыс принципі
Бір реттік құпия сөз (OTP) немесе бір реттік құпия сөз -- тек бір сеанс немесе транзакция үшін жарамды құпия сөз. Қауіпсіздікті арттыру үшін екі факторлы аутентификация жүйелерінде бір реттік құпия сөздер жиі қолданылады. Олар қосымша қорғаныс қабатын қамтамасыз етеді, өйткені шабуылдаушы OTP ұрласа да, оны қайта пайдалана алмайды.
OTP жұмыс істеу тәсілі әртүрлі тәсілдерге, соның ішінде уақытқа негізделген алгоритмдерге (TOTP), қарсы негізделген алгоритмдерге (HOTP) немесе HMAC негізіндегі алгоритмдерге (HOTP) негізделуі мүмкін.
Міне, уақыт бойынша OTP (TOTP) генерациясын көрсететін Python кодының мысалы:
``` питон
импорт пиотп
# Құпия кілтті жасаңыз
кілт = pyotp.random_base32 ()
# Осы кілтпен TOTP данасын жасаңыз
totp= pyotp.TOTP (кілт)
# OTP жасаңыз
otp = totp.now ( )
басып шығару ( otp ) # Шығару : OTP (6 сан )
# OTP тексеру
print( totp.verify ( otp )) # Шығарулар : True
```
Бұл мысалда біз алдымен ` pyotp.random _base32()` функциясын пайдаланып құпия кілт жасаймыз. Содан кейін осы кілт арқылы TOTP данасын жасаймыз. ` now( )` әдісі ағымдағы уақытта жарамды OTP жасау үшін пайдаланылады. Одан кейін OTP жарамдылығын тексеру үшін ` verify( )` әдісі қолданылады.
Ескерту: pyotp модулін пайдалану үшін оны `pip install pyotp` пәрмені арқылы орнату керек.
1.3 Банктік жүйелердегі қолжетімділікті бақылау әдістері
Қолжетімділікті бақылау банктік жүйелердегі қауіпсіздіктің негізгі аспектісі болып табылады , ол тек уәкілетті пайдаланушылардың белгілі бір ресурстарға қол жеткізуін немесе белгілі бір әрекеттерді орындауын қамтамасыз етеді. Банктік жүйелер әдетте қауіпсіздік және нормативтік талаптарға сәйкестік мақсаттары үшін қол жеткізуді басқарудың әртүрлі әдістерінің комбинациясын пайдаланады.
-Рөлге негізделген қатынасты басқару (RBAC): RBAC үлгісінде пайдаланушыларға банктегі рөліне қарай рұқсат беріледі. Мысалы, тұтынушы тек өз тіркелгісіне қол жеткізе алады, ал анықтамалық қызмет қызметкері барлық тұтынушы тіркелгілеріне қол жеткізе алады.
-Атрибутқа негізделген қол жеткізуді басқару (ABAC): ABAC үлгісінде кіру құқықтары пайдаланушы идентификаторы, рөл, күн уақыты және орын сияқты төлсипаттарға негізделген. Мысалы, банк тек жұмыс уақытында ақша аударуға рұқсат бере алады.
-Мәтінмәнге негізделген қол жеткізуді басқару: Мәтінмәнге негізделген қатынасты басқару қол жеткізу құқықтарын анықтау кезінде операцияның мәтінмәнін қарастырады. Мысалы, банк банк кеңсесінен тыс компьютерлерден белгілі бір жүйе функцияларына қол жеткізуді шектей алады.
-Деңгейлі қол жеткізуді басқару: Деңгейлі жүйелерде пайдаланушы рұқсаты олардың сенім деңгейіне және олар қол жеткізуге тырысып жатқан деректердің жіктелуіне байланысты басқарылады. Мысалы, құпия қаржылық жазбаларға қол жеткізу сенімнің жоғары деңгейін талап етуі мүмкін.
Қол жеткізуді басқарудың осы әдістерінің барлығы бағдарламалық жасақтамада әртүрлі механизмдер, соның ішінде қол жеткізуді басқару тізімдері (ACL), қауіпсіздік саясаты, қол жеткізу токендері және т.б.
1.4 Трансферттік жүйелердің жұмыс істеу принципі және банктік жүйелердегі қосымшаларды өңдеу
Транзакцияларды тіркеуді және қадағалауды және тараптарды хабардар етуді қоса алғанда, бірнеше негізгі компоненттер мен процестерге негізделген .
Пайдаланушының аутентификациясы: Бұл процесс транзакцияны немесе шағымды бастайтын пайдаланушының шынымен кім екеніне кепілдік береді. Бұған әдетте пайдаланушы аты мен құпия сөзді енгізу арқылы қол жеткізіледі, сонымен қатар OTP арқылы сияқты екі факторлы аутентификацияны қамтуы мүмкін.
Транзакция авторизациясы: Бұл процесс пайдаланушының транзакцияны немесе сұрауды аяқтау үшін қажетті құқықтары бар екенін тексереді. Мысалы, аударуды аяқтау үшін пайдаланушының шотында жеткілікті қаражат болуы керек.
Транзакция деректерін өңдеу және тексеру: Бұл процесс алушының шот нөмірі және аударым сомасы сияқты транзакция деректерінің дұрыстығы мен толықтығын тексеруді қамтиды.
Транзакцияны тіркеу және қадағалау: Әрбір транзакция немесе шағым аудит пен есеп беру үшін дұрыс жазылуы және қадағалануы тиіс.
Тарап туралы хабарлама : Транзакция немесе тапсырыс орындалғаннан кейін барлық тиісті тараптар электрондық пошта немесе SMS арқылы хабарлануы керек.
Төменде банк шоттары арасында ақша аударудың негізгі процесін көрсететін қарапайым PythonDjango код мысалы берілген:
``` питон
django.db импорттық транзакциясынан
Def transfer_funds ( көз_шоты , тағайындалған_шот , сома ):
"""
Банк шоттары арасында ақша аудару функциясы.
"""
transaction.atomic ( ):
# Бастапқы шоттағы қаражатты есептен шығару
source_account.balance - = сома
source_account.save ( )
# Тіркелу нысандар қосулы мақсат тексеру
destination_account.balance += сома
destination_account.save ( )
```
Бұл мысалда біз тіркелгі деректерімен жұмыс істеу үшін Django ORM пайдаланамыз және ақша аудару операциясының атомдық екеніне көз жеткізу үшін Django транзакция менеджерін пайдаланамыз. Егер транзакцияның кез келген бөлігінде қате орын алса, барлық өзгерістер автоматты түрде жойылады және шоттардың күйі өзгеріссіз қалады.
Сондай-ақ, бұл мысал жеңілдетілген және нақты банк жүйесінің көптеген маңызды аспектілерін ескермейтінін атап өткен жөн, мысалы, қателерді өңдеу, қаражатты есептен шығару алдында бастапқы шоттың қалдығын тексеру, транзакцияларды тіркеу және қадағалау, пайдаланушыны хабарландыру, қауіпсіздік және т.б.
1.1-сурет - Класс диаграммасы
1.2-сурет - Жоба архитектурасы
Банктік жүйелердегі өтінімдерді өңдеу әдетте күрделі бизнес логикасын қажет етеді және әртүрлі процестерді қамтуы мүмкін, мысалы, құжаттарды тексеру, пайдаланушының аутентификациясы және авторизациясы, банк қызметкерлерінің өтініштерді қолмен бекітуі және т.б. Бұл бизнес-процестерді басқару (BPM) жүйелері, сыртқы жүйелермен және қызметтермен интеграция және т.б. сияқты әртүрлі технологияларды қолдану арқылы жүзеге асырылуы мүмкін.
1.5 Веб-қосымшаларды әзірлеу контекстіндегі Django құрылымы мен MySQL деректер қорына шолу
Django: Django - күрделі веб-қосымшаларды әзірлеуді жеңілдететін құрамдас бөліктер мен утилиталар жинағын қамтамасыз ететін жоғары деңгейлі Python веб-қосымшаларды әзірлеу жүйесі. Django қайталанатын кодты азайту және қолданбаны қолдау мен кеңейтуді жеңілдету үшін Өзіңізді қайталамау (құрғақ) әдісін қолдайды.
Django көмегімен деректер, пайдаланушының аутентификациясы және авторизациясы, пішіндер, үлгілер, URL маршрутизациясы және т.б. бойынша CRUD (жасау, оқу, жаңарту, жою) операцияларын қолдайтын веб-қосымшаларды оңай жасауға болады. Django сонымен қатар MySQL, PostgreSQL және SQLite қоса алғанда, ыңғайлы дерекқор жұмысы үшін ORM (объектілік қатынасты салыстыру) ұсынады.
MySQL: MySQL -- деректерді өңдеу үшін SQL (Structured Query Language) қолданатын танымал дерекқорды басқару жүйесі (ДҚБЖ). MySQL - деректерді сақтауға және өңдеуге арналған көптеген веб-қосымшаларда кеңінен қолданылатын ашық және сенімді шешім.
MySQL транзакцияларды, ішкі сұрауларды, триггерлерді, көріністерді және сақталған процедураларды қоса алғанда, SQL мүмкіндіктерінің көпшілігін қолдайды, бұл оны күрделі бизнес-процестер мен деректер сұрауларын өңдеуге арналған қуатты құрал етеді. MySQL сонымен қатар индекстеу мен өнімділікті оңтайландырудың тиімді механизмдерін, сондай-ақ басқару және бақылау құралдарының кең ауқымын ұсынады.
Веб-қосымшаларды әзірлеу контекстінде Django және MySQL бірге тиімді пайдаланылуы мүмкін. Django ORM Python кодын пайдаланып MySQL-де деректермен жұмыс істеуге және SQL сұрауларын автоматты түрде генерациялауға мүмкіндік береді, бұл абстракцияның жоғары деңгейін және әзірлеушілерге ыңғайлылықты қамтамасыз етеді. Django сонымен қатар әзірлеу және орналастыру кезінде дерекқор құрылымын өзгертуді жеңілдететін дерекқорды тасымалдауды қолдайды.
2 Жүйе талаптары
2.1 Жүйе талаптарын талдау
Талаптарды талдау жүйені жобалау процесіндегі маңызды қадам болып табылады . Бұл жүйенің не істеуі керек екенін және оны қалай жасау керектігін анықтау және құжаттауды қамтиды. Қауіпсіз банк жүйесіне қойылатын талаптар келесідей болуы мүмкін:
Функционалдық талаптар:
1. Авторизация және аутентификация: Жүйе пайдаланушылардың жеке басын тексеру және олардың жүйеге кіруін бақылау механизмдерін ұсынуы керек. Бұл жүйеге кіру үшін OTP пайдалануды қамтуы керек.
2. Шотты басқару: Жүйе банктік шоттарды құру, ашу, жабу және басқару функцияларын қамтамасыз етуі керек.
3. Аудастар: Жүйе ішкі және сыртқы аударымдарды қоса алғанда, шоттар арасындағы аударымдарды қолдауы керек.
4. Өтінімдерді өңдеу: Жүйеде шот ашу немесе аударымдар сияқты әртүрлі транзакцияларды бекітуге арналған қосымшаларды құру, өңдеу және қадағалау механизмдері болуы керек.
2.2-сурет - Жоба архитектурасы
Функционалды емес талаптар:
1. Қауіпсіздік: Жүйе барлық транзакциялар мен деректер үшін қауіпсіздіктің жоғары деңгейін қамтамасыз етуі керек. Бұл SHA-256 шифрлау әдістерін және қол жеткізудің әртүрлі деңгейлерін пайдалануды қамтуы керек.
2. Өнімділік: Жүйе қызмет көрсетудің қанағаттанарлық сапасын қамтамасыз ету үшін сұраулар мен транзакцияларды жылдам және тиімді өңдей алуы керек.
3. Сенімділік: Жүйе сенімді болуы керек және пайдаланушыларға үздіксіз жұмыс пен қолжетімділікті қамтамасыз етуі керек.
4. Өлшемділік: Жүйе өнімділікке зиян келтірместен транзакциялар мен пайдаланушылар көлемінің ұлғаюын өңдеуге қабілетті болуы керек.
5. Үйлесімділік: Жүйе негізгі браузерлермен және операциялық жүйелермен үйлесімді болуы және мобильді құрылғылар арқылы пайдалануды қолдауы керек.
Бұл талаптарды анықтау жүйені жобалау мен дамытудың нақты жоспарын жасауға көмектеседі және жүйе пайдаланушы мен бизнес қажеттіліктерін қанағаттандыруын қамтамасыз етеді.
2.2 Құралдар мен технологияларды таңдау
Жүйені табысты дамыту үшін дұрыс құралдар мен технологияларды таңдау маңызды. Бұл жұмыста талаптар мен спецификацияларға сүйене отырып, біз қауіпсіз банк жүйесін дамытудың келесі құралдары мен технологияларын анықтадық.
Python және Django: Python негізгі бағдарламалау тілі ретінде оның қарапайымдылығына, икемділігіне және кітапханалар мен фреймворктардың кең ауқымына байланысты таңдалады. Екінші жағынан, Django аутентификацияны, сеансты басқаруды, пішіндерді, URL маршрутизациясын және дерекқорды манипуляциялауды қоса алғанда, ең көп таралған әзірлеу тапсырмаларын өңдеуге арналған кірістірілген құралдар жиынтығының арқасында веб-қосымшаларды әзірлеу үшін өте қолайлы.
2.3-сурет - Реттілік диаграммасы
MySQL: MySQL сенімділігі, өнімділігі және кең қолдауы арқасында негізгі дерекқорды басқару жүйесі ретінде таңдалды. MySQL деректермен жұмыс істеудің ыңғайлы және тиімді әдісін қамтамасыз ететін Django ORM арқылы Django-мен жақсы интеграцияланады.
SHA-256 және OTP : Жүйені қауіпсіз сақтау үшін құпия сөздерді сақтау және тексеру үшін SHA-256 шифрлау алгоритмін және екі факторлы аутентификация үшін OTP (Бір реттік құпия сөз) қолданамыз. Бұл әдістер қауіпсіздіктің жоғары деңгейін қамтамасыз етеді және өнеркәсіпте кеңінен қабылданған.
Docker және Kubernetes: қолданбаны орналастыру және басқару үшін біз Docker және Kubernetes таңдадық . Docker бізге қолданбаны және оның тәуелділіктерін кез келген ортада оңай орналастыруға және іске қосуға болатын стандартталған контейнерлерге буып алуға мүмкіндік береді. Kubernetes, өз кезегінде, контейнерлерді басқару, автоматты масштабтау және жоғары қолжетімділікті басқару үшін қуатты құралдарды ұсынады.
Бұл құралдар мен технологиялар олардың тиімділігі, сенімділігі, қоғамдастықтың қолдауы және саланың озық тәжірибелері негізінде таңдалған. Олар бізге жоғары сапалы, қауіпсіз және ауқымды банк жүйесін дамытуға мүмкіндік береді.
2.3 MySQL деректер қорының құрылымын жобалау
Мәліметтер қорының құрылымы кез келген ақпараттық жүйенің негізгі құрамдас бөлігі болып табылады . Біздің банктік жүйеміз үшін біз келесі мәліметтер базасының құрылымын ұсына аламыз:
1. Пайдаланушылар кестесі: Бұл кестеде банк жүйесінің пайдаланушылары туралы ақпарат болады. Ол пайдаланушы идентификаторы, аты, электрондық пошта мекенжайы, хэштелген құпия сөз (SHA-256 көмегімен), OTP үшін телефон нөмірі және басқа жеке ақпарат сияқты өрістерді қамтуы мүмкін.
2. Кестелік шоттар: Бұл кестеде банктік шоттар туралы ақпарат болады. Ол тіркелгі идентификаторы, иесінің идентификаторы (Пайдаланушылар кестесіне сілтеме), тіркелгі түрі, шот балансы және тіркелгі күйі сияқты өрістерді қамтуы мүмкін.
3. Транзакциялар кестесі: Бұл кестеде жүйеде жасалған транзакциялар туралы ақпарат болады. Ол транзакция идентификаторы, жіберуші идентификаторы, алушы идентификаторы, транзакция сомасы, транзакция күні мен уақыты және транзакция күйі сияқты өрістерді қамтуы мүмкін.
4. Сұраныс кестесі: Бұл кестеде жүйеде жіберілген сұраныстар туралы ақпарат болады. Ол билет идентификаторы, пайдаланушы идентификаторы (Пайдаланушылар кестесіне сілтеме), билет түрі, билет мәліметтері, билетті жіберу күні мен уақыты, билетті өңдеу күні мен уақыты және билет күйі сияқты өрістерді қамтуы мүмкін.
5. UserRoles Table және Рөлдер: Бұл кестелер жүйедегі қатынастың әртүрлі деңгейлерін басқару үшін пайдаланылады. Рөлдер кестесі әртүрлі рөлдерді қамтуы мүмкін (мысалы, клиент, менеджер, әкімші) және UserRoles кестесі пайдаланушыларды рөлдерімен байланыстырады.
Бұл дерекқордың алдын ала құрылымы және бизнес талаптары мен жүйе сипаттамаларына байланысты әзірлеу кезінде өзгертілуі немесе кеңейтілуі мүмкін. Дерекқор құрылымын жобалау кезінде деректерді қалыпқа келтіру, деректер тұтастығы және деректер қауіпсіздігі сияқты маңызды принциптерді ескеру қажет екенін ескеру маңызды.
2.4 Django көмегімен қолданба архитектурасын жобалау
Django қолданбасының архитектурасы Model-View-Controller (MVC) дизайн үлгісіне сәйкес келеді, бірақ Django оны Модель-Көру-Үлгі (MVT) деп атайды. Келесі архитектуралық сызба біздің банктік қосымшамыз үшін пайдалы болады:
1. Модель (үлгі): Джангодағы үлгілер дерекқордың абстракциясы болып табылады. Олар деректермен әрекеттесу үшін қолданылады. Біз дерекқор құрылымына сәйкес үлгілерді жасаймыз. Мысалы, Пайдаланушы, Тіркелгі, Транзакция, Сұраныс және Рөл үлгілері дерекқорымыздағы кестелерге сәйкес болады.
2. Көру (Көрініс): Django ішіндегі көріністер клиенттің сұрауларын өңдеуге және жауапты жасауға жауап береді. Олар үлгілер мен шаблондар арасындағы байланыс қызметін атқарады. Авторизация, тіркелгіні басқару, транзакцияны өңдеу, билеттерді өңдеу және т.б. сияқты әртүрлі операцияларды орындау үшін әртүрлі көріністерді жасаймыз.
3. Үлгі: Django үлгілері клиентке жіберілетін HTML жасау үшін пайдаланылады. Біз қолданбамыздың әртүрлі беттері үшін үлгілерді жасаймыз, соның ішінде кіру беттері, басты бет, есептік жазбаны басқару беті, тасымалдау беті және т.б.
4. URL диспетчері: Django URL мекенжайына негізделген сәйкес көріністерге HTTP сұрауларын бағыттау үшін URL диспетчерін пайдаланады. Біз барлық көріністер үшін URL маршруттарын анықтаймыз.
5. Орталық бағдарламалық құрал: Джангоның аралық бағдарламасы -- сеанстарды өңдеу, авторизациялау, кэштеуді басқару және т.б. сияқты тапсырмаларды орындау үшін әрбір сұраужауап арқылы өтетін ілгектер сериясы. Біз пайдаланушының аутентификациясын тексеру және оның сеансын басқару сияқты тапсырмаларды орындау үшін аралық бағдарламалық құралды қолданамыз.
6. Параметрлер: Django параметрлері жоба конфигурациясының барлық айнымалы мәндерін қамтиды. Біз қолданбамыздың әртүрлі аспектілерін, соның ішінде дерекқор параметрлерін, қауіпсіздік параметрлерін, қолданба параметрлерін және т.б. конфигурациялау үшін параметрлер файлын қолданамыз.
2.4-сурет - Әрекет диаграммасы
Бұл архитектура функциялардың нақты бөлінуін қамтамасыз етеді, бұл қолданбаны әзірлеуді және қолдауды жеңілдетеді.
2.5 Қол жеткізуді басқару жүйесін жобалау
Қол жеткізуді басқару жүйесі банк жүйесінің қауіпсіздігін қамтамасыз етуде маңызды рөл атқарады. Ол кімнің қандай деректерге және жүйе функцияларына қол жеткізе алатынын анықтайды. Біздің банктік жүйе үшін біз келесі қолжетімділікті басқару жүйесін енгізе аламыз:
1. Пайдаланушы рөлдері: Біріншіден, клиент, менеджер және әкімші сияқты жүйедегі әртүрлі пайдаланушы рөлдерін анықтаймыз. Әрбір рөлде белгілі артықшылықтар мен кіру шектеулері болады.
2. Түпнұсқалық растама: пайдаланушылардың аутентификациясы үшін пайдаланушы аты, хэштелген құпия сөз (SHA-256) және бір реттік құпия сөз (OTP) тіркесімін пайдаланамыз. Бұл жүйеге кіру кезінде қауіпсіздіктің жоғары деңгейін қамтамасыз етеді.
3. Сессияны басқару : Сәтті аутентификациядан кейін пайдаланушыға жүйе қадағалайтын сеанс беріледі. Сеанс жүйеде әртүрлі операцияларды орындау кезінде пайдаланушының жеке басын растау үшін пайдаланылады.
4. Артықшылықтарды тексеру : Жүйеде кез келген операцияны орындамас бұрын пайдаланушының артықшылықтары тексеріледі . Мысалы, жаңа тіркелгі сұрауларын тек әкімшілер ғана мақұлдай алады, тек менеджерлер тасымалдау сұрауларын өңдей алады, ал тұтынушылар тек тіркелгілерін қарап, жаңарта алады.
5. Әрекет журналы: Жүйедегі барлық пайдаланушы әрекеттері кейінірек тексеру үшін әрекет журналында жазылады. Бұл кез келген күдікті әрекетті бақылауға және есеп беруге көмектеседі.
Бұл кіруді басқару жүйесі Django қолданбасының кірістірілген аутентификациясы мен сеансын басқару мүмкіндіктерін, сондай-ақ рөлдерді басқару және артықшылықтарды тексеруге арналған жеке тетіктерімізді пайдалана отырып біріктіріледі.
2.6 Тасымалдау және қосымшаларды өңдеу жүйесін жобалау
Аударым және өтінімді өңдеу жүйесі банктік қосымшамыздың екі негізгі құрамдас бөлігі болып табылады . Олар қауіпсіз, тиімді және пайдалану оңай болатындай етіп жасалуы керек.
Трансфер жүйесі
Аударма жүйесі келесі функцияларды орындайды:
1. Тасымалдауды бастау: Тиісті артықшылықтары бар пайдаланушылар есептік жазбалар арасында аударымдарды бастай алады. Жіберуші шотын, алушының шотын және аударым сомасын қоса, аударым мәліметтерін пайдаланушы енгізеді және жүйемен тексереді.
2. Жеткілікті қаражатты тексеру: Жүйе жіберушінің шотында аударымды аяқтау үшін жеткілікті қаражаттың бар-жоғын тексеруі керек.
3. Аударымды өңдеу: Тексеруден кейін жүйе жіберушінің шотынан дебеттеу және оны алушының шотына кредиттеу арқылы аударымды өңдейді.
4. Транзакция журналы: Әрбір аударым аудит және есеп беру үшін транзакция журналына жазылады.
Қолданбаларды өңдеу жүйесі
Өтінімдерді өңдеу жүйесі келесі функцияларды жүзеге асырады:
1. **Қолдану**: Тиісті артықшылықтарға ие пайдаланушылар жаңа тіркелгілерді ашу, тіркелгі шектеулерін өзгерту және т.б. сияқты әртүрлі операцияларға өтініш бере алады.
2. Өтінімдерді өңдеу: Өтініштерді тиісті артықшылықтарға ие банк қызметкерлері өңдейді. Олар өтінімді мақұлдай алады немесе қабылдамайды және нәтиже жүйеде жазылады.
3. Қолданбалардың күйі туралы хабарламалар: Өтінішті өңдегеннен кейін пайдаланушыға оның өтінішінің күйі туралы хабарланады.
4. Билет журналы: Барлық билеттер мен олардың күйлері тексеру және есеп беру мақсатында билеттер журналында жазылады.
Бұл жүйелер Python, Django және MySQL технологияларын пайдалана отырып, қауіпсіздік пен сенімділік принциптеріне сәйкес әзірленетін болады.
Жүйені енгізу
4.1 Мәліметтер қорын құру
Деректер базасын құру бірнеше негізгі қадамдарды қамтиды:
1. Құрылымды анықтау: Біріншіден , біз бұрын жасалған дизайн негізінде деректер базамыздың құрылымын анықтаймыз. Бұл кестелерді құруды және әрбір кестенің өрістерін анықтауды қамтиды.
2. Деректер қорын құру: MySQL көмегімен біз жаңа деректер қорын жасаймыз. Мұны MySQL жүйесіндегі CREATE DATABASE командасы арқылы жасауға болады.
3. Кестелерді құру: Әрі қарай MySQL-тің CREATE TABLE командасын пайдаланып, деректер қорымызда кестелер жасаймыз. Біз барлық өрістерде дұрыс деректер түрлері бар екенін және барлық шектеулердің (мысалы, NULL, UNICE, FOREIGN KEY, т.б.) дұрыс орнатылғанын тексереміз.
4. Индекстеу: өнімділікті оңтайландыру үшін қажет болған жағдайда кестелерімізге индекстерді қосамыз. Индекстер кестелердегі деректерді іздеуді және сұрыптауды жылдамдатады.
5. Тестілеу : Дерекқорды жасағаннан кейін барлығы дұрыс жұмыс істеп тұрғанына көз жеткізу үшін біз оны ТАҢДАУ, КІРУ, ЖАҢАРТУ және ЖОЮ сұрауларын орындау арқылы тексереміз.
Дерекқорды енгізу біздің банк жүйесін құрудағы маңызды қадам болып табылады және деректердің тұтастығын, өнімділігін және қауіпсіздігін қамтамасыз ету үшін мұқият жасалуы керек.
3 Банк жүйесін құруды тәжірибе жүзінде жүзеге асыру
3.1 Django көмегімен веб-қосымшаны жасау
Django веб-қосымшасын әзірлеу бірнеше қадамдарды қамтиды:
1. Ортаны орнату: өндіріс ортасында Django орнату және конфигурациялау. Сәйкес пәрмендерді пайдаланып Django-да жаңа жоба мен қосымшаны құру.
2. Дерекқорды біріктіру: MySQL-мен жұмыс істеу үшін Django-ны орнату, дерекқордағы кестелерге сәйкес деректер үлгілерін жасау. Деректер кестелерін автоматты түрде жасау және жаңарту үшін Django тасымалдауларын пайдалану.
3. Көріністер мен үлгілерді әзірлеу: Клиенттердің әртүрлі сұрауларын өңдеу үшін көріністерді (көріністерді) жасау. Әрбір көрініс белгілі бір URL мекенжайымен байланысты және HTTP жауабын қайтарады. HTML жауаптарын жасау үшін үлгілерді жасаңыз.
4. Қатынастарды басқару жүйесін енгізу: Кірістірілген Django құралдары мен реттелетін шешімдерді пайдалана отырып, аутентификация мен авторизацияны жүзеге асыру. Рөлдер мен қол жеткізу құқықтары жүйесін енгізу.
5. Аудармаларды және қосымшаларды өңдеу жүйесін енгізу: Аудармалармен және қосымшаларды өңдеумен байланысты бизнес-процестердің логикасын жүзеге асыру. Сәйкес көріністерді, үлгілерді және үлгілерді жасаңыз.
6. Тестілеу: қолданбаның дұрыс жұмыс істейтінін тексеру үшін сынақтарды жазу. Джангоның кірістірілген тестілеу құрылымын пайдалану.
7. Орналастыру: қолданбаны серверде орналастыру. Django қолданбасымен жұмыс істеу үшін сервер мен ортаны орнату.
Осы кезеңдерде банк жүйесінің жұмысын қамтамасыз ететін функционалды және қауіпсіз веб-қосымша құрылады.
3.2 SHA-256 шифрлау жүйесінің интеграциясы
SHA-256 (Secure Hash Algorithm 256) - деректерді қорғау үшін қолданылатын криптографиялық хэш алгоритмі. Біздің банктік жүйе контекстінде пайдаланушы құпия сөздерін хэштеу үшін SHA-256 қолданамыз. Бұл процесс келесі қадамдарды қамтиды:
1. Кітапхана таңдау: Python жүйесінде SHA-256 енгізу үшін біз кірістірілген `hashlib` кітапханасын пайдалана аламыз.
2. Тіркеу кезінде құпия сөздерді хэштеу: Пайдаланушы тіркеліп, құпия сөзді таңдағанда, біз сол құпия сөздің хэшін жасау үшін SHA-256 функциясын қолданамыз. Бұл хэш, бастапқы құпия сөз емес, дерекқорда сақталады.
3. Кіру кезінде құпия сөздерді растау : Пайдаланушы жүйеге кіріп, құпия сөзін енгізген кезде , біз қайтадан енгізілген құпия сөздің хэшін жасаймыз және оны дерекқорда сақталған хэшпен салыстырамыз. Екі хэш сәйкес келсе, құпия сөз дұрыс.
4. Қауіпсіз хэшті сақтау: Құпиясөз хэштері дерекқорда шифрланған түрде сақталады, осылайша деректер ағып кетсе де, бастапқы пайдаланушы құпия сөздері қорғалады.
SHA-256 шифрлау жүйесінің интеграциясы пайдаланушы құпия сөздерін рұқсатсыз кіруден қорғау арқылы банктік жүйеміздің қауіпсіздігін арттырады.
Жүйені тестілеу
5.1 Тест жағдайларын дайындау
5.1 Тест жағдайларын дайындау
Сынақ сценарийлерін дайындау тестілеу процесінің маңызды бөлігі болып табылады . Олар біздің банк жүйеміздің функционалдығын тексерудің құрылымдық және ұйымдасқан тәсілін ұсынады. Бұл сценарийлерді дайындау үшін келесі қадамдар берілген:
1. Тексерілетін функционалдылықты анықтаңыз: Бірінші қадам жүйенің қандай мүмкіндіктерін тексеру қажет екенін анықтау болып табылады. Бұл пайдаланушыны тіркеу және жүйеге кіру, тасымалдауларды бастау және орындау, қосымшаларды жіберу және өңдеу, қол жеткізуді басқару және т.б.
2. Тест жағдайларын жасау : Жүйенің әрбір функциясы үшін сынақ жағдайы жасалады. Сынақ жағдайы мүмкіндікті тексеру үшін жасалуы тиіс қадамдарды, сондай-ақ әрбір қадамның күтілетін нәтижесін сипаттайды.
3. Тест деректерін әзірлеу : Әрбір сынақ сценарийі үшін сәйкес сынақ деректерін дайындау керек. Бұл жаңа пайдаланушыны тіркеу деректері, аударуды бастау мәліметтері, өтініш беру туралы ақпарат және т.б. болуы мүмкін.
4. Тест жағдайын тексеру : Сынақ жағдайлары мен деректер жасалғаннан кейін оларды тексеру қажет. Бұл олардың барлық жүйе функцияларын толығымен қамтуын және күтілетін нәтижелердің дұрыстығын қамтамасыз етеді.
Бұл сынақ жағдайлары біздің банк жүйесінің сапасы мен сенімділігін қамтамасыз ету үшін тестілеу процесінде қолданылатын болады.
3.3 Функционалдық тестілеу
Функционалды тестілеу - бағдарламалық қамтамасыз етудің функционалдық талаптары тексерілетін процесс. Ол жүйенің жеке функцияларының өз міндеттерін қажетінше орындайтынын тексереді. Біздің банк жүйесін функционалдық тестілеу үшін келесі қадамдар берілген:
1. Тест сценарийлерін іске асыру: Алдыңғы қадамда дайындалған сынақ сценарийлеріне сүйене отырып , біз жүйенің әрбір функциясын тексереміз. Бұл тіркелу және жүйеге кіру, аударымдар жасау, өтінімдерді жіберу және өңдеу, қол жеткізуді басқару және т.б. кіреді.
2. Нәтижелерді тексеру : Әрбір сынақ жағдайы орындалғаннан кейін біз нәтижелерді тексереміз және оларды біз күткенмен салыстырамыз. Нәтижелер күткендей болса, тест тапсыру болып саналады. Әйтпесе, мәселені анықтап, түзету керек.
3. Нәтижелерді құжаттау: Барлық сынақ нәтижелері құжатталуы керек. Бұған орындалған сынақтар, пайдаланылған деректер, алынған нәтижелер және табылған мәселелер туралы ақпарат кіреді.
4. Қателерді түзету: Тестілеу кезінде қателер табылса, олар түзетілуі керек, содан кейін функция қайтадан тексеріледі.
Функционалдық тестілеу жүйенің әрбір функциясы дұрыс және талаптарға сәйкес жұмыс істейтініне көз жеткізуге көмектеседі. Бұл біздің банк жүйеміздің сапасын қамтамасыз ететін маңызды қадам.
3.4 Қауіпсіздікті тексеру
Төменде жүйенің қауіпсіздігін тексеру үшін жасалған қадамдар берілген:
1. Осалдықты талдау: жүйедегі ықтимал осалдықтарды анықтау үшін осалдық талдауын жүргізіңіз. Бұл портты сканерлеуді, осалдықтарды кодты талдауды, осал тәуелділіктерді тексеруді және т.б.
2. Аутентификацияны тексеру: құпия сөзді ... жалғасы
Ғұмарбек Дәукеев атындағы Алматы энергетика және байланыс университеті коммерциялық емес АҚ
Ақпараттық технологиялар институты
Ақпараттық жүйелер және киберқауіпсіздік кафедрасы
ҚОРҒАУҒА ЖІБЕРІЛДІ
Кафедра меңгерушісі
PhD, доцент
_______________А.К.Мукашева
____ _____________ 2023 ж.
ДИПЛОМДЫҚ ЖОБА
Тақырыбы: Кәсіпорындағы дербес деректерді қорғау жүйесі
Мамандығы: 6B06306 - Ақпараттық қауіпсіздік жүйелері
Орындаған: Тұрсынбаева Б.Ғ. Тобы: СИБк-19-2
Ғылыми жетекші: PhD, доцент Большибаева А.К.
Кеңесшілер:
Экономикалық бөлім: э.ғ.к., доцент____________________ Нұрпейіс Е.М.
____ ____________ 2023 ж.
Өміртіршілік қауіпсіздігі: т.ғ.д., доцент_____________ Жандаулетова Ф.Р
____ ____________2023 ж.
Программалық қамтама: аға оқытушы __________________Сейтқали Ғ.Т.
____ ____________ 2023 ж.
Норма бақылаушы: аға оқытушы _________________________Серік А.Қ
____ ____________ 2023 ж.
Сын-пікір беруші: ф.-м.ғ.к., доцент_________________Шаяхметова А.С.
____ ____________ 2023 ж.
Алматы, 2023
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
Ғұмарбек Дәукеев атындағы Алматы энергетика және байланыс университеті коммерциялық емес АҚ
Ақпараттық технологиялар институты
Ақпараттық жүйелер және киберқауіпсіздік кафедрасы
Мамандығы 6B06306 - Ақпараттық қауіпсіздік жүйелері
Дипломдық жобаны орындауға берілген
ТАПСЫРМА
Білім алушы Тұрсынбаева Баян Ғаниқызы
Жобаның тақырыбы: Кәсіпорындағы дербес деректерді қорғау жүйесі
2022 жылғы 10 қазан №107 университет бұйрығымен бекітілген.
Аяқталған жобаны тапсыру мерзімі: ___ _________ 2023 ж.
Дипломдық жобаның бастапқы мәліметтері (зерттеу (жоба) нәтижелерінің талап етілген параметрлері мен объектінің бастапқы мәліметтері): Ұсынылып отырған дипломдық жобада Қауіпсіз банк жүйесін құру. Жобаны орындау барысында Django және Python тілін қолданамын.
Дипломдық жобада қарастырылған мәселелер тізімі немесе дипломдық жобаның қысқаша мазмұны:
талдау бөлімі;
жобалау бөлімі;
жобаны жүзеге асыру және тестілеу бөлімі;
экономикалық бөлім;
өміртіршілік қауіпсіздігі;
А қосымшасы. Бағдарлама листингі
Графикалық материалдар тізімі (міндетті сызбалар дәл көрсетілуі тиіс): 9 кесте, 13 сурет ұсынылған.
Ұсынылатын негізгі әдебиеттер:
1 Шилдт Г. Python 8. Полное руководство, 9-е изд.: Пер. с англ. - М.: ООО И.Д. Вильямс, 2015. - 1376 с.
2 Прохоренок Н.А. Django и Python7 - СПб.: БХВ - Петербург, 2018. - 320с
3 Menezes, A., van Oorschot, P., & Vanstone, S. Справочник по прикладной криптографии-C.R.C. Press,1996 - 810c.
4 Попов, С. Хеш-функция SHA-3: Keccak. На международном семинаре по криптографическому оборудованию и внедренным системам,2014 - 383 c.
5 Журавлева Л. В., Стригулин К. А. Исследования особенностей развития нейронных сетей в современном мире, Свое издательство, 2016. - 134 с.
Дипломдық жобаның бөлімдеріне қатысты белгіленген кеңес берушілер
Бөлімдер
Кеңесшілер
Мерзімі
Қолы
Экономикалық бөлім
Нұрпейіс Е.М.
14.04.2023- 01.05.2023
Өміртіршілік қауіпсіздігі
Жандаулетова Ф.Р
14.04.2023- 01.05.2023
Программалық қамтама
Сейтқали Ғ.Т.
24.05.2023-29.05.2023
Норма бақылау
Серік А.Қ.
24.05.2023-29.05.2023
Дипломдық жобаны дайындау
КЕСТЕСІ
Бөлімдер атауы, қарастырылатын
мәселелер тізімі
Ғылыми жетекшіге
ұсыну мерзімдері
Ескерту
Талдау бөлімі
2.02.2023-13.03.2023
Жобалау бөлімі
16.03.2023-8.04.2023
Жобаны жүзеге асыру және тестілеу бөлімі
9.04.2023-21.05.2023
Тапсырманың берілген күні ___ ____________ 20__ ж.
Кафедра меңгерушісі________________________ _______А.К. Мукашева
Жобаның ғылыми жетекшісі ________________________ А.К. Мукашева
Тапсырманы орындауға алған
білім алушы______________________________ _______Б.Ғ.Тұрсынбаева
Аңдатпа
Дипломдық жұмыстың бір бөлігі ретінде әзірлеуді жоспарлап отырған банк жүйесі - бұл Python бағдарламалау тілінде Django негізін қолданатын веб-қосымша. MySQL ДҚБЖ деректерді сақтау үшін пайдаланылады.
Бұл жұмыстың мақсаты - қауіпсіздік пен функционалдылықтың заманауи талаптарына жауап беретін қауіпсіз банк жүйесін әзірлеу және енгізу.
Жұмыстың басты назары қауіпсіздік мәселелеріне аударылады. SHA-256 алгоритміне негізделген шифрлау жүйесі енгізілетін болады, ол деректерді қауіпсіз сақтауды және беруді қамтамасыз етеді. Жүйеге кіру үшін рұқсат етілмеген кіруден қорғаудың жоғары деңгейін қамтамасыз ететін бір реттік құпия сөз (OTP) әдісі қолданылады.
Дипломдық жобаның соңғы тараулары бағдарламаның аяқталған нұсқасын қолдана отырып, қауіпсіздік бөлімінің әлеуетті қызметкерінің жұмыс орнын және микроклиматтық жағдайын талдауды, сонымен қатар проблемаларға байланысты жағдайларды шешуді қамтитын өмір қауіпсіздігі мәселелерін қарастырылды. Сонымен қатар, осы қосымшаның техникалық-экономикалық негіздемесінің мәселелері қарастырылады, оған жобаны әзірлеуге кететін шығындардың мөлшері есептелді.
Аннотация
Банковская система, которую вы планируете разработать в рамках своей диссертации, представляет собой веб - приложение, использующее основу Django на языке программирования Python. СУБД MySQL используется для хранения данных.
Целью данной работы является разработка и внедрение безопасной банковской системы, отвечающей современным требованиям безопасности и функциональности.
Основное внимание в работе уделяется вопросам безопасности. Будет внедрена система шифрования на основе алгоритма SHA-256, которая обеспечит безопасное хранение и передачу данных. Для входа в систему используется метод одноразового пароля (OTP), который обеспечивает высокий уровень защиты от несанкционированного доступа.
В последних главах дипломного проекта рассмотрены вопросы безопасности жизнедеятельности, включающие анализ рабочего места и микроклиматических условий потенциального сотрудника отдела безопасности с использованием завершенной версии программы, а также решение ситуаций, связанных с проблемами. Кроме того, рассматриваются вопросы технико-экономического обоснования данного приложения, в котором рассчитан размер затрат на разработку проекта.
Annotation
The banking system, which we plan to develop as part of the thesis, is a web application that uses the basis of Django in the Python programming language. The MySQL DBMS is used to store data.
The purpose of this work is to develop and implement a secure banking system that meets modern requirements for security and functionality.
The main focus of the work is on security issues. An encryption system based on the SHA-256 algorithm will be introduced, which will ensure safe storage and transmission of data. To enter the system, the one-time password (OTP) method is used, which provides a high level of protection against unauthorized access.
The final chapters of the diploma project considered life safety issues, which include an analysis of the workplace and microclimate conditions of a potential employee of the Security Department using the completed version of the program, as well as solving situations related to problems. In addition, the issues of the feasibility study of this application are considered, for which the amount of costs for the development of the project was calculated.
Мазмұны
1 Банк жүйесін құру бойынша теориялық негіздеме 10
1.1 Қолданыстағы банк жүйелеріне шолу және олардың қорғалу деңгейі 10
1.2 Криптография және шифрлау негіздері 10
1.2.1 SHA-256 сипаттамасы және жұмысы 12
1.2.2 OTP (Бір реттік пароль) сипаттамасы және жұмыс принципі 13
1.3 Банктік жүйелердегі қолжетімділікті бақылау әдістері 14
1.4 Трансферттік жүйелердің жұмыс істеу принципі және банктік жүйелердегі қосымшаларды өңдеу 15
1.5 Веб-қосымшаларды әзірлеу контекстіндегі Django құрылымы мен MySQL деректер қорына шолу 18
2 Жүйе талаптары 19
2.1 Жүйе талаптарын талдау 19
2.2 Құралдар мен технологияларды таңдау 21
2.3 MySQL деректер қорының құрылымын жобалау 22
2.4 Django көмегімен қолданба архитектурасын жобалау 23
2.5 Қол жеткізуді басқару жүйесін жобалау 24
2.6 Тасымалдау және қосымшаларды өңдеу жүйесін жобалау 25
3 Банк жүйесін құруды тәжірибе жүзінде жүзеге асыру 26
3.1 Django көмегімен веб-қосымшаны жасау 26
3.2 SHA-256 шифрлау жүйесінің интеграциясы 27
3.3 Функционалдық тестілеу 28
3.4 Қауіпсіздікті тексеру 29
3.5 Өнімділік пен жүктемені сынау 29
3.6 Сынақ нәтижелері және қателерді түзету 30
4 Өмір-тіршілік қауіпсіздігі 35
4.1.1 Еңбек процесінде, әзірлеушіге әсерететін жұмыс орны мен факторлардың сипаттамалары. Жұмыс орны. 35
4.1.2 ДК - мен жұмыс істеу кезінде дұрыс отыру 36
4.1.3 Әзірлеушінің жұмыс орнының құрамы 36
4.1.4 Бөлме ішіндегі жұмыс орнының орналасуы 38
4.1.5 Ғимараттағы жұмыс аймағындағы микроклиматқа қойылатын талаптар. Жұмыс санаты 39
4.2 Жұмыс орнын жарықтандыру 40
4.2.1 Жарықтандыру жүйесін анықтау 41
4.2.2 Жасанды жарықтандыруды есептеу 41
5. Техникалық-экономикалық негіздеме 45
5.1 Бағдарламалық жасақтаманы әзірлеудің көлемі мен күрделілігін анықтау 45
5.2 Орындаушылар саны және бағдарламалық қамтамасыз етуді әзірлеу кезеңі 51
5.3 Ақпараттық технологияларды әзірлеуге арналған шығындарды есептеу 52
Қорытынды 58
Пайдаланылған әдебиеттер 60
А қосымшасы ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .61
Кіріспе
Ақпараттық қауіпсіздік - бүгінгі таңда ең танымал ұғымдардың бірі. Біздің өміріміз қазіргі заманғы концепцияда ақпараттық технологиялармен ажырамас байланысты, сондықтан әрқайсымыз өз деректерімізді қорғауымыз керек. Ақпараттық қауіпсіздікті қамтамасыз етудегі негізгі бағыттардың бірі қашықтағы қызметтерді пайдалану кезіндегі қауіпсіздік болып табылады, бұл әсіресе қаржылық операцияларды жасау кезінде маңызды.
Ақпараттық технологиялар саласындағы қауіпсіздік шаралар кешені болып табылады және оны жүйе ретінде қабылдау керек. Компьютерлік қауіпсіздіктің әртүрлі аспектілері бар, олардың арасында маңыздырақ немесе азырақ ерекшелеу мүмкін емес. Мұнда бәрі маңызды. Сіз бұл шаралардың кез келген бөлігінен бас тарта алмайсыз, әйтпесе жүйе жұмыс істемейді.
Компьютерлік қауіпсіздік жалпы мағынадағы қауіпсіздіктен аз ерекшеленеді. Қарапайым өмірде қабырғасы тесілген ағаш қораға жақсы құлыпты темір есікті ешкім салмайды. Сол сияқты, жақсы шиналары бар, бірақ тежегіштері ақаулы көлік қауіпсіз болмайды. Сол сияқты, компьютердің қауіпсіздігін қамтамасыз ету кезінде агрессивті ортамен байланыста болған барлық жерлерде қорғаныс шараларын сақтау маңызды. Әрбір ақпараттық ресурс, мейлі ол пайдаланушының компьютері немесе ұйымның сервері болсын, толық қорғалуы керек. Файлдық жүйелер, желі және т.б. қорғалуы керек. Деректерге қол жеткізу де қауіпсіз болуы керек, ақпаратпен жұмыс істейтін адамдарды бүкіл жүйенің жұмыс қабілеттілігі мен қауіпсіздігін қамтамасыз ететін механизм тізбегінің буыны ретінде қарастыруға болады.
Біз өз жұмысымызда қашықтағы жүйелерге қол жеткізу кезінде ақпараттық қауіпсіздікті қамтамасыз етудің негізгі аспектілерін қарастырамыз, сонымен қатар қашықтағы жүйелерді кешенді қорғауды жүзеге асыру үшін жүзеге асырылуы қажет бірқатар ұсыныстарды береміз.
Дипломдық жоба кіріспеден, 4 тараудан, қорытындыдан, пайдаланылған көздер тізімінен, қосымшалардан тұрады.
1 Банк жүйесін құру бойынша теориялық негіздеме
1.1 Қолданыстағы банк жүйелеріне шолу және олардың қорғалу деңгейі
Қазіргі заманғы банк жүйелері операциялардың кең спектрін қамтамасыз ететін күрделі және көп функциялы платформалар болып табылады: аударымдар мен төлемдер сияқты қарапайым операциялардан бастап, несие беру және инвестициялық операцияларды қоса алғанда, күрделі процедураларға дейін. Осыған байланысты маңызды аспект клиенттердің деректері мен транзакцияларының қауіпсіздігі мен қорғалуын қамтамасыз ету болып табылады.
Банктік жүйелердің көпшілігі деректерді беру қауіпсіздігін қамтамасыз ету үшін заманауи шифрлау әдістерін пайдаланады. Дегенмен, арнайы әдістер мен алгоритмдер әртүрлі болуы мүмкін. Кейбір жүйелер AES сияқты симметриялық шифрлауды пайдаланады, ал басқалары RSA немесе ECC сияқты асимметриялық әдістерді таңдайды.
Дегенмен, шифрлауды қолдануға қарамастан, барлық жүйелерде жеткілікті қорғаныс деңгейі жоқ. Мысалы, кейбір жүйелерде жеткілікті күшті пайдаланушы аутентификация механизмдері жоқ, бұл тіркелгі деректерінің ағып кетуіне және рұқсатсыз кіруге әкелуі мүмкін.
Тағы бір маңызды аспект - вирустар мен зиянды бағдарламалар сияқты сыртқы қауіптерден қорғау. Бұл тұрғыда барлық жүйелерде жеткілікті тиімді қорғау шаралары жоқ, бұл жүйенің бұзылуына және деректердің ағып кетуіне әкелуі мүмкін.
Банктік жүйелердің қауіпсіздігін арттыру жолдарының бірі көп факторлы аутентификацияны енгізу, оның ішінде OTP және биометриялық деректерді пайдалану болып табылады. Бұл қорғаныс деңгейін арттырады және рұқсатсыз кіру қаупін азайтады.
Тұтастай алғанда, қолданыстағы банктік жүйелерді қорғау деңгейі әртүрлі және көптеген факторларға, соның ішінде таңдалған технологияларға, қорғау механизмдерінің қолжетімділігі мен тиімділігіне, сондай-ақ қауіпсіздік мәселелері бойынша пайдаланушылардың хабардар болуы мен оқыту деңгейіне байланысты деп айтуға болады. .
1.2 Криптография және шифрлау негіздері
Криптография - ақпаратты тек тиісті кілтпен оқуға болатын пішінге түрлендіру арқылы қорғау әдістері туралы ғылым. Бұл рұқсатсыз кіруден қорғау арқылы деректердің құпиялылығын қамтамасыз етеді.
Криптографияның негізгі әдістерінің бірі шифрлау болып табылады, ол бастапқы деректерді (мәтінді) шифрленген мәтін деп аталатын шифрланған пішінге түрлендіреді. Шифрленген мәтінді кәдімгі мәтінге қайта түрлендіру процесі шифрды ашу деп аталады.
Шифрлау симметриялық немесе асимметриялық болуы мүмкін. Симметриялық шифрлау шифрлау үшін де, шифрды шешу үшін де бірдей кілтті пайдаланады. Мысалы, AES (Advanced Encryption Standard) алгоритмі симметриялық шифрлаудың мысалы болып табылады.
Python тіліндегі AES алгоритмін пайдаланып шифрлау және шифрды шешудің мысалын беруге рұқсат етіңіздер:
``` питон
Crypto.Cipher импорттау AES
Crypto.Random импортынан get_random_bytes _
деректер = " құпия деректер ".encode ()
кілт = алу_кездейсоқ_байт ( 16 ) # Жасау кездейсоқ кілт
шифр = AES.new ( кілт, AES.MODE_EAX)
шифрланған мәтін, тег = cipher.encrypt _and_digest (деректер)
# Деректердің шифрын шешу үшін бізге бірдей кілт қажет және бір рет емес
cipher_dec = AES.new ( кілт, AES.MODE_EAX, nonce= cipher.nonce )
ашық мәтін = cipher_dec.decrypt _and_verify (шифрлық мәтін, тег)
print( plaintext.decode ()) # Шығарулар: "құпия деректер"
```
Екінші жағынан, асимметриялық шифрлау екі түрлі кілтті пайдаланады, біреуі шифрлау үшін, екіншісі шифрды шешу үшін. Бұл ашық кілтті шифрлау деп те аталады. Асимметриялық шифрлаудың мысалы RSA алгоритмі болып табылады.
Мұнда Python-да RSA көмегімен асимметриялық шифрлауды пайдалану мысалы берілген:
``` питон
Crypto.PublicKey импорттау RSA
Crypto.Cipher импорттауынан PKCS1_OAEP
# Кілттер жұбын жасаңыз (жалпы және жеке)
KeyPair = RSA.generate (1024)
pubKey = keyPair.publickey ()
pubKeyPEM = pubKey.export_key ( ) _
privKeyPEM = keyPair.export_key ( ) _
# Ашық кілтті пайдаланып хабарламаны шифрлау
шифрлаушы = PKCS1_OAEP.new( pubKey )
шифрланған = encryptor.encrypt ( құпия деректер ".encode())
# Жеке кілт арқылы хабарламаның шифрын шешіңіз
шифрлаушы = PKCS1_OAEP.new ( кілт жұбы )
дешифрланған = деcryptor.decrypt (шифрланған)
print( decrypted.decode ()) # Шығарулар : " құпия деректер
```
Криптографияның маңызды аспектісі деректерді хэш ретінде белгілі тіркелген ұзындықтағы таңбалардың бірегей жиынына түрлендіретін хэштеу болып табылады. Бұл процесс қайтымсыз, яғни хэштен бастапқы деректерді қалпына келтіру мүмкін емес. Хэширлеудің мысалы ретінде SHA-256 алгоритмін келтіруге болады.
Python-да деректерді хэштеу үшін SHA-256 пайдалану мысалы:
``` питон
хэшлибін импорттау
деректер = " құпия деректер ".encode ()
hasshed_data = hashlib.sha 256(деректер). hexdigest ()
print(hashed_ data) # Бастапқы деректердің хэшін басып шығарады
```
Жалпы алғанда, криптография деректер мен транзакцияларды рұқсатсыз қол жеткізуден және айла-шарғы жасаудан қорғау арқылы банктік жүйелердің қауіпсіздігін қамтамасыз етуде маңызды рөл атқарады.
1.2.1 SHA-256 сипаттамасы және жұмысы
Қауіпсіз хэш алгоритмі 256-бит дегенді білдіретін SHA-256 -- кез келген өлшемдегі енгізуді бекітілген өлшемді (256 бит немесе 64 он алтылық таңба) бірегей хэш-кодқа түрлендіретін хэштеу алгоритмі. Бұл процесс бір жақты, яғни бастапқы деректерді хэштен қалпына келтіру мүмкін емес.
SHA-256 SHA-2 алгоритмдер тобына жатады және деректердің тұтастығы мен шынайылығын қамтамасыз ету үшін криптографияда кеңінен қолданылады. Ол веб-сайттарды қорғаудан бастап Bitcoin сияқты блокчейн желілерін құруға дейін әртүрлі салаларда қолданылады.
SHA-256 жұмыс істеу тәсілі бірқатар математикалық операцияларды, соның ішінде разрядты ауыстыруды, логикалық операцияларды және модульдерді қосу операцияларын қамтиды. Ол кіріс деректерін 512 биттік блоктарға бөледі және әр блокты бірнеше айналымда бөлек өңдейді, мұнда әрбір раунд белгілі бір операциялар жиынтығын қамтиды.
Мұнда жолды хэштеу үшін SHA-256 пайдалануды көрсететін Python кодының мысалы берілген:
``` питон
хэшлибін импорттау
деректер = " құпия деректер ".encode ()
hasshed_data = hashlib.sha 256(деректер). hexdigest ()
басып шығару ( хэшірілген_деректер )
# Шығарулар : "5d576e73b5e8740147d0b8cbb1dc79558c e4a024c67bd7e7024bf8d0d8a9803a"
```
Бұл мысалда алдымен әртүрлі хэштеу алгоритмдерімен, соның ішінде SHA-256-мен жұмыс істеу функционалдығын қамтамасыз ететін хэшлиб модулін импорттаймыз. Содан кейін бастапқы деректерді байттарға түрлендіреміз және оны ` hashlib.sha 256()` функциясы арқылы хэштейміз. Хэш нәтижесі ` hexdigest( )` әдісі арқылы он алтылық көрініске түрлендіріледі .
1.2.2 OTP (Бір реттік пароль) сипаттамасы және жұмыс принципі
Бір реттік құпия сөз (OTP) немесе бір реттік құпия сөз -- тек бір сеанс немесе транзакция үшін жарамды құпия сөз. Қауіпсіздікті арттыру үшін екі факторлы аутентификация жүйелерінде бір реттік құпия сөздер жиі қолданылады. Олар қосымша қорғаныс қабатын қамтамасыз етеді, өйткені шабуылдаушы OTP ұрласа да, оны қайта пайдалана алмайды.
OTP жұмыс істеу тәсілі әртүрлі тәсілдерге, соның ішінде уақытқа негізделген алгоритмдерге (TOTP), қарсы негізделген алгоритмдерге (HOTP) немесе HMAC негізіндегі алгоритмдерге (HOTP) негізделуі мүмкін.
Міне, уақыт бойынша OTP (TOTP) генерациясын көрсететін Python кодының мысалы:
``` питон
импорт пиотп
# Құпия кілтті жасаңыз
кілт = pyotp.random_base32 ()
# Осы кілтпен TOTP данасын жасаңыз
totp= pyotp.TOTP (кілт)
# OTP жасаңыз
otp = totp.now ( )
басып шығару ( otp ) # Шығару : OTP (6 сан )
# OTP тексеру
print( totp.verify ( otp )) # Шығарулар : True
```
Бұл мысалда біз алдымен ` pyotp.random _base32()` функциясын пайдаланып құпия кілт жасаймыз. Содан кейін осы кілт арқылы TOTP данасын жасаймыз. ` now( )` әдісі ағымдағы уақытта жарамды OTP жасау үшін пайдаланылады. Одан кейін OTP жарамдылығын тексеру үшін ` verify( )` әдісі қолданылады.
Ескерту: pyotp модулін пайдалану үшін оны `pip install pyotp` пәрмені арқылы орнату керек.
1.3 Банктік жүйелердегі қолжетімділікті бақылау әдістері
Қолжетімділікті бақылау банктік жүйелердегі қауіпсіздіктің негізгі аспектісі болып табылады , ол тек уәкілетті пайдаланушылардың белгілі бір ресурстарға қол жеткізуін немесе белгілі бір әрекеттерді орындауын қамтамасыз етеді. Банктік жүйелер әдетте қауіпсіздік және нормативтік талаптарға сәйкестік мақсаттары үшін қол жеткізуді басқарудың әртүрлі әдістерінің комбинациясын пайдаланады.
-Рөлге негізделген қатынасты басқару (RBAC): RBAC үлгісінде пайдаланушыларға банктегі рөліне қарай рұқсат беріледі. Мысалы, тұтынушы тек өз тіркелгісіне қол жеткізе алады, ал анықтамалық қызмет қызметкері барлық тұтынушы тіркелгілеріне қол жеткізе алады.
-Атрибутқа негізделген қол жеткізуді басқару (ABAC): ABAC үлгісінде кіру құқықтары пайдаланушы идентификаторы, рөл, күн уақыты және орын сияқты төлсипаттарға негізделген. Мысалы, банк тек жұмыс уақытында ақша аударуға рұқсат бере алады.
-Мәтінмәнге негізделген қол жеткізуді басқару: Мәтінмәнге негізделген қатынасты басқару қол жеткізу құқықтарын анықтау кезінде операцияның мәтінмәнін қарастырады. Мысалы, банк банк кеңсесінен тыс компьютерлерден белгілі бір жүйе функцияларына қол жеткізуді шектей алады.
-Деңгейлі қол жеткізуді басқару: Деңгейлі жүйелерде пайдаланушы рұқсаты олардың сенім деңгейіне және олар қол жеткізуге тырысып жатқан деректердің жіктелуіне байланысты басқарылады. Мысалы, құпия қаржылық жазбаларға қол жеткізу сенімнің жоғары деңгейін талап етуі мүмкін.
Қол жеткізуді басқарудың осы әдістерінің барлығы бағдарламалық жасақтамада әртүрлі механизмдер, соның ішінде қол жеткізуді басқару тізімдері (ACL), қауіпсіздік саясаты, қол жеткізу токендері және т.б.
1.4 Трансферттік жүйелердің жұмыс істеу принципі және банктік жүйелердегі қосымшаларды өңдеу
Транзакцияларды тіркеуді және қадағалауды және тараптарды хабардар етуді қоса алғанда, бірнеше негізгі компоненттер мен процестерге негізделген .
Пайдаланушының аутентификациясы: Бұл процесс транзакцияны немесе шағымды бастайтын пайдаланушының шынымен кім екеніне кепілдік береді. Бұған әдетте пайдаланушы аты мен құпия сөзді енгізу арқылы қол жеткізіледі, сонымен қатар OTP арқылы сияқты екі факторлы аутентификацияны қамтуы мүмкін.
Транзакция авторизациясы: Бұл процесс пайдаланушының транзакцияны немесе сұрауды аяқтау үшін қажетті құқықтары бар екенін тексереді. Мысалы, аударуды аяқтау үшін пайдаланушының шотында жеткілікті қаражат болуы керек.
Транзакция деректерін өңдеу және тексеру: Бұл процесс алушының шот нөмірі және аударым сомасы сияқты транзакция деректерінің дұрыстығы мен толықтығын тексеруді қамтиды.
Транзакцияны тіркеу және қадағалау: Әрбір транзакция немесе шағым аудит пен есеп беру үшін дұрыс жазылуы және қадағалануы тиіс.
Тарап туралы хабарлама : Транзакция немесе тапсырыс орындалғаннан кейін барлық тиісті тараптар электрондық пошта немесе SMS арқылы хабарлануы керек.
Төменде банк шоттары арасында ақша аударудың негізгі процесін көрсететін қарапайым PythonDjango код мысалы берілген:
``` питон
django.db импорттық транзакциясынан
Def transfer_funds ( көз_шоты , тағайындалған_шот , сома ):
"""
Банк шоттары арасында ақша аудару функциясы.
"""
transaction.atomic ( ):
# Бастапқы шоттағы қаражатты есептен шығару
source_account.balance - = сома
source_account.save ( )
# Тіркелу нысандар қосулы мақсат тексеру
destination_account.balance += сома
destination_account.save ( )
```
Бұл мысалда біз тіркелгі деректерімен жұмыс істеу үшін Django ORM пайдаланамыз және ақша аудару операциясының атомдық екеніне көз жеткізу үшін Django транзакция менеджерін пайдаланамыз. Егер транзакцияның кез келген бөлігінде қате орын алса, барлық өзгерістер автоматты түрде жойылады және шоттардың күйі өзгеріссіз қалады.
Сондай-ақ, бұл мысал жеңілдетілген және нақты банк жүйесінің көптеген маңызды аспектілерін ескермейтінін атап өткен жөн, мысалы, қателерді өңдеу, қаражатты есептен шығару алдында бастапқы шоттың қалдығын тексеру, транзакцияларды тіркеу және қадағалау, пайдаланушыны хабарландыру, қауіпсіздік және т.б.
1.1-сурет - Класс диаграммасы
1.2-сурет - Жоба архитектурасы
Банктік жүйелердегі өтінімдерді өңдеу әдетте күрделі бизнес логикасын қажет етеді және әртүрлі процестерді қамтуы мүмкін, мысалы, құжаттарды тексеру, пайдаланушының аутентификациясы және авторизациясы, банк қызметкерлерінің өтініштерді қолмен бекітуі және т.б. Бұл бизнес-процестерді басқару (BPM) жүйелері, сыртқы жүйелермен және қызметтермен интеграция және т.б. сияқты әртүрлі технологияларды қолдану арқылы жүзеге асырылуы мүмкін.
1.5 Веб-қосымшаларды әзірлеу контекстіндегі Django құрылымы мен MySQL деректер қорына шолу
Django: Django - күрделі веб-қосымшаларды әзірлеуді жеңілдететін құрамдас бөліктер мен утилиталар жинағын қамтамасыз ететін жоғары деңгейлі Python веб-қосымшаларды әзірлеу жүйесі. Django қайталанатын кодты азайту және қолданбаны қолдау мен кеңейтуді жеңілдету үшін Өзіңізді қайталамау (құрғақ) әдісін қолдайды.
Django көмегімен деректер, пайдаланушының аутентификациясы және авторизациясы, пішіндер, үлгілер, URL маршрутизациясы және т.б. бойынша CRUD (жасау, оқу, жаңарту, жою) операцияларын қолдайтын веб-қосымшаларды оңай жасауға болады. Django сонымен қатар MySQL, PostgreSQL және SQLite қоса алғанда, ыңғайлы дерекқор жұмысы үшін ORM (объектілік қатынасты салыстыру) ұсынады.
MySQL: MySQL -- деректерді өңдеу үшін SQL (Structured Query Language) қолданатын танымал дерекқорды басқару жүйесі (ДҚБЖ). MySQL - деректерді сақтауға және өңдеуге арналған көптеген веб-қосымшаларда кеңінен қолданылатын ашық және сенімді шешім.
MySQL транзакцияларды, ішкі сұрауларды, триггерлерді, көріністерді және сақталған процедураларды қоса алғанда, SQL мүмкіндіктерінің көпшілігін қолдайды, бұл оны күрделі бизнес-процестер мен деректер сұрауларын өңдеуге арналған қуатты құрал етеді. MySQL сонымен қатар индекстеу мен өнімділікті оңтайландырудың тиімді механизмдерін, сондай-ақ басқару және бақылау құралдарының кең ауқымын ұсынады.
Веб-қосымшаларды әзірлеу контекстінде Django және MySQL бірге тиімді пайдаланылуы мүмкін. Django ORM Python кодын пайдаланып MySQL-де деректермен жұмыс істеуге және SQL сұрауларын автоматты түрде генерациялауға мүмкіндік береді, бұл абстракцияның жоғары деңгейін және әзірлеушілерге ыңғайлылықты қамтамасыз етеді. Django сонымен қатар әзірлеу және орналастыру кезінде дерекқор құрылымын өзгертуді жеңілдететін дерекқорды тасымалдауды қолдайды.
2 Жүйе талаптары
2.1 Жүйе талаптарын талдау
Талаптарды талдау жүйені жобалау процесіндегі маңызды қадам болып табылады . Бұл жүйенің не істеуі керек екенін және оны қалай жасау керектігін анықтау және құжаттауды қамтиды. Қауіпсіз банк жүйесіне қойылатын талаптар келесідей болуы мүмкін:
Функционалдық талаптар:
1. Авторизация және аутентификация: Жүйе пайдаланушылардың жеке басын тексеру және олардың жүйеге кіруін бақылау механизмдерін ұсынуы керек. Бұл жүйеге кіру үшін OTP пайдалануды қамтуы керек.
2. Шотты басқару: Жүйе банктік шоттарды құру, ашу, жабу және басқару функцияларын қамтамасыз етуі керек.
3. Аудастар: Жүйе ішкі және сыртқы аударымдарды қоса алғанда, шоттар арасындағы аударымдарды қолдауы керек.
4. Өтінімдерді өңдеу: Жүйеде шот ашу немесе аударымдар сияқты әртүрлі транзакцияларды бекітуге арналған қосымшаларды құру, өңдеу және қадағалау механизмдері болуы керек.
2.2-сурет - Жоба архитектурасы
Функционалды емес талаптар:
1. Қауіпсіздік: Жүйе барлық транзакциялар мен деректер үшін қауіпсіздіктің жоғары деңгейін қамтамасыз етуі керек. Бұл SHA-256 шифрлау әдістерін және қол жеткізудің әртүрлі деңгейлерін пайдалануды қамтуы керек.
2. Өнімділік: Жүйе қызмет көрсетудің қанағаттанарлық сапасын қамтамасыз ету үшін сұраулар мен транзакцияларды жылдам және тиімді өңдей алуы керек.
3. Сенімділік: Жүйе сенімді болуы керек және пайдаланушыларға үздіксіз жұмыс пен қолжетімділікті қамтамасыз етуі керек.
4. Өлшемділік: Жүйе өнімділікке зиян келтірместен транзакциялар мен пайдаланушылар көлемінің ұлғаюын өңдеуге қабілетті болуы керек.
5. Үйлесімділік: Жүйе негізгі браузерлермен және операциялық жүйелермен үйлесімді болуы және мобильді құрылғылар арқылы пайдалануды қолдауы керек.
Бұл талаптарды анықтау жүйені жобалау мен дамытудың нақты жоспарын жасауға көмектеседі және жүйе пайдаланушы мен бизнес қажеттіліктерін қанағаттандыруын қамтамасыз етеді.
2.2 Құралдар мен технологияларды таңдау
Жүйені табысты дамыту үшін дұрыс құралдар мен технологияларды таңдау маңызды. Бұл жұмыста талаптар мен спецификацияларға сүйене отырып, біз қауіпсіз банк жүйесін дамытудың келесі құралдары мен технологияларын анықтадық.
Python және Django: Python негізгі бағдарламалау тілі ретінде оның қарапайымдылығына, икемділігіне және кітапханалар мен фреймворктардың кең ауқымына байланысты таңдалады. Екінші жағынан, Django аутентификацияны, сеансты басқаруды, пішіндерді, URL маршрутизациясын және дерекқорды манипуляциялауды қоса алғанда, ең көп таралған әзірлеу тапсырмаларын өңдеуге арналған кірістірілген құралдар жиынтығының арқасында веб-қосымшаларды әзірлеу үшін өте қолайлы.
2.3-сурет - Реттілік диаграммасы
MySQL: MySQL сенімділігі, өнімділігі және кең қолдауы арқасында негізгі дерекқорды басқару жүйесі ретінде таңдалды. MySQL деректермен жұмыс істеудің ыңғайлы және тиімді әдісін қамтамасыз ететін Django ORM арқылы Django-мен жақсы интеграцияланады.
SHA-256 және OTP : Жүйені қауіпсіз сақтау үшін құпия сөздерді сақтау және тексеру үшін SHA-256 шифрлау алгоритмін және екі факторлы аутентификация үшін OTP (Бір реттік құпия сөз) қолданамыз. Бұл әдістер қауіпсіздіктің жоғары деңгейін қамтамасыз етеді және өнеркәсіпте кеңінен қабылданған.
Docker және Kubernetes: қолданбаны орналастыру және басқару үшін біз Docker және Kubernetes таңдадық . Docker бізге қолданбаны және оның тәуелділіктерін кез келген ортада оңай орналастыруға және іске қосуға болатын стандартталған контейнерлерге буып алуға мүмкіндік береді. Kubernetes, өз кезегінде, контейнерлерді басқару, автоматты масштабтау және жоғары қолжетімділікті басқару үшін қуатты құралдарды ұсынады.
Бұл құралдар мен технологиялар олардың тиімділігі, сенімділігі, қоғамдастықтың қолдауы және саланың озық тәжірибелері негізінде таңдалған. Олар бізге жоғары сапалы, қауіпсіз және ауқымды банк жүйесін дамытуға мүмкіндік береді.
2.3 MySQL деректер қорының құрылымын жобалау
Мәліметтер қорының құрылымы кез келген ақпараттық жүйенің негізгі құрамдас бөлігі болып табылады . Біздің банктік жүйеміз үшін біз келесі мәліметтер базасының құрылымын ұсына аламыз:
1. Пайдаланушылар кестесі: Бұл кестеде банк жүйесінің пайдаланушылары туралы ақпарат болады. Ол пайдаланушы идентификаторы, аты, электрондық пошта мекенжайы, хэштелген құпия сөз (SHA-256 көмегімен), OTP үшін телефон нөмірі және басқа жеке ақпарат сияқты өрістерді қамтуы мүмкін.
2. Кестелік шоттар: Бұл кестеде банктік шоттар туралы ақпарат болады. Ол тіркелгі идентификаторы, иесінің идентификаторы (Пайдаланушылар кестесіне сілтеме), тіркелгі түрі, шот балансы және тіркелгі күйі сияқты өрістерді қамтуы мүмкін.
3. Транзакциялар кестесі: Бұл кестеде жүйеде жасалған транзакциялар туралы ақпарат болады. Ол транзакция идентификаторы, жіберуші идентификаторы, алушы идентификаторы, транзакция сомасы, транзакция күні мен уақыты және транзакция күйі сияқты өрістерді қамтуы мүмкін.
4. Сұраныс кестесі: Бұл кестеде жүйеде жіберілген сұраныстар туралы ақпарат болады. Ол билет идентификаторы, пайдаланушы идентификаторы (Пайдаланушылар кестесіне сілтеме), билет түрі, билет мәліметтері, билетті жіберу күні мен уақыты, билетті өңдеу күні мен уақыты және билет күйі сияқты өрістерді қамтуы мүмкін.
5. UserRoles Table және Рөлдер: Бұл кестелер жүйедегі қатынастың әртүрлі деңгейлерін басқару үшін пайдаланылады. Рөлдер кестесі әртүрлі рөлдерді қамтуы мүмкін (мысалы, клиент, менеджер, әкімші) және UserRoles кестесі пайдаланушыларды рөлдерімен байланыстырады.
Бұл дерекқордың алдын ала құрылымы және бизнес талаптары мен жүйе сипаттамаларына байланысты әзірлеу кезінде өзгертілуі немесе кеңейтілуі мүмкін. Дерекқор құрылымын жобалау кезінде деректерді қалыпқа келтіру, деректер тұтастығы және деректер қауіпсіздігі сияқты маңызды принциптерді ескеру қажет екенін ескеру маңызды.
2.4 Django көмегімен қолданба архитектурасын жобалау
Django қолданбасының архитектурасы Model-View-Controller (MVC) дизайн үлгісіне сәйкес келеді, бірақ Django оны Модель-Көру-Үлгі (MVT) деп атайды. Келесі архитектуралық сызба біздің банктік қосымшамыз үшін пайдалы болады:
1. Модель (үлгі): Джангодағы үлгілер дерекқордың абстракциясы болып табылады. Олар деректермен әрекеттесу үшін қолданылады. Біз дерекқор құрылымына сәйкес үлгілерді жасаймыз. Мысалы, Пайдаланушы, Тіркелгі, Транзакция, Сұраныс және Рөл үлгілері дерекқорымыздағы кестелерге сәйкес болады.
2. Көру (Көрініс): Django ішіндегі көріністер клиенттің сұрауларын өңдеуге және жауапты жасауға жауап береді. Олар үлгілер мен шаблондар арасындағы байланыс қызметін атқарады. Авторизация, тіркелгіні басқару, транзакцияны өңдеу, билеттерді өңдеу және т.б. сияқты әртүрлі операцияларды орындау үшін әртүрлі көріністерді жасаймыз.
3. Үлгі: Django үлгілері клиентке жіберілетін HTML жасау үшін пайдаланылады. Біз қолданбамыздың әртүрлі беттері үшін үлгілерді жасаймыз, соның ішінде кіру беттері, басты бет, есептік жазбаны басқару беті, тасымалдау беті және т.б.
4. URL диспетчері: Django URL мекенжайына негізделген сәйкес көріністерге HTTP сұрауларын бағыттау үшін URL диспетчерін пайдаланады. Біз барлық көріністер үшін URL маршруттарын анықтаймыз.
5. Орталық бағдарламалық құрал: Джангоның аралық бағдарламасы -- сеанстарды өңдеу, авторизациялау, кэштеуді басқару және т.б. сияқты тапсырмаларды орындау үшін әрбір сұраужауап арқылы өтетін ілгектер сериясы. Біз пайдаланушының аутентификациясын тексеру және оның сеансын басқару сияқты тапсырмаларды орындау үшін аралық бағдарламалық құралды қолданамыз.
6. Параметрлер: Django параметрлері жоба конфигурациясының барлық айнымалы мәндерін қамтиды. Біз қолданбамыздың әртүрлі аспектілерін, соның ішінде дерекқор параметрлерін, қауіпсіздік параметрлерін, қолданба параметрлерін және т.б. конфигурациялау үшін параметрлер файлын қолданамыз.
2.4-сурет - Әрекет диаграммасы
Бұл архитектура функциялардың нақты бөлінуін қамтамасыз етеді, бұл қолданбаны әзірлеуді және қолдауды жеңілдетеді.
2.5 Қол жеткізуді басқару жүйесін жобалау
Қол жеткізуді басқару жүйесі банк жүйесінің қауіпсіздігін қамтамасыз етуде маңызды рөл атқарады. Ол кімнің қандай деректерге және жүйе функцияларына қол жеткізе алатынын анықтайды. Біздің банктік жүйе үшін біз келесі қолжетімділікті басқару жүйесін енгізе аламыз:
1. Пайдаланушы рөлдері: Біріншіден, клиент, менеджер және әкімші сияқты жүйедегі әртүрлі пайдаланушы рөлдерін анықтаймыз. Әрбір рөлде белгілі артықшылықтар мен кіру шектеулері болады.
2. Түпнұсқалық растама: пайдаланушылардың аутентификациясы үшін пайдаланушы аты, хэштелген құпия сөз (SHA-256) және бір реттік құпия сөз (OTP) тіркесімін пайдаланамыз. Бұл жүйеге кіру кезінде қауіпсіздіктің жоғары деңгейін қамтамасыз етеді.
3. Сессияны басқару : Сәтті аутентификациядан кейін пайдаланушыға жүйе қадағалайтын сеанс беріледі. Сеанс жүйеде әртүрлі операцияларды орындау кезінде пайдаланушының жеке басын растау үшін пайдаланылады.
4. Артықшылықтарды тексеру : Жүйеде кез келген операцияны орындамас бұрын пайдаланушының артықшылықтары тексеріледі . Мысалы, жаңа тіркелгі сұрауларын тек әкімшілер ғана мақұлдай алады, тек менеджерлер тасымалдау сұрауларын өңдей алады, ал тұтынушылар тек тіркелгілерін қарап, жаңарта алады.
5. Әрекет журналы: Жүйедегі барлық пайдаланушы әрекеттері кейінірек тексеру үшін әрекет журналында жазылады. Бұл кез келген күдікті әрекетті бақылауға және есеп беруге көмектеседі.
Бұл кіруді басқару жүйесі Django қолданбасының кірістірілген аутентификациясы мен сеансын басқару мүмкіндіктерін, сондай-ақ рөлдерді басқару және артықшылықтарды тексеруге арналған жеке тетіктерімізді пайдалана отырып біріктіріледі.
2.6 Тасымалдау және қосымшаларды өңдеу жүйесін жобалау
Аударым және өтінімді өңдеу жүйесі банктік қосымшамыздың екі негізгі құрамдас бөлігі болып табылады . Олар қауіпсіз, тиімді және пайдалану оңай болатындай етіп жасалуы керек.
Трансфер жүйесі
Аударма жүйесі келесі функцияларды орындайды:
1. Тасымалдауды бастау: Тиісті артықшылықтары бар пайдаланушылар есептік жазбалар арасында аударымдарды бастай алады. Жіберуші шотын, алушының шотын және аударым сомасын қоса, аударым мәліметтерін пайдаланушы енгізеді және жүйемен тексереді.
2. Жеткілікті қаражатты тексеру: Жүйе жіберушінің шотында аударымды аяқтау үшін жеткілікті қаражаттың бар-жоғын тексеруі керек.
3. Аударымды өңдеу: Тексеруден кейін жүйе жіберушінің шотынан дебеттеу және оны алушының шотына кредиттеу арқылы аударымды өңдейді.
4. Транзакция журналы: Әрбір аударым аудит және есеп беру үшін транзакция журналына жазылады.
Қолданбаларды өңдеу жүйесі
Өтінімдерді өңдеу жүйесі келесі функцияларды жүзеге асырады:
1. **Қолдану**: Тиісті артықшылықтарға ие пайдаланушылар жаңа тіркелгілерді ашу, тіркелгі шектеулерін өзгерту және т.б. сияқты әртүрлі операцияларға өтініш бере алады.
2. Өтінімдерді өңдеу: Өтініштерді тиісті артықшылықтарға ие банк қызметкерлері өңдейді. Олар өтінімді мақұлдай алады немесе қабылдамайды және нәтиже жүйеде жазылады.
3. Қолданбалардың күйі туралы хабарламалар: Өтінішті өңдегеннен кейін пайдаланушыға оның өтінішінің күйі туралы хабарланады.
4. Билет журналы: Барлық билеттер мен олардың күйлері тексеру және есеп беру мақсатында билеттер журналында жазылады.
Бұл жүйелер Python, Django және MySQL технологияларын пайдалана отырып, қауіпсіздік пен сенімділік принциптеріне сәйкес әзірленетін болады.
Жүйені енгізу
4.1 Мәліметтер қорын құру
Деректер базасын құру бірнеше негізгі қадамдарды қамтиды:
1. Құрылымды анықтау: Біріншіден , біз бұрын жасалған дизайн негізінде деректер базамыздың құрылымын анықтаймыз. Бұл кестелерді құруды және әрбір кестенің өрістерін анықтауды қамтиды.
2. Деректер қорын құру: MySQL көмегімен біз жаңа деректер қорын жасаймыз. Мұны MySQL жүйесіндегі CREATE DATABASE командасы арқылы жасауға болады.
3. Кестелерді құру: Әрі қарай MySQL-тің CREATE TABLE командасын пайдаланып, деректер қорымызда кестелер жасаймыз. Біз барлық өрістерде дұрыс деректер түрлері бар екенін және барлық шектеулердің (мысалы, NULL, UNICE, FOREIGN KEY, т.б.) дұрыс орнатылғанын тексереміз.
4. Индекстеу: өнімділікті оңтайландыру үшін қажет болған жағдайда кестелерімізге индекстерді қосамыз. Индекстер кестелердегі деректерді іздеуді және сұрыптауды жылдамдатады.
5. Тестілеу : Дерекқорды жасағаннан кейін барлығы дұрыс жұмыс істеп тұрғанына көз жеткізу үшін біз оны ТАҢДАУ, КІРУ, ЖАҢАРТУ және ЖОЮ сұрауларын орындау арқылы тексереміз.
Дерекқорды енгізу біздің банк жүйесін құрудағы маңызды қадам болып табылады және деректердің тұтастығын, өнімділігін және қауіпсіздігін қамтамасыз ету үшін мұқият жасалуы керек.
3 Банк жүйесін құруды тәжірибе жүзінде жүзеге асыру
3.1 Django көмегімен веб-қосымшаны жасау
Django веб-қосымшасын әзірлеу бірнеше қадамдарды қамтиды:
1. Ортаны орнату: өндіріс ортасында Django орнату және конфигурациялау. Сәйкес пәрмендерді пайдаланып Django-да жаңа жоба мен қосымшаны құру.
2. Дерекқорды біріктіру: MySQL-мен жұмыс істеу үшін Django-ны орнату, дерекқордағы кестелерге сәйкес деректер үлгілерін жасау. Деректер кестелерін автоматты түрде жасау және жаңарту үшін Django тасымалдауларын пайдалану.
3. Көріністер мен үлгілерді әзірлеу: Клиенттердің әртүрлі сұрауларын өңдеу үшін көріністерді (көріністерді) жасау. Әрбір көрініс белгілі бір URL мекенжайымен байланысты және HTTP жауабын қайтарады. HTML жауаптарын жасау үшін үлгілерді жасаңыз.
4. Қатынастарды басқару жүйесін енгізу: Кірістірілген Django құралдары мен реттелетін шешімдерді пайдалана отырып, аутентификация мен авторизацияны жүзеге асыру. Рөлдер мен қол жеткізу құқықтары жүйесін енгізу.
5. Аудармаларды және қосымшаларды өңдеу жүйесін енгізу: Аудармалармен және қосымшаларды өңдеумен байланысты бизнес-процестердің логикасын жүзеге асыру. Сәйкес көріністерді, үлгілерді және үлгілерді жасаңыз.
6. Тестілеу: қолданбаның дұрыс жұмыс істейтінін тексеру үшін сынақтарды жазу. Джангоның кірістірілген тестілеу құрылымын пайдалану.
7. Орналастыру: қолданбаны серверде орналастыру. Django қолданбасымен жұмыс істеу үшін сервер мен ортаны орнату.
Осы кезеңдерде банк жүйесінің жұмысын қамтамасыз ететін функционалды және қауіпсіз веб-қосымша құрылады.
3.2 SHA-256 шифрлау жүйесінің интеграциясы
SHA-256 (Secure Hash Algorithm 256) - деректерді қорғау үшін қолданылатын криптографиялық хэш алгоритмі. Біздің банктік жүйе контекстінде пайдаланушы құпия сөздерін хэштеу үшін SHA-256 қолданамыз. Бұл процесс келесі қадамдарды қамтиды:
1. Кітапхана таңдау: Python жүйесінде SHA-256 енгізу үшін біз кірістірілген `hashlib` кітапханасын пайдалана аламыз.
2. Тіркеу кезінде құпия сөздерді хэштеу: Пайдаланушы тіркеліп, құпия сөзді таңдағанда, біз сол құпия сөздің хэшін жасау үшін SHA-256 функциясын қолданамыз. Бұл хэш, бастапқы құпия сөз емес, дерекқорда сақталады.
3. Кіру кезінде құпия сөздерді растау : Пайдаланушы жүйеге кіріп, құпия сөзін енгізген кезде , біз қайтадан енгізілген құпия сөздің хэшін жасаймыз және оны дерекқорда сақталған хэшпен салыстырамыз. Екі хэш сәйкес келсе, құпия сөз дұрыс.
4. Қауіпсіз хэшті сақтау: Құпиясөз хэштері дерекқорда шифрланған түрде сақталады, осылайша деректер ағып кетсе де, бастапқы пайдаланушы құпия сөздері қорғалады.
SHA-256 шифрлау жүйесінің интеграциясы пайдаланушы құпия сөздерін рұқсатсыз кіруден қорғау арқылы банктік жүйеміздің қауіпсіздігін арттырады.
Жүйені тестілеу
5.1 Тест жағдайларын дайындау
5.1 Тест жағдайларын дайындау
Сынақ сценарийлерін дайындау тестілеу процесінің маңызды бөлігі болып табылады . Олар біздің банк жүйеміздің функционалдығын тексерудің құрылымдық және ұйымдасқан тәсілін ұсынады. Бұл сценарийлерді дайындау үшін келесі қадамдар берілген:
1. Тексерілетін функционалдылықты анықтаңыз: Бірінші қадам жүйенің қандай мүмкіндіктерін тексеру қажет екенін анықтау болып табылады. Бұл пайдаланушыны тіркеу және жүйеге кіру, тасымалдауларды бастау және орындау, қосымшаларды жіберу және өңдеу, қол жеткізуді басқару және т.б.
2. Тест жағдайларын жасау : Жүйенің әрбір функциясы үшін сынақ жағдайы жасалады. Сынақ жағдайы мүмкіндікті тексеру үшін жасалуы тиіс қадамдарды, сондай-ақ әрбір қадамның күтілетін нәтижесін сипаттайды.
3. Тест деректерін әзірлеу : Әрбір сынақ сценарийі үшін сәйкес сынақ деректерін дайындау керек. Бұл жаңа пайдаланушыны тіркеу деректері, аударуды бастау мәліметтері, өтініш беру туралы ақпарат және т.б. болуы мүмкін.
4. Тест жағдайын тексеру : Сынақ жағдайлары мен деректер жасалғаннан кейін оларды тексеру қажет. Бұл олардың барлық жүйе функцияларын толығымен қамтуын және күтілетін нәтижелердің дұрыстығын қамтамасыз етеді.
Бұл сынақ жағдайлары біздің банк жүйесінің сапасы мен сенімділігін қамтамасыз ету үшін тестілеу процесінде қолданылатын болады.
3.3 Функционалдық тестілеу
Функционалды тестілеу - бағдарламалық қамтамасыз етудің функционалдық талаптары тексерілетін процесс. Ол жүйенің жеке функцияларының өз міндеттерін қажетінше орындайтынын тексереді. Біздің банк жүйесін функционалдық тестілеу үшін келесі қадамдар берілген:
1. Тест сценарийлерін іске асыру: Алдыңғы қадамда дайындалған сынақ сценарийлеріне сүйене отырып , біз жүйенің әрбір функциясын тексереміз. Бұл тіркелу және жүйеге кіру, аударымдар жасау, өтінімдерді жіберу және өңдеу, қол жеткізуді басқару және т.б. кіреді.
2. Нәтижелерді тексеру : Әрбір сынақ жағдайы орындалғаннан кейін біз нәтижелерді тексереміз және оларды біз күткенмен салыстырамыз. Нәтижелер күткендей болса, тест тапсыру болып саналады. Әйтпесе, мәселені анықтап, түзету керек.
3. Нәтижелерді құжаттау: Барлық сынақ нәтижелері құжатталуы керек. Бұған орындалған сынақтар, пайдаланылған деректер, алынған нәтижелер және табылған мәселелер туралы ақпарат кіреді.
4. Қателерді түзету: Тестілеу кезінде қателер табылса, олар түзетілуі керек, содан кейін функция қайтадан тексеріледі.
Функционалдық тестілеу жүйенің әрбір функциясы дұрыс және талаптарға сәйкес жұмыс істейтініне көз жеткізуге көмектеседі. Бұл біздің банк жүйеміздің сапасын қамтамасыз ететін маңызды қадам.
3.4 Қауіпсіздікті тексеру
Төменде жүйенің қауіпсіздігін тексеру үшін жасалған қадамдар берілген:
1. Осалдықты талдау: жүйедегі ықтимал осалдықтарды анықтау үшін осалдық талдауын жүргізіңіз. Бұл портты сканерлеуді, осалдықтарды кодты талдауды, осал тәуелділіктерді тексеруді және т.б.
2. Аутентификацияны тексеру: құпия сөзді ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz