色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

STM32H5實戰(zhàn):Secure Manager與CycloneCRYPTO集成TLS全指南

STM32H5實戰(zhàn):Secure Manager與CycloneCRYPTO集成TLS全指南 STM32H5這顆芯片我拿到手其實挺長時間了但真正把它和Secure Manager、CycloneCRYPTO組合起來跑TLS還是在最近的一個網(wǎng)關(guān)項目里才徹底把它摸透。項目標(biāo)題里這幾個詞——STM32H5、Secure Manager、TLS棧、CycloneCRYPTO、外設(shè)所有權(quán)Peripheral ownership、Opaque key handling——每一個單拎出來都能講半天但組合在一起使用的時候坑遠(yuǎn)比想象中多。這篇博文就把整個落地的思路、配置過程、踩坑記錄和排查經(jīng)驗完整寫出來給正在做同樣方向的朋友一個參考。先說清楚這套東西是干什么的。STM32H5系列本身是帶TrustZone的Cortex-M33內(nèi)核MCU而Secure Manager是ST官方提供的一個預(yù)置在芯片安全域里的固件組件相當(dāng)于給開發(fā)者提供了一個“不用自己寫安全啟動和安全存儲”的現(xiàn)成底座。CycloneCRYPTO則是一套輕量級加密庫支持TLS 1.2/1.3協(xié)議棧配合Secure Manager可以在非安全側(cè)跑業(yè)務(wù)、在安全側(cè)管密鑰兩者通過PSA API對接。這套方案的核心價值在于密鑰不出安全域TLS握手全程由安全固件參與簽名和協(xié)商應(yīng)用層拿到的是不透明句柄Opaque handle而不是裸密鑰。聽起來很美好但真正做起來外設(shè)所有權(quán)怎么分、Opaque key怎么導(dǎo)入導(dǎo)出、TLS崩潰時怎么排查每一步都有講究。這篇文章我按從設(shè)計到落地的順序來寫內(nèi)容全部來自實際工程。1. 整體方案設(shè)計為什么選Secure Manager CycloneCRYPTO1.1 安全模型決定了架構(gòu)選型做物聯(lián)網(wǎng)設(shè)備最怕什么密鑰被人從Flash里dump出來。傳統(tǒng)MCU方案里私鑰要么以明文存在內(nèi)部Flash要么用一個簡單的加密算法包一層本質(zhì)上還是“鑰匙和鎖放在同一個抽屜里”。STM32H5的Secure Manager思路不一樣它把整個安全相關(guān)的邏輯封裝在TrustZone的安全世界里應(yīng)用代碼跑在非安全世界兩邊通過PSA API通信。我選擇Secure Manager而不是自研安全固件的核心原因有三個第一省時間。自研TrustZone安全側(cè)固件光是要把啟動流程、安全存儲、密鑰管理、密碼學(xué)服務(wù)這幾塊調(diào)通沒有兩三個月下不來而且安全固件這種東西沒有大量安全審計根本不敢用于量產(chǎn)。Secure Manager是ST出廠預(yù)置的通過了SESIP Level 3認(rèn)證直接省掉了整個安全側(cè)的開發(fā)和認(rèn)證成本。第二密鑰隔離是硬需求。項目要求TLS客戶端私鑰和證書必須存儲在安全環(huán)境中任何非安全側(cè)的代碼都不能直接訪問密鑰材料。Secure Manager天然滿足這個要求它把密鑰封裝成不透明句柄應(yīng)用層拿到的是一個ID直接用這個ID去調(diào)用簽名、解密等操作密鑰本身永遠(yuǎn)不離開安全世界。第三升級路徑清晰。Secure Manager支持固件更新后續(xù)如果ST發(fā)布了安全補(bǔ)丁可以通過官方機(jī)制升級不用自己維護(hù)一套安全側(cè)代碼。CycloneCRYPTO選型則是看中了它對PSA API的支持深度和代碼體積。這個庫來自O(shè)Cyclone代碼風(fēng)格非常工程化裁剪靈活在資源受限的MCU上表現(xiàn)不錯。更關(guān)鍵的是CycloneCRYPTO的TLS棧CycloneSSL可以直接接入PSA Cryptography API這意味著TLS握手過程中的密鑰交換、證書簽名驗證等操作能直接調(diào)用Secure Manager提供的安全服務(wù)架構(gòu)上非常干凈。1.2 硬件資源與外設(shè)分配的大前提STM32H5的TrustZone把芯片資源劃分成安全Secure、非安全Non-Secure兩部分這個劃分不是在運行時決定的而是在啟動階段由SAUSecurity Attribution Unit和IDAU硬件邏輯確定的。Secure Manager固件占用了安全側(cè)一部分Flash和SRAM應(yīng)用代碼跑在非安全側(cè)。我們項目的硬件是STM32H573片內(nèi)Flash 1MBSRAM 640KB。實際分配下來Secure Manager占用大約256KB Flash用于固件存儲還要留出一塊Flash做安全存儲Secure Storage用于保存密鑰、證書等敏感數(shù)據(jù)。非安全側(cè)可用Flash約700KBSRAM約400KB對于跑TLS的網(wǎng)關(guān)應(yīng)用來說夠用但需要精打細(xì)算。這里有個非常重要的概念需要提前理解外設(shè)所有權(quán)。TrustZone體系下每個外設(shè)都可以配置為安全或非安全或者支持安全/非安全混合訪問比如UART可以用安全發(fā)送、非安全接收但寄存器訪問權(quán)限是統(tǒng)一配置的。Secure Manager默認(rèn)會鎖定一部分外設(shè)作為安全側(cè)專用比如TRNG真隨機(jī)數(shù)發(fā)生器、AES硬件加速器、HASH外設(shè)、OTP存儲。應(yīng)用代碼如果直接去操作這些外設(shè)寄存器會被硬件阻斷并觸發(fā)總線錯誤或者安全異常。這個設(shè)計初看覺得限制很多但實際上是刻意為之。TRNG是隨機(jī)數(shù)生成的根基如果非安全側(cè)能隨意訪問TRNG寄存器惡意代碼就能影響隨機(jī)數(shù)質(zhì)量進(jìn)而破壞整個加密體系。AES和HASH同理密鑰保存在安全側(cè)硬件里非安全側(cè)只能用API間接調(diào)用不能直接讀寄存器拿密鑰。我們的做法是網(wǎng)絡(luò)外設(shè)Ethernet MAC、PHY控制引腳分配給非安全域因為這些是應(yīng)用層需要直接控制的調(diào)試串口也放在非安全域方便打日志但任何與密鑰、隨機(jī)數(shù)相關(guān)的硬件資源都交給Secure Manager統(tǒng)一管理。配置方式有兩種一種是通過STM32CubeMX可視化配置。在TrustZone配置頁面里把需要非安全訪問的外設(shè)打上Non-Secure標(biāo)簽Secure Manager占用的資源會自動標(biāo)記為Secure這個方式適合項目前期快速驗證。另一種是直接改設(shè)備樹源文件或啟動代碼里的SAU配置寄存器適合需要精細(xì)控制的場景。實際開發(fā)中我建議先用CubeMX把安全/非安全邊界劃好再在代碼里微調(diào)不要一上來就手寫SAU配置容易漏配導(dǎo)致安全異常。1.3 運行時架構(gòu)與應(yīng)用分區(qū)應(yīng)用整體跑在非安全側(cè)使用FreeRTOS作為調(diào)度內(nèi)核。Secure Manager作為安全側(cè)服務(wù)提供方通過PSA API調(diào)用接口跟非安全側(cè)通信。實際調(diào)用過程是這樣的非安全側(cè)程序調(diào)用PSA Crypto API函數(shù)比如psa_sign_hash該函數(shù)通過ARM的SGATE指令切換到安全世界進(jìn)入Secure Manager的服務(wù)例程完成簽名操作后返回結(jié)果。整個過程對應(yīng)用層是透明的應(yīng)用層只需要管理好PSA_KEY_ID句柄就行。![架構(gòu)示意應(yīng)用層-CycloneSSL/CycloneCRYPTO-PSA API-Secure Manager-硬件加密外設(shè)]文字示意上層是TLS握手邏輯中間層是CycloneSSL的PSA適配層底層是Secure Manager固件再往下是TRNG/AES/HASH硬件。因為Secure Manager代碼跑在安全世界有自己的??臻g和內(nèi)存管理機(jī)制所以非安全側(cè)的棧溢出或內(nèi)存踩踏不會直接破壞安全側(cè)的數(shù)據(jù)。這種隔離特性讓我在調(diào)試內(nèi)存問題時省了不少心——以前用單芯片方案跑TLS一個內(nèi)存越界就可能把密鑰緩沖區(qū)的數(shù)據(jù)改了現(xiàn)在密鑰在安全側(cè)非安全側(cè)的bug很難影響密鑰完整性。2. 外設(shè)所有權(quán)配置那些坑你沒跳過不算做過2.1 安全/非安全域劃分的邊界邏輯外設(shè)所有權(quán)配置里最容易出問題的是“看似該歸非安全域、實際必須留在安全域”的情況。我舉個例子STM32H5的CRC外設(shè)。CRC本身不涉及密鑰按理說可以放在非安全域但Secure Manager在初始化時需要用它做安全存儲的完整性校驗所以CRC被Secure Manager鎖定了。如果應(yīng)用層不看手冊直接初始化CRC外設(shè)就會觸發(fā)HardFault。這類問題排查起來特別費時間因為報錯不明確。實際遇到的情況是在系統(tǒng)啟動早期Secure Manager還沒完全初始化完畢非安全側(cè)代碼就去訪問了被安全鎖定的外設(shè)然后MCU直接掛死在HardFault_Handler里調(diào)試器里看到PC指針停在了一個隨機(jī)位置。把優(yōu)先級調(diào)低、把外設(shè)初始化順序調(diào)整到Secure Manager完全啟動之后再執(zhí)行問題就解決了。另一個容易被忽視的點是DMA通道的所有權(quán)。STM32H5的DMA控制器支持按通道分配安全/非安全屬性。如果應(yīng)用層把UART接收配置成非安全通道而Secure Manager內(nèi)部有一個安全通道在同時使用DMA那么中斷路由和事件標(biāo)志就必須仔細(xì)配置。我們在調(diào)試Ethernet和UART同時工作時就遇到過DMA通道沖突現(xiàn)象是UART偶發(fā)丟數(shù)據(jù)Ethernet收發(fā)性能下降后來發(fā)現(xiàn)是DMA中斷優(yōu)先級和安全管理單元GTZC配置不對。外設(shè)所有權(quán)配置的最佳實踐建議先梳理應(yīng)用里所有需要訪問的外設(shè)清單明確每個外設(shè)是否需要安全側(cè)參與使用CubeMX的“Security”視圖把外設(shè)一一標(biāo)注生成初始化代碼后再檢查生成的SAU/GTZC配置啟動階段用Secure Manager提供的接口查詢外設(shè)當(dāng)前所有權(quán)確認(rèn)實際配置與預(yù)期一致在HardFault_Handler里記錄觸發(fā)地址和總線狀態(tài)位方便定位是哪次非法訪問引起的。2.2 非安全側(cè)如何正確訪問被保護(hù)外設(shè)如果應(yīng)用實在需要操作安全外設(shè)比如要直接讀取TRNG生成隨機(jī)數(shù)雖然不建議正路不是去改外設(shè)所有權(quán)而是通過Secure Manager提供的服務(wù)接口來間接操作。PSA Crypto API里有psa_generate_random函數(shù)就是干這個的應(yīng)用層調(diào)用這個函數(shù)Secure Manager內(nèi)部用TRNG生成隨機(jī)數(shù)后返回。同理AES加解密操作走psa_cipher_encrypt/psa_cipher_decrypt接口HASH走psa_hash_compute接口。這些接口內(nèi)部會使用安全側(cè)硬件加速器應(yīng)用層看不到寄存器操作細(xì)節(jié)但獲得了硬件加速帶來的性能提升。我們項目里TLS握手需要做RSA簽名驗證同時也要做AES-GCM數(shù)據(jù)加解密。剛開始我把AES操作都放在非安全側(cè)跑軟件實現(xiàn)結(jié)果性能慘不忍睹。后來改成通過PSA API調(diào)用Secure Manager的硬件AES整體TLS吞吐量提升了將近40%。這個性能差距在高頻率數(shù)據(jù)交互的場景下會被進(jìn)一步放大。這里有個性能與安全的權(quán)衡思考不透明句柄方案下每次加解密都要經(jīng)過SGATE切到安全世界再切回來這個切換是有開銷的。如果加解密數(shù)據(jù)包很小比如幾百字節(jié)切換開銷占比就比較高如果數(shù)據(jù)包大幾KB硬件加速的性能優(yōu)勢完全能覆蓋切換開銷。所以實際項目中小包場景可以考慮非安全側(cè)軟件加解密大包場景用PSA硬件加解密換來的是性能與安全性的平衡。當(dāng)然如果項目安全等級要求高即使有小包開銷也必須全部走硬件。3. Opaque Key Handling不透明密鑰機(jī)制的詳細(xì)展開3.1 什么是不透明密鑰Opaque Key“Opaque key”這個詞直譯過來是不透明密鑰它描述的是密鑰對象以不透明句柄的形式存在句柄持有者應(yīng)用層不知道密鑰的具體內(nèi)容只知道這個密鑰是哪個ID、用于什么算法??梢赃@樣理解傳統(tǒng)方案是把鑰匙復(fù)制一份交給管家保管管家拿著鑰匙開門Opaque方案是把鑰匙鎖在一個保險箱里管家只能透過一個小窗口使用鑰匙的動作但拿不到鑰匙本身。STM32H5 Secure Manager的不透明密鑰機(jī)制基于PSA Certified Crypto API定義密鑰對象存儲在安全側(cè)的安全存儲區(qū)域中。應(yīng)用層通過psa_import_key或psa_generate_key創(chuàng)建密鑰對象系統(tǒng)返回一個psa_key_id_t類型的句柄。之后所有用到該密鑰的操作比如psa_sign_hash簽名、psa_verify_hash驗簽、psa_asymmetric_encrypt非對稱加密都傳入這個句柄而不是密鑰數(shù)據(jù)。這種設(shè)計有幾個實質(zhì)性的好處密鑰材料不會進(jìn)入非安全側(cè)的RAM側(cè)信道攻擊獲取密鑰的難度大幅增加密鑰持久化到安全存儲區(qū)即使設(shè)備重啟密鑰依然存在應(yīng)用層只需要知道密鑰ID即可安全側(cè)可以實施密鑰使用策略比如限定某個密鑰只能用于簽名不能用于解密這個策略在密鑰創(chuàng)建時就固化在安全存儲里。3.2 密鑰導(dǎo)入導(dǎo)出從開發(fā)到量產(chǎn)的正確姿勢開發(fā)階段我們需要把測試證書和私鑰導(dǎo)入到設(shè)備安全存儲里。最直接的方式是在應(yīng)用代碼里調(diào)用psa_import_key接口把打包在固件里的測試密鑰導(dǎo)入。但這種方式不能用于量產(chǎn)因為你不會希望每一臺設(shè)備都燒錄相同的私鑰——這會使得一臺設(shè)備被提取密鑰后所有設(shè)備的安全防線都崩潰。量產(chǎn)階段的做法通常有兩種第一種是設(shè)備首次啟動時生成密鑰對。調(diào)用psa_generate_key生成RSA或ECC密鑰對然后通過安全側(cè)提供的CSRCertificate Signing Request生成接口獲取公鑰對應(yīng)的CSR將CSR上傳到服務(wù)器由CA簽發(fā)證書后再把證書導(dǎo)入設(shè)備。這個流程保證了私鑰從生成到存儲全程不離開設(shè)備安全性最高。第二種是在生產(chǎn)線上使用自定義燒錄工具通過安全通信通道把一對一的密鑰對燒錄進(jìn)每個設(shè)備的安全存儲。這種方式適合需要預(yù)置特定證書鏈的場景比如設(shè)備身份證書由工廠統(tǒng)一簽發(fā)但需要額外的生產(chǎn)線安全措施。我們項目選擇了第一種方式。關(guān)鍵代碼片段如下psa_key_id_t key_id; psa_key_attributes_t attr PSA_KEY_ATTRIBUTES_INIT; psa_set_key_usage_flags(attr, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH); psa_set_key_algorithm(attr, PSA_ALG_ECDSA(PSA_ALG_SHA256)); psa_set_key_type(attr, PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)); psa_set_key_bits(attr, 256); psa_status_t status psa_generate_key(attr, key_id); if (status ! PSA_SUCCESS) { // 處理錯誤 }導(dǎo)入證書時要特別注意證書本身屬于非敏感數(shù)據(jù)可以存放在文件系統(tǒng)里不需要額外加密。但如果證書鏈中包含私鑰對應(yīng)的公鑰信息導(dǎo)入時先用psa_import_key導(dǎo)入公鑰或公鑰派生TLS握手時再通過函數(shù)調(diào)用即可。切勿直接把私鑰以明文形式燒錄到Flash里這是新手最常犯的錯誤。3.3 與CycloneCRYPTO的PSA適配層對接CycloneCRYPTO對PSA API的支持體現(xiàn)在它提供了Crypto Extension模塊專門用于將算法調(diào)用映射到PSA接口。打開CycloneCRYPTO的配置頭文件可以看到類似這樣的選項#define CRYPTO_PSA_SUPPORT 1 #define CRYPTO_PSA_IMPORT_KEY_SUPPORT 1 #define CRYPTO_PSA_EXPORT_PUBLIC_KEY_SUPPORT 1TLS握手過程中最關(guān)鍵的對接點是私鑰操作簽名。在CycloneSSL中TLS客戶端身份認(rèn)證需要調(diào)用私鑰對握手消息做簽名。默認(rèn)情況下CycloneSSL直接讀取私鑰緩沖區(qū)里的密鑰數(shù)據(jù)然后調(diào)用軟件算法進(jìn)行簽名。但通過PSA適配層你可以把私鑰操作替換成調(diào)用psa_sign_hash。具體來說需要實現(xiàn)CycloneSSL的回調(diào)函數(shù)void tls_sign_ecdsa_psa(TlsContext *context, const TlsSignContext *signContext, const uint8_t *data, size_t dataLen, uint8_t *signature, size_t *sigLen) { psa_key_id_t key_id (psa_key_id_t)(size_t)signContext-data; psa_status_t status psa_sign_hash(key_id, PSA_ALG_ECDSA(PSA_ALG_SHA256), data, dataLen, signature, sigLen, signatureSize); if (status ! PSA_SUCCESS) { // 處理簽名失敗 } }這里的signContext-data就是我們在初始化TLS上下文時傳入的PSA密鑰句柄。通過這樣的方式TLS握手使用的簽名操作完全由Secure Manager執(zhí)行握手過程中私鑰不出安全域。3.4 密鑰輪換與吊銷處理設(shè)備長期運行后密鑰可能面臨泄露風(fēng)險或者證書過期。Secure Manager的PSA API支持更新密鑰但需要先創(chuàng)建新密鑰然后更新存儲引用。實際項目中我們實現(xiàn)了密鑰輪換機(jī)制設(shè)備每隔一段時間生成一個會話密鑰臨時密鑰用主密鑰簽名當(dāng)主證書快過期時設(shè)備生成新的主密鑰對通過安全通道向服務(wù)器申請新證書新證書導(dǎo)入后舊密鑰標(biāo)記為不可用并在下次運行時清除。實施這個機(jī)制時需要留意PSA API的一個限制一旦某個密鑰ID被寫入安全存儲它綁定到了具體的存儲位置如果想徹底刪除需要調(diào)用psa_destroy_key并等待安全存儲回收空間。頻繁創(chuàng)建銷毀密鑰會帶來Flash磨損問題所以輪換頻率要控制好。我們的做法是設(shè)備運行最多使用10個會話密鑰輪換之后強(qiáng)制觸發(fā)一次完整的主密鑰更新流程避免安全存儲頻繁擦寫。4. TLS協(xié)議棧集成CycloneSSL與Secure Manager的實戰(zhàn)組合4.1 TLS 1.2還是1.3選型與兼容性考量CycloneSSL支持TLS 1.0到1.3的完整版本。在IoT設(shè)備上TLS 1.2依然是最常見的協(xié)議版本但TLS 1.3在握手性能和安全性上都更好。我們項目出于兼容性考慮最終選擇了TLS 1.2為主要協(xié)議同時開啟TLS 1.3支持以便與較新的服務(wù)器互通。選型時要特別注意一個細(xì)節(jié)服務(wù)器端如果配置了不安全的舊協(xié)議比如TLS 1.0客戶端連接時可能會收到警告。實際調(diào)試過程中我遇到過連接某些老式服務(wù)器時TLS握手在ClientHello階段就被對方拒絕的情況錯誤信息類似于“從遠(yuǎn)程客戶端應(yīng)用程序收到一個TLS 1.2連接請求但沒有任何受客戶端應(yīng)用程序支持的密碼套件”——這是因為服務(wù)器配置了過舊的安全策略。針對這類兼容性問題建議在TLS初始化時設(shè)置合理的密碼套件優(yōu)先級列表。我們項目的順序是ECDHE_RSA_WITH_AES_128_GCM_SHA256優(yōu)先其次是ECDHE_ECDSA_WITH_AES_128_GCM_SHA256再然后是RSA_WITH_AES_128_GCM_SHA256。優(yōu)先使用前向保密算法這是安全基線要求。4.2 握手流程中的關(guān)鍵狀態(tài)與密鑰交換TLS 1.2完整握手流程中客戶端與服務(wù)端經(jīng)過Hello協(xié)商、證書交換、密鑰交換、握手消息驗證四個階段。當(dāng)使用Secure Manager時其中兩個關(guān)鍵點必須處理第一ClientHello的隨機(jī)數(shù)生成。隨機(jī)數(shù)質(zhì)量直接影響TLS會話安全性。CycloneSSL默認(rèn)使用rand()偽隨機(jī)數(shù)但嵌入式環(huán)境里rand()種子往往來自某個固定的時間源預(yù)測性很強(qiáng)。我強(qiáng)烈建議把CycloneSSL的RNG回調(diào)替換為Secure Manager的psa_generate_random接口這樣每次會話的隨機(jī)數(shù)都由硬件TRNG產(chǎn)生安全性可靠。第二服務(wù)端證書鏈的驗證。這是整個握手過程中計算量最大的一塊。CycloneSSL內(nèi)部實現(xiàn)了X.509證書解析和驗證邏輯驗證過程使用mbedTLS風(fēng)格的證書鏈處理。當(dāng)使用Secure Manager時證書鏈中的公鑰操作比如驗證服務(wù)端證書簽名可以通過PSA API調(diào)用安全域的橢圓曲線運算但這塊不是必須的因為證書鏈驗證的公鑰本身是公開信息用非安全側(cè)軟件驗簽也可以。我建議證書鏈驗簽走軟件實現(xiàn)以減少安全域調(diào)用次數(shù)只有與私鑰相關(guān)的操作才走PSA調(diào)用。4.3 內(nèi)存與緩沖區(qū)調(diào)優(yōu)CycloneSSL的TLS收發(fā)緩沖區(qū)大小直接影響并發(fā)連接數(shù)量和內(nèi)存占用。默認(rèn)配置下CycloneSSL的接收緩沖區(qū)為16KB發(fā)送緩沖區(qū)為4KB這對MCU來說是很大的開銷。我們項目實際調(diào)參到接收8KB、發(fā)送2KB配合TLS記錄最大長度限制在1400字節(jié)MTU的以太網(wǎng)環(huán)境下完全夠用。運行時內(nèi)存分配策略也很關(guān)鍵。CycloneSSL允許通過TLS_RECORD_INIT_BUFFER_SIZE等宏控制緩沖區(qū)初始分配大小。如果一開始就分配16KB記錄緩沖區(qū)系統(tǒng)剩余內(nèi)存幾乎為零后續(xù)任何動態(tài)分配都可能失敗。我們的做法是用小緩沖區(qū)初始化如2KB然后在握手過程中根據(jù)協(xié)商的加密套件動態(tài)擴(kuò)展。這樣即使同時存在多個TLS連接內(nèi)存壓力也不會一下子就拉滿。4.4 證書管理從開發(fā)證書到生產(chǎn)證書鏈開發(fā)階段用自簽名證書做測試沒問題但生產(chǎn)環(huán)境必須使用由可信CA簽發(fā)的證書。STM32H5 Secure Manager自帶根證書存儲區(qū)域可以預(yù)置多個根CA證書用于服務(wù)端證書驗證。要注意的是TLS客戶端驗簽服務(wù)端證書時需要把CA根證書導(dǎo)入設(shè)備的信任庫。Secure Manager的安全存儲空間有限建議只導(dǎo)入必要的根證書。很多IoT項目圖省事把整個瀏覽器根證書庫導(dǎo)入設(shè)備這不現(xiàn)實也會浪費空間。我們項目只導(dǎo)入了兩到三個根證書足以驗證所有目標(biāo)服務(wù)器的證書鏈。證書過期問題也是運維中的坑。嵌入式設(shè)備離線運行時鐘可能不準(zhǔn)證書有效期判斷容易出錯。解決方法是在NTP同步時間后重新評估證書有效期或者使用帶“證書固有時”驗證邏輯的CycloneSSL配置選項允許一定的時間偏差比如24小時減少因為時鐘漂移導(dǎo)致的握手失敗。5. 實操過程記錄一次完整的TLS連接從配置到跑通5.1 環(huán)境準(zhǔn)備CubeMX工程配置與安全初始化先說說環(huán)境版本這非常重要因為ST的工具鏈版本差異可能導(dǎo)致API行為不一致。我們用的是STM32CubeMX 6.10、STM32CubeH5固件包V1.4、CycloneCRYPTO v3.6、Secure Manager版本為ST提供的3.x系列編譯器為Arm Compiler 6.18AC6。如果用舊版CubeMX生成工程Secure Manager相關(guān)組件可能不會被正確初始化。CubeMX中開啟Secure Manager的步驟在“Categories”中找到“Security”選擇“Secure Manager”使能“Secure Manager Initialization”選擇“Application”模式配置安全存儲區(qū)域大小我們設(shè)為32KB因為要容納2個根證書、2個設(shè)備密鑰對和若干會話密鑰生成工程后自動生成secure\和non-secure\兩個工程目錄分別編譯。安全側(cè)初始化代碼在啟動文件里自動執(zhí)行應(yīng)用側(cè)不需要手動配置SAU。但有一點必須注意Secure Manager在安全側(cè)的啟動時間比較長大約需要20~50ms非安全側(cè)代碼如果提前訪問PSA API會得到一個“服務(wù)未就緒”錯誤。正確做法是在main函數(shù)里先調(diào)用一個等待函數(shù)while (psa_get_service_status() ! PSA_SUCCESS) { // 等待Secure Manager就緒 }5.2 CycloneSSL配置與編譯裁剪CycloneSSL的配置主要集中在config.h和crypto_config.h兩個文件。我們做了如下裁剪只保留TLS 1.2和TLS 1.3支持關(guān)閉TLS 1.0/1.1關(guān)閉不需要的加密算法保留AES-GCM、SHA-256、ECDHE、RSA、ECDSA開啟PSA適配層支持TLS_PSA_SUPPORT關(guān)閉調(diào)試輸出釋放約10KB Flash關(guān)閉會話緩存減少內(nèi)存開銷。編譯時把CycloneSSL源碼放進(jìn)工程鏈接時需要注意把PSA適配層文件一起編譯進(jìn)來。CycloneSSL對PSA的支持在CryptoExtension目錄下需要把對應(yīng)的.c文件加入工程。如果漏了這一步鏈接階段會出現(xiàn)未定義的psa_sign_hash等函數(shù)引用。內(nèi)存規(guī)劃上建議把TLS相關(guān)的大緩沖區(qū)放在獨立的內(nèi)存池里。STM32H5的SRAM分為幾個塊有一些塊可能分配給Secure域比如SRAM3靠后部分分配RAM時需要確認(rèn)能用的非安全SRAM地址范圍。我們用的方法是查看鏈接腳本里non_secure RAM的起始地址和大小把TLS緩沖區(qū)定義在這個區(qū)域里避免越界訪問安全SRAM。5.3 握手連接建立及傳輸測試TLS連接的流程按以下偽代碼組織// 1. 創(chuàng)建TLS上下文 TlsContext tlsContext; tlsInit(tlsContext, TLS_CLIENT_MODE, tlsCipherSuites, tlsExtensions); // 2. 配置服務(wù)器證書驗證信任錨 tlsSetAuthType(tlsContext, TLS_AUTH_TYPE_VERIFY_SERVER); // 3. 配置PSA密鑰句柄用于客戶端證書 tlsSetSignCallback(tlsContext, tls_sign_ecdsa_psa, (void*)(uintptr_t)psa_key_id); // 4. 設(shè)置底層socket tlsSetSocket(tlsContext, socket, TLS_SOCKET_TYPE_TCP, TLS_SOCKET_IP_TYPE_IPV4); // 5. 發(fā)起握手 err tlsConnectSocket(tlsContext, serverName, connectionTimeout); if (err NO_ERROR) { // 6. 應(yīng)用數(shù)據(jù)傳輸 tlsWrite(tlsContext, data, dataLen, writtenBytes, NULL); tlsRead(tlsContext, buffer, sizeof(buffer), recvLen, NULL); } // 7. 關(guān)閉連接 tlsShutdown(tlsContext);第一次跑通時最典型的坑是證書驗證失敗。開發(fā)環(huán)境里我們用的是自簽名證書CycloneSSL會報證書路徑錯誤。調(diào)試階段可以通過tlsSetCertVerifyCallback把驗簽回調(diào)掛出來打印驗證失敗的具體原因。正式環(huán)境則必須保證時間正確、證書鏈正確導(dǎo)入。另外要注意的是TCP socket底層CycloneSSL不內(nèi)置TCP/IP協(xié)議棧需要我們自己提供一個socket適配層。我們用的是lwIP需要在tls_set_socket里把lwIP的socket fd傳進(jìn)去。CycloneSSL內(nèi)部通過socket接口讀寫整個過程非常順暢。5.4 性能實測數(shù)據(jù)在STM32H573 250MHz主頻、啟用Secure Manager硬件加速的條件下我們的實測數(shù)據(jù)如下項目測試條件性能數(shù)值TLS握手耗時完整握手RSA 2048無緩存約340msTLS握手耗時會話恢復(fù)PSK復(fù)用約15msAES-128-GCM加密吞吐量1KB數(shù)據(jù)包約3.2MB/sECDSA P-256簽名PSA調(diào)用單次操作約8msECDSA P-256驗簽非安全側(cè)軟件約22ms從這個數(shù)據(jù)可以看到通過PSA調(diào)用安全域硬件加速ECDSA簽名速度遠(yuǎn)快于驗簽的軟件實現(xiàn)因為在安全域內(nèi)使用了硬件曲線加速。但驗簽走軟件實現(xiàn)并沒有成為瓶頸。整體性能對物聯(lián)網(wǎng)網(wǎng)關(guān)應(yīng)用來是足夠的。6. 常見問題與排查技巧實錄6.1 TLS握手失敗類問題**錯誤信息“創(chuàng)建TLS客戶端憑據(jù)時發(fā)生嚴(yán)重錯誤。內(nèi)部錯誤狀態(tài)為10013?!?*這不是STM32H5側(cè)的錯誤而是Windows客戶端連接本地服務(wù)器時經(jīng)常出現(xiàn)的錯誤。它的根因通常是客戶端證書或服務(wù)器證書的Key Usage擴(kuò)展不允許指定用途。如果你在PC上測試設(shè)備端TLS服務(wù)遇到這個錯誤先去檢查服務(wù)器證書的Extended Key Usage是否包含serverAuth如果沒有換用完整證書鏈或重新生成證書。**錯誤信息“請求被中止: 未能創(chuàng)建SSL/TLS安全通道?!?*這個錯誤通常出現(xiàn)在客戶端無法與服務(wù)端協(xié)商出共同的密碼套件時。在STM32H5作為服務(wù)端的場景里檢查CycloneSSL的密碼套件列表是否包含了客戶端支持的套件。我曾經(jīng)遇到過PC端默認(rèn)啟用了TLS 1.3而MCU端只配置了TLS 1.2導(dǎo)致無法建立連接的情況。解決辦法是開啟TLS 1.3支持或者調(diào)整PC端的協(xié)議配置。**錯誤信息“authentication failed because the remote party sent a TLS alert: handshake failure”**這個錯誤常見于服務(wù)端證書驗證失敗或客戶端證書缺失。在嵌入式設(shè)備上如果TLS客戶端需要做雙向認(rèn)證mTLS服務(wù)端會要求客戶端提供證書但客戶端沒有配置或證書不受信任就會觸發(fā)handshake failure。排查步驟先用openssl s_client測試服務(wù)器端配置確認(rèn)服務(wù)端期望的客戶端證書類型再檢查MCU端證書鏈?zhǔn)欠裾_配置。**問題“TLS initialization failed”**啟動時出現(xiàn)這個錯誤通常是CycloneSSL的初始化配置出錯。優(yōu)先檢查棧內(nèi)存是否足夠CycloneSSL的TLS上下文初始化需要至少16KB可用內(nèi)存如果FreeRTOS任務(wù)的棧設(shè)置太小初始化函數(shù)會返回錯誤。6.2 安全協(xié)議與加密漏洞相關(guān)提示設(shè)備接入外部服務(wù)器時可能會被安全掃描工具報出以下告警“TLS 1.2協(xié)議信息泄露漏洞(CVE-2016-2183)”這是SWEET32攻擊主要影響CBC模式的3DES算法。修復(fù)方法是徹底禁用3DES套件只保留AES-GCM等現(xiàn)代套件?!胺?wù)器支持TLS client-initiated重協(xié)商攻擊(CVE-2011-1473)”這個告警多出現(xiàn)在設(shè)備作為TLS服務(wù)端時。CycloneSSL如果開放了重協(xié)商功能可能被利用發(fā)起DoS攻擊。修復(fù)方法是關(guān)閉或限制TLS重協(xié)商只允許在建立了應(yīng)用層認(rèn)證后的重協(xié)商。我們收到這些告警后處理方式是更新CycloneSSL到最新版本并在配置中禁用所有弱加密套件。具體操作打開cipher_suite列表把包含DES、RC4、CBC模式3DES的套件條目刪掉在TLS擴(kuò)展配置里關(guān)閉客戶端發(fā)起的重協(xié)商。6.3 與Secure Manager相關(guān)的內(nèi)存和外設(shè)問題問題現(xiàn)象調(diào)用psa_sign_hash后系統(tǒng)復(fù)位。排查后發(fā)現(xiàn)是應(yīng)用層傳入的簽名緩沖區(qū)太小Secure Manager寫入超出緩沖區(qū)邊界觸發(fā)安全異常。解決嚴(yán)格遵循PSA API的簽名長度返回值先查詢簽名長度再分配緩沖區(qū)。問題現(xiàn)象啟動后死機(jī)HardFault。排查步驟查看GTZC的配置確認(rèn)是否誤操作了安全外設(shè)。用調(diào)試器讀取SCB-CFSR寄存器如果顯示IMPRECISERR或BUSFAULT大概率是總線訪問安全問題。問題現(xiàn)象安全存儲空間不足導(dǎo)入證書失敗。Secure Manager的安全存儲按塊管理頻繁導(dǎo)入刪除密鑰會產(chǎn)生碎片。ST提供了安全存儲整理工具也可以調(diào)用相關(guān)API來壓縮空間。我們最終通過擴(kuò)大安全存儲配置解決了問題。6.4 特殊使用場景的坑iOS客戶端TLS兼容如果設(shè)備同時作為服務(wù)端被iOS APP訪問可能會遇到iOS開發(fā)中常見的TLS錯誤。典型錯誤是“error domainnsurlerrordomain code-1200 “tls錯誤導(dǎo)致安全連接失敗””這是因為iOS對TLS版本、證書有效期、證書信任鏈要求非常嚴(yán)格。排查經(jīng)驗檢查服務(wù)端證書鏈?zhǔn)欠裢暾鹖OS要求服務(wù)器返回完整的證書鏈包括中間CA證書如果只返回葉子證書iOS會拒絕連接。檢查證書有效期iOS不允許過期或尚未生效的證書。檢查服務(wù)器的TLS版本iOS 13及以上要求TLS 1.2以上我們遇到過設(shè)備端只支持TLS 1.0導(dǎo)致iOS連接失敗的情況。7. 一些調(diào)試與運維層面的深入經(jīng)驗7.1 日志策略與安全敏感信息過濾嵌入式TLS調(diào)試最大的痛點是沒有足夠的日志輸出空間。我們設(shè)計了一套分級日志策略錯誤級僅記錄TLS握手失敗原因碼、PSA調(diào)用失敗狀態(tài)不打印任何密鑰相關(guān)的數(shù)據(jù)警告級記錄證書驗證結(jié)果、套件協(xié)商結(jié)果信息級記錄握手時間、數(shù)據(jù)吞吐量等性能指標(biāo)調(diào)試級輸出完整的握手報文摘要但需要編譯時打開宏開關(guān)放在調(diào)試版本中使用。在正式發(fā)布版本中所有與密鑰相關(guān)的緩沖區(qū)和證書私鑰數(shù)據(jù)都不會被打印。這一點特別重要——通過串口打印密鑰信息是最低級的安全漏洞。我們在代碼審查時明確禁止了任何形式的密鑰dump連十六進(jìn)制打印都不允許。7.2 與RTOS任務(wù)調(diào)度的配合FreeRTOS下TLS連接通常放在獨立任務(wù)里。任務(wù)棧大小要仔細(xì)評估CycloneSSL的TLS握手和加解密操作有較深的函數(shù)調(diào)用棧如果任務(wù)棧太小會出現(xiàn)詭異的崩潰。我們項目里TLS任務(wù)棧設(shè)為24KB調(diào)試時先用棧水位檢查函數(shù)uxTaskGetStackHighWaterMark確認(rèn)實際使用量發(fā)現(xiàn)峰值大概在18KB左右24KB留出了合理余量。同時要注意PSA API調(diào)用會從非安全世界切到安全世界如果安全側(cè)的Secure Manager調(diào)度超時會導(dǎo)致調(diào)用卡死。因此PSA調(diào)用所在的系統(tǒng)時鐘中斷優(yōu)先級要設(shè)置為與Secure Manager兼容的級別。我們的做法是把PendSV和SysTick的優(yōu)先級都設(shè)置為最低優(yōu)先級數(shù)值最大避免與安全側(cè)中斷發(fā)生優(yōu)先級反轉(zhuǎn)。7.3 設(shè)備身份證書與唯一標(biāo)識綁定為了提高安全性我們把設(shè)備的唯一IDUID和安全存儲綁定在設(shè)備首次啟動時生成密鑰對并將公鑰導(dǎo)出用于唯一標(biāo)識。這樣即使兩臺設(shè)備固件完全相同它們的身份也是唯一的無法互換身份。測試中驗證了這一點從設(shè)備A導(dǎo)出的備份固件燒到設(shè)備B由于安全存儲中的密鑰與UID不匹配設(shè)備B無法完成TLS身份認(rèn)證。8. 總結(jié)與擴(kuò)展思考我這幾個月在這個項目上最大的體會是Secure Manager CycloneCRYPTO這套組合真正把“安全”從一個獨立模塊打造成了系統(tǒng)的底層能力。它帶來的代價是學(xué)習(xí)曲線陡峭、調(diào)試手段受限、問題定位不如傳統(tǒng)MCU開發(fā)那么直白但換來的密鑰隔離和認(rèn)證安全是實打?qū)嵉?。如果你正?zhǔn)備上手我建議先用ST官方的Secure Manager例程把基礎(chǔ)API跑一遍確認(rèn)你自己的開發(fā)板能夠正常工作再逐步集成CycloneSSL。不要上來就把TLS和Secure Manager合在一起調(diào)試問題多且難排查。后續(xù)如果項目需要還可以進(jìn)一步考慮把設(shè)備接入ST的Device Provisioning服務(wù)實現(xiàn)云端密鑰管理或者使用Secure Manager支持的額外安全功能比如安全固件更新驗證來做整套安全生命周期管理。這塊擴(kuò)展的方向很多關(guān)鍵是先把底層的密鑰機(jī)制、外設(shè)權(quán)限機(jī)制跑通建立起一套完整的可信根。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品对白久久不卡| 超碰地址97| 传媒在线观看一区二区三区| 韩国一级做A片免费的| 久久激情四射婷婷丁香五月天| 六六久久日韩不卡| 亚一综合久久久久久久久久| 精品国产乱码久久久久久久久久毛片| 人妻在线中出视频| 女同性恋久久| 97超碰磁| 日本天天干天天操一区| 超碰无码五月97| 久草成人福利导航| 亚洲一级性爱视频免费看| 精吧天堂| 国产精品网站www| 色狠狠综合| 国产多人在线观看视频| 欧美天天干| 麻豆人妻偷人精品无码视频| 久久精品免费| 亚洲日韩一区电影| 婷婷综合| 中文激情网| 精品一区二区成人| 岛国黄色短视频| 亚洲av青草久久一区二区| 精品视频久久区| 欧美激情综合| 偷拍 亚洲| 成人 日本A片无码8888| 欧美精品成人在线播放| 久久久久久久九九九九九九| 日韩欧美日韩| 精品午夜福利| 欧美中文综合| 中文字幕精品一区欧美| 99自拍视频在线| 婷婷激情五月天小说网| 乱伦av麻豆| 国产高清吃奶免费视频网站| 91综合色噜噜| 毛片久久| 91精品久久久久五月天精品| 国产精品久久aV| 最新制服中文第一页| 婷婷五月天色网| 久久久久久久久国产| 亚洲视频,小说| 欧美激情视频一区二区三区不卡| 不卡人妻少妇精品毛片一区23区视频| 亚洲成人一二三区| 美女丝袜激情小说| 99热婷婷一区二区三| 欧美激情亚洲情色| 在线日韩精品一区二区三区| 精品无码久久久久久久久果冻糖心| 日日躁狠狠躁天天躁精品| 天天天堂影视日韩亚洲91| 亚洲熟久久| 亚洲和欧美裸体美女双飞视频| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 日日干夜夜骑| 超碰4A| 在线洲亚线| 超碰在线91| 亚洲风情在线观看| 69视频入口| 一级性爱视频免费观看| 五月丁香色色网| 五月丁香影视| 六月丁操逼| 97se综合| 蜜臀久久99精品久久久久| 免费岛国一级片| 国产av波波国产精品| 日本一本道A级黄色毛片试看60分钟| 91九色精品熟女内射| 亚洲日韩AV视色| 天天影视激情欧美| 久欲AV| 欧美97色| 亚洲无码免费看| 中文字幕在线观看视频www| 婷婷色色五月| 一本久久精品中文字| 欧美男人的天堂| 久久老子无码午夜伦不卡| 骚货人妻偷情自拍在线视频| 久久草视频污视频| 欧美色图20p| 欧美日韩免费性爱| 最近2019中文字幕国语免费版| 成人免费不卡在线视频| 青青草伊人久久| 91模特在线观看| 69XX一中文字幕人妻91| 婷婷成人五月天| 欧美精品久久96人妻无码| 青青草国产一区二区三区| 夜夜狠狠躁日日躁色视频| 国产第25页在线观看| 超碰欧美在线欧美| 亚洲色人| 最近的最新的中文字幕视频| 美女淫穴| 亚洲图片欧美色| 国产中文字幕曰本毛片| 欧美人妻色| 亚洲色婷婷久久91| 久久婷婷五月天| 欧美天天在线| AAAAAAAAA黄片| 国色天香av| 精品人妻一区二区蜜桃视频| 五月天婷婷色| 久久老熟女| 超碰人妻天天干| sss视频华人在线| 天天欧美97| 国模艳艳啪啪一区| 蜜臀AV成人精品蜜臀| 日本不卡一二区| 日va操| 国产黄a三级三级三级av在线看| 久日综合网| 中文字幕美女91| 欧美日韩精品一区二区三区高清| 久久是精品| 韩国成人精品久久久免费看| 欧美熟妇精品黑人巨大一二三区| 操国产逼| 成人欧美日超碰| 欧美亚洲中文字幕| 狠狠五月天| 九九五月天| 热99这里只有精品| 啊啊啊啊,啊啊好多水 | 久久婷婷热| 精品一二三区女同| 97人人操人人摸人人爱| 精品美女久久一二三| 日韩欧美成人性爱在线| 欧亚日韩综合精品国产| 日韩一区二区高清在线观看的| 色九九九九| 亚洲激情在线观看一区| 婷婷人妻激情| www.99视频| 黄页av| 色999亚洲人成色| 国产91 丝袜在线播放00-百度| 桃花色涩综合影院| 一二三区精品视频| 中文字幕二区日韩天堂| 日韩操啪| 粉嫩小泬久久久一区二区| 乱伦av麻豆| 久久久国产护士丝袜美腿一| 刺激性视频黄页| 久久无码一区二区二三区性色| 伊人一区二区三区| 久操九九九九| 亚洲精品尤物yw在线影院| 品亲网欧美品亲网| 国产日韩欧美三级片| 97国产|免费| 91国产大片| 人人射人人操人人摸| 天天综合欧美黑人| 打av高清| 99re在线观看| 成人a v在线播放免费| 欧美综合 站| 大香蕉九九| 乱伦熟女论坛| 97精品视频在线播放| 亚洲av在线免费观看| 亚洲人妻在线一区| 亚洲风情在线观看| 日本顶级天天操狠狠操夜夜操中文字幕| 国产极品一区二区三区三州| 老司机福利青青草| 97久久超碰国产精品| 一级免费啪啪片| 免费岛国一级片| 插B在线观看| 少妇蜜汁| 玖玖视频在线资源一区二区三区| 国产一区自拍欧美日韩| 人人弄人人摸| 午夜亚洲| 久久九操在线观看| 91 丝袜在线| 99热这里是精品| 亚洲精品乱码线路中文字幕| 欧美精品成人一区二区在线观看 | 手机在线播放国产福利| 久久久亚洲| 日韩精品怡红院| 中文字幕精品免费一区二区| 操逼操逼视频操逼| 岛国在线国产| 2024黄色视频| 国产精品剧情| 激情综合久久| 97碰碰日本乱偷人妻中文的| 色婷婷激一区二区三区| 69视频入口| 四虎在线视频| 午夜超碰| 天美传媒婬乱在| 亚洲精品不卡一二三区| 麻豆天美传媒在线视频天堂| 柠檬AV导航| 欧美αv.com| 热思思免费视频| 精品国产乱码久久久久久蜜臀| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 日韩精品亚洲一二三| 亚洲欧美日产国产91毛片| 亚洲欧美激情另类色图| 精品91摸| 亚洲少妇诱惑| 亚州色站 日韩电影| 黄页大片在线观看| 青娱乐 成人娱乐在线| 又黄又爽在线观看视频| 男人的天堂啪啪啪啪啪蜜桃不卡| 天天爽天天爽| 97二区四区| 91黑丝少妇| 中文字幕精品丝袜| 91美女在线视频| 97se综合网| 香蕉一区二区三区在线视频| 欧美激情视频一区二区三区不卡| 日韩99神马视频播放| 97免费视频网| 人妻熟女一区二区| 久久99草| 女人香蕉久久毛毛片精品| 精品国产91内射久久| 97在线免费观看视频| 激情人妻另类| 丰满人妻一区二区三区四区| 欧美日韩一二三| 久久久久久久久久9| aV中文麻| 日本淫乱女一区二区三区视频| 加勒比综合在线| 视频不卡中文字幕| 十八禁av无码免费网站APP| 日韩精品黄片免费观看| 国产精品久久久久av| 熟女丝袜视频| 亚洲自拍一区夜夜操| 色天堂在线观看| 综合情欲网| 人爽不卡视频| 欧美亚洲素人制服精品| 精品国产久热在线观看| 久久精品天美| 一区二区三| 爱妃国产亚洲视频中文字幕| 国产尹人在线视频免费| 精品乱子一区二区三区99| 一区二区三区成人| 色臀av| 日本成人A片网站| 五月丁香色色网| 中文字幕片| 懂色av中文字幕| 国产9 9在线 | 亚洲| 人人爱人人操人人性| 精品四五区| 亚洲伊人久久精品影院| 国产二区视频在线观看电影| 91九久| 四虎在线免费视频| 欧美岛国精品在线观看| 丝袜AV一二三区| 91精品人妻五十路| 国产特级毛片AAAAAA高潮流水 | 日比av无码| 男人高清无码一区二区| 日本 免费 一区二区三区 久久香蕉| 日本幼女18+| 伊人精品久久网站| 97爱欧美| 97精品久久| www.91久久| 第二页中文字幕| 欧美韩日精品99综合| 手机在线播放国产福利| 欧美韩国你懂得在线 | 毛片麻豆91糖心精品毛情片| 综合久久久久久久久91| 曰韩欧美国产传媒麻豆第一区| 精品一区99999| 欧美1区二区三区公司| 激情综合五月天| 蜜桃天美传媒AV一区二区三区| 亚洲精品尤物yw在线影院| 人妻插插人妻人| 久9爱经典视频| 中文字幕一区二区韩| 国产精品欧美激在线| 自拍偷拍 日韩欧美| 国产九月婷婷| 操东北女人| 丁香五月社区| 大香蕉狠狠爱| 啪啪91| 亚洲色人| 夜夜久久| 操逼国产免费| 97伦综合| 色五月婷婷麻豆在| 欧美18老人禁| 久久草视频污视频| 色久桃花影院在线观看| 久湿久久| 男人天堂久久精品| 最新日本中文字幕| 97国产天堂岛| 国产大学生口爆吞精合集| 久久久神马影院| 无码自拍SM| 99热这里都是精品| 伊人久久国产免费观看视频| 乱性AV| 欧美日韩精品久久| 97婷婷色| 人妻干天天| 夜夜免费视频| 亚洲av在线免费观看| av网站免费看| 欧美色图20P| 日本91白丝| 天天日天天搞天天干| 天天大干大香蕉| 黄污污污污| 亚洲欧美综合| 久久久久无码一妻区| av资源在线播放天堂| 啊啊啊操死我| 精品国产久久乱码| 久久久久9久久久久| 久久国产乱子伦精品免费女人| 国产精品乱码久久久、久久| 欧洲免费一区二| 高清无码 国产精品| 97超碰色色| 久久久111| 久久婷婷六月综合| 东亚亚洲无码高清| 狠狠搞 亚洲91| av在线一区二区三区| 欧美肥臀在线| 亚洲第一色页夜| 丁香五月综合| 亚洲aV性爱| 三级精品三级在线观看| 日韩熟女视频二区| 欧美性色综合网| 99精品网| 欧美系列在线一区二区| 大学生口爆吞精| 91第一页| 日日骚av| 另类欧美| 天海翼久久| 欧美日韩人人精品| 九月丁香| 日本女人操逼| 性爱免费视频成人| 激情综合网亚洲| 免费男人的天堂| 偷拍2020| 熟妇熟女亚洲天堂网| 国产无套粉嫩白浆在| 欧美成人A√在线一区二区| 久久久久久加勒比| 亚春色色| 日韩精品午夜操呦呦不卡影院| 亚洲 图片 欧美 色图| 激情五月天网站| 手机看av网站在线看| 日逼逼免费看| 日韩性爱1级片视频| 色与欲影视天天看综合网| 9999九九九久久久| 亚洲和欧美裸体美女双飞视频| 国产欧美精品日韩区二区麻豆天美| 久久AV无码网址| 日韩国产乱子伦App| 老子午夜伦不卡影院| 偷拍偷窥与盗摄视频专区| 午夜αv| 久久东京热久久| 91热| 中国操逼无码| 午夜男女爽爽爽影院视频| 亚洲日韩人妻中文字幕一区| 日韩欧美亚洲自拍偷拍| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 亚洲限制级在线| 三级三久久线久久99久目本WW| 91成人精品在线播放| 天天精品| 日本一级一级一级一级| 五月激情小说| 9九九国产| 人妻喷水| 欧美BT 亚洲色图| 东京太热男人的天堂久久久| 亚洲精品少妇| 中国农村熟妇毛片视频| 日本免费中文字幕在线| 亚洲精品人妻吞精av | 久九干| 午夜性| 青青草字幕AV| 黄色成年| 亚洲激情综合另类男同| 自拍偷拍2025在线观看| 爱爱动态120秒| 欧美亚洲国内自拍| 中国熟女91| 天美传媒麻豆一区二区三区国产精| 91色欧美| 欧洲亚洲国产综合在线| 国产高潮AA片免费看| 久久婷婷综合国际产色怕| 国产精品成人蜜臀AV在线| 人人操av| 色偷综合| 蜜臀久久99精品久久久久| 国内偷拍精品一区二区| 91热爆在线| 狠狠干精品一二三四五六2022| 日韩人妻丝袜美腿中文| 九九碰九九爱97超| 天堂中文日本在线观看| 91AV老熟女视频| 一区二区国产视频在线观看| 亚洲国产97| 色天使亚洲综合在线观看| www.色99| 日日噜噜夜夜久久亚洲一区二区| 热热色91| 亚洲制服欧美另类内射| 妇女视频网站| 日韩成年人性爱视频| 在线观看国产黄色| 国产日韩人人| 亚洲中文字幕在线视频一区二区| 十八禁视频网站| 亚洲色性情三级| 91爱欧美| 久久久亚洲Av| 欧美久久婷| 国产蜜臀精品一区二区尤物| 亚洲精品啪视频| 长长久久曰曰夜夜成人网| 新视频sss国产| 日本欧美中文字幕| 国内毛片国产专区二| 自拍偷拍第26| 久久婷婷国产一区二区色| 色婷婷A V一二三四区麻豆综合| a片自拍直播视频| 一二三区在线| 999精品乱码| 亚洲AV无码成人精品久久| 欧美老妇综合网| 欧美后入| 成人熟女视频一区二区三区| 天天色,天天干,天天干| 一区二区三区在线资源| 欧美人妻制服| 五月激情综合网| 人妻熟妇久草在线| 操逼网站视频漫画国产| 九九热精品| 天天综合影院91| 亚洲素人综合| 在线视频免费播放一区| 97精品中文字幕| 先锋激情∨在线视频播放| 99热这里只有精品9| 加勒比色99999| www成人啪啪18秘 免费| 黑人性欧美| 8050午夜少妇无码| 欧美熟妇色| 一本道综合色图| 揉揉日日日日| 色呦呦、国产精品| 国产精品区在线12p| 夜夜综合| 美女被艹尤物视频| 91亚洲欧美激情| 久久女人一区二区三区| 大香蕉免费3| 色香在线| 91碰碰| 91亚洲在线| 口爆综合网| 亚洲麻豆av一区二区| 色九九九综合| 国产精品女久久久久av爽| 俺去啦自拍| 婷婷五月天在线观看| 日韩无码人妻| 男人的天堂久久狠| 天天天天干| 久久精品国产AV一区二区三区| 97视频900| 波多野结衣一级视频| 亚洲欧美激情小说| 九九九九九九成人| 乱伦a片视频| 五月天精品| 亚洲色图 欧美热图 清纯唯美 另类自拍| 国产精品乱码久久久久| ai欧美亚洲小说| 丁香六月婷婷久久综合| 人妻偷拍一区二区三区| 亚洲女优有码无码高清| 久久免费看高潮毛片韩国| 日欧亚洲二三区大片不卡| 超碰97COm中文| 激情人妻另类| 久久伊人在线五区| 大香蕉综合网| 欧美日韩在线国产在线| 激情文学88| 久草线上视频免费看| 九色 人妻 大香蕉| 3p国产欧美99热| 内射黑丝袜| 超碰到97情色| 蜜臀AV成人精品蜜臀AV久久| 五月丁香综合啪啪| 欧美综合娱乐久久| 26uuu久久| 欧美天天干| 安微少妇操BBB| 大香蕉欧美国产日韩高潮| 五月激情天| 中文字幕美女91| 综合久久97| 精品视频一区二区| 天天操天天日青青草超碰av| 九热大香蕉| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 大香蕉免费中文| 久久东京国产精品视频| 久久国产乱子伦精品免费女人| 日韩欧视频| 在线观看日韩av不卡| 超碰中文字幕人妻草一区| 综合熟女| 日韩免费一级性爱视频| 青青青青操国内视频在线| 操老熟女AV| 日本黄色裸日本黄色裸体 | 自拍偷拍 高清无码| 国产精品分类在线观看| 狠狠操狠狠操操| 欧美色青| 超碰在线一区二区三区| 青青草好吊色| 噜噜噜噜久久久精品免费| 97精品视频在线播放| 亚洲限制级| 欧美性后入| 青青操青娱乐| www.四虎在线| 日本免费中文一区二区三区四区 | 久久伊人东京热| 少妇激情一区二区三区视频| 日韩精品一区二区日韩| 中文字幕性感少妇av| 日韩成人性爱电影在线播放| 亚洲九区| 日韩中文字幕熟妇人妻| 欧美情色贴图| 青青青草原| 97爱爱爱| 乱伦av麻豆| 丁香五月偷拍| 青青草五月天| 99re久久| 国产一区二区a毛片| 五月天色图| 成人老鸭窝人人在线视频| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 日韩人妻网站| 久久女女| 操操逼视频| 九九拍拍精品视频在线播放| 久草成人影片| 无码人妻精品一区二区三区99不卡| 国产精品一级特黄aaa大片在线观看| 韩国黄色片精品久久久| 99re8免费高清在线| 欧美97av| 日韩国产不卡在线视频| 嗯嗯啊在线视频| 日韩美女啪啪一区| 国产又粗又大硬免费色网视频| 天天艹天天日| 亚洲色图在线视频| 日韩欧美久久婷婷网站| 欧美亚洲素人制服精品| 天天综合~91入口| 久久噜噜噜精品国产亚洲综合| 亚洲av乱伦色图网站| 国语人妻精彩刺激| AV 少妇 人妻 偷拍| 欧美强奸一区二区诱惑| 亚洲码和欧洲精品激情系列| 超碰99在线| 家庭乱伦网站国产| 亚洲自拍一区夜夜操| 亚州91| 综合久| 天天影视网色欲色香| 蜜乳成人AV| 大香蕉手机在线视频| 91天美免费| 国产家庭乱伦网址| 久久人妇| 国产对白刺激视频| 国产精品午夜成人福利| 超碰成人人人爽人人爽| 中文字幕日韩综合| 麻豆成人AV| 五月天偷拍| 精品无av| 久久丁香| 天堂性色| 日韩在线76| 亚洲成人贴图| 久草综合京东| 夜草网站| 精品九区| 操逼操操操91| 9九九国产| 国产精品亚洲免费| 蜜臀网址在线| 五月天婷婷色| 啊啊啊久久| 99999久久久久9国产精品| 一级二级在线观看| 国产精品制服丝袜中文字幕日韩一区二区三区| 欧美性第一页| 亚洲欧美日韩有码| 在线a v| 97久久天天综合色天天综合色电影| www.黄色在线| 69久久| 激情一区二区三区在线观看| 放黄片放3级黄片没穿衣服| yirendaxiangjiashipin| 欧美日韩高潮喷水91| 超碰免费欧美7| 人妻熟女av国产网站| 人妻喷水| 国产精品一区人妻精品阁在线| 色悠久| 操B久久| 久久久久久久久成人av解说| 成人一二三区| 无码一区二区三区四区五区六区七区八区九区十区视频 | 色噜噜精品一区二区三| 我爱操| 欧洲无码一区二区| 久久五十路熟女人妻| 亚洲极品| 99热这里只有精| 久久五十路熟女人妻| 四季av一区二区凹凸精品小说| 亚洲成人av色网| 免费啪啪av| 国产 丝袜 欧美中文 另类| 操逼视频免费日韩无码| 噜噜噜噜久久久精品免费| 久久久久中出| 亚洲AV无码国产精品久久久久 | 国产尹人在线视频免费| 亚洲婷婷丁香在线| 人妻无码一区二区三区久久99| 五月婷婷大香蕉| 老熟妇乱轮| 高清不卡视频| 国产亲戚伦亲在线| 放黄片放3级黄片没穿衣服| 日韩中文字幕宗合在线| 91青视频| 国产自偷自拍一区| 国产高清精品一区二区三区毛片| 亚洲AV色图| 91精品婷婷国产综合久久竹菊| 丁香五月天视频| 很黄很色的视频在线观看| 久夜视频| 97欧美色| 久久伊人青青草| 亚洲 欧美都市激情| 亚洲色图亚洲无码强奸乱伦| 三级精品三级在线观看| 人妻少妇精品视频一区二区三区| 国产视频大全| 操学生天天| 色综合91| 人妻啊啊人妻啊啊| 久久久久9999| 欧美,日韩,亚洲视频| 看免费的黄片| 亚洲中字幕日本一区二区三区| 欧美色图校园春色| 人人操人人精品影片| 青青欧洲黑| 爱爱动态试试看6 0秒| 97免费在线视频在线观看| 色五月综合| 97综合在线| 久久久久国产无av| 噜噜噜无码AV一级一级久久影院| 亚洲一级特黄大片在线播放91| 少妇高潮流水av免费| 91春色| 久久久久夜夜夜夜| 色五月AV| 天美传媒AV在线播放| 久久午夜神马| 97超碰欧美精品| 亚洲三级。日韩三级| 黑人性欧美| 亚洲色图A| 天天操天天舔| 超碰97精品| 少妇被c 黄 免费观看| 97亚洲精品| 最新日本中文字幕| 嗯嗯啊啊好疼| 亚洲一级性爱视频免费看| 亚洲啪啪视频免费| 国产亚洲精品久久久久小| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 国产欧美第五页| 精品久久青青草| 日本三级韩国三级美三级91| 韩国免费播放一级毛片| 91综合色噜噜| 久久久久久久久久久免费精品| 亚洲黄色视频在线观看视频| 国产强奸乱伦xd| 97国产高清视频在线观看| 96久久精品一二三区色欲| 日本在线不卡一二区| 欧美午夜精品久久久久久3D| 精品福利视频| 天美传媒av在线| 天天躁日日躁狠狠狠躁| 亚洲无码精品AV久久久| av强奸乱轮| 九九99精品| 96AV久久久| 久久久九精品| 久久久一区二区三区四区五区| www.色吧5.com| 国产精品自在线发布| 日本狠狠干| 超碰97玖玖爱| 亚洲色图 91| 人妻9117c| 美女黄频a美女大全免费皮| 日韩人妻少妇 一区二区三区| 精品久久久久瑟瑟| 欧美,亚洲,日韩,v,天堂,手机在线观看| 哈哈操电影| 成 人片 黄色大片| 九九亚洲视频| 中文字幕超碰CAO| 97视频播放| 国产操伦| 国产又粗又又黄又猛| 亚洲欧美日韩电影网站一区 | 亚洲男人天堂2016| 久久久久久加勒比| 精品成人动漫一区二区| 射 色综合| 97人妻人人躁人人玩人人| 视频国产欧美在线播放| 韩国黄色片精品久久久| 97超碰色屌| 99999re| 亚洲色图亚洲无码强奸乱伦| 97精品97久久| 超碰95| 亚洲操人| 操亚州| 日韩电影在线观看网址| 国产又大又硬又长又粗| 色色99| 九九九九国产| 黄色av一区二区在线| 日韩精品人妻中文字幕久久久| 精品久9| 中文久久爆乳| 二三四区精品| 在线有码中文字幕| 欧亚乱色熟一区二区三四区| 美女91网| 最新国产精品久久精品| 亚洲色图伊人网| 九九精品无码专区免费| 800zy一区二区| 999久久久九九九九| 日韩欧美字幕亚洲一区二区| 怡红院成人av| 亚洲一卡二卡在线免费| 青青草日逼视频| 久久久久久性爱免费视频| 国产成人无码网站在线视频| 欧洲大香蕉| 日韩不卡在线一区二区| 男人精品天堂一区| 免费看黄视频亚洲网站| 夜夜综合| 欧美顶级黄色大片免费| 亭亭在线资源| 狠狠色噜噜狠狠狠狠狠色综合久久 | 国内91熟女人妻丝袜天天精品视频在线| 亚洲在线综合| 精品国产精品一区二区| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 欧美自拍网| 亚洲成人免费在线| 欧美激情内射| 美女超碰978| 97久久超碰| 这里是精品| 亚洲成人在线高清| 中文字幕AV片| 91在线精品| 欧美图片校园春色| 桃色五月天| 96久久久久| 99国内精品| 综合久久久久久久久91| 青青伊人久久| 免费一级欧美片片线观看| 婷婷性网| 青青青国产| 制度丝袜99| 懂色av中文字幕| 婷婷尹人大香蕉免费| 亚洲精品久久久久毛片A片拉屎| 伊人97色天使| 思思热国产在线视频| 97chaopenrihan| 中文字幕熟女人妻丝袜丝| 欧美91视频| 大香交| 国产不卡精品91| 久久久久人妻二区精品叶可怜| 国产精品3| 少妇一线天久久久久久| 久久av无码| AV色五月天| 日韩97超碰中文字幕| 久久中文字幕一区不卡| 极品一区二区三区免费| 天天日老熟妇| 欧美少妇性爱网站| 国产97视频| 91强在线播放| 99re9在线| 国产操操日韩三级黄| 日韩精品午夜操呦呦不卡影院| 欧美第38页| 色99视频| 日韩黄片视频试看| 嗯嗯不要视频| 青青欧美| 日本美女性生活久久久久久久 | 亚洲永久AV无码精品秋霞| 黄片不用下载在线观看| 国产精品免费1区2区视频| 精品在线78| 97超碰免费人人性爱| 吻戏激情性巴克| 操逼1区| 日韩免费簧片| 男人的天堂VA| 久9爱经典视频| 久久中出在线| 91爱综合| 国产超碰人人操| 欧美1区二区三区公司| 校园春色五月天| 亚洲中字慕不卡| 69久久久久久久久久久久久| 美女露胸露奶头| 高清无码网址| 国产精品久久久久无码AV会牛| 一区操逼| 免费岛国一级片| 九月伊人中文字幕| 加勒比综合在线| 久久久国产护士丝袜美腿一| 日本超碰97日韩精品人妻| 青青青操| 丰满人妻一区二区三区四| 色婷视频| 久久久夜夜嗨免费视频| 在线国产福利网址导航| 三级精品三级在线观看| 欧美亚洲| 试看60秒 爽| 在线不欧美| 综合第一页| 亚洲在线91| 五月天亚洲色图| 亚洲男人天堂手机版| av影院十区| 色97欧美| 夜夜夜爽www精品视频| 国产中文字幕在线观看| 欧美人妻一区二区| 99久在线精品99re8| 天美麻豆黄色录像| 另类老少妇| 国产超碰欧美| 人妻激情视频| 天天干人人乐| 97精| 十八禁啪啪视频| 国产精品黑人一区二区三区| 亚洲国产成人精品999| 在线观看一级α片刺激高潮视频| 国产无马在线| 久久五十路熟女人妻| 97人人操人人摸人人爱| 色青青久久影视| 操美女高潮抽搐白浆| 精品色色| 九九九午夜| 日韩精品人妻中文字幕久久久| 欧美97视频| 91在线一起| 欧美日韩在线小说 | 久久这里都是精品| 性色高清在线| 日日干男人的天堂| 国产精品第一页国产大屁股视频免费区i| 最新9久久久9免费视频| 极品出轨视频网站| 色欧美综合| 91色人妻| 爱av免费| 激情一区二区三区在线观看| 热天堂一区二区| 久久伦理视频久久大香蕉视频| 春色综合免费| 9久精品| 亚洲国产奇米影视久久| 无套内射性感少妇视频| 国产视频一区二区在线观看| 蜜桃久久精品一区二区三区| 97在线播放| 久久久新亚洲AV| 日本性爱不卡视频| 大香蕉碰碰| 日韩精品大香蕉伊人在线| 美女91网| 国产家庭乱伦性爱视频| 99re国产中文字幕| 欧美性暴力猛交XXXX| 久久天堂网| 草草草视频在线免费看| 被体育老师抱着c到高潮| 九九精品美女高溯喷水| 9999久久久久| 亚洲中文字幕熟女| 国产激情在线观看| 60秒试看最爽10分钟网站| 亚洲狠狠入| 韩日性爱av| 亚洲骚女一区二区三区| 天天干1区2区在线| 国产在线观看一区二区三区| 精品区国产区一区二区三区| 久久25| 东京太热男人的天堂久久久| 亚洲欧美在线观看无码| 91一区二区| 久操av在线| 久久性爱精品一区| 超碰亚洲97| 欧成人在线| 51一区二区三区| 99热导航| 99色网| 丁香六月婷婷| 久久精品男人的天堂| 日韩99精品视频综合区| 野狼激情网| 97久久久网站| 激情久久久| 97精品97久久| 高清无码在线播放网站| 人人爽天天爽| 久久伊人影院| 99热99色| 国产精品一区二区麻豆| 成人乱人伦一区二区| 密臀在线免费观看| 欧美性第一页| 麻豆天美国美国产| 久久人妻熟女一区二区| 色色婷婷五月天| 91九色丰满高潮| 精品在线观看视频在线| 狠狠躁日日躁夜夜躁A| 眼镜人妻101.com| 熟妇艹鸡八| 久久性爱视频99| 久久亚州高清| 欧美性爱日韩高清| 五月婷婷hd| 国内毛片无遮挡国产| 天天日天天射天天干| 欧美传媒| 精品无码一二三四区| 伊人精品久久网站| 亚洲综合九| 亚洲日韩精品一区视频在线| 欧洲亚洲天堂精品| 日韩精品黄片免费观看| 超碰 国产熟女精品一区| 国产浮力影院第1页| 97亚洲国产| 亚洲中文字幕av| 人妻丝袜二区| 97人肏| 韩日色费| 91丝袜美腿片| 国产AV高清AV无码| 国产成人五月天丁香花| 超碰79人人乐| 国产精品不卡一区二区电影| 蜜臀久久在线视频| 性做久久久久久久| 超碰色美女| 欧美图片偷拍| 91精品久久久| 欧美极品色| 五月天激情婷婷| 一起草三级AV电影在线观看| 色噜噜人妻丝袜AV资源| 亚欧无码在线| 精品人妻一区二区三区视频在线| 97天天搞在线| 久久五十路熟女人妻| 日本国产二线女色| 久久国产三区| 黄色片,com| 99久久久| 亚洲天堂第一页| 黄色av一区二区在线| 啊啊啊啊网站| www.男人天堂| 婷婷月色| 天天日天天搞天天干| 老鸭窝成人| 天天淫人人妻日日色| 无码av永久免费专区网站| 91精品丝袜久久久久久| 综合久欧洲| 色官网在线| 日韩免费在线观看不卡| 青青青草伊人精品| 国产人伦精品一区二区三区| 国产精品免费美女视频| 91在线视频国产网站| 91美女高潮| 国产精品午夜成人福利| 精品性爱无码在线播放| 综合伊人网12色| 日本二区不卡| 极品久久久久久久久久久久久久| 五月丁香综合激情| 国产精品无码av| 一区二区乱码福利| 91天天爽| 亚洲天堂人人妻| 熟女丰满人妻一区| 亚洲AV成人无码一区二区三区在线观看| 日韩成人私密一级精品av| 国产三级中文字幕粉嫩| 欧美熟女妇同| 超碰调教97| 亚洲AV永久无码一区仙野| 无码人妻精品一区二区三区99不卡| 91美女视频。| 欲女人妻性色av| a人欧美综合天堂麻豆| 一区二区偷拍拍视频| 手机看片1025| 久久一区二区高清免费| 四虎国产精品永久在线囯在线 | 美女久久久久久久| www.99在线| 曰韩人妻中文字幕在线| 精品熟妇视频一区二区| 国产女人9999| 色大师网站www永久网站视频| 久久一二三四五六七八九区区区 | 青青草狠狠撸| 久久久久密臀一区二区| 极品白嫩福利在线| AV九九| 人妻99p| 久久精品国产72国产精品福利 | 伊人午夜福利视频| 白丝在线一区| 91AV天堂| 欧美大片天天看| 极品粉嫩少妇视频| 天美一二三在线观看Av| 操人妻丝袜高跟| 啪啪91| 人妻精品综合中文字幕在线| 99色悠悠| 一道本久久棕合爱| 大香蕉操久久| 91人人爽人人爽| 久无码| 啪啪91| 爱欲AV| 亚洲第一色页夜| 粉嫩AV一区夜夜嗨| 乱欲性色| 青操影院| 91 亚欧| 久久香蕉国产线看观看亚洲女人 | 蜜臀久久99精品久久久久久婷婷| 亚洲丝袜少妇在线| 91处女在线观看| 麻豆视频国产一区二区| 国产一级特黄大片处女| 韩国成人精品久久久免费看|