<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          悟空云課堂丨代碼安全第十六期:使用不安全的隨機(jī)值漏洞

          共 1329字,需瀏覽 3分鐘

           ·

          2021-05-07 10:16

          中科天齊傾情打造《悟空云課堂》旨在科普軟件安全相關(guān)知識(shí),助力企業(yè)有效防范軟件安全漏洞,提升網(wǎng)絡(luò)安全防護(hù)能力。本期主題為使用不安全的隨機(jī)值漏洞的相關(guān)介紹。


          一、什么是使用不安全的隨機(jī)值?

          軟件依賴于不可預(yù)測(cè)的數(shù)值使用了不充分的隨機(jī)數(shù)導(dǎo)致的安全性降低。

          產(chǎn)生原因:計(jì)算機(jī)是一種按照既定算法運(yùn)行的機(jī)器,因此不可能產(chǎn)生真正的隨機(jī)性。偽隨機(jī)數(shù)生成器 (PRNG) 近似于隨機(jī)算法,始于一個(gè)能計(jì)算后續(xù)數(shù)值的種子。

          PRNG包括兩種類型:統(tǒng)計(jì)學(xué)的PRNG和密碼學(xué)的PRNG。

          統(tǒng)計(jì)學(xué)的PRNG可提供有用的統(tǒng)計(jì)資料,但其輸出結(jié)果很容易預(yù)測(cè),因此數(shù)據(jù)流容易復(fù)制。若安全性取決于生成數(shù)值的不可預(yù)測(cè)性,則此類型不適用。密碼學(xué)的PRNG通過可產(chǎn)生較難預(yù)測(cè)的輸出結(jié)果來應(yīng)對(duì)這一問題。為了使加密數(shù)值更為安全,必須使攻擊者根本無法、或極不可能將它與真實(shí)的隨機(jī)數(shù)加以區(qū)分。通常情況下,如果并未聲明PRNG算法帶有加密保護(hù),那么它有可能就是一個(gè)統(tǒng)計(jì)學(xué)的PRNG,不應(yīng)在對(duì)安全性要求較高的環(huán)境中使用。

          Java API中提供了java.util.Random類實(shí)現(xiàn)PRNG(),該P(yáng)RNG是可移植和可重復(fù)的,如果兩個(gè)java.util.Random類的實(shí)例使用相同的種子,會(huì)在所有Java實(shí)現(xiàn)中生成相同的數(shù)值序列。


          二、使用不安全的隨機(jī)值漏洞構(gòu)成條件有哪些?

          滿足以下條件,就構(gòu)成了一個(gè)該類型的安全漏洞:

          1、使用存在風(fēng)險(xiǎn)的產(chǎn)生隨機(jī)數(shù)方法;

          2、使用不可信數(shù)據(jù)作為種子。


          三、使用不安全的隨機(jī)值漏洞會(huì)造成哪些后果?

          關(guān)鍵詞:旁路保護(hù)機(jī)制;獲得特權(quán)或假定身份;其他

          可能會(huì)導(dǎo)致嚴(yán)重的漏洞如易于猜測(cè)的密碼、可預(yù)測(cè)的加密密鑰、會(huì)話劫持攻擊和 DNS 欺騙。


          四、使用不安全的隨機(jī)值漏洞的防范和修補(bǔ)方法有哪些?

          1、使用目前被業(yè)界專家認(rèn)為較強(qiáng)的經(jīng)過良好審核的加密PRNG算法,初始化隨機(jī)數(shù)生成器時(shí)使用具有足夠長(zhǎng)度且不固定的種子。

          2、在安全性要求較高的應(yīng)用中,應(yīng)使用更安全的隨機(jī)數(shù)生成器,如java.security.SecureRandom類。

          Java 語言在 java.security.SecureRandom 中提供了一個(gè)加密 PRNG。就像 java.security 中其他以算法為基礎(chǔ)的類那樣,SecureRandom 提供了與某個(gè)特定算法集合相關(guān)的包,該包可以獨(dú)立實(shí)現(xiàn)。當(dāng)使用 SecureRandom.getInstance() 請(qǐng)求一個(gè) SecureRandom 實(shí)例時(shí),您可以申請(qǐng)實(shí)現(xiàn)某個(gè)特定的算法。如果算法可行,那么您可以將它作為 SecureRandom 的對(duì)象使用。如果算法不可行,或者您沒有為算法明確特定的實(shí)現(xiàn)方法,那么會(huì)由系統(tǒng)為您選擇 SecureRandom 的實(shí)現(xiàn)方法。


          五、使用不安全的隨機(jī)值漏洞樣例:

          DujBeN1CIW.jpg

          Wukong軟件源代碼靜態(tài)分析工具檢測(cè)上述程序代碼,則可以發(fā)現(xiàn)代碼中存在著“使用不安全的隨機(jī)值” 導(dǎo)致的代碼缺陷,如下圖:

          RL5usTAGxH.jpg

          使用不安全的隨機(jī)值在CWE中被編號(hào)為CWE-330: Use of Insufficiently Random Values


          參讀鏈接:https://www.woocoom.com/b021.html?id=6a5da8091ea141c9bfbf3f5b64b60135

          瀏覽 21
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费A V视频 | 人人干人人操人人模 | 手机在线性爱视频 | 亚洲高清视频免费观看 | 成人做爰黄A片免费看直播室男男 |