在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>創建安全臨時QR令牌

創建安全臨時QR令牌

2022-12-22 | zip | 0.31 MB | 次下載 | 免費

資料介紹

描述

介紹

“我在那里”創建由 Azure Sphere 設備簽名的安全臨時 QR 令牌(JSON Web 令牌)以供以后驗證。

pYYBAGOSxb-AJZ0qAAFlX-IN9-k000.jpg
?

問題

在許多情況下,我們必須表明我們曾在某個地點和某個時間出現過。

我們不希望用戶必須事先被識別,因此身份證(磁卡、芯片卡、非接觸式卡或帶有 NFC 標簽智能手機)等解決方案不值得我們使用。也不值得使用生物特征識別的解決方案。

典型用例

  • 獎勵使用回收箱的市民。
  • 一名送貨員或送貨員,以證明她/他去了一個收集點。
  • 為那些來到某些商店的人提供忠誠度積分。
  • 記錄內部和外部員工的簽入和簽出
  • 記錄清潔工何時進入和離開清潔某個區域。

解決方案

IWT (I Was There) 生成帶有日期標記的 QR 碼,該標記獨立于人,經過簽名且是唯一的,以避免對其進行修改,以保證該標記以后未被修改。

IWT 的原型實施,用于獎勵回收公民的計劃:

?

它是如何工作的

  • 用戶接近 IWT 設備。
  • 然后,用戶按下按鈕,或檢測到門的關閉或打開事件,或者通過接近傳感器通知設備生成新的二維碼。
  • 設備離線生成一個新的二維碼,其中包含簽名的 JWT 令牌、JSON Web 令牌,包括唯一標識符和令牌發布的日期和時間。
  • 然后設備在低功耗電子紙顯示器上顯示二維碼。
?
  • 異步地,設備向 Azure 云發送事件以記錄和監控新的 QR 請求
  • 用戶可以使用任何相機捕捉圖像以供以后驗證,或者可以使用特定的應用程序來驗證令牌。
  • 在一段可配置的時間后,令牌從屏幕上消失,設備準備好生成下一個令牌。
  • 對于忠誠度計劃,IWT 設備可以從 IOT Central 平臺發出編程的獎勵消息。

或者,該設備可以生成一個聽不見的聲音信號,該信號可以用任何錄音設備錄制(實施待定)。

挑戰

在解決方案的設計過程中,我遇到了幾個影響最終解決方案的問題:

  • 無法使用 Azure Sphere Pluton 安全子系統來加密數據。此外,Azure Sphere 目前不提供用于加密的 API此外,也沒有可用于檢索設備標識符的 API 函數。
  • 官方 JSON Web Token (JWT) 庫使用 OpenSSL 或 GnuTLS,這些庫對于這個嵌入式系統來說太重了。
  • 沒有用于 Azure Sphere 設備的 waveshare 電子紙顯示庫。

克服障礙

我的第一個決定是嘗試合并一個加密處理器模塊來執行加密、簽名和存儲加密密鑰。不幸的是,我仍然沒有按時收到密碼模塊,不得不選擇軟件解決方案。

  • 對于密碼學,我決定使用 wolfCrypt 庫。幸運的是,wolfSSL 發布了一個 Visual Studio 解決方案,其中包含用于 wolfCrypt 庫的加密算法測試。
  • JWT 令牌直接使用字符串函數形成,無需使用任何臨時庫。
  • 我為waveshare 1.54英寸電子紙模塊顯示器做了一個STM32 EPD驅動的適配。

設計

硬件

硬件包括安富利 Azure Sphere MT320 入門套件開發套件和 Waveshare 1.54 英寸電子紙模塊電子墨水顯示器。

Microsoft Azure Sphere 解決方案的優勢

pYYBAGOSxcWAIQH1AACsDGqV56s532.png
使用 Azure Sphere 解決方案的優勢
?

Avnet Azure Sphere MT320 入門套件

  • Azure Sphere MT3620 入門套件支持使用 Avnet 認證的 Azure Sphere 模塊進行快速原型制作,該模塊基于 Microsoft MT3620AN 設備。
  • MT3620 是首款通過 Azure Sphere 認證的“微控制器”,是一款具有“端到端安全性”的 SoC 物聯網設備。
  • 用戶應用程序可以針對它的 500 MHz ARM Cortex-A7 內核以及兩個旨在支持實時要求的通用 200 MHz ARM Cortex-M4F I/O 子系統內核。片上外設(GPIO、UARTI2C、SPI、I2S、PWM 和 ADC)可以映射到這三個用戶可訪問內核中的任何一個。
poYBAGOSxciAFwqbAADRrLJlyxY014.png
?

微雪1.54寸電子紙模組電子墨水屏

  • 選擇電子墨水屏是因為它具有顯示二維碼的良好品質,并且在具有這些特性的項目中具有較低的功耗。
  • 它是一個電子墨水顯示模塊,1.54英寸,200 x 200分辨率,帶有嵌入式控制器,通過SPI接口通信,支持局部刷新。
  • 特點:低功耗、寬視角、無電顯示清晰。
poYBAGOSxcyATvtIAAAvI8thKWM176.png
Waveshare 1.54 電子紙模組 - 后視圖
?
pYYBAGOSxc6AFGrmAAAke-9sVhQ879.png
Waveshare 1.54 電子紙模組 - 正視圖
?

軟件設計

狀態圖

  • 空閑顯示“按A”
  • 獎勵顯示與 QR 關聯的獎勵(如果有)
  • JWT_QR問題并顯示新的 QR 令牌
  • 時鐘顯示時間時鐘
  • 設置顯示設置
  • 同步設置 與 Azure 云同步設置
  • Azure 云異步任務發送/接收/同步云數據
poYBAGOSxdKAPpbDAAA-a2wIotY551.png
內河運輸狀態圖
?

用戶界面

?

空閑屏幕

在空閑狀態期間,屏幕顯示按下 A 按鈕以獲取新 QR 的指示

poYBAGOSxf2AUqLqAAmnlMz-32A505.jpg
空閑屏幕
?

獎勵畫面

如果收到下一個 QR 的新獎品狀態,則按下按鈕 A 后,將顯示與 QR 關聯的獎品。客戶忠誠度計劃的選項。

pYYBAGOSxieAWx77AAqzfsmgR70553.jpg
獎勵畫面
?

二維碼屏幕

然后是包含簽名的 JWT 令牌的新 QR 碼。從 Azure 云中設置的時間將處于此狀態。

poYBAGOSxlqAC25vAAoiWgiMDnA802.jpg
二維碼屏幕
?

時鐘屏幕和設置

按下 B 按鈕時,會顯示帶有設備當前時間的時鐘,如果再次按下,則會顯示應用程序設置。

pYYBAGOSxn6AVbE2AAtljgsTe4k407.jpg
時鐘屏幕和設置
?

?

創建 JWT 令牌 QR

JWT 令牌 QR 剖析

pYYBAGOSxoOAd1GoAACDxNl5MDk976.png
?

QR 碼包含此字符串:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlMmRhNzc3My1hN2NkLTQ0YTAtODVkNy00M2ZlMDY1NGNiMjItN2RjNTQ4MTEtNWRjYjBjNzAiLCJpYXQiOjE1NzM1ODgwODB9.Dm8qKzv5n0EHMCcIECn08Ev_eppzPNc-hGtuICCNGK0

它是一種緊湊形式的 JSON Web 令牌。JWT 通常如下所示:xxxxx.yyyyy.zzzzz

JSON Web Token (JWT) 是一種緊湊的 URL 安全方式,用于表示要在兩方之間傳輸的聲明。JSON Web Token (JWT) 是一個開放標準 (RFC 7519)。JWT 中的聲明被編碼為 JSON 對象,用作 JSON Web 簽名 (JWS) 結構的有效負載或用作 JSON Web 加密 (JWE) 結構的明文。信息可以被驗證和信任,因為它是經過數字簽名的。JWT 可以使用秘密(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公鑰/私鑰對進行簽名。https://tools.ietf.org/html/rfc7519

它由以點(.)分隔的三部分組成,分別是:

  • 標頭:包含令牌的元數據,它至少包含簽名類型和加密算法。
  • Payload/Claim:包含我們要傳輸的信息,
  • Signature:使用header和payload計算得出,也可以驗證內容沒有被篡改。

這三部分的內容都是Base64Url編碼的。對上述token的三部分進行解碼:

poYBAGOSxoaAY579AAB2cdTAZgE878.png
?

Header :聲明編碼對象是一個 JSON Web Token,并且它是使用 HS256 算法簽名的。

{
"alg": "HS256",
"typ": "JWT"
}

Payload /Claim :我們正在使用兩個已注冊的聲明名稱。在 JWT 的上下文中,聲明可以定義為關于實體的聲明,以及關于令牌本身的附加元數據。服務器可用于正確處理 JSON Web Token 身份驗證的聲明和聲明。我們可以提供多種索賠;這些包括已注冊的聲明名稱、公共聲明名稱和私人聲明名稱。

  • iat :“頒發于”時間,以 Unix 時間表示,頒發令牌
  • jti :JWT ID 聲明為 JWT 提供了唯一標識符
{
"jti": "e2da7773-a7cd-44a0-85d7-43fe0654cb22-7dc54811-5dcb0c70",
"iat": 1573588080
}

https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-10.1

簽名:數字簽名或消息驗證代碼 (MAC)。

https://tools.ietf.org/html/rfc7515

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  [your-256-bit-secret]
)

保護 JWT 令牌

Azure sphere 不提供 API 來為來自 A7 和/或 M4 子系統的加密函數調用獲取硬件支持/加速。所以我們正在使用 wolfSSL 嵌入式 SSL 庫(以前稱為 CyaSSL)

狼SSL

wolfSSL 嵌入式 SSL 庫(以前稱為 CyaSSL)是一個用 ANSI C 編寫的輕量級 SSL/TLS 庫,適用于嵌入式、RTOS 和資源受限環境——主要是因為它的體積小、速度快和功能集。由于其免版稅定價和出色的跨平臺支持,它也常用于標準操作環境。wolfSSL 支持當前 TLS 1.3 和 DTLS 1.2 級別的行業標準,比 OpenSSL 小 20 倍,wolfSSL 由 wolfCrypt 庫提供支持。

https://github.com/wolfSSL/wolfssl/tree/master/IDE/VS-AZURE-SPHERE

鍵控哈希 HMAC

wolfCrypt 目前提供 HMAC 來滿足消息摘要的需要。結構 Hmac 位于標題“wolfssl/wolfcrypt/hmac.h”中。

HMAC 初始化是用 wc_HmacSetKey() 完成的。對于我們使用 HMAC SHA-256 的項目

標頭

{"alg":"HS256","typ":"JWT"}
BASE64     eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
BASE64URL  eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

有效載荷

{"sub":"1234567890","name":"John Doe","iat":1516239022}
BASE64  eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ==
BASE64URL  eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

驗證簽名

HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
0123456789ABCDEF0123456789ABCDEF )

結果是:

HMACSHA256(eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ,
0123456789ABCDEF0123456789ABCDEF)

最后:

HEX         A650E04A6412F8B67A06942E513556D35C9BE22FC8EA12D92970AACFB76B6EED
HEX2B64     plDgSmQS+LZ6BpQuUTVW01yb4i/I6hLZKXCqz7drbu0=
B642B64URL  plDgSmQS-LZ6BpQuUTVW01yb4i_I6hLZKXCqz7drbu0

編碼令牌

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
.plDgSmQS-LZ6BpQuUTVW01yb4i_I6hLZKXCqz7drbu0

hmac hmac;

byte        key[24];            /*fill key with keying material*/
byte        buffer[2048];   /*fill buffer with data to digest*/
byte        hmacDigest[SHA256_DIGEST_SIZE];
wc_HmacSetKey(&hmac, SHA256, key, sizeof(key));
wc_HmacUpdate(&hmac, buffer, sizeof(buffer));
wc_HmacFinal(&hmac, hmacDigest);

hmacDigest 現在包含緩沖區中散列數據的摘要。

生成二維碼

我們正在使用 Richard Moore QR Code 庫,這是一個用 C 語言生成 QR 碼的簡單庫,針對處理和內存受限系統進行了優化。

特征:

  • 基于堆棧(不需要堆;但如果需要,您可以使用堆)
  • 低內存占用(相對)
  • 編譯時剝離不必要的邏輯
  • 麻省理工學院執照;

https://github.com/ricmoo/QRCode

走向云端

實施步驟

  • 創建自定義 IoT Central 應用程序
  • 創建設備模板
  • 將 QR 請求事件添加到測量選項卡
  • 將切換控件添加到“設置”選項卡:RGB LED 控件、WWAN 和 APP LED 控件
  • 將應用程序信息添加到屬性選項卡
  • 應用版本
  • 當前 SSID
  • BSSID
  • 當前的 Wi-Fi 射頻

資源

https://www.element14.com/community/groups/azuresphere/blog/2019/05/09/avnets-azure-sphere-starter-kit-out-of-box-demo-part-3-of-3

監控 Qr 請求

每當新的每周 QR 碼異步發布到 Azure 云時,在構建應用程序時發送到 Azure IoT Central 或 Azure IoT Hub。

下圖中看到的點對應于按下 A 按鈕后或當簧片開關檢測到從打開到關閉的步驟時生成 QR 碼的事件。

pYYBAGOSxo6Abxg1AADicOdqEE8280.png
Azure IoT 門戶中的 QR 請求事件
?
pYYBAGOSxpaAOB96AADdJm0hKHM946.png
QR 請求事件的詳細列表視圖
?

我們可以看到帶有生成的 QR ID 的事件的詳細列表視圖。

編程顯示新消息

新的獎勵或信息消息可以從 IoT Central 編程或完全禁用。

poYBAGOSxpiAN1QpAADO6Ka39FY052.png
?

獲取設備信息

特性

Key               Value
userLedRed        true | false    enables/disables the red LED of the user RGB LED
userLedGreen      true | false    enables/disables the green LED of the user RGB LED
userLedBlue       true | false    enables/disables the blue LED of the user RGB LED
appLed            true | false    enables/disables the application LED
wifiLed           true | false    enables/disables the WI-FI LED

集成電子紙顯示

Waveshare 1.54inch e-Paper V2概述

1.54英寸電子紙V2是一款有源矩陣電泳顯示器(AMEPD),具有接口和參考系統設計。1.54”活動區包含200×200像素,具有1位黑白全顯示能力。集成電路包含柵極緩沖器、源極緩沖器、接口、時序控制邏輯、振蕩器、DC-DC。SRAM.LUT、VCOM 和邊框隨每個面板提供。

https://www.waveshare.com/wiki/1.54inch_e-Paper_Module

pYYBAGOSxpuABJ_nAAA-ePFZoPk686.png
電子紙 - 引腳符號說明
?

引腳圖

此表顯示了 eINK click 上的引腳分配如何對應于 mikroBUS? 插座上的引腳分配(后者顯示在中間的兩列中)。

poYBAGOSxp6AHxmMAACp70IdFoc193.png
引腳圖
?

單擊 Socket #1 引腳分配

poYBAGOSxqCAOOn3AADheb6NmZc923.png
AVNET KIT 點擊套接字#| 引出線
?

源代碼引腳定義

#define AVT_MODULE_GPIO31_SCLK1_TXD1 (GPIO_Id)31
#define AVT_MODULE_GPIO32_MOSI1_RTS1_CLK1 (GPIO_Id)32
#define AVT_MODULE_GPIO33_MISO1_RXD1_DATA1 (GPIO_Id)33
#define AVT_MODULE_GPIO34_CSA1_CTS1 (GPIO_Id)34
#define EPAPER_DC (GPIO_Id)0
#define EPAPER_BUSY (GPIO_Id)2
#define EPAPER_RESET (GPIO_Id)16
#define EPAPER_SCLK AVT_MODULE_GPIO31_SCLK1_TXD1
#define EPAPER_MOSI AVT_MODULE_GPIO32_MOSI1_RTS1_CLK1
#define EPAPER_CS AVT_MODULE_GPIO34_CSA1_CTS1

通訊協議

SPI接口

pYYBAGOSxqKAeJHWAABYTf0H_ao828.png
?

與傳統的SPI協議不同,從機到主機的數據線是隱藏的,因為設備只有顯示需求。

CS為slave片選,當CS為低電平時,芯片使能。(CS#) 是連接到 MCU 的片選輸入。該芯片啟用 MCU 通信:僅當 CS# 被拉低時。

DC為數據/命令控制引腳,DC=0時寫命令,DC=1時寫數據。(D/C#) 是連接到 MCU 的數據/命令控制引腳。當引腳被拉高時,數據將被解釋為數據。當引腳被拉低時,數據將被解釋為命令。

SCLK 是 SPI 通信時鐘。

SDIN是SPI通信中主機到從機的數據線。

(RES#)為復位信號輸入。復位為低電平有效。注 1.5-4:此引腳(BUSY)為忙狀態輸出引腳。當 Busy 為高電平時,芯片的運行不應中斷,也不應向模塊發出任何命令。當驅動 IC 工作時,驅動 IC 會將 Busy 引腳置為高電平,例如: - 輸出顯示波形;或 - 與數字溫度通信。

(BS1) 用于 3 線 SPI 或 4 線 SPI 選擇。當它為“低”時,選擇 4 線 SPI。當它為“高”時,選擇 3 線 SPI(9 位 SPI)。

SPI通信有數據傳輸時序,由CPHA和CPOL組合而成。

  • 1. CPOL 決定空閑狀態下串行同步時鐘的電平。當 CPOL = 0 時,電平為 Low。然而,CPOL對傳輸影響不大。
  • 2、CPHA決定數據是在串行同步時鐘的第一個時鐘沿還是第二個時鐘沿采集;當 CPHL = 0 時,在第一個時鐘邊沿收集數據。

SPI有4種通信模式。常用SPI0,其中CPHL=0,CPOL=0。

數據傳輸在SCLK的第一個下降沿開始,在一個時鐘周期內傳輸8位數據。這里使用SPI0,數據按位傳輸,MSB在前。

感知用戶

除了在按下按鈕時啟動新的二維碼之外,我們還可以在它檢測到用戶何時使用接近傳感器使用回收容器時激活它。

#define AVT_MODULE_GPIO42_ADC1	MT3620_GPIO42
#define AVT_SK_CM1_AN AVT_MODULE_GPIO42_ADC1
#define PROXIMITY_GPIO AVT_SK_CM1_AN

我們使用干簧管和磁鐵來檢測用戶是否打開了容器門。

我們將使用的簧片開關是常開的。我們有兩種選擇來檢測門何時完全關閉或門何時完全打開。對于這個項目,我們將使用第一個替代方案:

檢測門完全關閉:當門關閉時,磁鐵使干簧管閉合,并一直處于該狀態,直到門被打開。我們將干簧管接地,然后通過 4.7K 拉高 GPIO 引腳 42。在關閉狀態下將讀取低。當從高到低時,將發送新 QR 的事件,即當門再次完全關閉時,獎勵用戶在使用后關閉門 :D。

poYBAGOj1OmAMOmlAAAE1Zw0wSE613.png
GPIO42 檢測關門
?

?

pYYBAGOj1RKAQGYQAAnaZMtzxME591.jpg
垃圾回收箱內的干簧管和磁鐵
?

?

開發工具

驗證二維碼

從帶有 QR 掃描儀的 Android 設備:

pYYBAGOj1ReAKTLqAAG1oMBuloU012.png
從 Android 設備驗證二維碼
?

驗證 JWT

使用 JWT 調試器驗證簽名:https ://jwt.io/#debugger

poYBAGOj1RqAEQ0HAACJHTDpPxI568.png
JWT調試器
?

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 中文字幕一区二区三区在线观看| 欧美特黄一免在线观看| 高清国产在线观看| 国产精品成人四虎免费视频| 日本wwwhdsex69| 超黄视频在线观看| 日本69xxxxxxx69| 在线看av网址| 国产亚洲欧美一区| 一级特黄aa大片一又好看| 一级视频在线观看| 婷婷亚洲综合一区二区| 日本三级视频在线| 久精品视频村上里沙| www淫| 天天干天天射天天操| 国产理论视频在线观看| 视频在线观看网站免费| 日本一卡精品视频免费| 亚洲国产成+人+综合| 欧洲精品码一区二区三区免费看| 久久www免费人成高清| a天堂中文在线| 免费网站黄色| 91av免费在线观看| 伊人一区二区三区| 日韩一级精品视频在线观看| 黄色片啪啪| 天天综合欧美| 视频在线h| 中文天堂在线观看| 日本三级全黄三级a| 国产成人精品日本| 欧美黄又粗暴一进一出抽搐| 俄罗斯美女69xxxxxx| 一久久| 免费澳门一级毛片| 夜福利视频| 色涩在线| 一级特级aaaa毛片免费观看| 欧美色图网站|