當(dāng)前位置:
首頁(yè) >
AES CBC模式下的CBC bit flipping Attack
發(fā)布時(shí)間:2025/4/14
55
豆豆
生活随笔
收集整理的這篇文章主要介紹了
AES CBC模式下的CBC bit flipping Attack
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
<?xml version="1.0" encoding="utf-8"?> AES CBC模式下的CBC bit flipping Attack
AES CBC模式下的CBC bit flipping Attack
目錄
- 1. 簡(jiǎn)介
- 2. 字節(jié)翻轉(zhuǎn)攻擊測(cè)試
1 簡(jiǎn)介
如果理解了上一篇的padding oracle attack,則CBC字節(jié)翻轉(zhuǎn)攻擊很容易理解,上一篇的最后也通過(guò)修改IV達(dá)到了修改第一個(gè)加密分組數(shù)據(jù)的效果。 CBC字節(jié)翻轉(zhuǎn)也類似,在有加密IV并可以修改IV值和能獲得服務(wù)器返回的明文結(jié)果的情況下,就能通過(guò)修改IV獲得想要的明文結(jié)果。
2 字節(jié)翻轉(zhuǎn)攻擊測(cè)試
還以上一節(jié)的測(cè)試程序?yàn)槔印S米止?jié)翻轉(zhuǎn)攻擊修改解密后的明文。
測(cè)試請(qǐng)求數(shù)據(jù):
def my_dec_req(data):'''測(cè)試解密,注意這里使用test_dec函數(shù),直接解密出明文'''txt = b64_url_enc(bytes_to_str(base64.b64encode(data)))return test_dec(txt)test_txt = 'this is a long long test' test1 = test_enc(test_txt) test_data = base64.b64decode(b64_url_dec(test1))# 解密出原始明文 print('decoded text:', my_dec_req(test_data)) decoded text: this is a long long test修改my_dec_req直接解密出明文。
cbc字節(jié)翻轉(zhuǎn)的具體實(shí)現(xiàn):
def data_xor(xs, ys):'''xor兩個(gè)序列'''return bytes([x ^ y for (x, y) in zip(xs, ys)])def cbc_xor(data, fake_data, org_data):'''使用cbc xor構(gòu)造第一個(gè)偽造數(shù)據(jù) data 加密后的密文,前16字節(jié)為iv fake_data 要偽造的明文 org_data 原始明文,只要有前16個(gè)字節(jié)的明文即可'''data_is = data_xor(data[0:BS], bytes(org_data[0:BS], 'utf-8'))return build_fake_first(data, fake_data, data_is)new_data=cbc_xor(test_data, "admin pass", test_txt)from urllib.parse import quote print("decoded text:", quote(my_dec_req(new_data))) decoded text: admin%20pass%06%06%06%06%06%06ong%20test可以看到前16字節(jié)明文被成功替換,不過(guò)因?yàn)閭卧斓淖址粔?6個(gè)字節(jié),添加了padding:
使用空格代替pkcs7 padding:
def pad_bs_space(s):'''不足一個(gè)分組長(zhǎng)的字符串 填充空格'''return s + ' ' * (BS - len(s))new_data=cbc_xor(test_data, pad_bs_space("admin pass"), test_txt) print("decoded text:", my_dec_req(new_data)) decoded text: admin pass ong testCreated: 2019-06-21 周五 18:14
轉(zhuǎn)載于:https://www.cnblogs.com/ntestoc/p/11063894.html
總結(jié)
以上是生活随笔為你收集整理的AES CBC模式下的CBC bit flipping Attack的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 04 Websocket和Websock
- 下一篇: ES SOLR对比