Open ssl асосида сертификатлар ҳосил қилиш Ишдан мақсад


Download 403.5 Kb.
Sana28.12.2022
Hajmi403.5 Kb.
#1013678
TuriПротокол
Bog'liq
7-amaliyot


Open SSL асосида сертификатлар ҳосил қилиш
Ишдан мақсад: Open SSL билан ишлаш кўникмасига эга бўлиш, Open SSL да сертификатлар ҳосил қилиш, шифрлаш, хэш қийматларни ҳисоблаш ва ЭРИ калитларини ҳосил қилиш амалларини бажаришни ўрганиш.
Назарий қисм:
Интернет тармоғида маълумотлар алмашинуви хавфсизлигини таъминлаш мақсадида, HTTPS протоколи фойдаланилади. Ушбу протокол асосини SSL (SSL ёки TLS) криптографик протоколи ташкил қилади. SSL протоколи OSI модули сатҳини транспорт ва илова сатҳи оралиғида ишлайди ёки бошқача қилиб айтганда HTTP ва TCP протоколи оралиғида ишлайди.
SSL протоколи икки фойдаланувчи орасида аутентификацияни, маълумот махфийлигини ва бутунлигини таъминлайди.
SSL протоколи кетма-кетлиги қуйидаги кетма-кетликлардан иборат:


  1. Расм. Соддалаштирилган SSL протоколи


2-расм. SSL протоколи
1) Client->server: client hello
Protocol version list (SSLv2, SSLv3, TLSv1 ...)
Session ID
Cipher suite list
Key exchange algorithm list (RSA, Diffie-Hellman ...)
Symmetric key algorithm list (TripleDES, DES ...)
Message digest algorithm list (SHA-1, MD5 ...)
Compression algorithm list (PKZip, gzip ...)
Random number (196, 201, 083)
2) Server -> client: server hello
Protocol version (TLSv1, SSLv3 ...)
Session ID
Chosen cipher suite
Key exchange algorithm (RSA)
Symmetric key algorithm (DES)
Message digest algorithm (SHA-1)
Compression algorithm (PKZip)
Random number (823, 495, 127)
3) Server -> client: server certificate
4) Server -> client: hello done
5) Client -> server: pre-master secret (48 bytes)
encRSA((client_version, random[46]), e_S)
// e_S is the public key of the server
Клиент ва Сервер 6 та калит ҳосил қилади. Улардан 3 таси КлиентСервер тизимида ва учтаси СерверКлиент тизимида фойдаланилади. Шулардан ҳар бир томон учун, битта шифрлаш учун, битта бутунликни таъминлаш учун ва битта бошланғич вектор қийматларидан иборат.
6) Server <-> client: finished
encDES(finished_message, session_key)
OpenSSL қуйидагиларни таъминлайди:
libssl.a:SSLv2, SSLv3, TLSv1 протоколлари ssl client/server ни ҳосил қилишда фойдаланилади.
libcrypto.a: ssl/tls протоколида фойдаланилган шифрлаш алгоритмларива х509 сертификатидан иборат.
Шифрлаш учун:
libdes (DES), RC4, RC2, Blowfish, IDEA
Хешлаш учун:
MD5, MK2, SHA, SHA-1, MDC2
Очиқ калитли шифрлаш алгоритмлари
RSA, DSA, Diffie-Hellman
X509 учун
X509 encoding/decoding амали
Амалий қисм:
1-босқич. ОpenSSL ни ўрнатиш:
openssl-0.9.8h-1-setup.exe ни босинг ва дастурни ўрнатинг.
Дастур ўрнатилган манзилга ўтинг directory/bin;
openssl.exe ни икки марта босинг.
2-босқич. openssl ёрдамида RSA калит жуфтларини ҳосил қилиш. Контентдан n, e, ва d ни топинг.
Дастурдан тўлиқроқ фойдаланиш учун дастур ўрнатилган асосий каталогдан man/pdf/openssl-mal.pdf файлига мурожат қилинг.
openssl> genrsa -out mykey.pem 1024
// generate public/private key pair in file "mykey.pem" with keysize 1024 bits.
// default size 512 bits if keysize is not specified

openssl> rsa -in mykey.pem -text -out mykey.txt
// display the contents of "mykey.pem" in plain text in
// output file "mykey.txt"


3-босқич. махфий калит билан ихтиёрий матнни шифрлаш ва уни дешифрлаш орқали ишонч ҳосил қили


Шифрлаш:
openssl> rsautl -encrypt -inkey mykey.pem -in myplain.txt -out mycipher



Дешифрлаш:
openssl> rsautl -decrypt -inkey mykey.pem -in mycipher -out mycipher.dec




Изоҳ. PEM (Privacy Enhanced Mail) файл формати иккилик файлни ascii файл кўришинига base64 асосга кўра конвертация қилиш. Бунга кўра кирувчи ҳар 6 бит маълумот {A-Z, a-z, 0-9, +, -} символлар билан алмаштирилади. Масалан:
Man ==> 77 97 110 ==> 01001101 01100001 01101110
==> T (010011, 19) W (010110, 22) F (000101, 5) u (101110, 46)
4-босқич. X.509 сертификатини ҳосил қилиш.
4.1) "myconf.txt" деб номланувчи конфиг файлни яратинг ва унга қуйидагиларни киритинг.
[req]
string_mask = nombstr
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
commonName = my CA
stateOrProvinceName = some state
countryName = US
emailAddress = root@somename.somewhere.com
organizationName = mycompany


4.2) сертификатни яратиш
req -config myconf.txt -new -x509 -key mykey.pem -out mycert.pem


4.3) сертификат ташкил этувчиларини кўриш
x509 -in mycert.pem -text -out mycert.txt


Download 403.5 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling