一、概述
在 SDK 數(shù)據(jù)傳輸中,加密是安全保證的第一道屏障。除此之外,需要使用連線密碼來保證用戶設(shè)備不被非法訪問。目前 SDK 中涉及到的密碼主要有以下四種形式:
- IOTC Authkey
- AV Password/AV Token
- RDT Password
- Tunnel Password
二、SDK支持的密碼類型
SDK 各模塊提供了不同的密碼驗證機制,以下是四種核心密碼類型的詳細說明及 API 支持情況:
1. IOTC Authkey
| API 類型 | APP端 API | 設(shè)備端 API | 是否支持 Authkey |
|---|---|---|---|
| 連接類 API | IOTC_Connect_ByUID_Parallel | IOTC_Device_Login | × |
| IOTC_Connect_ByUIDEx | IOTC_Device_LoginEx | √ |
2. AV Password / AV Token
| API 類型 | APP端 API | 設(shè)備端 API | 是否支持 av password | 是否支持 av token |
|---|---|---|---|---|
| 音視頻連接類 API | avClientStart / avClientStart2 | avServStart / avServStart2 / avServStart3 | √ | × |
| avClientStartEx | avServStartEx | √ | √ |
3. RDT Password
| API 類型 | APP端 API | 設(shè)備端 API | 是否支持 rdt password |
|---|---|---|---|
| RDT 通道創(chuàng)建類 API | RDT_Create | RDT_Create | × |
| RDT_Client_Create | RDT_Server_Create | √ |
4. Tunnel Password
目前 P2PTunnelAPI 連線相關(guān)接口(如隧道創(chuàng)建、數(shù)據(jù)傳輸)均支持通過密碼驗證,無需區(qū)分 APP 端和設(shè)備端,統(tǒng)一通過接口參數(shù)傳入密碼即可完成校驗。
三、推薦的 Auth 設(shè)計方案
我們強烈建議開啟 Authkey(限英文和數(shù)字,不能使用特殊字符),并搭配其他模塊的 Password 使用。但多個 auth 的 Password 對用戶可能不太友好,所以一般會有以下幾種使用方式:
1. 方案一:統(tǒng)一的 Authkey + 非固定的 Password
- 設(shè)計思路:所有設(shè)備使用統(tǒng)一的 Authkey(用于基礎(chǔ)身份校驗),Password 為動態(tài)生成(如設(shè)備序列號、隨機字符串),每次連線時動態(tài)獲取或驗證;
- 優(yōu)勢:安全性與易用性的平衡;
2. 方案二:非統(tǒng)一的 Authkey + 固定的 Password
- 設(shè)計思路:每個設(shè)備分配唯一的 Authkey(如設(shè)備出廠時燒錄),Password 為用戶可自定義的固定值(如設(shè)備管理密碼);
- 優(yōu)勢:安全性與易用性的平衡;
3. 方案三:非統(tǒng)一的 authkey + 非固定的 Password(推薦)
- 設(shè)計思路:Authkey 與 Password 關(guān)聯(lián),將 Authkey 作為 Password 的一部分,兼顧唯一性和動態(tài)性;
- 實現(xiàn)示例:
- 假設(shè) password 為
hfjhkfjk@12345678(包含固定前綴和動態(tài)后綴),Authkey 可從 Password 中截取任意8位有效字符,例如: - Authkey =
hfjhkfjk(前綴截?。?/li> - Authkey =
12345678(后綴截?。?/li> - Authkey =
kfjkd123(中間截?。?/li>
- 假設(shè) password 為
- 優(yōu)勢:Authkey 與 Password 強關(guān)聯(lián),雙重密碼驗證更安全;
重要提示
無論采用哪種方案,需確保 Authkey 和 Password 的傳輸過程加密(依賴 SDK 內(nèi)置加密機制),避免明文傳輸導(dǎo)致泄露;同時定期更新 Password 或 Authkey,進一步提升安全性。
