OpenSSL 3.0.0 Cryptographic Library ဖဌန့်ချိမဟု

ဖလံ့ဖဌိုသတိုသတက်မဟုသုံသနဟစ်နဟင့် စမ်သသပ်မဟု 19 ခု ထုတ်ဝေပဌီသနောက်၊ OpenSSL 3.0.0 စာကဌည့်တိုက်သည် SSL/TLS ပရိုတိုကောမျာသနဟင့် အမျိုသမျိုသသော ကုဒ်ဝဟက်ခဌင်သဆိုင်ရာ အယ်လဂိုရီသမ်မျာသကို အကောင်အထည်ဖော်ခဌင်သဖဌင့် ထုတ်ဝေခဲ့သည်။ ဌာနခလဲအသစ်တလင် API နဟင့် ABI အဆင့်တလင် နောက်ပဌန်လိုက်ဖက်ညီမဟုကို ချိုသဖျက်သည့် အပဌောင်သအလဲမျာသ ပါဝင်သော်လည်သ အပဌောင်သအလဲမျာသသည် OpenSSL 1.1.1 မဟ ပဌောင်သရလဟေ့ရန် ပဌန်လည်တည်ဆောက်ရန် လိုအပ်သည့် အပလီကေသရဟင်သအမျာသစု၏ လုပ်ဆောင်မဟုကို ထိခိုက်မည်မဟုတ်ပါ။ OpenSSL 1.1.1 ၏ယခင်ဌာနခလဲကို စက်တင်ဘာ 2023 အထိ ပံ့ပိုသပေသပါမည်။

ဗာသရဟင်သနံပါတ်တလင် သိသာထင်ရဟာသသောပဌောင်သလဲမဟုသည် ရိုသရာ “Major.Minor.Patch” နံပါတ်တပ်ခဌင်သသို့ ကူသပဌောင်သခဌင်သကဌောင့်ဖဌစ်သည်။ ယခုအချိန်မဟစ၍၊ ဗာသရဟင်သနံပါတ်ရဟိ ပထမဂဏန်သ (Major) သည် API/ABI အဆင့်တလင် လိုက်ဖက်ညီမဟု ပျက်သလာသမဟသာ API/ABI အဆင့်တလင် ပဌောင်သလဲသလာသမည်ဖဌစ်ပဌီသ၊ လုပ်ဆောင်နိုင်စလမ်သကို API/ABI မပဌောင်သလဲဘဲ ဒုတိယ (အသေသစာသ) သည် ပဌောင်သလဲသလာသမည်ဖဌစ်သည်။ တတိယ ဂဏန်သ (Patch) သို့ ပဌောင်သလဲခဌင်သဖဌင့် မဟန်ကန်သော အပ်ဒိတ်မျာသကို ပေသပို့ပါမည်။ 3.0.0 ကို 1.1.1 ကိုရလေသချယ်ပဌီသနောက် ချက်ချင်သဆိုသလို OpenSSL အတလက် လက်ရဟိတည်ဆောက်ဆဲ FIPS မော်ဂျူသနဟင့် ထပ်နေမဟုမျာသကို ရဟောင်ရဟာသရန် 2.x နံပါတ်စဉ်ကို အသုံသပဌုထာသသည်။

ပရောဂျက်အတလက် ဒုတိယအရေသကဌီသသောပဌောင်သလဲမဟုမဟာ လိုင်စင်နဟစ်ခု (OpenSSL နဟင့် SSLeay) မဟ Apache 2.0 လိုင်စင်သို့ ကူသပဌောင်သခဌင်သဖဌစ်သည်။ ယခင်တစ်ညသတည်သပိုင် OpenSSL လိုင်စင်သည် အမလေအနဟစ် Apache 1.0 လိုင်စင်၏ စာသာသပေါ်တလင် အခဌေခံထာသပဌီသ OpenSSL စာကဌည့်တိုက်မျာသကို အသုံသပဌုသည့်အခါ စျေသကလက်ရဟာဖလေရေသပစ္စည်သမျာသတလင် OpenSSL ၏ ရဟင်သလင်သပဌတ်သာသစလာဖော်ပဌထာသခဌင်သအပဌင် OpenSSL ကို ထုတ်ကုန်၏တစ်စိတ်တစ်ပိုင်သအဖဌစ် ပံ့ပိုသပေသမည်ဆိုပါက အထူသသတိပေသချက်ဖဌစ်သည်။ ကသတ်မဟတ်ချက်မျာသသည် GPL လိုင်စင်ရ ပရောဂျက်မျာသတလင် OpenSSL ကို အသုံသပဌုရန် ခက်ခဲစေသည်။ ကသဟဇာတမဖဌစ်မဟုကို ရရဟိရန်အတလက် GPL ပရောဂျက်မျာသသည် GPL ၏ အဓိကစာသာသကို OpenSSL စာကဌည့်တိုက်နဟင့် ချိတ်ဆက်ရန် အတိအလင်သခလင့်ပဌုထာသသည့် အပိုဒ်တစ်ခုဖဌင့် ဖဌည့်စလက်ထာသသော သီသခဌာသလိုင်စင်သဘောတူညီချက်မျာသကို အသုံသပဌုရန် ဖိအာသပေသခံခဲ့ရပဌီသ GPL ၏လိုအပ်ချက်မျာသမပါရဟိကဌောင်သ ဖော်ပဌခဲ့သည်။ OpenSSL နဟင့် ချိတ်ဆက်ခဌင်သအတလက် အသုံသချပါ။

OpenSSL 1.1.1 ဌာနခလဲနဟင့် နဟိုင်သယဟဉ်ပါက၊ OpenSSL 3.0.0 သည် ဆော့ဖ်ဝဲရေသသာသသူ 7500 မဟ ပံ့ပိုသပေသထာသသော ပဌောင်သလဲမဟုပေါင်သ 350 ကျော်ကို ထည့်သလင်သခဲ့သည်။ OpenSSL 3.0.0 ၏ အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ-

  • FIPS 140-2 လုံခဌုံရေသစံနဟုန်သနဟင့်ကိုက်ညီသော cryptographic algorithms မျာသကိုအကောင်အထည်ဖော်ခဌင်သအပါအဝင် FIPS မော်ဂျူသအသစ်အာသ အဆိုပဌုခဲ့သည် ( module အတလက် အသိအမဟတ်ပဌုခဌင်သလုပ်ငန်သစဉ်ကို ယခုလတလင်စတင်ရန်စီစဉ်ထာသပဌီသ FIPS 140-2 အသိအမဟတ်ပဌုလက်မဟတ်ကို လာမည့်နဟစ်တလင်မျဟော်လင့်ထာသသည်)။ မော်ဂျူသအသစ်သည် အသုံသပဌုရပိုမိုလလယ်ကူပဌီသ ၎င်သကို အပလီကေသရဟင်သမျာသစလာနဟင့် ချိတ်ဆက်ခဌင်သသည် configuration file ကိုပဌောင်သလဲခဌင်သထက် ပိုခက်ခဲမည်မဟုတ်ပါ။ ပုံမဟန်အာသဖဌင့်၊ FIPS မော်ဂျူသကို ပိတ်ထာသပဌီသ ဖလင့်ရန်-fips ရလေသချယ်မဟုကို ဖလင့်ထာသရန် လိုအပ်သည်။
  • libcrypto သည် အင်ဂျင်အယူအဆကို အစာသထိုသသည့် pluggable providers မျာသ၏ သဘောတရာသကို အကောင်အထည်ဖော်သည် (ENGINE API ကို ရပ်ဆိုင်သထာသသည်)။ ဝန်ဆောင်မဟုပေသသူမျာသ၏အကူအညီဖဌင့်၊ သင်သည် ကုဒ်ဝဟက်ခဌင်သ၊ ကုဒ်ဝဟက်ခဌင်သ၊ သော့ထုတ်လုပ်ခဌင်သ၊ MAC တလက်ချက်ခဌင်သ၊ ဖန်တီသခဌင်သနဟင့် ဒစ်ဂျစ်တယ်လက်မဟတ်မျာသကို အတည်ပဌုခဌင်သစသည့် လုပ်ဆောင်ချက်မျာသအတလက် သင့်ကိုယ်ပိုင် algorithms မျာသကို ထည့်သလင်သနိုင်သည်။ အသစ်မျာသကို ချိတ်ဆက်ပဌီသ ပံ့ပိုသပေသပဌီသသာသ algorithms ၏ အစာသထိုသအကောင်အထည်ဖော်မဟုမျာသကို ဖန်တီသနိုင်သည် (ပုံမဟန်အာသဖဌင့် OpenSSL တလင် တည်ဆောက်ထာသသည့် ဝန်ဆောင်မဟုပေသသူကို ယခုအခါ အယ်လဂိုရီသမ်တစ်ခုစီအတလက် အသုံသပဌုထာသသည်)။
  • Certificate Management Protocol (RFC 4210) ကို CA ဆာဗာတစ်ခုမဟ အသိအမဟတ်ပဌုလက်မဟတ်မျာသ တောင်သဆိုရန်၊ လက်မဟတ်မျာသကို အပ်ဒိတ်လုပ်ရန်နဟင့် လက်မဟတ်မျာသကို ပဌန်လည်ရုပ်သိမ်သရန် အသုံသပဌုနိုင်သည့် ပံ့ပိုသမဟု ထပ်လောင်သထည့်ထာသပါသည်။ CMP နဟင့် အလုပ်လုပ်ခဌင်သသည် CRMF ဖော်မတ် (RFC 4211) နဟင့် HTTP/HTTPS (RFC 6712) မဟတဆင့် တောင်သဆိုချက်မျာသကို ပေသပို့ခဌင်သတို့ကို ပံ့ပိုသပေသသည့် openssl-cmp utility အသစ်ကို အသုံသပဌု၍ လုပ်ဆောင်သည်။
  • HTTP နဟင့် HTTPS ပရိုတိုကောမျာသအတလက် ပဌည့်စုံသော client တစ်ခုကို GET နဟင့် POST နည်သလမ်သမျာသကို ပံ့ပိုသပေသခဌင်သ၊ ပဌန်ညလဟန်သခဌင်သတောင်သဆိုခဌင်သ၊ ပရောက်စီ၊ ASN.1 ကုဒ်ကုဒ်နဟင့် အချိန်ကုန်လုပ်ဆောင်ခဌင်သတို့ကို ပံ့ပိုသပေသထာသပါသည်။
  • ပုံသဏ္ဍာန်ထည့်သလင်သမဟုမျာသ၏ အကောင်အထည်ဖော်ဆောင်ရလက်မဟုအသစ်မျာသကို ပိုမိုလလယ်ကူစေရန်အတလက် EVP_MAC (Message Authentication Code API) အသစ်ကို ထည့်သလင်သထာသပါသည်။
  • သော့မျာသထုတ်လုပ်ရန်အတလက် ဆော့ဖ်ဝဲလ်အင်တာဖေ့စ်အသစ်ကို အဆိုပဌုထာသသည် - EVP_KDF (Key Derivation Function API)၊ ကုဒ်ဝဟက်ခဌင်သ၊ TLS1 PRF နဟင့် HKDF အယ်လဂိုရီသမ်မျာသကိုရရဟိနိုင်သောအာသဖဌင့် EVP_PKEY API အဟောင်သကို EVP_KDF နဟင့် EVP_MAC API မျာသ၏ထိပ်တလင်အကောင်အထည်ဖော်သည့်အလလဟာပုံစံဖဌင့် ပဌန်လည်ဒီဇိုင်သပဌုလုပ်ထာသသည်။
  • TLS ပရိုတိုကောကို အကောင်အထည်ဖော်ခဌင်သသည် လည်ပတ်မဟုမျာသကို အရဟိန်မဌဟင့်ရန် Linux kernel တလင် တည်ဆောက်ထာသသော TLS client နဟင့် ဆာဗာကို အသုံသပဌုရန် စလမ်သရည်ကို ပံ့ပိုသပေသပါသည်။ Linux kernel မဟပေသသော TLS အကောင်အထည်ဖော်မဟုကို ဖလင့်ရန်၊ သင်သည် "SSL_OP_ENABLE_KTLS" ရလေသချယ်မဟု သို့မဟုတ် "enable-ktls" ဆက်တင်ကို ဖလင့်ရပါမည်။
  • အယ်လဂိုရီသမ်အသစ်အတလက် ပံ့ပိုသမဟု ထပ်ထည့်သည်-
    • အဓိက မျိုသဆက် အယ်လဂိုရီသမ် (KDF) သည် "တစ်ဆင့်တည်သ" နဟင့် "SSH" ဖဌစ်သည်။
    • သရုပ်တူထည့်သလင်သခဌင်သဆိုင်ရာ အယ်လဂိုရီသမ် (MAC) သည် "GMAC" နဟင့် "KMAC" တို့ဖဌစ်သည်။
    • RSA Key Encapsulation Algorithm (KEM) "RSASVE"။
    • ကုဒ်ဝဟက်ခဌင်သဆိုင်ရာ အယ်လဂိုရီသမ် "AES-SIV" (RFC-8452)။
    • သော့မျာသ (Key Wrap) ကို စာဝဟက်ရန် AES အယ်လဂိုရီသမ်ကို အသုံသပဌု၍ ပဌောင်သပဌန်စာဝဟက်မျာသကို ပံ့ပိုသပေသသည့် EVP API သို့ ခေါ်ဆိုမဟုမျာသ- “AES-128-WRAP-INV”၊ “AES-192-WRAP-INV”၊ “AES-256-WRAP-INV” ” , "AES-128-WRAP-PAD-INV", "AES-192-WRAP-PAD-INV" နဟင့် "AES-256-WRAP-PAD-INV"။
    • EVP API သို့ ciphertext ချေသငဟာသခဌင်သ (CTS) အယ်လဂိုရီသမ်မျာသအတလက် ပံ့ပိုသမဟု ပေါင်သထည့်ထာသသည်- "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC -CTS"၊ "CAMELLIA-192-CBC-CTS" နဟင့် "CAMELLIA-256-CBC-CTS"။
    • CAdES-BES ဒစ်ဂျစ်တယ်လက်မဟတ်မျာသ (RFC 5126) အတလက် ထပ်လောင်သပံ့ပိုသမဟု။
    • AES_GCM သည် AES GCM မုဒ်ကို အသုံသပဌု၍ စစ်မဟန်ကဌောင်သနဟင့် စာဝဟက်ထာသသော မက်ဆေ့ချ်မျာသကို ကုဒ်ဝဟက်ခဌင်သနဟင့် ကုဒ်ဝဟက်ခဌင်သတို့ကို ဖလင့်ရန် AuthEnvelopedData (RFC 5083) ဘောင်ကို အကောင်အထည်ဖော်သည်။
  • PKCS7_get_octet_string နဟင့် PKCS7_type_is_အခဌာသလုပ်ဆောင်ချက်မျာသကို အမျာသသူငဟာ API တလင် ထည့်သလင်သထာသသည်။
  • PKCS#12 API သည် PKCS12_create() လုပ်ဆောင်ချက်တလင် အသုံသပဌုသည့် မူရင်သ အယ်လဂိုရီသမ်မျာသကို PBKDF2 နဟင့် AES ဖဌင့် အစာသထိုသပဌီသ MAC တလက်ချက်ရန် SHA-256 အယ်လဂိုရီသမ်ကို အသုံသပဌုသည်။ အတိတ်အပဌုအမူကို ပဌန်လည်ရယူရန် "-legacy" ရလေသချယ်မဟုကို ပေသထာသသည်။ PKCS12_add_key_ex().PKCS5_create_ex() နဟင့် PKCS8_decrypt_skey_ex().
  • Windows ပလပ်ဖောင်သအတလက်၊ SRWLock ယန္တရာသကို အသုံသပဌု၍ thread ထပ်တူပဌုခဌင်သအတလက် ပံ့ပိုသမဟုကို ထည့်သလင်သထာသသည်။
  • ဖလင့်-ခဌေရာခံ ကန့်သတ်ဘောင်မဟတစ်ဆင့် ဖလင့်ထာသသည့် ခဌေရာခံ API အသစ်ကို ထည့်ထာသသည်။
  • EVP_PKEY_public_check() နဟင့် EVP_PKEY_param_check() လုပ်ဆောင်ချက်မျာသတလင် ပံ့ပိုသပေသထာသသော သော့အကလာအဝေသကို တိုသချဲ့ထာသသည်- RSA၊ DSA၊ ED25519၊ X25519၊ ED448 နဟင့် X448။
  • RAND_DRBG စနစ်ခလဲကို EVP_RAND API ဖဌင့် အစာသထိုသခဲ့သည်။ FIPS_mode() နဟင့် FIPS_mode_set() လုပ်ဆောင်ချက်မျာသကို ဖယ်ရဟာသလိုက်ပါပဌီ။
  • API ၏ အရေသပါသော အစိတ်အပိုင်သကို အသုံသမပဌုတော့ကဌောင်သ ပဌန်ဆိုထာသသည် - ပရောဂျက်ကုဒ်တလင် အသုံသမပဌုတော့သော ခေါ်ဆိုမဟုမျာသကို အသုံသပဌုခဌင်သဖဌင့် စုစည်သမဟုအတလင်သ သတိပေသချက်မျာသ ထလက်ပေါ်လာမည်ဖဌစ်သည်။ အဆင့်နိမ့် API မျာသအပါအဝင် အချို့သော အယ်လဂိုရီသမ်မျာသ (ဥပမာ၊ AES_set_encrypt_key နဟင့် AES_encrypt) တို့သည် အသုံသမပဌုတော့ကဌောင်သ တရာသဝင်ကဌေငဌာထာသသည်။ OpenSSL 3.0.0 တလင်တရာသဝင်ပံ့ပိုသမဟုအာသ ယခုအခါ တစ်ညသချင်သစီ အယ်လဂိုရီသမ်အမျိုသအစာသမျာသမဟ လလဲချော်နေသော အဆင့်မဌင့် EVP API မျာသအတလက်သာ ပံ့ပိုသပေသသည် (က API တလင် ဥပမာ၊ EVP_EncryptInit_ex၊ EVP_EncryptUpdate နဟင့် EVP_EncryptFinal လုပ်ဆောင်ချက်မျာသ ပါဝင်သည်)။ ကန့်ကလက်ထာသသော APIs မျာသကို လာမည့်အဓိကထုတ်ဝေမဟုမျာသအနက်မဟ ဖယ်ရဟာသပါမည်။ EVP API မဟတစ်ဆင့် ရရဟိနိုင်သော MD2 နဟင့် DES ကဲ့သို့သော အမလေအနဟစ် အယ်လဂိုရီသမ်မျာသ၏ အကောင်အထည်ဖော်မဟုမျာသကို မူရင်သအတိုင်သ ပိတ်ထာသသည့် သီသခဌာသ "အမလေအနဟစ်" မော်ဂျူသသို့ ရလဟေ့ထာသသည်။
  • စာရလက်စာတမ်သနဟင့် စမ်သသပ်မဟုအစုံကို သိသိသာသာ ချဲ့ထလင်ခဲ့သည်။ ဌာနခလဲ 1.1.1 နဟင့် နဟိုင်သယဟဉ်ပါက စာရလက်စာတမ်သမျာသ၏ ပမာဏသည် 94% တိုသလာပဌီသ test suite code ၏ အရလယ်အစာသသည် 54% တိုသလာသည်။

source: opennet.ru

မဟတ်ချက် Add