最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

哈希洪水 DOS

2022-12-15 02:58 作者:阿曜ちゃん  | 我要投稿

為什么,如何防止在 Java 中應(yīng)用?

哈希泛濫攻擊是網(wǎng)絡(luò)安全中最重要的攻擊之一——也是區(qū)分軟件工程師和安全工程師思維方式的直觀方式。 為什么要進(jìn)行哈希泛洪攻擊?

哈希泛洪攻擊是拒絕服務(wù)攻擊。一旦后端接口出現(xiàn)漏洞,整個服務(wù)器將停止服務(wù)。 我們所說的“脆弱性”是什么? 不得不提

Hash

,這種簡單的數(shù)據(jù)結(jié)構(gòu)幾乎每個軟件都實現(xiàn)了。人們選擇它是因為它具有超快的查找時間:平均

O(1)

和最壞情況下的

O(n)

。

哈希表的最壞時間復(fù)雜度為 O(n),原因有二:

1. 如果太多元素散列到同一個鍵中:查看這個鍵內(nèi)部可能需要 O(n) 時間。

2. 一旦哈希表通過了它的負(fù)載平衡——它必須重新哈希[創(chuàng)建一個新的更大的表,并將每個元素重新插入到表中]。

這意味著,當(dāng)我們要不斷地向哈希表中插入n個元素時,如果鍵沒有相同的哈希值,則需要大約O(n)的時間;但是如果鍵的哈希值不斷地發(fā)生沖突,

最壞情況將花費大約 O(n^2) 時間

,這使得平均運行時間和最壞情況運行時間彼此非常不同。 這就是為什么 Scott A. Crosby 和 Dan S. Wallach 在 2003 年提出了一個想法,即如果存在一種方法可以利用這種數(shù)據(jù)結(jié)構(gòu)的漏洞(最壞情況復(fù)雜度)手動創(chuàng)建最壞情況的設(shè)想。 java.lang.String.hashCode()

此方法返回此字符串的哈希碼。 String 對象的哈希碼計算如下:

s[0]*31^(n - 1) + s[1]*31^(n - 2) + ... + s[n - 1]

使用int算法,其中s[i]是字符串的第i個字符,n是字符串的長度,^表示求冪。 (空字符串的哈希值為零。)

使用這個算法,我們可以很容易地創(chuàng)建一組具有相同散列值的字符串。一旦交給服務(wù)器做哈希表,服務(wù)器就會用這種廉價的方法宕機(jī)。 2011年的一項實驗表明,攻擊 Tomcat 服務(wù)器只需6KB/s就可以并行化 Intel i7 處理器; 1GB/s 并行化 100000 個 Intel i7 處理器;這使得散列泛洪攻擊成為一種更經(jīng)濟(jì)有效的 DOS 攻擊方式。

如何預(yù)防?

現(xiàn)在我們已經(jīng)為攻擊者進(jìn)行散列泛洪攻擊建立了條件:了解

算法的所有細(xì)節(jié)

,這樣他們就可以很容易地制作出一組沖突的密鑰。 所以,如果我們讓攻擊者無法完全使用算法呢? 現(xiàn)在我們可以引入

Hash Seed

,它是每次創(chuàng)建哈希表時隨機(jī)生成的秘密參數(shù)。使用這種哈希種子的哈希算法稱為

Keyed Hash Function

。 迄今為止,許多研究機(jī)構(gòu)和組織已經(jīng)設(shè)計了新的哈希函數(shù),例如:

SipHash, MurmurHash, CityHash …

CTF:哈希沖突

在 CTF 中,哈希沖突是指兩段數(shù)據(jù)或文本具有相同的加密哈希。這是非常罕見的。碰撞的重要之處在于它們可用于破解密碼哈希。密碼通常以散列形式存儲在計算機(jī)上,因為很難從散列中獲取密碼。 參考

Scott A. Crosby and Dan S. Wallach. 2003. Denial of service via algorithmic complexity attacks. In Proceedings of the 12th conference on USENIX Security Symposium - Volume 12 (SSYM’03), Vol. 12. USENIX Association, Berkeley, CA, USA, 3-3.

!(Hash table runtime complexity (insert, search and delete))https://stackoverflow.com/questions/9214353/hash-table-runtime-complexity-insert-search-and-delete

Hash-flooding DoS - isdanni (https://isdanni.com/hash-flooding/#javalangstringhashcode)

結(jié)束,感謝大家閱讀

翻譯:阿曜ちゃん

哈希洪水 DOS的評論 (共 條)

分享到微博請遵守國家法律
永安市| 白银市| 巫山县| 张北县| 沙坪坝区| 南江县| 昔阳县| 侯马市| 崇礼县| 奉节县| 定陶县| 兴文县| 高青县| 鹿邑县| 陈巴尔虎旗| 虎林市| 抚州市| 凭祥市| 东阳市| 张家港市| 界首市| 延津县| 承德县| 彭州市| 全椒县| 黑龙江省| 苏尼特右旗| 波密县| 龙南县| 璧山县| 凯里市| 梅河口市| 桐柏县| 双江| 镇平县| 苍山县| 延安市| 涿州市| 曲阜市| 孝义市| 庐江县|