Тошкент ахборот технологиялари университети қарши филиали телекоммуникация технологиялари ва касбий таъ


Download 0.6 Mb.
bet8/11
Sana15.07.2023
Hajmi0.6 Mb.
#1660580
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
Курс иши ТИ

Криптопровайдер тури

Калит алмашиш алгоритми

ЭРИ алгоритми

Шифрлаш алгоритми

Хэшлаш алгоритми

PROV_RSA_FULL

RSA

RSA

RC2RC4

MD5SHA

PROV_RSA_AES

RSA

RSA

RC2RC4AES

MD5SHA

PROV_RSA_SIG

йўқ

RSA

йўқ

MD5SHA

PROV_RSA_SCHANNEL

RSA

RSA

RC4DES3DES

MD5SHA

PROV_DSS

йўқ

DSS

йўқ

MD5SHA

PROV_DH_SCHANNEL

DH (ephemeral)

DSS

DES3DES

MD5SHA

PROV_DH_SCHANNEL

DH (ephemeral)

DSS

DES3DES

MD5SHA

PROV_FORTEZZA

KEA

DSS

Skipjack

SHA

PROV_MS_EXCHANGE

RSA

RSA

CAST

MD5

PROV_SSL

RSA

RSA

ҳар хил

ҳар хил

PROV_GOST_94_DH

ГОСТ Р 34.10-94

ГОСТ Р 34.10-94

ГОСТ 28147-89

ГОСТ Р 34.11-94

PROV_GOST_2001_DH

ГОСТ Р 34.10-2001

ГОСТ Р 34.10-2001

ГОСТ 28147-89

ГОСТ Р 34.11-94

Ҳозирда кўп қўлланиладиган криптопровайдерлар Microsoft компаниясининг криптопровайдерларидир, Windows операцион тизимида қўлланилувчи бир қанча крптопровайдерлар мавжуд бўлиб, уларда ҳар хил турдаги криптографик алгоритмлардан фойдаланилади.



Криптопровайдер

Криптопровайдер номи

Тури

Изоҳ

Microsoft Base Cryptographic Provider

MS_DEF_PROV

PROV_RSA_FULL

Асосий ериптографик функциялар. Шифрлаш калити узунлиги 40 битдан кичик.

Microsoft Strong Cryptographic Provider

MS_STRONG_PROV

PROV_RSA_FULL

Калит узунлиги катта.

Microsoft AES Cryptographic Provider

MS_ENH_RSA_AES_PROV

PROV_RSA_AES

AESшифрлаш алгоритмини амалга оширади.

Microsoft DSS Cryptographic Provider

MS_DEF_DSS_PROV

PROV_DSS

Хэшлаш ва ЭРИ DSSалгоритми орқали амалга оширилади.

Microsoft Base DSS and Diffie-Hellman Cryptographic Provider

MS_DEF_DSS_DH_PROV

PROV_DSS_DH

DSS ва Диффи-Хеллман алгоритмлари бўйича ишлайди, SSL3 ва TLS1 протоколлари учун калит генерация қилади.

Microsoft RSA/Schannel Cryptographic Provider

MS_DEF_RSA_SCHANNEL_PROV

PROV_RSA_SCHANNEL

SSL 3.0 ва TLS 1.0 протоколларида аутентификация учун қўлланилади.

  1. Ушбу криптопровайдерлардан ташқари МДҲ давлатларида ҳам бир қанча криптопровайдерлар яратилган ва фойдаланиб келинмоқда:

  2. Россия: CryptoPRO CSP, SignalCom-CSP, VipNet-CSP, Crypton-CSP[63].

  3. Қозоғистон: Tumar CSP[63].

  4. Украина: “Криптопровайдер ДСТУ 4145-2002” ва б.

  5. Ҳар бир давлатда ўз криптопровайдери яратилишига сабаб, ҳар бир давлат ўз стандартларига эга, шундай экан бошқа давлатда яратилган криптопровайдерлар бошқа давлат стандартларига мос келмаслиги мумкин.



2. Криптопровайдер интерфейси
Cryptographic Apllication Programming Interface (CryptoAPI)
CryptoAPI интерфейси ўз ичига асосий криптографик функцияларни ҳамда сертификатлар билан ишлаш (Х.509), криптографик ахборотлар билан ишлаш (PKCS#7)ва калитлар билан ишлаш функцияларини олади. CryptoAPI беш қисмдан иборат бўлади[22]:

Расм 2.2. CryptAPI архитектураси
Асосий криптографик функциялар[22];

    • Криптопровайдерга боғланиш ва у ҳақида маълумот олиш;

    • Калитларни яратиш ва уларни сақлаш;

    • Калитларни алмашиш ёки жўнатиш

  • Сертификатларни кодлаш ва декодлаш (кодни очиш) функциялари;

    • Маълумотларни шифрлаш, дешифрлаш ҳамда хэшлаш;

  • Сертификатларни сақлаш функциялари;

    • Сертификатларни тўплаш ва сақлаш;

  • Хабарлар билан ишлаш функциялари;

    • Хабарларни шифрлаш ва дешифрлаш;

    • Хабарларга электрон рақамли имзо қўйиш;

    • Қабул қилинган хабарларнинг ҳақиқийлигини текшириш;

  • Қуйи сатҳли маълумотлар билан ишлаш функциялари;

    • Барча маълумотлар билан ишлаш функцияларини амалга оширади, фақат қуйи сатҳда амалга оширади яъни барча параметрларни фойдаланувчи беради ва криптографик функцияга тўғридан-тўғри боғланиш имконияти бўлади.

CryptoAPI функциялари
CryptoAPI функциялари криптопровайдерлардан фойдаланишда ва уларни бошқаришда асосий функциялар ҳисобланади, яьни бунда дастурчи мавжуд функциялардан фойдаланиб криптопровайдерда рухсат этилган ихтиёрий амални бажариш мумкин бўлади.
Криптопровайдернинг таркибида мажбурий бўлиш керак бўлган функциялар қуйида кедтирилган, бу функцияларга CryptoAPI орқали мурожаат қилинади[22].
Криптопровайдерни бошқариш функциялари[63]:

Функция

Вазифаси

CryptAcquireContext

Мавжуд криптопровайдернинг аниқ бир контейнери учун дискриптор яратади.

CryptContextAddRef

Криптопровайдер дискрипторини биттага оширади.

CryptEnumProviders

Биринчи ёки кейинги мавжуд криптопровайдерниолиш учун фойдаланилади.

CryptEnumProviderTypes

Биринчи ёки кейинги мавжуд криптопровайдер тоифасини олиш учун фойдаланилади.

CryptGetDefaultProvider

Кўрсатилган криптопровайдер тури учун асос сифатида (по умолчанию, default)қабул қилинган криптопровайдерни олиш.

CryptGetProvParam

Криптопровайдер параметрларини қайтаради.

CryptReleaseContext

CryptAcquireContextтомонидан яратилган криптопровайдер дескрипторини тозалашга фойдаланилади.

CryptSetProvider ва CryptSetProviderEx

Асос сифатида қабул қилинган криптопровайдер номини ва тоифасини кўрсатиш.

CryptSetProvParam

Криптопровайдер тоифасини ўрнатиш.


Криптографик калитларни бошқариш функциялари:

Функция

Вазифаси

CryptDeriveKey

Берилган параметрлар ёрдамида сессия калитини яратиш.

CryptDestroyKey

Калит дескрипторини ўчириш.

CryptDuplicateKey

Калитнинг нусхасини яратиш.

CryptExportKey

Криптопровайдер контейнеридан криптографик калитни экспорт қилиш.

CryptGenKey

Тасодифий сессия калитини ва калитлар жуфтлигини генерация қилиш.

CryptGenRandom

Тасодифий қаторни генерация қилиш.

CryptGetKeyParam

Калит параметрларини қайтариш.

CryptGetUserKey

Доимий калитлар жуфтлигининг дескрипторини қайтаради.

CryptlmportKey

Криптографик калитларни криптопровайдер контейнерига импорт қилишда фойдаланилади.

CryptSetKeyParam

Калит параметрларини ўрнатади.



Симметрик калит ёрдамида шифрлаш ва дешифрлаш функциялари:

Функция

Вазифаси

CryptDecrypt

Маълумотларни дешифрлаш.

CryptEncrypt

Маълумотларни шифрлаш.



Хэш қийматни ҳисоблаш ҳамда хабарнинг электрон имзосини ҳисоблаш ва уни текшириш функциялари:

Функция

Вазифаси

CryptCreateHash

Маълумотларни хэшлаш учун инициализация қилиш.

CryptDestroyHash

Хэш функция объектини ўчириш.

CryptDuplicateHash

Хэш функция объектини нусхалаш.

CryptGetHashParam

Хэш функция объекти параметрларини қайтариш.

CryptHashSessionKey

Сессия калити қийматини хэш функция объектига қўшиш.

CryptSetHashParam

Хэш функция объекти параметрларини ўрнатиш.

CryptSignHash

Хэш қийматдан ЭРИни ҳисоблаш.

CryptVerifySignature

Мос хэш қийматдан ЭРИни текшириш.

CryptoAPI нинг архитектураси.
Расмда келтирилган ва барча функциялари advapi32.dll файлида жойлашади, бир нечта функциялардан ташқари. Бу функциялар қўшимча вазифаларни бажаради ва криптопровайдер таркибида бўлади[33].
Криптопровайдерлар бир-биридан калит базаларини физик ташкил этиш билан фарқланади. Бу дастурий томондан аҳамиятга эга эмас, лекин эксплуатация ва тизимлар хавфсизлигини таъминлашда аҳамияти катта, яъни бунда калитлар жойлашган жойи хисобга олинади, калитлар қаттиқ дисклардаги реестр ёки файлларда жойлашиши мумкин ёки хавфсизликни ошириш мақсадида смарт-карталарда сақланади.
Калитлар омбори контейнерлардан ташкил топади. Ҳар бир калит контейнери ўз номига эга бўлади,контейнерларда узоқ вақт қўлланиладиган калитлар сақланади, бу калитлар ЭРИ имзо калитлари ва симметрик калитларни алмашиш калитларидир.
Қуйида CryptoAPIнинг ишлаш механизмини, яъни CryptoAPI advapi32.dll файлидан криптопровайдерни қандай чақириши ва криптопровайдерни чақиришдан олдин қандай жараёнлар содир бўлишини кўрамиз.
Ҳар криптопровайдер ўз номига ва тоифасига эга бўлади, номи сатр кўринишида бўлади, тизим ушбу ном орқали криптопровайдерни танийди. Криптопровайдер тоифаси эса бутун сон кўринишида бўлади (С дастурлаш тилида DWORD тоифаси). Ушбу тоифа криптопровайдерда қўлланиладиган алгоритмларни ифодалайди.Агар иккита криптопровайдерда бир хил алгоритмлар мавжуд бўлса бундай криптопровайдерларнинг тоифаси бир хил бўлиши мумкин[33].
Битта тизимда бир нечта криптопровайдерлар қўлланилиши мумкин, булар ҳақида маълумот тизим реестрида сақланади. Реестрда криптопровайдер номи унинг тоифаси ва функцияларини ташкил этувчи файл номи билан боғлиқ ҳолда сақланади. Дастурчи криптопровайдердан фойдаланиш учун унинг тоифаси ва номидан фойдаланиб чақиради.Агар фойдаланувчи криптопровайдернинг номини кўрсатмасдан, фақат тоифаси орқали чақирса, унда тизимда шу тоифага асос сифатида ўрнатилган криптопровайдер (Default CSP) чақирилади.
CryptoAPI билан ишлаш CryptoAcquireContext функциясига мурожаат этиш билан бошланади. Ушбу функцияда керакли криптопровайдер номи, тоифаси ва контейнер кўрсатилади.Бу функция криптопровайдер дескрипторини (handle of CSP)қайтаради ва кейинчалик барча жараёнлар шу дескриптор ёрдамида ишлайди.CryptoAcquireContextфункциясида фойдаланувчи ишлатадиган барча функциялар жойлашади.
CryptoAcquireContextфункциясининг асосий вазифаси берилган ном ва тоифадаги криптопровайдерни аниқлаш ва уни юклаш, агар бундай криптопровайдер тизимда мавжуд бўлмаса бу ҳақда хатолик қайтариш ҳамда берилган номдаги контейнерни юклаш, агар криптопровайдерда бундай контейнер мавжуд бўлмаса бу ҳақда хатолик қайтариш, контейнер яратиш ва уни ўчириш.




  1. Download 0.6 Mb.

    Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




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