91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

區(qū)塊鏈如何進行加密和簽名

Wildesbeast ? 來源:今日頭條 ? 作者:精通數(shù)據(jù)科學 ? 2020-02-18 14:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

場景一

轉(zhuǎn)賬交易:

假設(shè)我要做個轉(zhuǎn)賬的app叫支付寶,要完成轉(zhuǎn)賬的功能,轉(zhuǎn)賬時,需要輸入對方支付寶賬號和姓名,然后點擊轉(zhuǎn)賬,輸入支付密碼,就可以完成轉(zhuǎn)賬的功能。

實現(xiàn)方式,客戶端通過http協(xié)議發(fā)送轉(zhuǎn)賬報文給服務端

報文無加密和簽名機制

現(xiàn)在用戶甲要轉(zhuǎn)賬給用戶乙。

安全隱患

網(wǎng)絡(luò)傳輸不安全,如果有人截取客戶端請求報文,進行篡改,比如篡改收款方的支付寶賬號和真實姓名,那么服務端就會把錢轉(zhuǎn)到別的地方去。

結(jié)論:需要防止報文被篡改

場景二

商城A要接支付寶移動支付,大致流程:

客戶端app調(diào)用支付寶的sdk發(fā)送支付報文

客戶端接收支付寶服務端的處理響應

商戶服務端接收支付寶服務端的交易成功通知

客戶端發(fā)送請求的安全隱患同場景一

服務端接收通知時,存在如下隱患,黑客甲,去商城A

人為模擬支付寶的通知報文,將訂單變成成功。

這是一個通知報文要做簽名的案例

需要注意的是,步驟2和3同樣需要做簽名驗證

結(jié)論:需要確認報文來自真實合法的服務端(其實在商戶對商戶的通信過程中,也需要確認報文來自真實合法的客戶端)

場景一和場景二的最終結(jié)論

安全網(wǎng)絡(luò)通信過程中,需要防止報文被篡改

安全網(wǎng)絡(luò)通信過程中,需要客戶端和服務端雙方確認對方的身份,即交易完成后,不可抵賴

方案一 對稱加密簽名機制

具體方案:用一種對稱加密算法將報文加密,并得出一個簽名串

舉例:MD5加密簽名,簽名串=md5(原文&密鑰)(其他對稱加密算法簽名道理是一樣的,不做詳述)

假設(shè)最終的報文是:最終報文=原文&簽名串

此方案達到的效果:

如果黑客截取報文,并篡改原文,那么服務端進行驗簽的時候,將不會通過。

因為原文變化了,算出的簽名串會改變,那么黑客需要重新計算出簽名串

要算出簽名串,需要知道如下要素

簽名算法(包含加密算法),原文,密鑰

前2個肯定是會暴露的,無法保密,而客戶端是app,密鑰也是暴露的,所以簽名串會被重新計算出來,因此黑客將成功篡改轉(zhuǎn)賬報文。

方案二 對稱加密簽名,動態(tài)密鑰

從方案一我們得出一個結(jié)論:

簽名算法(包含加密算法),原文,密鑰三者只要保證其中一個不被黑客截取,將無法算出簽名串,也就無法篡改報文。

那么我們可以動態(tài)生成簽名的密鑰,并用rsa公鑰對其進行加密(此處rsa私鑰在服務端,不會泄密,因為簽名密鑰不會被解密),然后傳至服務端

次方案用于場景一,可以解決報文被篡改的問題。

但是服務端就無法確認客戶端是否合法,尤其在機構(gòu)與機構(gòu)通信的時候,這個方案就更不可取。

且次方案不適合于方案2,支付寶服務端發(fā)通知的時候,總不能動態(tài)產(chǎn)生密鑰,這樣你就無法判定報文是否是支付寶服務端發(fā)送來的。

方案三 報文加密(對稱加非對稱)

從方案一我們得出一個結(jié)論:

簽名算法(包含加密算法),原文,密鑰三者只要保證其中一個不被黑客截取,將無法算出簽名串,也就無法篡改報文。

那么我們就采取對報文加密,可用方式是對稱加密和非對稱加密

1.對稱加密:3des

簽名串=md5(原文&密鑰1)

最終報文=3des密鑰2&簽名串

傳輸過程中,報文是加密的,無法篡改(因為無法拿到用戶關(guān)鍵信息,如session,tokenId等認證信息),看似沒有問題,但是密鑰1和密鑰2都可能泄密,而且3des會被解密掉,所以又回到方案一的結(jié)果。

2.非對稱加密+對稱加密:3des+rsa+md5

那么我們可以從方案二吸取經(jīng)驗,用rsa密鑰加密對稱加密密鑰

簽名串=md5(原文&密鑰1)

最終報文=3des密鑰2|簽名串|rsarsa公鑰

此方案仍然有方案二的缺陷,只能解決場景1,不能解決場景2

原因在于簽名的密鑰,服務端和客戶端是一樣的,無法產(chǎn)生唯一性身份

我們需要用rsa來簽名

方案四 rsa簽名+https

報文加密是必須的,那么我們用https加密,其原理同非對稱加密+對稱加密

場景一方案:

客戶端產(chǎn)生一對公私鑰 pubKey_c,priKey_c

服務端產(chǎn)生一對公私鑰 pubkey_s,priKey_s

客戶端與服務端置換公鑰

最終持有情況如下:

客戶端:pubkey_s,priKey_c

服務端:pubKey_c,priKey_s

客戶端發(fā)送報文:

簽名串=rsapriKey_c

最終報文=https(報文原文+簽名串);

場景二,相對于場景二

服務端用pubKey_c做驗簽,

產(chǎn)生效果:客戶端私鑰priKey_c沒有被盜取時,可以防止報文被篡改,且服務端可以確認信息來自合法的客戶端,在機構(gòu)與機構(gòu)通信時,次種假設(shè)是成立的。

客戶端是app, 客戶端私鑰priKey_c會被盜取,不能保證客戶端的合法性(即客戶端可以不是官方提供的),但仍然可以防止報文被篡改。

服務端響應報文時:

簽名串=rsapriKey_s

最終報文=https(報文原文+簽名串);

產(chǎn)生效果:因為服務端的私鑰priKey_s在理論上是不會泄密的,所以可以保證響應報文不會被篡改,且來自真實合法的服務端

場景二方案:

支付寶服務端發(fā)送報文:

簽名串=rsapriKey_s

最終報文=https(報文原文+簽名串);

客戶端用pubkey_s來驗簽即可,可保證,報文不會被篡改,且來自真實合法的服務端

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

    關(guān)注

    33

    文章

    1592

    瀏覽量

    75989
  • 支付寶
    +關(guān)注

    關(guān)注

    2

    文章

    467

    瀏覽量

    25965
  • 區(qū)塊鏈
    +關(guān)注

    關(guān)注

    112

    文章

    15577

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    保姆級教程!RK3588 Linux6.1?固件簽名完整實現(xiàn)方案(不含rootfs)

    內(nèi)核)上實操固件簽名時,踩了不少官方文檔的坑,經(jīng)過反復調(diào)試終于打通全流程。今天就把這份實戰(zhàn)經(jīng)驗整理成保姆級教程,從配置到問題排查,一步步帶大家搞定 RK3588 的固件簽名! 一、核心原理速覽 ? ? 固件簽名的核心邏輯是通過
    的頭像 發(fā)表于 01-14 17:21 ?1832次閱讀
    保姆級教程!RK3588 Linux6.1?固件<b class='flag-5'>簽名</b>完整實現(xiàn)方案(不含rootfs)

    對于設(shè)備上的舊固件如何進行備份和恢復?

    對于設(shè)備上的舊固件,如何進行備份和恢復?
    發(fā)表于 12-12 08:23

    單片機如何進行加解密鑰操作,一般使用哪種形式,具體流程是什么樣子的?

    目前單片機如何進行加解密鑰操作,一般使用哪種形式,具體流程是什么樣子的?
    發(fā)表于 12-04 06:09

    CW32F030C8T6數(shù)字簽名實戰(zhàn)

    對哈希值進行RSA加密,生成簽名。 公鑰驗證:在設(shè)備端用預置的公鑰解密簽名,與重新計算的哈希值比對。 2.3 代碼示例 (基于mbedTLS) 使用 CW32F030C8T6 實現(xiàn) E
    發(fā)表于 11-19 08:03

    CW32F030C8T6數(shù)字簽名的實戰(zhàn)指南

    對哈希值進行RSA加密,生成簽名。 公鑰驗證:在設(shè)備端用預置的公鑰解密簽名,與重新計算的哈希值比對。 2.3 代碼示例 (基于mbedTLS) 使用 CW32F030C8T6 實現(xiàn) E
    發(fā)表于 11-18 06:35

    L083最低功耗是多少,應該如何進行低功耗設(shè)計?有哪些注意事項?

    L083最低功耗是多少,應該如何進行低功耗設(shè)計?有哪些注意事項?
    發(fā)表于 11-12 07:29

    加密算法的應用

    機。但是,由于加密技術(shù)的保密性,直到二戰(zhàn)結(jié)束后,人們才開始研究加密技術(shù)的理論,進一步推動了加密技術(shù)的發(fā)展。 2. 加密算法的含義 加密
    發(fā)表于 10-24 08:03

    AES加密流程

    密鑰,這些輪密鑰將在后續(xù)的加密和解密過程中使用。 初始輪(Initial Round):在初始輪中,將待加密數(shù)據(jù)與第一個輪密鑰進行異或運算。這一步驟有助于消除數(shù)據(jù)的模式和統(tǒng)計特性,增強加密
    發(fā)表于 10-23 06:13

    基于FPGA利用sm4進行實時圖像加密

    求一份在fpga上利用sm4進行實時圖像加密的文件
    發(fā)表于 09-15 19:05

    2KW逆變側(cè)功率管的損耗如何進行計算詳細公式免費下載

    本文檔的主要內(nèi)容詳細介紹的是2KW逆變側(cè)功率管的損耗如何進行計算詳細公式免費下載。
    發(fā)表于 08-29 16:18 ?34次下載

    請問如何使用ICP工具對NUC505進行加密編程?

    如何使用ICP工具對NUC505進行加密編程?
    發(fā)表于 08-18 07:18

    簽名證書工具cfssl詳解

    CFSSL(CloudFlare's PKI and TLS toolkit)由 CloudFlare 用go語言開發(fā)的一個開源工具,用于證書簽名、驗證和管理。
    的頭像 發(fā)表于 06-11 16:30 ?708次閱讀
    自<b class='flag-5'>簽名</b>證書工具cfssl詳解

    請問STM32WBA65如何進行matter的學習?

    STM32WBA65如何進行matter的學習?相關(guān)的支持都有哪些?有一個X-CUBE-MATTER,可是這個沒有集成在STM32CubeMX中
    發(fā)表于 04-24 07:22

    抵御量子計算威脅:航芯「抗量子密碼加密簽名方案」為信息安全筑起新防線

    攻擊,航芯正加速推進在抗量子密碼等前沿領(lǐng)域的深度布局。通過將芯片安全信任根技術(shù)(PUF)與抗量子密碼算法的深度融合,航芯正式推出基于PUF的「抗量子密碼加密簽名
    的頭像 發(fā)表于 04-14 11:01 ?1096次閱讀
    抵御量子計算威脅:航芯「抗量子密碼<b class='flag-5'>加密</b><b class='flag-5'>簽名</b>方案」為信息安全筑起新防線

    如何在MBDT中使用S32k344進行加密?

    我想加密和解密通過 CAN 總線發(fā)送的數(shù)據(jù),為此我想使用 S32k344 中的 HSE 模塊在 MBDT 1.5 中進行對稱加密-解密,但工具箱中沒有可用的塊。那我該怎么做呢。請分享與 HSE 相關(guān)的文件。
    發(fā)表于 03-25 07:21