精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JWT:我應該使用哪種簽名算法?

開發 前端 算法
JSON Web Token (JWT) 可以使用許多不同的算法進行簽名:RS256、PS512、ES384、HS1;當被問及他們想使用哪一個時,您就會明白為什么有些開發人員會撓頭。

[[421048]]

本文轉載自微信公眾號「DotNET技術圈」,作者Scott Brady。轉載本文請聯系DotNET技術圈公眾號。

JWT:我應該使用哪種簽名算法?

JSON Web Token (JWT) 可以使用許多不同的算法進行簽名:RS256、PS512、ES384、HS1;當被問及他們想使用哪一個時,您就會明白為什么有些開發人員會撓頭。

根據我的經驗,許多主流身份提供商歷來只提供 RS256 或至少默認使用它。然而,由于開放銀行等舉措,這些身份提供商現在正在擴大他們的支持以涵蓋更多簽名算法,這意味著您需要開始了解要使用哪些算法。

我不是密碼學家,但通過與 OpenID Connect 和 FIDO2 的合作,我獲得了從業者對各種簽名算法的理解以及密碼學社區對每種算法的總體感受。在本文中,我將為您提供一些知識,以便您了解每個“alg”值的含義并選擇可用的最佳簽名算法。

TL;DR: EdDSA > ECDSA 或 RSASSA-PSS > RSASSA-PKCS1-v1_5 并且知道會發生什么。

算法 (alg) 值

在我們查看每個簽名算法系列之前,讓我們首先澄清我們所說的“alg”值(例如 RS256)的含義。這些是 JSON Web 算法 (JWA),它們是 JavaScript 對象簽名和加密 (JOSE) 系列的一部分。您將在 JWT 標頭中看到“alg”值,告訴您 JWT 是如何簽名的,在 JSON Web Keys (JWK) 中,告訴您密鑰用于什么算法。

作為一般經驗法則,“alg”值可以分解為:

RS

256

簽名算法

散列算法

  • 簽名算法族:在這種情況下,RS 表示 RSASSA-PKCS1-v1_5。
  • 簽名算法使用的散列算法。在這種情況下,256 表示 SHA-256。

大多數簽名算法都有 SHA-256、SHA-384 和 SHA-512 的變體。在某些情況下,您甚至可以使用“RS1”之類的東西,它使用 SHA-1 ?? 并且是 FIDO2 一致性所必需的。

這些算法通常在RFC 7518 中[1]定義,但您可以在JOSE IANA 注冊表中[2]找到受支持算法的完整列表。

我應該使用哪種散列算法?

SHA-256、SHA-384 和 SHA-512 都是相同散列算法系列的變體:SHA-2。

根據經驗,算法中的數字是指它將生成的散列的大小。例如,SHA-256 將產生一個 256 位的哈希值,而 SHA-512 將產生一個 512 位的哈希值。

每個給您的安全級別是其輸出大小的 50%,因此 SHA-256 將為您提供 128 位的安全性,而 SHA-512 將為您提供 256 位的安全性。這意味著攻擊者在開始尋找沖突之前必須生成 2^128 個哈希值,這要歸功于生日界限[3]。這就是我們使用最少 128 位安全性的原因。

很快您就不會需要比 SHA-256 更好的東西了。只是不要使用 SHA-1。

驗證:了解您的算法

每個應用程序驗證JWT簽名應該事先知道算法的期望和準確使用哪個鍵。您可以通過將每個公鑰分配給一個算法來實現(例如,此密鑰用于 RS384,此密鑰用于 ES256)。當單個算法有多個密鑰時,您可以使用kidJWT 標頭中的密鑰 ID ( ) 來了解要使用哪個。

基本上,您要確保JWT 中的kid和alg值符合您的期望。如果他們不匹配,那么有人就不好了。

  1.     "typ""JWT"
  2.     "kid""123", // is this key... 
  3.     "alg""RS256" // ...allowed to be used for this algorithm? 

OpenID Connect 等協議使用發現文檔和受 TLS 保護的端點上可用的 JSON Web 密鑰集 (JWKS) 來促進這一點。

現在,你不應該只相信 JWT 標頭中的“alg”值,也不應該接受帶有“none”算法的 JWT 或在其標頭中嵌入公鑰的 JWT。

RSASSA-PKCS1-v1_5 (例如 RS256)

RS256 = RSASSA-PKCS1-v1_5 使用 SHA-256

雖然 RS AES -PKCS1-v1_5 對于加密不再安全,但 RSA SSA -PKCS1-v1_5 仍然適用于數字簽名。正如我之前提到的,根據我的經驗,RS256 歷來是大多數 JWT 實現的默認值,許多 SaaS 身份提供商只提供這種簽名算法。很難找到一個系統不支持用 RS256 簽名的 JWT。

使用 RSASSA-PKCS1-v1_5 簽名的 JWT 具有確定性簽名,這意味著相同的 JWT 標頭和有效負載將始終生成相同的簽名。

RSASSA-PKCS1-v1_5 已經存在很長時間了,但是現在,您通常應該更喜歡 RSASSA-PSS(具有概率簽名的 RSA)。這并不是說 RSASSA-PKCS1-v1_5 被破壞了,而是說 RSASSA-PSS 只是具有其他人沒有的理想功能。事實上,RFC 8017 現在在使用 RSA 進行簽名時將 RSASSA-PSS 視為一項要求:

盡管沒有已知針對 RSASSA-PKCS1-v1_5 的攻擊,但為了提高健壯性,新應用程序中需要 RSASSA-PSS。

RFC 8017[4]

話雖如此,在討論Bleichenbacher[5]對 RSA PKCS#1 加密和簽名標準的攻擊[6]時,Real-Word Cryptography 中的[7]David Wong分享了一個有趣的統計數據:

與完全破壞加密算法的第一次攻擊不同,第二次攻擊是實現攻擊[針對簽名驗證]。這意味著如果簽名方案被正確實現(根據規范),攻擊就不會起作用。

然而,2019 年[8]表明,許多用于簽名的 RSA PKCS#1 v1.5 開源實現實際上陷入了該陷阱并錯誤地實施了標準,這使得 Bleichenbacher 的偽造攻擊的不同變體得以發揮作用!

真實世界密碼學[9]

由于攻擊是針對簽名驗證的,因此您必須確信所有驗證您的 JWT 的收件人都在使用不易受到 Bleichenbacher 攻擊的庫。如果您要與許多第 3 方打交道,那將很困難。

圍繞開放銀行的工作,例如 OpenID 的金融級 API (FAPI),不允許使用 RSASSA-PKCS1-v1_5。對于我的普通讀者,這是 IdentityServer 中唯一可用的算法,直到 IdentityServer4 版本 3。

進一步閱讀

了解如何使用 OpenSSL 為 JWT 簽名生成 RSA 密鑰[10]

RSASSA-PSS (例如 PS256)

PS256 = RSASSA-PSS 使用 SHA-256 和 MGF1 和 SHA-256

RSASSA-PSS 是 RSA 的概率版本,其中相同的 JWT 標頭和有效負載每次都會生成不同的簽名。與其他算法不同,這是一種很好的概率方法;雖然在簽名生成期間可以使用隨機值,但它對安全性并不重要。一般來說,它的實現要簡單得多,因此更難出錯。

如果您想使用 RSA 密鑰,那么建議您使用 RSASSA-PSS 而不是 RSASSA-PKCS1-v1_5,但幸運的是,RSA 密鑰可用于任一簽名方案。兩者之間的簽名長度也相同。

英國的開放銀行最初強制要求使用 PS256,但后來將其開放至 ES256。

進一步閱讀

  • 了解有關RSASSA-PSS 以及如何在 .NET Core 中使用它的[11]更多信息
  • 了解如何使用 OpenSSL 為 JWT 簽名生成 RSA 密鑰[12]

ECDSA (例如 ES256)

ES256 = ECDSA 使用 P-256 和 SHA-256

在橢圓曲線數字簽名算法 (ECDSA) 的情況下,ES256 中引用散列算法的數字也與曲線有關。ES256 使用 P-256(secp256r1,又名 prime256v1),ES384 使用 P-384(secp384r1),而奇怪的是,ES512 使用 P-521(secp521r1)。是的,521。是的,連微軟[13]都打錯了。

橢圓曲線加密 (ECC) 比 RSA 更難破解(或者我們可能真的很擅長破解 RSA)。因此,ECDSA 可以使用比 RSA 短得多的密鑰和短得多的簽名。大約 256 位的短橢圓曲線 (EC) 密鑰提供與 3072 位 RSA 密鑰相同的安全性。

您經常會看到 ECDSA 被列為比 RSA 中的等效項更快,但這僅適用于簽名生成;使用 RSA 進行簽名驗證通常仍然更快。使用 JWT,您很可能會進行一次簽名并進行多次驗證。

使用 ECDSA 簽名的 JWT 具有概率簽名,這意味著相同的 JWT 標頭和有效負載將始終生成不同的簽名。但不幸的是,ECDSA 以一種糟糕的方式是概率性的,其中隨機生成對簽名的安全性至關重要。

ECDSA 使用每個簽名生成的隨機數(不超過一次)。未能只使用一次隨機數值會使私鑰很容易恢復,這在索尼的 Playstation 3 和比特幣中[14]都已經出現過。在 Playstation 3 中,私鑰因靜態隨機數而被恢復,而在比特幣中,Android 用戶因 Android 上 Java 的 SecureRandom 類中的錯誤而受到影響。如果概率簽名的安全性需要隨機值,那么您應該更喜歡不需要的確定性簽名。

RSASSA-PKCS1-v1_5 在簽名驗證方面存在問題,而 ECDSA 在簽名生成方面存在問題,當您是令牌發行者時,這更容易處理。

ECDSA 越來越受歡迎,但由于橢圓曲線加密的實施方式,密碼學家似乎普遍反對,并擔心由于使用隨機值而導致實施困難。它比 RSA 享有更好的聲譽,但密碼學家仍然主張遷移到 EdDSA。

JOSE 最初使用的曲線由 NIST 定義。如果您擔心使用由 NIST 定義的曲線但想要使用 ECDSA,則一種流行的替代方法是使用 Koblitz 曲線,例如 secp256k1(與 secp256r1 相對)。Kobiltz 曲線稍微弱一些,但如果您擔心 NIST 曲線中使用的無法解釋的隨機數表明另一個 NSA 后門,那么 Kobiltz 曲線提供了一個越來越受歡迎的替代方案。您可以在比特幣、以太坊和 FIDO2 中找到這些曲線的用法。但是,如果您想使用非 NIST 曲線,您應該使用 EdDSA。在 JOSE 中,使用 Kobiltz 的算法以 K 結尾,例如 ES256K。

進一步閱讀

  • 了解如何在 .NET Core 中使用 ECDSA[15]以及如何在 IdentityServer4 中使用 ECDSA 簽署令牌[16]
  • 了解如何使用 OpenSSL 為 JWT 簽名生成 EC 密鑰[17]
  • 在 .NET Core 中使用自定義 JWT 簽名算法,以及使用 Kobiltz 曲線的示例[18]

EdDSA

EdDSA = 使用了 EdDSA 簽名算法

EdDSA 與之前算法的趨勢相反,使用單一alg值。相反,它依賴于crv預先商定的密鑰中定義的曲線 ( )。

例如,包含 EdDSA 公鑰的 JWK 將如下所示:

  1.   "kty""OKP"
  2.   "alg""EdDSA"
  3.   "crv""Ed25519"
  4.   "x""60mR98SQlHUSeLeIu7TeJBTLRG10qlcDLU4AJjQdqMQ" 

這迫使現代行為使用分配給密鑰的曲線,而不是 JWT,并消除了各種alg相關的攻擊。

EdDSA 是一種橢圓曲線密碼學形式,它利用了扭曲的 Edwards 曲線。它是 Schnorr 簽名系統(而不是 DSA)的變體。 EdDSA 在簽名和驗證方面都很快,簽名很短,并且可以避開所有類別的安全漏洞。

RFC 8037 定義了 JOSE 對以下 EdDSA 變體的支持:

  • Ed25519:255 位曲線 Curve25519(32 字節私鑰,32 字節公鑰,64 字節簽名)。簽名使用 SHA-512。提供 128 位安全性
  • Ed448:448 位曲線 Curve448-Goldilocks(57 字節私鑰,57 字節公鑰,114 字節簽名)。簽名使用 SHAKE256。提供 224 位安全性

使用 EdDSA 簽名的 JWT 具有確定性簽名,這意味著相同的 JWT 標頭和有效負載將始終生成相同的簽名。這是一種確定性的好方法,解決了依賴隨機 nonce 值來保護私鑰的問題。EdDSA 僅在私鑰創建期間使用隨機值。這是JOSE 和 JWT 的批評者推薦[19]的算法。

JWT 庫中對 EdDSA 的支持有點參差不齊,但預計很快就會看到更多的 EdDSA。

進一步閱讀

  • 了解有關EdDSA 以及如何在 .NET Core 中使用它的[20]更多信息
  • 開始使用 EdDSA[21]在 .NET Core 中使用ScottBrady.IdentityModel 進行 JWT 簽名[22]
  • 在cr.yp.to 上[23]閱讀有關 EdDSA 設計優勢的更多信息

HMAC (例如 HS256)

HS256 = HMAC 使用 SHA-256

到目前為止,我們一直在談論非對稱密碼學,其中只有令牌發行者擁有創建簽名的私鑰,而其他所有人都擁有可用于驗證簽名的相應公鑰。例如,身份提供者擁有私鑰,依賴方使用公鑰。

在極少數情況下,您將是唯一發行和驗證令牌的人,那么您可以考慮使用對稱密碼術和 HS256 之類的東西。 這使用相同的密鑰來創建和驗證簽名。

在我看來,如果你發現自己處于這個位置,那么我認為 JWT 不是適合你的解決方案。如果同一個實體同時進行讀取和寫入,那么在 JWT 中對結構化、明文數據進行往返的要求是什么?我建議將數據存儲在數據庫中并傳遞引用或使用諸如 Branca 令牌或 JSON Web 加密 (JWE) 之類的東西來確保只有您可以讀取數據。

通常,使用 HMAC 進行 JWT 簽名被視為一種反模式。

進一步閱讀

  • 詳細了解JWE 以及如何在 .NET Core 中使用它們[24]
  • 了解如何將 Branca 令牌[25]與 ScottBrady.IdentityModel 結合使用

不使用任何加密?!

無 = base64 加密 編碼

對不起,我忍不住了。請不要使用這個。

建議

盡可能使用 EdDSA,否則使用 ECDSA。 如果您被迫使用 RSA,則更喜歡 RSASSA-PSS 而不是 RSASSA-PKCS1-v1_5。

我不認為說 RSA 正在緩慢退出是一個有爭議的聲明。目前,提供 ECDSA 是一個不錯的選擇,但理想情況下,您會希望盡可能使用 EdDSA。

但是,無論您使用哪種算法,請確保提前知道期望使用哪種算法以及使用哪個密鑰進行驗證。

References

[1] RFC 7518 中: https://tools.ietf.org/html/rfc7518

[2] JOSE IANA 注冊表中: https://www.iana.org/assignments/jose/jose.xhtml#web-signature-encryption-algorithms

[3] 生日界限: https://en.wikipedia.org/wiki/Birthday_attack

[4] RFC 8017: https://tools.ietf.org/html/rfc8017

[5] Bleichenbacher: https://en.wikipedia.org/wiki/Daniel_Bleichenbacher

[6] 的攻擊: https://en.wikipedia.org/wiki/Daniel_Bleichenbacher

[7] Real-Word Cryptography 中的: https://www.manning.com/books/real-world-cryptography

[8] 2019 年: https://www.cs.purdue.edu/homes/schau/files/pkcs1v1_5-ndss19.pdf

[9] 真實世界密碼學: https://www.manning.com/books/real-world-cryptography

[10] 生成 RSA 密鑰: https://www.scottbrady91.com/OpenSSL/Creating-RSA-Keys-using-OpenSSL

[11] RSASSA-PSS 以及如何在 .NET Core 中使用它的: https://www.scottbrady91.com/C-Sharp/JWT-Signing-using-RSASSA-PSS-in-dotnet-Core

[12] 生成 RSA 密鑰: https://www.scottbrady91.com/OpenSSL/Creating-RSA-Keys-using-OpenSSL

[13] 連微軟: https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/master/src/Microsoft.IdentityModel.Tokens/JsonWebKeyECTypes.cs#L40

[14] 索尼的 Playstation 3 和比特幣中: https://medium.com/asecuritysite-when-bob-met-alice/not-playing-randomly-the-sony-ps3-and-bitcoin-crypto-hacks-c1fe92bea9bc

[15] 如何在 .NET Core 中使用 ECDSA: https://www.scottbrady91.com/C-Sharp/JWT-Signing-using-ECDSA-in-dotnet-Core

[16] 在 IdentityServer4 中使用 ECDSA 簽署令牌: https://www.scottbrady91.com/Identity-Server/Using-ECDSA-in-IdentityServer4

[17] 生成 EC 密鑰: https://www.scottbrady91.com/OpenSSL/Creating-Elliptical-Curve-Keys-using-OpenSSL

[18] 以及使用 Kobiltz 曲線的示例: https://www.scottbrady91.com/C-Sharp/Supporting-Custom-JWT-Signing-Algorithms-in-dotnet-Core

[19] JOSE 和 JWT 的批評者推薦: https://www.scottbrady91.com/JOSE/Alternatives-to-JWTs

[20] EdDSA 以及如何在 .NET Core 中使用它的: https://www.scottbrady91.com/C-Sharp/EdDSA-for-JWT-Signing-in-dotnet-Core

[21] 開始使用 EdDSA: https://github.com/scottbrady91/IdentityModel

[22] ScottBrady.IdentityModel 進行 JWT 簽名: https://github.com/scottbrady91/IdentityModel

[23] cr.yp.to 上: https://ed25519.cr.yp.to/

[24] JWE 以及如何在 .NET Core 中使用它們: https://www.scottbrady91.com/C-Sharp/JSON-Web-Encryption-JWE-in-dotnet-Core 

[25] 如何將 Branca 令牌: https://www.scottbrady91.com/C-Sharp/Replacing-JWTs-with-Branca-and-PASETO-in-dotnet-Core

 

責任編輯:武曉燕 來源: DotNET技術圈
相關推薦

2023-03-17 11:33:18

數據中心

2023-02-27 07:22:53

RPC網絡IO

2024-03-18 00:01:00

按鈕鏈接元素

2021-05-21 14:26:18

ObjectMap前端

2019-04-24 08:34:46

編程語言PythonJava

2020-05-12 11:06:47

服務器RAID陣列硬盤

2019-03-12 18:33:57

樹莓派Linux

2021-09-18 14:59:58

語言PythonC語言

2025-09-22 01:00:00

2018-10-16 09:55:24

Linux發行版內核

2016-10-28 16:18:25

數據中心制冷冷熱通道隔離

2015-07-16 11:14:32

云服務DRaaSAWS

2015-02-12 17:45:41

微信SDK

2025-07-29 18:29:40

2020-11-03 10:04:53

.proto文件代碼

2021-10-11 20:22:27

JWT瀏覽器接口

2022-08-19 08:17:36

JWT服務器身份信息

2017-05-31 09:12:51

機器學習算法數據

2017-09-19 08:29:51

SSD壽命驅動器

2014-11-13 09:21:23

TCP
點贊
收藏

51CTO技術棧公眾號

伊人色综合一区二区三区影院视频 | 最新日韩三级| 国产精品久久久久久户外露出 | 色先锋久久影院av| 欧美主播一区二区三区美女| 日本道在线视频| 天天干天天舔天天射| 美腿丝袜亚洲一区| 久久久久久国产精品| 精品亚洲aⅴ无码一区二区三区| 国产电影一区二区| 色婷婷亚洲一区二区三区| 国产高清免费在线| 嫩草精品影院| 成人一二三区视频| 国产精自产拍久久久久久| 国产在线拍揄自揄拍| 日韩免费视频| 亚洲美女性生活视频| 超级砰砰砰97免费观看最新一期| 澳门成人av网| 亚洲国产aⅴ天堂久久| 一区二区精品在线观看| 日本视频在线观看一区二区三区| 国产一区二区福利| 国产精品久久视频| 国产乱国产乱老熟| 国内综合精品午夜久久资源| 日韩视频永久免费观看| 51妺嘿嘿午夜福利| 全球av集中精品导航福利| 欧美一级黄色大片| 自拍偷拍21p| 91精品影视| 欧美日韩国产精品| 成人性生活视频免费看| 亚洲丝袜一区| 亚洲精品一卡二卡| 中文字幕一区二区三区有限公司 | 久久这里有精品视频| 级毛片内射视频| 中文字幕伦av一区二区邻居| 亚洲国产成人精品久久久国产成人一区| 国内自拍第二页| 欧美亚洲二区| 欧美日本在线看| www.com污| 亚洲网站免费| 欧美特级限制片免费在线观看| 久久精品香蕉视频| 亚洲天堂资源| 日本精品视频一区二区三区| 亚洲国产精品久久久久爰色欲| 中文 欧美 日韩| 日韩精品久久久| 欧美亚洲自拍偷拍| 一区二区黄色| av电影在线地址| 久久久无码精品亚洲国产| 日本高清视频一区| 色婷婷久久久综合中文字幕 | 久久精品最新地址| 天堂资源在线视频| 色狮一区二区三区四区视频| 正在播放欧美视频| 久久午夜精品视频| 久久人体视频| 久久久国产成人精品| 911国产在线| 中文字幕一区二区三区久久网站| 大量国产精品视频| 国产小视频在线观看免费| 在线精品在线| 青青草国产精品一区二区| 日本一本在线观看| 精品在线观看免费| caoporen国产精品| 蜜桃免费在线| 国产精品福利av| 91国在线高清视频| 日本不卡1234视频| 欧美色涩在线第一页| 两性午夜免费视频| 欧美大片网址| 色系列之999| 国产在线观看免费视频今夜| 三级影片在线观看欧美日韩一区二区| 国产欧美一区二区白浆黑人| www.久久精品.com| 久久精品人人爽人人爽| 综合久久国产| 中文字幕在线免费观看视频| 欧美日韩中文一区| 国产免费一区二区三区最新6| 中日韩免视频上线全都免费| 美女精品视频一区| 羞羞影院体验区| 久久se精品一区精品二区| 国产伦精品一区二区三区照片91| 色视频在线看| 亚洲视频免费在线| 日韩精品视频久久| 精品久久免费| 亚洲午夜未删减在线观看| 久久国产精品二区| 欧美a级理论片| 精品视频第一区| 国产日产一区二区| 在线视频欧美精品| 国产在线不卡av| 99久久精品费精品国产风间由美| 91精品国产沙发| 国产情侣自拍小视频| 国产亚洲精品bt天堂精选| avav在线播放| 国产精品视频首页| 国产亚洲成精品久久| 日本熟妇色xxxxx日本免费看| 久久精品国产色蜜蜜麻豆| 精品欧美日韩在线| 日本资源在线| 69av一区二区三区| av电影在线不卡| 国产精品毛片在线| 97国产超碰| 久久日韩视频| 欧美另类一区二区三区| 亚洲第一成人网站| 一本一道久久综合狠狠老精东影业| 亚洲在线免费看| 欧美成人性生活视频| 色婷婷av一区二区三区gif| 动漫美女无遮挡免费| 亚洲女同一区| 亚洲精品欧美一区二区三区| 日韩黄色影院| 欧美日韩综合一区| 国产又黄又粗的视频| 亚洲一区欧美激情| 另类欧美小说| yellow字幕网在线| 亚洲国产精品小视频| 精品无码一区二区三区电影桃花| 国产麻豆精品95视频| 在线观看欧美亚洲| 永久免费观看精品视频| 精品国内产的精品视频在线观看| 中文字幕一二区| 中文幕一区二区三区久久蜜桃| 国产三级日本三级在线播放| 久久av影视| 国产精品999| aiai在线| 欧美猛男男办公室激情| 久久国产高清视频| 国产精品一区久久久久| 国产精品视频二| 国产精品45p| 77777亚洲午夜久久多人| 亚洲 欧美 激情 小说 另类| 都市激情亚洲色图| 无码少妇精品一区二区免费动态| 日韩影院免费视频| 夜夜爽99久久国产综合精品女不卡 | 欧美国产成人精品| 亚洲欧美偷拍另类| 综合一区av| 精品欧美一区二区精品久久| 久久人体大尺度| 中文字幕亚洲二区| 国产视频手机在线观看| 亚洲影视在线播放| 一二三不卡视频| 免费久久99精品国产| 中文字幕在线乱| 久久久久高潮毛片免费全部播放| 青草青草久热精品视频在线网站| 亚洲s色大片| 欧美v日韩v国产v| 区一区二在线观看| 亚洲欧洲另类国产综合| 中文字幕乱视频| 日本色综合中文字幕| 欧美日韩午夜爽爽| 中国av一区| 亚洲aⅴ日韩av电影在线观看| 国内在线视频| 揄拍成人国产精品视频| 亚洲国产日韩在线观看| 一本久久综合亚洲鲁鲁五月天 | 中文字幕丰满乱子伦无码专区| 日本特黄久久久高潮| 99久久久精品视频| 国产调教一区二区三区| 51精品国产人成在线观看| 中文在线免费二区三区| 美女久久久久久久久久久| 你懂的好爽在线观看| 日韩欧美一级二级| 精品一区二三区| 亚洲mv在线观看| 亚洲欧美综合7777色婷婷| 成人99免费视频| 91日韩精品视频| 免费在线观看成人av| 色哟哟免费网站| 成人情趣视频网站| 久久久精品动漫| 欧美精品影院| 国产精品中文久久久久久久| mm视频在线视频| 久久精品人人爽| 大乳在线免费观看| 亚洲黄色av网站| 亚洲av少妇一区二区在线观看| 欧美亚洲免费在线一区| 日韩欧美国产亚洲| 悠悠色在线精品| 久久99久久99精品免费看小说| 91免费看`日韩一区二区| 乳色吐息在线观看| 麻豆91精品视频| 国产视频在线视频| 亚洲一区久久| 成人毛片视频网站| 极品日韩av| 日韩a级黄色片| 久久久久免费av| 亚洲欧洲一二三| 成人vr资源| 欧洲在线视频一区| 天天久久夜夜| 久久国产精品-国产精品| 国产精品18hdxxxⅹ在线| 91麻豆蜜桃| а√中文在线天堂精品| 99www免费人成精品| 精品一区二区三区四区五区| 成人欧美一区二区三区在线| 成人涩涩视频| 国产精品久久久久久久久久久不卡| 国产精品迅雷| 欧美在线视频导航| 电影一区二区三| 日韩美女在线观看一区| 中文字幕这里只有精品| 日本精品久久久久久久| 亚洲精品永久免费视频| 日韩美女免费观看| 成人黄色毛片| 成人久久18免费网站图片| 91成人精品观看| av成人观看| 成人偷拍自拍| 蜜桃91精品入口| 亚洲素人在线| 日韩中文一区| 亚洲成人99| 日韩 欧美 视频| 精品69视频一区二区三区Q| 国产免费一区二区视频| 亚洲一区二区三区免费在线观看| 免费在线激情视频| 欧美aaa在线| 国产九九九视频| 成人永久免费视频| 中文字幕狠狠干| 国产精品污污网站在线观看| 国产高潮流白浆| 亚洲高清免费观看| 成人免费毛片男人用品| 精品视频1区2区3区| 精品久久久中文字幕人妻| 亚洲国产一区自拍| 国产毛片av在线| 久久99精品视频一区97| 国产v日韩v欧美v| 国产精品入口夜色视频大尺度| 国产成年精品| 麻豆成人av| 久久久久免费av| 国产精品视频一区二区三区四区五区 | 美女999久久久精品视频| av丝袜在线| 国产主播喷水一区二区| 国产伦乱精品| 亚洲国产精品123| 国内精品久久久久久久影视蜜臀 | 狠狠狠色丁香婷婷综合久久五月| 女同性αv亚洲女同志| 26uuu成人网一区二区三区| 1024手机在线观看你懂的| 亚洲综合丁香婷婷六月香| 亚洲国产av一区二区三区| 欧美一二三区在线| 日本福利片高清在线观看| 久久大大胆人体| 成人美女大片| y111111国产精品久久婷婷| 成人羞羞网站入口免费| 极品粉嫩国产18尤物| 久久精品国产久精国产| www.色多多| 亚洲在线免费播放| 一级全黄少妇性色生活片| 日韩精品电影网| 日韩免费影院| 91精品久久久久| 免费观看不卡av| 日韩一级片免费视频| 狠狠网亚洲精品| 午夜精产品一区二区在线观看的| 亚洲一区二区欧美激情| 一区二区三区亚洲视频| 亚洲午夜色婷婷在线| 亚洲欧美韩国| 国产伦精品一区二区三区四区免费| 亚洲一区色图| 久热精品在线播放| 久久精品男人天堂av| 99热国产在线观看| 日韩免费观看高清完整版 | 亚洲v天堂v手机在线| 国产一二三四区在线观看| 日韩va亚洲va欧美va久久| 国产精品无码一区二区三| 亚洲一区二区av在线| 国产精品伦理一区| 在线播放国产一区中文字幕剧情欧美 | 欧美一区二不卡视频| 欧美xxxx18国产| 国产麻豆一区二区三区| 中文字幕中文字幕在线中一区高清| 日本伊人色综合网| 五月婷婷欧美激情| 在线观看免费一区| 番号集在线观看| 国产精品视频免费在线观看| 精品国产乱码久久久| av无码精品一区二区三区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 性欧美xxxx免费岛国不卡电影| 日韩小视频网站| 成人毛片老司机大片| 日本三级欧美三级| 精品国产露脸精彩对白| 123区在线| 久久久久免费网| 午夜一区不卡| 免费看裸体网站| 精品视频免费看| 在线中文字幕视频观看| 97伦理在线四区| 亚洲每日在线| 国产ts在线播放| 欧美视频在线不卡| 免费a级毛片在线播放| 91嫩草视频在线观看| 亚洲小说欧美另类社区| 国产又粗又长又爽| 日韩欧美在线字幕| yw193.com尤物在线| 91精品综合久久久久久五月天| 亚洲天堂一区二区三区四区| 精产国品一二三区| 亚洲一区二三区| 瑟瑟在线观看| 国产在线观看精品| 国产精品theporn| 国产精品九九九九九| 欧美视频在线不卡| 青青青国内视频在线观看软件| 久久99蜜桃综合影院免费观看| 日韩经典一区二区| 久久久久久久久久久久久女过产乱| 精品久久一区二区| 国产 日韩 欧美一区| 国产手机视频在线观看| 97se亚洲国产综合自在线观| 中文字幕手机在线视频| 久久成人精品视频| 一本色道久久综合狠狠躁的番外| 中文字幕天天干| 亚洲超碰精品一区二区| 东凛在线观看| 国产精品久久久久av福利动漫| 国产日韩视频| www色aa色aawww| 亚洲国产天堂网精品网站| 成人高清一区| 成人免费在线网| 久久久久99精品国产片| 国产福利视频导航| 欧美性做爰毛片| 亚洲欧美综合| 亚洲精品国产精品国自产网站| 精品国产凹凸成av人导航| 欧美午夜三级| 久久精品香蕉视频| 亚洲电影一区二区|