chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

密碼密鑰硬編碼檢查

科技怪授 ? 來源:科技怪授 ? 作者:科技怪授 ? 2022-10-13 09:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 密鑰的重要性

1.1. 看風(fēng)

我們還是先說故事。話說2006年有一個柳云龍的電視連續(xù)劇《暗算》分為三部曲《聽風(fēng)》、《看風(fēng)》、《捕風(fēng)》。很有意思的是三個故事里都有個“風(fēng)”字。你看過風(fēng)嗎?我沒看到,只看見樹葉飄動,才知道風(fēng)來過。風(fēng),來無影,去無蹤,無孔不入,又無處不在。三部曲分別對應(yīng):偵聽、破譯和諜報。故事描述了老一輩情報人員(一群與風(fēng)打交道的人),與敵斗智斗勇的故事,信仰的力量讓他們無所畏懼、勇往直前,看得人蕩氣回腸,催人淚下。

由于平時很少看電視,去年正在為一個算法發(fā)愁,偶然看到這個劇,感同身受,便一口氣看完了,里面一些對加密算法邏輯的一些看法,還是給了當(dāng)時的我很大的啟發(fā),讓我完成了當(dāng)時的算法,還特意發(fā)了微博紀(jì)念。個人比較喜歡《看風(fēng)》破譯密碼這個章節(jié),里面有句經(jīng)典的臺詞:風(fēng)是看不見的,破譯密碼就是看見了風(fēng),密碼是兵器,是兵器中的暗器。

1.2. 保密通信模型

· 保密通信模型image.png

密碼學(xué)有一個重要的產(chǎn)物——密鑰。密鑰作為信息在傳播時用來加密的工具起著非常重要的作用。主流的六種密碼技術(shù),就是圍繞密鑰展開的:對稱密碼、非對稱密碼、單向散列函數(shù)、消息認(rèn)證碼、數(shù)字簽名、偽隨機(jī)數(shù)生成器。

1.3. 密鑰的重要性

· 古典密碼學(xué)(1949年之前)

數(shù)據(jù)的安全主要是基于算法的保密。

送你一首小詩:

我畫藍(lán)江水悠悠,

愛晚亭上楓葉愁。

秋月溶溶照佛寺,

香煙裊裊繞經(jīng)樓。

如果不告訴你這是首藏頭詩,你還真的很難猜到唐伯虎對秋香的表白:“我愛秋香”。 藏頭詩就是加密算法的一種。

由于西方文字是由字母組成,字母又是有序的字符集。所以在對文字加密時,密碼算法很容易想到采用:替代密碼、置換密碼或替代與置換密碼的組合,來完成完成信息的加密。公元前1世紀(jì)古羅馬的凱撒密碼,就是對文字中的字母,采用它在字母表中之后的第k個字母來代換,從而變成密文。在解密時,反向移動k個字母進(jìn)行還原。

這個時代將密碼發(fā)展到巔峰的,要算二戰(zhàn)時期德軍用機(jī)械實(shí)現(xiàn)的轉(zhuǎn)輪機(jī)(RotorMachine)ENIGMA密碼,很多的諜戰(zhàn)片都是圍繞這個機(jī)器展開的。

這個時期的密碼存在很多的問題:

· 不適合大規(guī)模生產(chǎn)

· 不適合較大的或者人員變動較大的組織

· 用戶無法了解算法的安全性

奧古斯特·柯克霍夫在19世紀(jì)提出了密碼學(xué)上的柯克霍夫原則(Kerckhoffs’s principle)由:即使密碼系統(tǒng)的任何細(xì)節(jié)已為人悉知,只要密鑰(key)未泄漏,它也應(yīng)是安全的。 這個原則指導(dǎo)了以后的密碼學(xué)算法的發(fā)展。

· 近代密碼學(xué)(1949-1975)

數(shù)據(jù)的安全基于密鑰,而不是算法的保密。

香農(nóng)在20世紀(jì)40年代末發(fā)表的一系列論文,特別是1949年的《保密系統(tǒng)通信理論》,把密碼學(xué)推向了基于信息論的科學(xué)軌道。

這階段的發(fā)展主要是對稱加密算法。對稱加密是發(fā)送方使用某種公開的算法使用密鑰對明文進(jìn)行加密,接收方使用之前發(fā)送方給予的密鑰對密文進(jìn)行解密得到明文。近代密碼發(fā)展中一個重要突破是“數(shù)據(jù)加密標(biāo)準(zhǔn)”(DES)的出現(xiàn)。

· 現(xiàn)代密碼學(xué)(1976-)

公鑰密碼使得發(fā)送端和接收端無密鑰傳輸?shù)谋C芡ㄐ懦蔀榭赡堋?/p>

1976 年 Diffie 和 Hellman 的公鑰密碼的思想提出,標(biāo)志著現(xiàn)代密碼學(xué)的誕生。這是密碼學(xué)發(fā)展史上具有里程碑意義的大事件,自此提出了許多種公鑰密碼體制 ,如基于分解大整數(shù)的困難性的密碼體制——RSA 密碼體制及其變種、基于離散對數(shù)問題的公鑰密碼體制。

1.4. 密鑰泄露的危害

影響密碼系統(tǒng)安全性的基本因素:密碼算法復(fù)雜度、密鑰機(jī)密性、密鑰長度。其中密鑰機(jī)密性與主要與密鑰的管理相關(guān)。如何保護(hù)好密鑰的安全就成了信息安全的非常重要的一個部分。

在現(xiàn)在的應(yīng)用系統(tǒng)中,密碼、密鑰往往被作為一種訪問密鑰(access key)或憑證(Credentials),用于系統(tǒng)之間建立鏈接,避免了用戶密碼的明文傳輸。很多時候訪問密鑰等同于密碼。

例如我們熟悉的GitHub的訪問密鑰。當(dāng)我們獲得Github某個庫的地址訪問密鑰,就可以在Windows的憑證管理或本地Git的憑證管理里添加這個訪問密鑰,本地git和遠(yuǎn)端的訪問庫地址就建立了信任鏈接,不再需要每次都輸入密碼。

但密鑰本地化,也會導(dǎo)致密鑰分散在代碼、配置文件中。一旦缺乏對密鑰的統(tǒng)一管理, 就容易導(dǎo)致密鑰泄露。員工不慎將密鑰泄漏到開源網(wǎng)站導(dǎo)致重要數(shù)據(jù)丟失事件時有發(fā)生。

2018年某酒店集團(tuán)共140G約5億條個人信息遭泄露,被發(fā)現(xiàn)泄露的信息在境外黑市中售賣。究其原因,是該集團(tuán)對員工的安全意識缺乏足夠的教育培訓(xùn),導(dǎo)致開發(fā)人員在無意識的情況下將公司測試平臺的賬號密碼發(fā)到 GitHub上,使得黑客下載了整個數(shù)據(jù)。

我們從Verizon(美國最大的有線通信和語音通信提供商),每年發(fā)布的《數(shù)據(jù)泄露調(diào)查報告(Data Breach Investigations Report(DBIR))》,來看下密碼密鑰在信息泄露中被黑客利用的情況。

·

《2020數(shù)據(jù)泄露調(diào)查報告(DBIR)》

使用偷竊的信用憑證、利用員工誤發(fā)送、員工誤配置是數(shù)據(jù)泄露的主要威脅。內(nèi)部員工操作不規(guī)范、沒有養(yǎng)成良好的工作行為習(xí)慣以及疏忽大意等,已成為多起嚴(yán)重網(wǎng)絡(luò)安全事件發(fā)生的根本原因。image.png

《2021數(shù)據(jù)泄露調(diào)查報告(DBIR)》

61%的數(shù)據(jù)泄露涉及憑證數(shù)據(jù),憑證的泄露是信息泄露的主要途徑,防止憑證泄露對信息保護(hù)有著重要的作用。image.png

《2022數(shù)據(jù)泄露調(diào)查報告(DBIR)》

憑證是發(fā)起攻擊的最重要的手段。image.png

憑證和個人數(shù)據(jù)是黑客最喜歡獲取的兩類數(shù)據(jù)

報告指出:我們長期以來一直認(rèn)為,憑證是犯罪分子最喜歡的數(shù)據(jù)類型,因?yàn)樗鼈儗τ趥窝b成系統(tǒng)上的合法用戶非常有用。就像諺語中披著羊皮的狼一樣,它們的行為在攻擊之前顯得無害。

image.png

image.png

o

2. 密碼密鑰硬編碼的檢查

接下來我們看下如何防范密碼密鑰在帶碼中由于硬編碼導(dǎo)致的泄露。

先來看些如何鑒別密碼密鑰。

2.1. 香農(nóng)熵(Shannon entropy)

密鑰的長度決定了密鑰空間(keyspace),通常以位為單位。密鑰空間越大,密鑰被攻破的難度就越大。

密鑰是由密鑰空間的隨機(jī)值構(gòu)成。對于任意一個隨機(jī)變量X,它的熵定義如下:

H(X) = - \\sum_{x=1}^nP(x_i)log_2[P(x_i)]∑ x =1n? P (xi?)log2?[ P (xi?)]

變量的不確定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。

· P(x_i) P (x**i?) : 指的是單個樣本變量所屬的變量種類的個數(shù)占據(jù)所有變量個數(shù)的比例。

舉例 :數(shù)據(jù)data有六個值,分為別為:[a,b,c,a,b,a];

樣本總個數(shù)是6,變量種類數(shù)3;分別為[a:3, b:2, c:1]

所以對應(yīng)的pi分別為[a:1/2, b:1/3, c:1/6]

公式計(jì)算log以2為底數(shù)的pi的對數(shù)值,然后再乘以pi的負(fù)數(shù),再計(jì)算其加和,得到的便是香農(nóng)熵的值:1.4591479170272448。

/**

  • Base on shannon entropy return bits of entropy represented in string.
  • @param str input string
  • @return entropy

/public * static double getShannonEntropy(String str**)** **{

** int num = **0;

** Map pi = new **HashMap();

** **// count char in string

** char cx**;

** for (int l = 0; l < str**.length();** ++ l ) **{

** cx = str**.charAt( l );

** if ( pi .containsKey( cx )) **{

** pi**.put( cx ,** pi**.get( cx )** + **1);

** } else **{

** pi**.put( cx ,** **1);

** **}

** num = num + **1;

** **}

** double entropy = **0.0;

** for (Map.Entry entry : pi**.entrySet())** **{

** cx = entry**.getKey();

** double p = (double) entry**.getValue()** / num**;

** entropy = entropy + p ***** (Math.log( p ) / **Math.log(2));

** **}

** return **- entropy ;}

· 同等長度的字符串,通常密鑰的熵值更高

密鑰為避免彩虹攻擊,在取值上更加的離散,會盡量采用不重復(fù)的字符。就像我們?yōu)榱嗽黾用艽a的復(fù)雜性,要求長度不小于8,必須包含大小寫、特殊字符、以及數(shù)字一樣的道理,所以密鑰的熵值會比一般的文本要高的多。我們就是利用這點(diǎn)來識別字符串是否是密鑰。

2.2. 工具的檢查邏輯

對于密碼密鑰的硬編碼檢查可以采用靜態(tài)分析工具來完成。工具的檢查過程通常包含四個過程:輸入文件準(zhǔn)備、檢查、過濾和報告輸出。image.png

2.2.1. 輸入文件轉(zhuǎn)換

· 輸入文件分類

我們需要檢查的文本文件進(jìn)行分類,通常包括以下幾種類型:

o 程序語言:C、C++、Java、Python、Go、Js等;

o 有統(tǒng)一格式的文件:屬性文件、yaml、csv、json、xml等;

o 文本文件:沒有固定格式的文本文件。

分類的目的是為了更好的識別文件中的字符串常量,充分利用字符串常量的上下文關(guān)聯(lián),以便在分析中最大程度的減少誤報。

· 輸入文件轉(zhuǎn)換

o 程序語言:通過各語言的語法解析器,解析成抽象語法樹,提取語法樹中的等于字符串的常量,以及對應(yīng)的變量名;

o 有統(tǒng)一格式的文件:照格式轉(zhuǎn)換成變量名和字符串常量值;

o 文本文件:采用token的方式分割成一個個的token,變成一個各的字符串常量。

2.2.2. 密碼密鑰檢查

在我們得到大量的變量名和字符串常量后,主要通過正則表達(dá)式匹配的方式完成目標(biāo)的篩選。

由于檢查密碼密鑰的種類和類型不同,可以通過配置文件來提高檢查能力的可擴(kuò)展性。

· 檢查配置選項(xiàng)主要包括以下內(nèi)容:

信息 描述 選項(xiàng)
檢查類型 可分為:變量名、字符串常量、或兩個都檢查 必選
密碼密鑰的類型 用于區(qū)分不同類型的密碼密鑰;同時用于告警時區(qū)分具體檢測到的密碼密鑰類型 必選
正則表達(dá)式 主要設(shè)定匹配的長度,每個字符的可選類型 必選
熵值的閾值 用于精確的識別密碼密鑰的類型,降低誤報 可選

例如:

· 檢查硬編碼的口令:檢查變量名中包含:password、passwd、pwd的變量,且變量等于字符串常量;正則表達(dá)式可以設(shè)置成為:".*(password|passwd|pwd)$"。

· 檢查GitHub的個人憑證:檢查字符串常量;這個憑證是以"ghp_"開頭的,跟隨長度為36的字符串,且每個字符可以為數(shù)字和字母;正則表達(dá)式可以設(shè)置成為:“ghp_[0-9a-zA-Z]{36}”。

2.2.3. 密碼密鑰過濾

靜態(tài)分析能很大程度上減少了人工審核的工作量,但由于檢查模式的不確定性,也會帶來不少的誤報。誤報會給用戶在審核過程中帶來很多的負(fù)面情緒,從而不愿繼續(xù)使用工具。為了進(jìn)一步降低誤報,我們可以通過下面的方式來降低誤報:

·

密碼密鑰熵值的計(jì)算

前面討論過密碼密鑰的特點(diǎn),可以通過檢測密碼密鑰的信息熵的方式來降低誤報。有些密碼密鑰設(shè)定了最低的閾值,但還是有很多密碼密鑰并未給出具體的閾值,這個就需要通過經(jīng)驗(yàn)積累來設(shè)定,目前業(yè)界也有通過機(jī)器學(xué)習(xí)來完善這個閾值的設(shè)定。

·

·

污點(diǎn)分析

在代碼中,對于口令的變量的取名上,很多并不會遵守可讀性和可維護(hù)性來設(shè)定變量名,通過前面正則表達(dá)式的方式來查找硬編碼密碼的方式,會造成很多的漏報。這里還可以通過污點(diǎn)分析的方法,來推導(dǎo)出密碼是否采用了硬編碼。例如檢查jdbc連接的密碼參數(shù),查看該參數(shù)是否為字符串常量。

·

2.2.4. 報告輸出

將經(jīng)過過濾后的結(jié)果,輸出告警,給出可能泄露的文件名和變量或可能為密碼密鑰的常量字符串位置,便于人工的排查。
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6261

    瀏覽量

    139061
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    980

    瀏覽量

    56436
  • 密鑰
    +關(guān)注

    關(guān)注

    1

    文章

    148

    瀏覽量

    20685
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    非對稱密鑰生成和轉(zhuǎn)換規(guī)格詳解

    當(dāng)前章節(jié)將說明系統(tǒng)目前支持的算法及其對應(yīng)的規(guī)格。密鑰生成有兩種指定規(guī)格的方式,分別是: 字符串參數(shù):以字符串的形式描述開發(fā)者需要生成的密鑰規(guī)格。 密鑰參數(shù):使用密鑰的詳細(xì)
    發(fā)表于 09-01 07:50

    對稱密鑰生成和轉(zhuǎn)換規(guī)格詳解

    對稱密鑰生成和轉(zhuǎn)換規(guī)格
    發(fā)表于 09-01 06:05

    RIGOL示波器支持GHz級量子密鑰分發(fā)測試

    一、引言 1.1量子密鑰分發(fā)技術(shù)的重要性 在信息時代,數(shù)據(jù)安全至關(guān)重要。傳統(tǒng)加密技術(shù)雖廣泛應(yīng)用,但存在被量子計(jì)算機(jī)破解的風(fēng)險。量子密鑰分發(fā)技術(shù)基于量子力學(xué)原理,能實(shí)現(xiàn)無條件安全的密鑰傳輸。它使通信
    的頭像 發(fā)表于 08-10 15:19 ?865次閱讀

    兆芯亮相2025商用密碼展暨密碼應(yīng)用與創(chuàng)新發(fā)展大會

    近日,2025商用密碼展暨密碼應(yīng)用與創(chuàng)新發(fā)展大會在上海世博展覽館拉開帷幕。大會期間,兆芯、上海CA、聯(lián)和東海共同帶來“芯密全棧密碼服務(wù)平臺解決方案”,著力為企業(yè)及機(jī)構(gòu)提供更安全、更靈活、更具性價比的
    的頭像 發(fā)表于 06-14 15:11 ?1171次閱讀

    探秘編碼器線數(shù):解鎖工業(yè)精密控制新密碼

    僅是衡量編碼器性能的重要指標(biāo),更是解鎖工業(yè)精密控制新密碼的關(guān)鍵鑰匙。 想象一下,當(dāng)你駕駛著汽車在高速公路上飛馳,方向盤的每一次微調(diào)、油門的每一次深淺,都離不開背后復(fù)雜而精密的控制系統(tǒng)。而在這個系統(tǒng)中,編碼器就如同
    的頭像 發(fā)表于 04-16 08:34 ?604次閱讀

    LS1046A編碼RCW無法更改怎么解決?

    我們有一個基于 LS1046A 和 LS1046ARDB 的定制設(shè)計(jì)板作為參考設(shè)計(jì)。定制板是 “裸機(jī)” 的,上面沒有編程。因此,我們將引導(dǎo)源字設(shè)置為 0x9F 并嘗試用新設(shè)置覆蓋編碼 RCW,以便
    發(fā)表于 03-21 07:25

    如何將Keyring用于CAAM分區(qū)加密的密鑰?

    我正在按照此方法加密我的 emmc 分區(qū) - 1. 生成密鑰: keyname=dm_trust KEY=“$(keyctl add trusted $KEYNAME \'new 32\' @s
    發(fā)表于 03-20 06:40

    走進(jìn)連接器界‘摩斯密碼’特殊編碼丨L、T、S解讀

    ,接下來跟隨電子谷一起翻開M12連接器的“密碼本”,揭開特殊編碼背后的秘密!M12連接器編碼含義M12連接器的特殊編碼并非隨意排列,而是遵循國際標(biāo)準(zhǔn),每個字母都代表
    的頭像 發(fā)表于 02-27 07:33 ?1456次閱讀
    走進(jìn)連接器界‘摩斯<b class='flag-5'>密碼</b>’特殊<b class='flag-5'>編碼</b>丨L、T、S解讀

    DISCOAA編碼器維修

    可能由內(nèi)部連接松動、電路板老化、電源線干擾、接線不良、機(jī)械碰撞等多種原因引起?23。 維修前的準(zhǔn)備工作同樣重要,包括準(zhǔn)備必要的維修工具(如螺絲刀、萬用表、焊臺等)、確保工作環(huán)境安全、對編碼器進(jìn)行初步檢查以確定故障類型和范圍等?1。
    的頭像 發(fā)表于 02-20 13:48 ?671次閱讀

    SDI編碼控制板在影像檢查設(shè)備中的應(yīng)用——以CM2001S為例

    在現(xiàn)代影像檢查設(shè)備中,SDI(Serial Digital Interface)編碼控制板扮演著至關(guān)重要的角色。其中,CM2001S作為SDI編碼控制板的一種,憑借其卓越的性能和穩(wěn)定的質(zhì)量,在影像
    的頭像 發(fā)表于 01-16 17:38 ?724次閱讀

    bcd編碼的優(yōu)缺點(diǎn) bcd編碼的常見錯誤

    。以下是BCD編碼的一些優(yōu)缺點(diǎn)以及常見的錯誤: BCD編碼的優(yōu)點(diǎn): 直觀易懂 :BCD編碼直接將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制,對于人類來說非常直觀,易于理解和檢查。 減少錯誤 :由于BCD
    的頭像 發(fā)表于 12-20 17:17 ?2144次閱讀

    對稱加密技術(shù)在實(shí)際應(yīng)用中如何保障數(shù)據(jù)安全?

    ,如使用安全的密鑰協(xié)商和密鑰分發(fā)方式,定期更換密鑰等。 密碼學(xué)原理的安全性: 對稱加密算法的安全性基于密碼學(xué)原理,需要確保
    的頭像 發(fā)表于 12-16 13:59 ?895次閱讀

    NAS重置密碼攻略來襲,讓你告別‘密碼焦慮’!

    你是否曾遇到過這樣的尷尬場景:當(dāng)你登錄某個賬號時,突然發(fā)現(xiàn)自己的腦子像是被格式化了一樣,一片空白。好不容易憑感覺輸入了幾組可能的密碼組合,結(jié)果系統(tǒng)無情地吐出了“密碼錯誤”的提示。 更讓人抓狂
    的頭像 發(fā)表于 12-11 15:29 ?1652次閱讀
    NAS重置<b class='flag-5'>密碼</b>攻略來襲,讓你告別‘<b class='flag-5'>密碼</b>焦慮’!

    Linux系統(tǒng)設(shè)置用戶密碼規(guī)則(復(fù)雜密碼策略)方法

    Linux系統(tǒng)下的用戶密碼的有效期 可以修改密碼可以通過login.defs文件控制。設(shè)置密碼過期期限(默認(rèn)情況下,用戶的密碼永不過期。) 編輯 /etc/login.defs 文件,
    的頭像 發(fā)表于 12-07 09:24 ?1917次閱讀

    二進(jìn)制編碼器的故障排除指南

    二進(jìn)制編碼器是一種將二進(jìn)制信號轉(zhuǎn)換為數(shù)字信號的電子設(shè)備,廣泛應(yīng)用于計(jì)算機(jī)、通信和自動化控制系統(tǒng)中。當(dāng)二進(jìn)制編碼器出現(xiàn)問題時,有效的故障排除是確保系統(tǒng)正常運(yùn)行的關(guān)鍵。 1. 初步檢查 1.1
    的頭像 發(fā)表于 11-06 09:49 ?1346次閱讀