色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

基于DS28S60的雙向身份驗證示例,使用Jupyter筆記本

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-06-16 11:39 ? 次閱讀

本應用筆記詳細介紹了DS28S60與Jupyter筆記本配合使用進行雙向認證的基本應用。它使用分步方法來演練設置設備和所有相關軟件,創建用于通過 ECDHE 密鑰交換加密數據的共享密鑰,使用 AES-GCM 加密和解密數據,以及通過 ECDSA 簽名生成和驗證完成相互身份驗證。

介紹

本應用筆記介紹了DS28S60加密處理器工作原理,概述了使用DS<>S<>器件建立基于主機和客戶端的系統,用于密鑰生成和交換、加密和雙向認證。此用法在隨附的 Jupyter 筆記本中有詳細說明。首先,讓我們討論通過非對稱密鑰交換生成主機和客戶端使用的共享密鑰或共享對稱密鑰。接下來,讓我們概述如何使用共享對稱密鑰來加密設備和主機之間的通信。最后,讓我們演練使用數字證書和簽名的相互身份驗證過程。

系統加密概述

在系統成員之間交換任何數據之前,DS28S60首先通過創建加密通道來保護各方之間的通信。此示例中的各方包括設備、主機和第三方頒發機構:

  • 設備 :也稱為客戶端。這是包含DS28S60的實體,它必須與主機通信。例如,這可能是一個傳感器節點。
  • 主機 :通常是服務器或計算機。這是必須與設備通信的實體。
  • 頒發機構:稱為第三方/證書 頒發機構 。這是受信任方,它向主機和設備提供證書以相互驗證。

圖 1 顯示了主機和設備之間建立和使用加密通道的交互。

圖1.加密通信通道的系統概述。

圖1.加密通信通道的系統概述。

系統身份驗證概述

簡而言之,系統身份驗證是驗證主機和設備的公鑰和私鑰以驗證各方身份的過程。請注意,在啟動與密鑰對或任何其他敏感信息相關的任何數據交換之前,所有各方之間的通信都是加密的。圖 2 顯示了身份驗證過程中主機、設備和頒發機構之間的交互。

圖2.使用權威實體幫助的雙向身份驗證的系統概述

圖2.使用權威實體幫助的雙向身份驗證的系統概述

硬件、軟件和出廠設置

硬件設置

要運行DS28S60的Jupyter筆記本,需要DS28S60以外的兩個硬件,它們是DS28S60評估板的一部分。

  • DS9121EQ+ 評估 TDFN 插座板,用作 DS28S60 處理器的集線器并容納 DS<>S<>。
  • DS9482P# USBI2C/SPI/1 線適配器,用于連接 DS9121EQ+ 插座板和主機。

使用評估板中的USB Micro B電纜將上位計算機與DS9482P#適配器連接。

軟件設置

配置硬件后,下一步是獲取并初始化軟件以運行 Jupyter 筆記本。這些步驟如下:

  1. 下載最新版本的 Python 及其相關庫以運行 Jupyter Notebook:
    1. 訪問下載 Python | Python.org 并下載最新版本的 Python( 安裝時選中“將 Python 添加到路徑”選項 )。

    2. 安裝 Python 后,如果使用 Windows,請打開命令提示符或任何類似的終端。若要安裝庫,請輸入運行筆記本需要以下庫。

      pip install *TARGET LIBRARY*
      
      1. 幼兒發展局
      2. 皮串行
      3. 密碼學
      4. Pycryptodome
      5. AES
      6. SPI
  2. 安裝并運行 Jupyter Notebook,然后導航到 DS28S60 Notebook 文件夾并運行 DS28S60 Jupyter Notebook 文件 'DS28S60_KeyExchange.ipynb'。有關下載 Jupyter 筆記本的說明,請訪問 Jupyter 項目 |安裝Jupyter。

注意:通過在 Jupyter 筆記本中的“硬件連接設置”部分下運行前兩個代碼塊,檢查軟件包是否已正確安裝,以及硬件是否已連接并成功工作。

出廠設置:ECDSA 密鑰生成和證書分發

要生成共享密鑰或共享對稱密鑰,請首先為主機和設備生成公鑰和私鑰。

以下步驟概述了密鑰對的安裝和存儲以及證書的分發。注意:從應用筆記的這一點開始,每個編號的步驟在Jupyter筆記本中都有一個或多個關聯的代碼段,必須按順序運行這些代碼段才能完成雙向身份驗證。

  1. 生成主機的橢圓曲線數字簽名算法 (ECDSA) 密鑰對和識別信息。
    1. 在 Jupyter 筆記本中,預先選擇私鑰和公鑰數組以保持一致性。不要修改這些值。注意:對于實際應用程序,這些數組永遠不會對任何人可見。
    2. 識別信息:同時預先選擇Host_ID和Host_Location_Code。不要修改這些值。
  2. 啟動托管證書生成的授權。
    1. 將生成證書所需的所有必需信息發送給頒發機構。這需要將公鑰、Host_ID和Host_Location_Code打包到要發送的證書消息中。頒發機構使用此信息生成證書,并使用頒發機構私鑰對其進行簽名。
  3. 生成設備的 ECDSA 密鑰對。
    1. 使用 GenEcc256KeyPair 函數為設備生成公鑰。請注意,此公鑰是可見的,但私鑰永遠不會被泄露,因為它會危及實際應用程序中的安全性。
  4. 啟動設備證書生成權限。
    1. 通過使用 ReadMemory 命令讀取設備的 rom 選項頁 (116) 來收集設備的標識數據。本頁包含識別特定DS28S60器件所需的ROM_ID和MAN_ID。
    2. 將設備的公鑰、ROM_ID和MAN_ID連接成證書消息以發送給頒發機構。頒發機構生成使用頒發機構私鑰簽名的證書。
  5. 將設備證書、頒發機構私鑰和功能數據存儲在設備中。
    1. 將設備的證書寫入其內存。對于此應用程序,選擇第 0 頁和第 1 頁作為內存位置。
    2. 將頒發機構的公鑰寫入設備的內存。此應用程序選擇第 100 頁和第 101 頁。
    3. 將特征數據寫入設備的內存。為此選擇第 4 頁。注:有關哪個存儲器頁存儲哪些信息的更多信息,請參考DS28S60用戶指南。
  6. 為存儲的信息設置適當的內存保護。
    1. 為防止篡改新存儲的信息,請在包含設備證書和特征數據的頁面上設置寫保護。注意:對于 Jupyter 筆記本,請省略此步驟。

使用 ECDHE 和 AES-GCM 創建加密通道

要建立加密通道,主機和設備必須首先計算共享密鑰。為此,主機和設備會生成 ECDSA 密鑰對,但這些密鑰是臨時的。臨時密鑰是臨時密鑰。主機和設備啟動橢圓曲線 Diffie-Hellman (ECDH) 密鑰交換,以交換這些臨時密鑰并安全地生成共享密鑰。然后,此密鑰用于通過 AES-GCM 加密和解密數據。圖 3 描述了這種密鑰交換交互。

注: 為每個新的通信會話生成新的臨時密鑰對。

圖3.主機和設備交換臨時密鑰以計算共享密鑰。

圖3.主機和設備交換臨時密鑰以計算共享密鑰。

以下步驟描述了如何執行 ECDH 密鑰交換:

  1. 定義Calculate_ECDH_Shared_Point和increment_aes_iv支持功能。
  2. 生成主機的臨時密鑰對。
    1. 使用 ecdsa 生成密鑰對。SigningKey.generate 和 .get_verifying_key 命令。
    2. 將密鑰對轉換為數組/列表。
  3. 使用 GenEcc256KeyPair 命令生成設備的臨時密鑰對。
  4. 計算主機端的 AES 密鑰(共享密鑰)和初始 AES IV。
    1. 使用 Calculate_ECDH_Shared_Point 函數,將設備的公鑰和主機的私鑰作為參數。
    2. 使用 SHA-256 哈希算法對計算的共享點進行哈希處理,以生成 AES 共享密鑰和 AES IV。
  5. 使用密鑰交換命令計算設備端的 AES 密鑰和初始 AES IV,將主機的臨時公鑰作為參數。

此時,雙方生成相同的 AES 密鑰。因此,雙方現在都可以使用高級加密標準伽羅瓦/計數器模式(AES-GCM)對他們之間發送的數據進行加密和解密。圖 4 顯示了 AES-GCM 提供的加密通信通道。

圖4.主機和設備使用 AES-GCM 算法交換加密數據。請注意,IV 必須在每次傳輸時遞增,并且必須在兩端同步。

圖4.主機和設備使用 AES-GCM 算法交換加密數據。請注意,IV 必須在每次傳輸時遞增,并且必須在兩端同步。

使用 ECDSA 的雙向身份驗證

相互身份驗證可以分為兩部分:使用證書驗證公鑰,以及使用數字簽名和通過ECDSA驗證算法驗證私鑰。ECDSA 算法涉及通過使用私鑰生成數字簽名來證明真實性的通信方。然后,對方方使用簽名、發送簽名的一方的公鑰和其他數據驗證這些數字簽名。加密安全的隨機數也用于該算法的簽名和驗證部分,以提高安全性。

使用證書頒發機構驗證公鑰

ECDSA 算法還用于使用各方的證書、權威機構的公鑰和各方的識別數據來驗證公鑰。此標識數據是主機的主機 ID 數據,以及設備的 ROM ID 和 MAN ID。圖 5 描述了在驗證各方公鑰方面交換此信息的過程。

圖5.主機和設備使用彼此的證書和 ECDSA 驗證算法驗證彼此的公鑰。

圖5.主機和設備使用彼此的證書和 ECDSA 驗證算法驗證彼此的公鑰。

以下步驟演練如何對設備(步驟 1 到 4)和主機(步驟 5 到 7)的公鑰進行身份驗證:

  1. 從設備收集證書和證書消息數據以發送到主機。
    1. 在設備端,使用 ReadMemory 命令回讀設備公鑰的 X 和 Y 組件。對 ROM 和 MAN ID 重復此操作。
    2. 使用“讀取內存”命令讀回設備證書的“r”和“s”組件。
  2. 加密請求的數據并將其傳輸到主機。
    1. 連接證書消息數據(公鑰、ROM ID 和 MAN ID),然后連接證書(部分“r”和“s”)。
    2. 使用證書消息數據和證書作為 AesBulkEncrypt 命令的參數。
  3. 解密、提取和驗證主機端的數據。確保 AES IV 計數器遞增。
  4. 在主機端驗證提取的證書消息數據和證書以驗證公鑰。
  5. 從主機收集證書和證書消息數據,對其進行加密,然后將其發送到設備。
    1. 打包主機公鑰、Host_ID和Host_Location_Code的 X 和 Y 組件。
    2. 使用 encrypt_and_digest 命令加密證書和證書消息數據。不要忘記增加AES IV計數器。
  6. 使用 AesBulkDecrypt 命令解密設備端的數據。
  7. 在設備端驗證主機提取的證書消息數據和證書,以驗證公鑰。
    1. 使用“寫內存”命令存儲主機公鑰的 X 和 Y 組件。
    2. 使用身份驗證 ECDSACertificate 命令驗證主機的證書。

使用數字簽名驗證私鑰

驗證設備的公鑰后,也要驗證設備的私鑰。為此,請首先使用設備的私鑰生成數字簽名。數字簽名包含設備特征數據、私鑰簽名以及主機發送的稱為質詢的隨機字節串。圖 6 說明了 ECDSA 簽名生成算法中使用的信息交換。

圖6.主機和設備交換挑戰,以生成從各自的私鑰派生的自己獨特的數字簽名。

圖6.主機和設備交換挑戰,以生成從各自的私鑰派生的自己獨特的數字簽名。

以下步驟介紹如何使用 ECDSA 簽名生成和 ECDSA 簽名驗證算法來完成設備(步驟 1 到 5)和主機(步驟 6 到 9)的身份驗證:

  1. 生成要發送到設備的質詢。

  2. 使用質詢和其他要素數據創建數字簽名和簽名消息。

    1. 使用 ComputeAndReadPageAuthentication 命令創建簽名。
    2. 連接 ROM ID、特征數據、主機質詢、數據頁、MAN ID 和命令代碼字節以創建簽名消息。
  3. 使用 AesBulkEncrypt 加密簽名和數據,然后將其發送到主機。

  4. 解密并驗證主機端的數據,提取簽名和簽名消息數據,并遞增 AES IV 計數器。

  5. 重建簽名消息,并使用設備公鑰驗證解密的簽名和簽名消息數據。圖 7 描述了 ECDSA 簽名驗證算法,并顯示了驗證所需的信息片段。

    1. 按以下順序構建和連接驗證所需的數據:ROM ID、功能數據、主機質詢、功能數據頁面、MAN ID、命令代碼。

    圖7.主機和設備使用 ECDSA 簽名驗證算法和所有相關數據驗證彼此的私鑰。
    圖7.主機和設備使用 ECDSA 簽名驗證算法和所有相關數據驗證彼此的私鑰。

  6. 生成質詢以使用 ReadRng 命令發送到主機。

  7. 使用質詢和主機數據(Host_ID、Host_Location_Code和主機特征數據)創建數字簽名和簽名消息。

  8. 對特征數據、簽名和簽名消息進行加密,并將其發送到設備。不要忘記更新 AES IV 計數器。

  9. 使用 AesBulkDecrypt 命令在設備端解密接收到的數據。

  10. 使用驗證 EcdsaSignature 命令驗證簽名和相關數據。

  11. 按以下順序構造和連接驗證所需的數據:主機 ID、設備質詢、主機功能數據、主機位置代碼

總結

雙向身份驗證可以通過關聯的 Jupyter 筆記本進行劃分和演示。本教程介紹了出廠設置/密鑰生成、ECDH 密鑰交換、使用 AES-GCM 加密和解密數據,以及通過安全通道進行通信以相互驗證主機和設備。除了配置和運行 Jupyter 筆記本所需的步驟外,此處還介紹了這些步驟。以下兩篇文檔提供了由DS28S60加密處理器提供的完全認證系統。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2550

    文章

    51035

    瀏覽量

    753071
  • 處理器
    +關注

    關注

    68

    文章

    19259

    瀏覽量

    229651
  • 計算機
    +關注

    關注

    19

    文章

    7488

    瀏覽量

    87849
收藏 人收藏

    評論

    相關推薦

    無線身份驗證的門禁控制系統設計方案

    1 概述  隨著人們的移動性與日俱增,對身份驗證的安全性及可靠性的新需求應運而生,推動虛擬身份驗證取代密鑰卡門禁。為了應付無間斷連接及完全分布式智能設備的爆炸式增長所帶來的挑戰,有必要制定一種
    發表于 11-05 11:11

    Vivado和SDK身份驗證錯誤

    嘗試運行SDK或Vivado的安裝程序時,出現“身份驗證錯誤:發生了未知異常。請驗證您的用戶ID和密碼,然后重試”我可以登錄該站點,另一位同事可以登錄該站點。我們可以下載安裝程序,但是當我們嘗試安裝
    發表于 01-02 14:55

    PN5180無法使用mifare classic進行身份驗證怎么解決?

    試圖將它與此處建議的示例進行比較但我找不到問題所在。問題1:是否有任何文檔說明如何使用圖表或易于理解的示例進行身份驗證,類似于其他命令?問題 2:我必須進行身份驗證才能讀取扇區嗎?我曾
    發表于 03-23 08:46

    什么是身份驗證和授權

    什么是身份驗證和授權 根據RFC2828(Internet Security Glossary,May2000),驗證是“校驗被或向某系統實體聲明的身份的過程”。此處的關鍵字
    發表于 04-03 16:03 ?5741次閱讀

    什么是詢問握手身份驗證協議

    什么是詢問握手身份驗證協議 CHAP(詢問握手身份驗證協議)是用于遠程登錄的身份驗證協議,通過三次握手周期性的校驗對端的身份,在初始鏈
    發表于 04-03 16:06 ?2674次閱讀

    什么是密碼身份驗證協議

    什么是密碼身份驗證協議 PAP是一種身份驗證協議,是一種最不安全的身份證協議,是一種當客戶端不支持其它身份認證協議時才被用來
    發表于 04-03 16:07 ?1602次閱讀

    身份驗證和生物識別身份系統應用越加廣泛

    身份驗證和生物識別身份系統應用越加廣泛
    發表于 02-27 14:37 ?1565次閱讀

    python數據科學備忘單jupyter筆記本免費下載

    本文檔的主要內容詳細介紹的是python數據科學備忘單jupyter筆記本免費下載。
    發表于 09-18 08:00 ?7次下載

    PCB身份驗證

    電子發燒友網站提供《PCB身份驗證器.zip》資料免費下載
    發表于 07-22 10:09 ?2次下載
    PCB<b class='flag-5'>身份驗證</b>器

    使用 Jupyter 筆記本的基于 DS28S60雙向身份驗證示例

    發表于 11-16 19:47 ?0次下載
    使用 <b class='flag-5'>Jupyter</b> <b class='flag-5'>筆記本</b>的基于 <b class='flag-5'>DS28S60</b> 的<b class='flag-5'>雙向</b><b class='flag-5'>身份驗證</b><b class='flag-5'>示例</b>

    使用DS28S60加密協處理器的基礎知識

    。接下來,它將介紹如何使用對稱密鑰在主機和客戶端之間交換加密數據。最后,本文介紹了DS28S60使用ECDSA進行雙向認證過程的示例。
    的頭像 發表于 01-13 15:55 ?1082次閱讀
    使用<b class='flag-5'>DS28S60</b>加密協處理器的基礎知識

    比較DS28S60、MAXQ1061和MAXQ1065功能

    本應用筆記討論了DS28S60、MAXQ1061和MAXQ1065的主要特性。它比較設備之間的功能,然后為用戶提供有關如何以及何時部署每個設備的一些相關建議。附錄提供了一些特定的設備功能和性能比較。
    的頭像 發表于 02-17 11:28 ?714次閱讀
    比較<b class='flag-5'>DS28S60</b>、MAXQ1061和MAXQ1065功能

    基于DS28S60雙向身份驗證示例

    本應用筆記詳細介紹了DS28S60Jupyter筆記本配合使用進行雙向認證的基本應用。它使用分步方法來演練設置設備和所有相關軟件,創建用于
    的頭像 發表于 02-17 11:32 ?637次閱讀

    PyTorch教程23.1之使用Jupyter筆記本

    電子發燒友網站提供《PyTorch教程23.1之使用Jupyter筆記本.pdf》資料免費下載
    發表于 06-06 09:23 ?0次下載
    PyTorch教程23.1之使用<b class='flag-5'>Jupyter</b><b class='flag-5'>筆記本</b>

    比較DS28S60、MAXQ1061和MAXQ1065功能

    DS28S60是一款深蓋?采用 ChipDNA 的加密協處理器?.在物聯網 (IoT) 安全方面,它為用戶提供了最實惠、最簡單的解決方案。它部署了簡單的個性化、強大的相互身份驗證、密鑰交換和端到端數據加密。
    的頭像 發表于 06-16 11:50 ?889次閱讀
    比較<b class='flag-5'>DS28S60</b>、MAXQ1061和MAXQ1065功能
    主站蜘蛛池模板: 饱满奶大30p| 一区两区三不卡| 亚洲国产在线精品国偷产拍| 亚洲欧美日韩一级特黄在线| 在线综合 亚洲 欧美| 99视频精品全部 国产| 国产精品乱人无码伦AV在线A| 国产偷抇久久精品A片蜜臀A| 久久99精品AV99果冻| 欧美成人一区二免费视频| 婷婷久久无码欧美人妻| 一区二区三区四区国产| 成人在线高清不卡免费视频| 精品一区二区三区在线成人| 三级黄色在线免费观看| 婬香婬色天天视频| 国产精品大陆在线视频| 欧美精品华人在线| 一二三四在线播放免费观看中文版视频 | brazzers欧美孕交| 护士日本ⅹxxx丰满hd| 日本无码人妻丰满熟妇5G影院| 一级大乳奶| 国产精品亚洲精品久久品| 奇米色偷偷| 18黄女脱内衣| 精品无人区麻豆乱码无限制| 少妇无码吹潮久久精品AV| av影音先锋天堂网| 麻豆XXXX乱女少妇精品-百度| 性VIDEOSTV另类极品| 成人 迅雷下载| 青草视频久久| 99久久亚洲综合精品| 伦理片在线3348| 伊人久99久女女视频精品免| 国产美女久久久久久久久久久| 任你躁国语自产二区在线播放| 99精品AV无码一区二区| 妈妈的朋友5在线观看免费完整版中文| 亚洲二区电影|