《密碼技術與物聯網安全:mbedtls開發實戰》
物聯網核心技術叢書
密碼技術與物聯網安全:
mbedtls開發實戰
徐 凱 崔紅鵬 編著
Foreword·推薦序一
物聯網已經成為在云計算、大數據、AI之后的又一個重要的基礎技術,吸引了眾多的產業鏈上下游參與者,在全球范圍內呈現迅猛發展的態勢。物聯網在智能生活、智慧城市、智能制造、物流管理、健康醫療等眾多的領域已經有多樣化的應用場景和業務落地。物聯網應用的普及和物聯網技術的成熟將推動世界進入萬物互聯的新時代,數以百億計的設備會接入網絡,擁有百萬億連接的數字化物聯世界即將到來。
物聯網IoT的核心理念是把物理世界中的物體聯接上網絡和云端,通過對物的模型化抽象來提升對物的認知,通過對物的數據化分析來提升物的智能,從而實現物理世界的最終數字化。作為堅信這一理念的踐行者,阿里云IoT以解決產業數字化轉型升級中的痛點為出發點,通過全面搭建IoT基礎設施,打造使能平臺,完善生態系統,推動物聯網向智能網發展。阿里云IoT已經構建了云管邊端一體化的安全的物聯網體系,在云側推出了物聯網平臺和開發者平臺,在管側發布了國內首個LoRa城域物聯網并試運營,在邊緣側發布了邊緣計算產品,在端側提供了適用于不同設備的物聯網開源操作系統,建設了物聯網標準化聯盟,為眾多的物聯網芯片商、開發者、應用方案商等各種參與方搭建了開放的物聯網市場,通過整合場景化的生態應用,為智能生活、智能工業、智慧城市等各行業提供數字化物聯的基礎設施,助力于物理世界的數字化。
數字化的物聯網世界,離不開物聯網安全技術的應用。隨著物聯網終端設備的規模不斷增大,隨之而來的威脅也越來越大,各種物聯網安全事件層出不窮。針對物聯網設備的攻擊,如漏洞利用、數據泄露、惡意軟件、大規模DDoS攻擊等造成了大量的資產損失或品牌影響。因此,保障物聯網的安全顯得至關重要并且刻不容緩。從物聯網安全的角度,需要結合多種多樣、多種維度的安全技術,如設備的身份安全,設備跟云端的安全接入,各種數據鏈路的安全通信協議,云端安全防護,設備運營監控等。通過對這些安全技術的廣泛應用,構建從設備、邊緣、網絡到云服務間的安全全鏈路防護體系,為數字化的物聯世界提供可靠的安全基礎保障。
阿里云智能IoT事業部 總經理 庫偉
2019年2月
Foreword·推薦序二
伴隨著傳感器、遙感、移動互聯、大數據、云計算等技術的不斷發展,物聯網在各行業得到了廣泛應用。2016年,國家“十三五”規劃中指出:要積極推進云計算和物聯網發展,推進物聯網感知設施規劃布局,發展物聯網開環應用。這顯示了國家非常重視物聯網基礎設施的建設和推廣。
在物聯網應用高速發展的同時,物聯網安全將面臨嚴峻的挑戰。大量物聯網設備將直接暴露在網絡上,如果有部分設備存在安全隱患,那么攻擊者可以通過豐富的攻擊手段獲取用戶隱私,影響用戶的財產安全甚至人身安全。在一些大規模的物聯網系統中,存在安全漏洞的主機可能會被惡意代碼感染成為僵尸主機,變成僵尸網絡的一部分,對互聯網上的業務造成嚴重影響。
物聯網安全問題主要包括設備安全、網絡安全和應用安全,解決物聯網安全問題需要分步走,其中設備安全更多的是解決物理攻擊造成的影響。設備面臨的物理攻擊手段主要包括:版圖攻擊、計時攻擊、能量分析攻擊、電磁攻擊和故障攻擊。清華大學硬件安全和密碼設備實驗室在可重構計算和芯片安全領域深耕多年,形成了完善的芯片安全解決方案,在物理攻擊防護方面有豐富的知識積累,在此基礎上實現了多種主流國密和商密密碼學算法,并提供了完善的密鑰管理機制和可信計算服務,可以適用于各類安全應用系統進行高速、安全的密碼運算。
清華大學硬件安全和密碼設備實驗室主任?? 劉雷波教授
Preface·前言
為何寫作本書
1)相對于資源受限制的物聯網終端而言,HTTPS協議非常復雜,運行時也需要消耗大量資源。我們也開始思考是不是存在更合適的物聯網終端的安全連接方案。
2)HTTPS涉及TLS協議和密碼學基礎知識,這些內容都需要花時間和精力系統學習。
3)該實驗通過PolarSSL開源組件實現SSL/TLS,而SSL/TLS正是HTTPS的安全傳輸層。如果要熟練掌握嵌入式HTTPS,首先需要掌握PolarSSL。2015年,Polar更名為mbedtls,開啟了物聯網安全應用的新篇章。
當時我們還有另外一個共識:要想讓物聯網設備安全地聯網,應該分為兩步—第一,讓物聯網設備方便地連接網絡;第二,讓物聯網設備安全地連接網絡。
為了完成“兩步走”的第一步,我在2016年到2017年間編寫了國內第一本關于物聯網專用協議CoAP的圖書—《IoT開發實戰:CoAP卷》,這本書解決了物聯網設備方便連接網絡的問題。CoAP好比互聯網應用中的HTTP,而互聯網應用不僅有HTTP,還有HTTPS,我想物聯網應用中也應該有CoAPs。2017年到2018年間,三大運營商—中國電信、中國移動和中國聯通在國內大力推進NBIoT網絡建設,市面上出現了各種各樣的NBIoT模組。2018年3月底,阿里巴巴宣布物聯網成為繼電商、金融、物流和云計算之后的第5條“主賽道”,從此,物聯網進入了“云連物”時代。NBIoT和云計算的脫穎而出極大地推動了物聯網的發展,當百萬億連接不再是遙不可及的夢想時,物聯網應用不再滿足于“方便”,同時對“安全”也提出了更高的要求。
目標讀者
本書適合物聯網工程師、嵌入式工程師和Web開發工程師閱讀。
對于物聯網工程師而言,通過本書可以系統地學習物聯網安全連接的基礎知識。本書借助深入淺出的示例講解密碼學算法,這些算法是構成物聯網連接安全的利器。
對于嵌入式工程師而言,本書詳細講解了mbedtls不同模塊的使用方法,這些使用方法可以幫助你構建物聯網安全應用。本書還分析各種安全算法的性能,這些分析結果將幫助你在實際項目中做出正確的選擇。
對于Web開發工程師而言,通過本書可以從設備角度了解物聯網連接安全的限制條件,在這些限制條件下,物聯網設備不能直接使用互聯網應用中常見的安全套件。
總而言之,本書試圖消除物聯網工程師、嵌入式工程師與Web開發工程師之間的知識鴻溝,在物聯網連接安全方面達成共識。
如何閱讀本書
本書主要內容分為三部分。
第一部分:第1~3章。第一部分是全書的基礎。第1章主要講解密碼學安全常識、mbedtls和OpenSSL相關基礎知識。本書雖然以mbedtls為核心,但在多個章節中使用了OpenSSL工具,所以在第1章的后面部分將詳細講解OpenSSL的安裝和使用方法。第2章介紹mbedtls的安裝和使用方法,由于本書的大多數硬件示例均基于Zephyr構建,所以第2章還介紹了Zephyr的構建過程和使用方法。第3章講解數論基礎知識,包括素數、模運算、群、域和有限域等概念,這些數論知識是密碼學算法的基礎。
第二部分:第4~12章。第二部分主要講解密碼學6種主要密碼技術—單向散列函數、對稱加密算法、消息認證碼、隨機數、公鑰密碼和數字簽名。第二部分還介紹了多種密碼技術,分別是SHA256、AES、HMAC、GCM、CCM、CTR_DRBG、RSA、DH、ECDH、DSA、ECDSA和X.509,每章均包括原理說明和mbedtls示例代碼,試圖通過理論結合實踐的方式向讀者展現mbedtls的全貌,其中橢圓曲線相關的ECDH和ECDSA涉及較多數學知識,是本書較難理解的內容。
第三部分:第13~16章。第三部分主要包括mbedtls移植與性能分析、TLS/DTLS/CoAPs等內容。mbedtls性能分析部分將比較各種安全算法,這些分析結果可以幫助讀者在實際項目中做出正確選擇。第三部分還介紹了TLS和DTLS協議,雖然TLS協議異常復雜且仍在不斷發展,但它是物聯網連接安全的核心協議。第14章詳細介紹TLS協議,包括TLS握手協議、密鑰交換、密鑰計算和對稱加密等,這些是本書最復雜的內容。為了講解CoAPs,第15章還介紹了DTLS協議,重點介紹了DTLS協議與TLS協議之間的聯系與區別。最后一章介紹了CoAPs,CoAPs可被理解為CoAP協議與DTLS協議的結合,它將成為物聯網連接安全的主流協議。
相關資料
本書提供多個基礎示例,這些示例代碼可以幫助讀者更好地了解mbedtls。
示例代碼倉庫網址為:https://github.com/iotwuxi/iot_security。
勘誤與支持
徐凱的郵箱:xukai19871105@126.com
崔紅鵬的郵箱:xianrenqiu90@126.com
徐凱的致謝
感謝機械工業出版社華章公司的編輯,沒有他們的策劃與鼓勵就不會有這本書。
感謝阿里巴巴阿里云IoT無錫團隊的汪亮(畫安)和羅日健(悠仔),感謝他們營造了一個具有創新精神的工作環境,這種氛圍激勵我不斷前進;感謝一起并肩戰斗的小伙伴們,他們是黃浩(先道)、趙峰(新安)、林達(靖明)、龍超(瞻龍)、吳葉俊(安悟)、龐海亮(胖亮)、謝娟(無魚)、劉愿(畢險)、李迪晞(平休)、彭微(師塵)、三帖(張云);感謝阿里云IoT的兩位師兄李錕(懷明)和楊驍 (羽升);感謝崔楊(懿儂),是他讓我明白“傳播知識比學習知識更有價值”。
感謝我的導師江南大學君遠學院院長張秋菊教授,感謝您幫助我開啟物聯網世界的大門。
感謝我的妻子左文娟一如既往地支持我寫作,感謝家人的默默付出與包容。
崔紅鵬的致謝
感謝微納電子實驗室的朱敏、吳有余、張繼璠和龔雪,是他們為實驗室創造了良好的工作環境和學習氛圍。感謝實驗室與我一起工作的同事,他們是:楊錦江、王宇峰、孫進軍、徐翔、張扣、姚俊、張沛、李植、章俊、李康、胡永鑫、趙新成、趙啟義、徐健、郭唯、賈德存、蔣廣隸。
感謝媽媽和老婆的默默付出,是她們讓我有充足的時間和精力完成寫作。在此祝家人健康快樂。
Contents·目錄
推薦序一
推薦序二
前言
第1章 物聯網安全概述? 1
1.1 本章主要內容? 1
1.2 物聯網安全基礎? 1
1.2.1 物聯網安全與互聯網安全? 1
1.2.2 物聯網安全與密碼學? 2
1.3 密碼學安全常識? 3
1.3.1 柯克霍夫原則? 3
1.3.2 Alice和Bob? 4
1.3.3 Eve和Mallory? 4
1.4 mbedtls簡介? 5
1.4.1 密碼學工具箱? 5
1.4.2 TLS/DTLS協議? 6
1.4.3 X.509證書? 6
1.5 OpenSSL簡介? 7
1.5.1 源代碼安裝? 7
1.5.2 命令行工具簡介? 8
1.5.3 摘要命令 dgst? 8
1.5.4 對稱加密命令 enc? 8
1.5.5 SSL命令 s_server?? 9
1.6 本章小結? 11
第2章 mbedtls入門? 12
2.1 本章主要內容? 12
2.2 mbedtls 體系結構? 12
2.3 Linux mbedtls 安裝? 13
2.3.1 安裝 CMake? 13
2.3.2 使用 CMake 安裝 mbedtls? 14
2.4 Linux mbedtls 示例? 17
2.4.1 Base64示例? 17
2.4.2 遍歷 mbedtls 安全套件? 20
2.5 Zephyr OS 簡介? 24
2.6 Zephyr 開發環境搭建? 25
2.7 Zephyr 硬件平臺選擇? 26
2.7.1 資源介紹? 27
2.7.2 Ubuntu中安裝STLink工具? 28
2.8 Zephyr 應用示例開發? 28
2.8.1 編寫 CMakeLists.txt? 29
2.8.2 編寫 prj.conf? 29
2.8.3 編寫 main.c? 29
2.8.4 編譯與運行? 30
2.9 Zephyr mbedtls 示例?? 31
2.9.1 Base64示例? 31
2.9.2 大數運算示例? 35
2.10 本章小結? 39
第3章 數論基礎知識? 41
3.1 本章主要內容? 41
3.2 素數? 42
3.3 模運算? 43
3.3.1 模數? 43
3.3.2 同余 ?43
3.3.3 模算術運算? 44
3.3.4 模逆運算? 44
3.3.5 模重復平方? 46
3.4 群? 47
3.4.1 群的基本概念? 47
3.4.2 循環群? 48
3.4.3 子群? 49
3.5 域? 50
3.5.1 域的基本概念? 50
3.5.2 有限域和素域? 50
3.5.3 擴展域GF(2m)? 52
3.5.4 GF(2m)加法和減法? 53
3.5.5 GF(2m)乘法? 53
3.5.6 GF(2m)逆操作? 55
3.6 歐拉函數? 56
3.7 歐拉定理? 56
3.8 費馬小定理? 57
3.9 離散對數? 57
3.9.1 模算術–指數? 57
3.9.2 模算術–對數? 58
3.9.3 離散對數問題? 59
3.10 本章小結? 59
第4章 單向散列函數? 60
4.1 本章主要內容? 60
4.2 單向散列函數原理? 60
4.2.1 單向散列函數性質? 61
4.2.2 單向散列函數應用? 62
4.3 單向散列函數的實現方法? 63
4.3.1 MD算法家族? 63
4.3.2 SHA算法家族? 63
4.4 SHA256 詳細描述? 64
4.4.1 預處理? 64
4.4.2 哈希計算? 66
4.4.3 具體示例? 68
4.5 mbedtls 單向散列應用工具? 69
4.5.1 hello? 69
4.5.2 generic_sum? 69
4.6 mbedtls SHA256示例? 70
4.6.1 示例描述? 70
4.6.2 示例代碼? 70
4.6.3 代碼說明? 72
4.6.4 編譯與運行? 74
4.7 本章小結? 74
第5章 對稱加密算法? 76
5.1 本章主要內容? 76
5.2 對稱加密算法原理? 76
5.3 分組密碼模式? 77
5.3.1 ECB(電子密碼本)模式? 77
5.3.2 CBC(密碼分組鏈接)模式? 78
5.3.3 CTR(計數器)模式? 79
5.4 PKCS7填充方案? 81
5.5 AES算法概述? 82
5.6 AES 算法詳細說明? 84
5.6.1 字節替換? 84
5.6.2 行移位? 86
5.6.3 列混合? 87
5.6.4 輪密鑰加法? 87
5.6.5 輪密鑰生成? 88
5.7 AES算法動手實踐? 90
5.8 mbedtls 對稱加密應用工具? 91
5.8.1 aescrypto2? 91
5.8.2 crypt_and_hash? 92
5.9 mbedtls AES示例? 93
5.9.1 示例描述? 93
5.9.2 示例代碼? 94
5.9.3 代碼說明? 96
5.9.4 編譯與運行? 97
5.10 本章小結? 99
第6章 消息認證碼? 100
6.1 本章主要內容? 100
6.2 消息認證碼原理? 100
6.3 消息認證碼實現方法? 102
6.3.1 單向散列算法實現? 102
6.3.2 分組密碼實現? 102
6.3.3 認證加密算法實現? 102
6.4 HMAC算法? 102
6.5 CBC-MAC和CMAC? 104
6.5.1 CBC-MAC? 104
6.5.2 CMAC? 104
6.6 認證加密CCM? 106
6.6.1 輸入數據格式化? 106
6.6.2 認證和加密? 108
6.7 認證加密GCM? 109
6.7.1 GHASH? 110
6.7.2 GCTR? 110
6.7.3 認證和加密? 111
6.8 mbedtls HMAC示例? 112
6.8.1 示例代碼? 113
6.8.2 代碼說明? 114
6.8.3 編譯與運行? 116
6.9 mbedtls GCM 示例? 117
6.9.1 示例代碼? 117
6.9.2 代碼說明? 119
6.9.3 編譯與運行? 120
6.10 本章小結? 121
第7章 偽隨機數生成器? 122
7.1 本章主要內容? 122
7.2 隨機數概述? 122
7.3 隨機數生成器? 123
7.3.1 真隨機數生成器? 123
7.3.2 偽隨機數生成器? 124
7.4 CTR_DRBG算法? 125
7.4.1 參數情況? 125
7.4.2 生成過程? 125
7.5 mbedtls 隨機數應用工具? 126
7.5.1 gen_entropy? 126
7.5.2 gen_random_ctr_drbg? 127
7.5.3 gen_random_havege? 127
7.6 mbedtls CTR_DRBG示例? 128
7.6.1 示例代碼? 128
7.6.2 代碼說明? 130
7.6.3 編譯與執行? 131
7.7 mbedtls 大素數生成示例? 132
7.7.1 示例代碼? 133
7.7.2 代碼說明? 135
7.7.3 編譯與執行? 135
7.8 mbedtls 自定義熵源接口? 136
7.9 本章小結? 137
第8章 RSA算法? 138
8.1 本章主要內容? 138
8.2 RSA算法原理? 138
8.3 RSA 算法詳細說明? 140
8.4 RSA加速技術? 141
8.4.1 中國剩余數定理? 142
8.4.2 動手實踐? 142
8.4.3 性能對比? 143
8.5 RSA 填充方法? 144
8.5.1 PKCS1-V1_5? 144
8.5.2 OAEP? 145
8.6 mbedtls RSA應用工具? 146
8.6.1 rsa_genkey? 146
8.6.2 rsa_encrypt? 147
8.6.3 rsa_decrypt? 148
8.7 mbedtls RSA加解密示例? 148
8.7.1 示例代碼? 149
8.7.2 代碼說明? 151
8.7.3 編譯與執行? 153
8.8 本章小結? 155
第9章 DH密鑰協商? 156
9.1 本章主要內容? 156
9.2 DH密鑰協商數學基礎? 156
9.3 DH密鑰協商詳細說明? 157
9.3.1 DH共享參數? 157
9.3.2 DH密鑰協商? 158
9.3.3 DH具體實踐? 158
9.3.4 DH密鑰協商安全性分析? 159
9.4 常用共享參數? 161
9.5 mbedtls DH應用工具? 162
9.5.1 dh_genprime? 163
9.5.2 dh_server? 164
9.5.3 dh_client? 165
9.6 mbedtls DH示例? 165
9.6.1 示例代碼? 166
9.6.2 代碼說明? 168
9.6.3 編譯與執行? 170
9.7 本章小結? 172
第10章 ECDH密鑰協商? 173
10.1 本章主要內容? 173
10.2 橢圓曲線定義? 173
10.2.1 實數域上的橢圓曲線? 174
10.2.2 有限域上的橢圓曲線? 175
10.3 橢圓曲線上群操作? 176
10.3.1 群操作幾何描述? 176
10.3.2 群操作代數描述? 177
10.3.3 群操作動手實踐? 178
10.4 橢圓曲線離散對數問題? 180
10.5 常用有限域上的橢圓曲線? 181
10.6 ECDH密鑰協商? 183
10.6.1 ECDH共享參數? 184
10.6.2 密鑰協商過程? 184
10.6.3 動手實踐? 184
10.7 mbedtls橢圓曲線模塊? 185
10.8 mbedtls ECDH示例? 187
10.8.1 示例代碼? 188
10.8.2 代碼說明? 190
10.8.3 編譯與執行? 192
10.9 本章小結? 193
第11章 數字簽名RSA、DSA和ECDSA? 194
11.1 本章主要內容? 194
11.2 數字簽名原理? 194
11.3 RSA 數字簽名? 196
11.3.1 RSA數字簽名詳細說明? 196
11.3.2 RSA數字簽名動手實踐? 197
11.3.3 RSA簽名填充方法? 197
11.4 DSA數字簽名? 199
11.4.1 DSA數字簽名詳細說明? 199
11.4.2 DSA簽名動手實踐? 200
11.5 ECDSA數字簽名? 201
11.5.1 ECDSA數字簽名詳細說明? 201
11.5.2 ECDSA動手實踐? 203
11.6 mbedtls 數字簽名應用工具? 204
11.6.1 rsa_genkey? 204
11.6.2 rsa_sign? 204
11.6.3 rsa_verify? 205
11.7 mbedtls RSA簽名示例? 205
11.7.1 示例代碼? 206
11.7.2 代碼說明? 208
11.7.3 編譯與執行? 209
11.8 mbedtls ECDSA示例? 211
11.8.1 示例代碼? 211
11.8.2 代碼說明? 214
11.8.3 編譯與執行? 215
11.9 本章小結? 216
第12章 數字證書X.509? 217
12.1 本章主要內容? 217
12.2 數字證書原理? 217
12.3 X.509證書標準? 219
12.3.1 證書結構? 219
12.3.2 證書名稱? 219
12.3.3 證書實例? 220
12.4 mbedtls X.509應用工具? 224
12.4.1 cert_req? 225
12.4.2 req_app? 226
12.4.3 cert_write? 227
12.4.4 cert_app? 229
12.5 mbedtls X.509示例? 231
12.5.1 示例代碼? 232
12.5.2 代碼說明? 234
12.5.3 編譯與執行? 236
12.6 本章小結? 237
第13章 mbedtls 移植與性能分析? 238
13.1 本章主要內容? 238
13.2 mbedtls移植? 238
13.2.1 時間相關? 239
13.2.2 網絡相關? 240
13.2.3 內存分配相關? 241
13.3 mbedtls算法性能說明? 243
13.3.1 單向散列函數? 243
13.3.2 AES算法? 244
13.3.3 AES-GCM和AES-CCM? 245
13.3.4 偽隨機數生成器? 246
13.3.5 RSA? 247
13.3.6 DHE和ECDHE? 248
13.3.7 ECDSA? 248
13.3.8 ECC內存優化? 250
13.4 本章小結? 253
第14章 TLS? 254
14.1 本章主要內容? 254
14.2 TLS原理? 254
14.2.1 TLS設計目標? 256
14.2.2 TLS框架說明? 256
14.3 TLS密碼套件? 257
14.4 TLS記錄層協議? 258
14.5 密碼規格變更協議? 260
14.6 警報協議? 260
14.7 握手協議? 261
14.7.1 握手協議概述? 261
14.7.2 完整握手過程? 263
14.7.3 會話恢復? 270
14.8 TLS密鑰交換? 271
14.8.1 密鑰交換算法對比? 271
14.8.2 ECDHE密鑰交換? 272
14.8.3 ECDH與ECDHE的區別? 275
14.9 TLS密鑰計算? 276
14.9.1 偽隨機數生成函數? 276
14.9.2 主密鑰計算? 278
14.9.3 KeyBlock計算? 278
14.9.4 密鑰計算示例? 279
14.10 對稱加密? 281
14.10.1 分組加密? 281
14.10.2 認證加密? 284
14.10.3 對稱加密示例? 285
14.10.4 對稱加密結果長度對比? 287
14.11 mbedtls TLS應用工具? 287
14.11.1 基礎示例說明? 289
14.11.2 啟動 ssl_server2? 290
14.11.3 抓取網絡數據? 290
14.11.4 啟動 ssl_client2? 291
14.11.5 分析網絡數據? 291
14.12 構建TLS服務器? 293
14.12.1 生成證書? 293
14.12.2 編寫HTML頁面? 295
14.12.3 啟動s_server?? 295
14.12.4 驗證服務器? 295
14.13 構建TLS客戶端? 296
14.13.1 配置文件? 297
14.13.2 示例代碼? 298
14.13.3 代碼說明? 301
14.13.4 編譯與執行? 304
14.14 本章小結? 306
第15章 DTLS? 307
15.1 本章主要內容? 307
15.2 DTLS概述? 307
15.3 DTLS與TLS區別? 308
15.3.1 記錄層協議變化? 308
15.3.2 握手協議變化? 309
15.4 PSK密鑰交換? 313
15.4.1 PSK Identity? 313
15.4.2 密鑰交換詳細過程? 314
15.4.3 PSK與X.509證書傳輸開銷比較? 317
15.5 DTLS對稱加密變化? 317
15.6 mbedtls DTLS應用工具? 318
15.6.1 基礎示例說明? 319
15.6.2 啟動 ssl_server2? 319
15.6.3 抓取網絡數據? 320
15.6.4 啟動 ssl_client2? 320
15.6.5 分析網絡數據? 321
15.7 構建DTLS服務器? 322
15.8 構建DTLS客戶端? 322
15.8.1 配置文件? 323
15.8.2 示例代碼? 324
15.8.3 代碼說明? 327
15.8.4 編譯與執行? 329
15.9 本章小結? 331
第16章 CoAPs? 332
16.1 本章主要內容? 332
16.2 CoAPs原理? 332
16.3 CoAPs安全說明? 333
16.4 構建CoAPs服務器? 333
16.4.1 服務器代碼? 334
16.4.2 代碼說明? 335
16.4.3 pom.xml文件? 336
16.4.4 構建與執行? 337
16.5 構建CoAPs客戶端? 338
16.5.1 示例代碼? 338
16.5.2 代碼說明? 339
16.5.3 編譯與執行? 340
16.6 本章小結? 341
參考文獻? 342
數據加密服務 IoT 軟件開發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。