• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    模式驅(qū)動的系統(tǒng)安全性設計的驗證*

    2020-07-27 10:41:44鄭小宇劉冬梅杜益寧周子健邱玫媚
    計算機工程與科學 2020年7期
    關(guān)鍵詞:斷言謂詞公理

    鄭小宇,劉冬梅,杜益寧,周子健,邱玫媚,朱 鴻

    (1.南京理工大學計算機科學與工程學院,江蘇 南京 210094;2.Oxford Brookes大學工程、計算和數(shù)學學院,英國 牛津 OX33 1HX)

    1 引言

    隨著系統(tǒng)安全性研究的日益深入和安全性技術(shù)的不斷成熟,研究人員提出了一組可以廣泛使用的安全設計模式[1],以模式組合為基本特征的系統(tǒng)安全性工程已經(jīng)逐漸成熟[2-4]。其基本思想是,根據(jù)實際應用場景中的身份驗證、訪問控制、數(shù)據(jù)完整性等安全需求,開發(fā)人員識別適用的安全模式,并將這些模式進行組合,形成整個系統(tǒng)的安全解決方案。通常,整個系統(tǒng)的安全解決方案包括多種安全機制,每個機制又可能由多個適合不同應用場景和條件的模式組成。因此,系統(tǒng)的安全性解決方案往往是許多模式的組合。由于系統(tǒng)安全性需求的復雜性和安全機制之間關(guān)系的復雜性,是否正確地選擇了安全機制、是否正確地使用了實現(xiàn)安全機制的模式、是否正確地將模式組合在一起以達到安全機制的功能等已成為安全性工程亟待解決的問題。針對這些問題,本文提出一個以代數(shù)規(guī)約為基礎的安全解決方案的設計和驗證方法。

    目前,對安全解決方案進行驗證的主要思路是先將UML模型轉(zhuǎn)換成通信演算系統(tǒng)CCS(Calculus of Communicating Systems)[5]、Petri網(wǎng)和代數(shù)規(guī)約[6]、Alloy[7]等形式化規(guī)約,再使用模型檢測工具進行驗證。這類方法能夠較好地驗證單個安全模式是否滿足給定的安全需求,但缺少對模式組合細節(jié)的描述,難以驗證組合的正確性。雖然也可將系統(tǒng)的安全解決方案看做一個整體,應用這些方法來驗證系統(tǒng)的安全性,但是系統(tǒng)的規(guī)模和復雜度限制了這些方法的實用性,而且當發(fā)現(xiàn)錯誤時難以迅速定位缺陷。此外,模型檢測工具只能用于驗證模型屬性,無法進一步對系統(tǒng)實現(xiàn)進行安全性測試。

    代數(shù)規(guī)約是一種支持自動化軟件測試的形式化方法,已被廣泛應用于面向?qū)ο蟮能浖④浖?gòu)件、Web服務描述和測試中[8 - 10]。大量案例研究表明[11 - 13],相對于其他形式化方法,代數(shù)規(guī)約具有簡短精確、易學易理解、高度模塊化等特點,更適合描述復雜的系統(tǒng)。文獻[14]提出了代數(shù)規(guī)約的組合方法,使用由抽象規(guī)約和實現(xiàn)規(guī)約組成的雙元結(jié)構(gòu)描述服務組合,其中抽象規(guī)約描述服務組合結(jié)果的需求,實現(xiàn)規(guī)約描述如何將已知服務組合在一起。文獻[14]還闡明了如何用已知服務的代數(shù)規(guī)約和組合描述的雙元結(jié)構(gòu)形式化地證明服務組合的正確性。本文中的案例表明,該雙元結(jié)構(gòu)也適用于描述安全模式的組合,其中抽象規(guī)約描述系統(tǒng)的安全需求,實現(xiàn)規(guī)約描述安全解決方案中如何將安全模式進行組合以滿足需求。此外,本文在已有工作的基礎上,進一步研究對代數(shù)規(guī)約組合的自動驗證,應用模型檢測工具自動分析并驗證安全解決方案規(guī)約的正確性。

    本文提出的方法可以概括為4個步驟:(1)首先使用模塊化設計思想對安全解決方案的結(jié)構(gòu)進行分解,確定方案中包含的基本模塊和模塊間的依賴關(guān)系,以及各個模塊所使用的模式。(2)使用代數(shù)規(guī)約語言以代數(shù)為基礎的面向服務的形式化語言SOFIA(Service-Oriented Formalism In Algebras)描述每個基本模塊中包含的數(shù)據(jù)結(jié)構(gòu)和操作,確定模塊是如何將模式實例化的,并驗證基本模塊的形式化規(guī)約是否滿足安全需求。(3)使用SOFIA抽象規(guī)約和實現(xiàn)規(guī)約分別描述組合模塊的對外功能和內(nèi)部實現(xiàn),并驗證模塊是否正確組合了其使用的模式且滿足安全需求。(4)通過基于代數(shù)規(guī)約的自動測試檢查系統(tǒng)實現(xiàn)的正確性。由于篇幅所限,本文僅討論安全性的形式化驗證,對于自動測試的研究將另文報告。

    2 系統(tǒng)安全性設計與驗證流程

    如圖1所示,模式驅(qū)動的系統(tǒng)安全性建模和驗證流程包括設計流程、形式化建模流程和驗證流程。

    Figure 1 Pattern-driven system security design and verification flow圖1 模式驅(qū)動的系統(tǒng)安全性設計和驗證流程

    設計流程根據(jù)安全性需求將安全解決方案分解為相對獨立的模塊,并確定各個模塊使用的安全解決方案設計模式,然后結(jié)合模塊間的相互關(guān)系構(gòu)造方案的設計結(jié)構(gòu)圖,采用拓撲排序確定模塊的建模和驗證順序。

    形式化建模流程根據(jù)設計方案中使用的安全模式構(gòu)造各個基本模塊的代數(shù)規(guī)約,然后使用抽象規(guī)約和實現(xiàn)規(guī)約組成的雙元結(jié)構(gòu)描述組合模塊。

    驗證流程將SOFIA語言書寫的代數(shù)規(guī)約轉(zhuǎn)換成Alloy語言的規(guī)約后,依次驗證基本模塊和組合模塊規(guī)約的正確性。對于基本模塊,需要驗證其是否滿足公理中定義的功能和安全需求;對于組合模塊,首先驗證其是否正確組合了使用的安全模式,然后驗證模塊是否滿足抽象規(guī)約公理中定義的安全需求。

    3 安全模式及其代數(shù)歸約

    通過代數(shù)規(guī)約對安全模式進行建模,有助于進一步分析模式中包含的數(shù)據(jù)、操作及安全需求,從而為模式驅(qū)動的系統(tǒng)安全性建模奠定基礎。分析現(xiàn)有的安全模式文檔[15]發(fā)現(xiàn),安全模式主要包含模式中使用的數(shù)據(jù)結(jié)構(gòu)和操作語義,同時包括模式的安全需求、類型和適用平臺等相關(guān)信息,因此可以使用四元組表示安全模式,其定義如下:

    定義1(安全模式(Security Pattern)) 安全模式描述了特定應用場景下的安全需求以及相應的解決方案,使用四元組〈S,O,R,I〉表示,其中:

    S表示安全模式中使用的數(shù)據(jù)類型,描述模式的靜態(tài)結(jié)構(gòu)。

    O表示安全模式中的操作及其語義,描述模式的動態(tài)行為。

    R表示安全模式要實現(xiàn)的安全需求,通常使用一組操作序列構(gòu)成的應用場景對其進行描述。

    I表示安全模式的相關(guān)信息。I=〈C,P,D〉,其中C表示安全模式的類型,如身份認證、訪問控制等;P表示安全模式的適用平臺,大多數(shù)模式獨立于平臺,少部分模式依賴特定平臺;D表示該模式依賴的其他模式。

    根據(jù)上述定義,使用SOFIA語言描述安全模式的主要結(jié)構(gòu),構(gòu)建安全模式的代數(shù)規(guī)約。代數(shù)規(guī)約語言SOFIA將模式和S中的每個數(shù)據(jù)類型定義為一個類子(Sort),類子包括基調(diào)(Signature)和公理(Axiom)2個部分,其中基調(diào)描述類型中的數(shù)據(jù)成員和O中的操作集合,包括各操作的操作名和輸入輸出參數(shù)。公理描述O中的操作行為和模式安全需求R。模式信息I用于輔助開發(fā)人員選擇合適的模式,與形式化驗證無關(guān),使用自然語言描述。

    安全模式的代數(shù)規(guī)約使用三元組〈S,Σ,Ax〉表示[16],其中,S=〈S,?,>〉表示規(guī)約包含的類子集合及其上的擴展和依賴關(guān)系,Σ表示基調(diào)集合,Ax表示公理集。本節(jié)在文獻[16]定義的基礎上將規(guī)約中的公理集Ax細分為描述數(shù)據(jù)類型約束的公理集Axattr,描述單個操作語義的公理集Axop以及描述操作組合序列(即應用場景中的安全需求)的公理集Axseq,即Ax=Axattr∪Axop∪Axseq。

    下面以基于會話的身份認證模式Session中的創(chuàng)建和驗證會話操作為例,說明如何使用代數(shù)規(guī)約描述安全模式。相關(guān)數(shù)據(jù)類型S包含會話數(shù)據(jù)和數(shù)據(jù)庫,安全需求R為“通過Session能夠獲取登錄用戶信息”,可使用“用戶創(chuàng)建Session后查詢該Session,結(jié)果中的用戶ID與創(chuàng)建時的用戶ID一致”的應用場景進行描述。

    SpecSession;

    usesInteger,String;

    Attrid:String;uid:Integer;created:Integer;

    End

    SpecSessDB;

    usesListOfSession;

    Attrdatas:ListOfSession;

    End

    SpecSessReturn;

    usesSession,SessDB;

    Attrsess:Session;sdb:SessDB;

    End

    SpecSessM;

    usesString,Integer,Bool,Expire,SessReturn,…;

    Retr

    verify_sess(SessDB,String,Integer):Bool;

    get_sess(SessDB,String,Integer):Session;

    Tran

    create_sess(SessDB,Integer,Integer):SessReturn;

    Axiom

    Foralls:SessM,util:UtilOp,e:Expire,sid:String,

    t:Integer,sdb:SessDBthat

    letsess=util.getDataById(sid,sdb)in

    s.verify_sess(sdb,sid,t) = true;

    ifsess〈〉null,sess.last+e.expire>=t;//公理1

    s.verify_sess(sdb,sid,t) = false;

    ifs= null;//公理2

    s.verify_sess(sdb,sid,t) = false;

    ifsess.last+e.expire

    End

    End

    Foralls:SessM,util:UtilOp,e:Expire,sid:String,

    sdb:SessDB,u,t:Integerthat

    letsr=s.create_sess(sdb,u,t)in

    sr.sess.uid=u;//公理4

    sr.sess.created=t;//公理5

    sr.sdb=util.union(sdb,sr.sess);//公理6

    End

    End

    Foralls:SessM,sid:String,sdb1,sdb2:SessDB,

    u,t:Integerthat

    s.create_sess(sdb1,u,t);get_sess(sdb2,sid,t).uid=u;

    ifsdb2=s.create_sess(sdb1,u,t).sdb;

    sid=s.create_sess(sdb1,u,t).sess.id;//公理7

    End

    End

    上述規(guī)約中的類子集合S包括模式類子SessM,數(shù)據(jù)庫SessDB、會話Session和操作結(jié)果SessReturn,其中SessM類子的基調(diào)定義了驗證操作verify_sess、創(chuàng)建操作create_sess和查詢操作get_sess,公理集合中的公理1~公理3描述驗證操作,表示僅當Session不為空且未過期時才能通過驗證并返回true,否則返回false;公理4~公理6則描述創(chuàng)建操作,表示新創(chuàng)建的Session中保存當前用戶的ID和創(chuàng)建時間t;Axseq中的公理7則描述了上述應用場景,表示用戶依次調(diào)用創(chuàng)建和查詢操作,如果調(diào)用查詢操作時提供的Session ID等于創(chuàng)建Session時返回的Session ID,則返回Session中的用戶ID與當前用戶一致。

    4 安全解決方案的設計和建模

    4.1 安全解決方案的模塊化設計

    設計安全解決方案的主要思路是根據(jù)系統(tǒng)安全需求確定方案應實現(xiàn)的功能,將其分解為一系列模塊,并確定模塊使用的安全模式,為形式化建模打下基礎。在模塊化設計的過程中,基本模塊粒度過大往往會導致模塊內(nèi)部仍存在復雜的結(jié)構(gòu),從而加大建模的難度;而粒度過小則需要將模塊進行多次組合,使建模流程變得繁瑣。針對這一問題,本文根據(jù)現(xiàn)有軟件模塊化設計研究[17,18]給出的策略設計安全解決方案,并分析各個模塊對外提供的接口和需要調(diào)用的接口,確定模塊間的依賴關(guān)系,從而構(gòu)造安全解決方案的設計結(jié)構(gòu)圖,其定義如下:

    定義2(安全解決方案的設計結(jié)構(gòu)圖(Structure Diagram of Security Solution)) 一個安全解決方案的設計結(jié)構(gòu)圖G=〈N,E,l〉使用L(L≥2)層有向無環(huán)圖表示,其中:

    N表示節(jié)點集,N=Ns∪Nm,其中Ns表示基本模塊節(jié)點集合,Nm表示組合模塊節(jié)點集合。

    E表示邊集,E=Ed∪Ec,Ed中的邊表示模塊間的依賴關(guān)系,使用帶箭頭的實線表示;Ec中的邊表示模塊間的組合關(guān)系,使用帶菱形的實線表示,Ec?(Ns×Nm)∪(Nm×Nm)。對于邊(n,n′)∈Ec,稱n是n′的一個子模塊。

    l表示節(jié)點層次標識函數(shù)n→{i|0≤i≤L-1},基本模塊節(jié)點ns的層數(shù)l(ns)=0;組合模塊節(jié)點nm的層數(shù)l(nm)=max(l(Nsub))+1,其中Nsub為nm的子模塊集合。

    圖2以一個基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)管理方案DataM為例,給出了該安全解決方案的設計結(jié)構(gòu)。該方案的安全需求為僅允許用戶對其擁有的數(shù)據(jù)或具有訪問權(quán)限的數(shù)據(jù)進行操作,當數(shù)據(jù)所有者為多個用戶時,由這些用戶共同決定是否授予其他用戶訪問權(quán)限。因此安全解決方案需實現(xiàn)數(shù)據(jù)操作、訪問控制和共識機制等功能,劃分為DataOp、DataAC和Vote 3個子模塊,其中DataOp模塊無需使用安全模式,Vote模塊使用投票模式;然后進一步分析DataAC包含的2種訪問控制機制,將其劃分為基于數(shù)據(jù)所有者的Owner和基于策略的Policy 2個子模塊;最后根據(jù)模塊接口的相互調(diào)用確定依賴關(guān)系,完成設計結(jié)構(gòu)圖的構(gòu)造。

    Figure 2 Structure diagram of security solution design圖2 安全解決方案的設計結(jié)構(gòu)圖

    設計結(jié)構(gòu)圖同時反映出模塊的建模和驗證順序,由定義1可知,圖中節(jié)點的入度表示該模塊依賴和組合的其他模塊數(shù)量,因此采用拓撲排序思路優(yōu)先遍歷層數(shù)較低的節(jié)點生成模塊序列,如DataOp→Owner→Policy→Vote→DataAC→DataM。

    4.2 安全解決方案的建模

    安全解決方案的建模流程包括2個主要步驟:首先根據(jù)設計結(jié)構(gòu)圖給出的建模順序依次將各個基本模塊使用的安全模式實例化,然后使用抽象規(guī)約和實現(xiàn)規(guī)約分別描述組合模塊的對外功能和內(nèi)部實現(xiàn)。

    安全模式中往往使用抽象數(shù)據(jù)類型,與實際應用中的數(shù)據(jù)類型存在一定差異,其代數(shù)規(guī)約無法直接用于安全解決方案的建模。因此,需要對基本模塊使用的安全模式進行實例化,將模式規(guī)約中描述抽象數(shù)據(jù)的類子替換為描述應用場景中具體數(shù)據(jù)的類子,并更新使用這些類子的操作和公理。實例化操作得到的基本模塊代數(shù)規(guī)約與安全模式的代數(shù)規(guī)約相同,使用三元組〈S,Σ,x〉表示。

    以基于數(shù)據(jù)所有者的訪問控制模式Owner為例,若使用該模式構(gòu)建病歷管理模塊,其包含的抽象數(shù)據(jù)類型SOData需要實例化為病歷數(shù)據(jù)MedicalCase,將owner屬性更名為patient_id,同時新增了就診時間visit_time和就診醫(yī)院hospital等屬性,實例化前后的類子規(guī)約如下所示:

    SpecSOData; //實例化前的類子SOData

    usesInteger;

    Attr

    owner:Integer;

    End

    SpecMedicalCase;//實例化后的類子MedicalCase

    usesInteger,Date,String;

    Attr

    patient_id:Integer;

    visit_time:Date;

    hospital:String;

    End

    實例化后的MedicalCase數(shù)據(jù)類型使用patient_id屬性存儲病歷所有者,因此驗證數(shù)據(jù)所有者操作中的公理也更新為使用patient_id屬性與當前用戶ID進行比較,相關(guān)公理如下所示:

    //實例化前的公理

    o.owner_verifier(db,uid,i) = true,ifd.owner=uid;

    //實例化后的公理

    o.owner_verifier(db,uid,i) = true,ifd.patient_id=ac.id,…;

    以4.1節(jié)中的DataM模塊為例,該模塊為包含DataAC、DataOp和Vote 3個子模塊的組合模塊,其代數(shù)規(guī)約包括抽象規(guī)約DataM和實現(xiàn)規(guī)約DataMImp 2部分。模塊中的數(shù)據(jù)更新操作update的相關(guān)公理如下所示:

    dac.update(ac,s,did,db,pdb).content=s,

    ifdac.access_verifier(ac,did,2,pdb) = true;∥axA

    dac.update(ac,s,did,db,pdb) =dac.dop.update(ac,s,did,db),

    ifdac.access_verifier(ac,did,2,pdb) = true;∥axI

    抽象規(guī)約中的公理axA表示若當前用戶通過權(quán)限驗證,則返回更新后的數(shù)據(jù)內(nèi)容;實現(xiàn)規(guī)約中的公理axI則表示首先調(diào)用DataAC中的權(quán)限驗證操作,若驗證通過再調(diào)用DataOp中的數(shù)據(jù)更新操作實現(xiàn)更新功能。

    5 代數(shù)規(guī)約的轉(zhuǎn)換和驗證

    本節(jié)將SOFIA規(guī)約轉(zhuǎn)換為Alloy規(guī)約后,使用模型檢測工具[19]依次驗證方案中的基本模塊是否滿足安全需求,以及組合模塊是否正確組合了其子模塊且滿足安全需求。其中SOFIA規(guī)約中描述數(shù)據(jù)類型的類子對應為Alloy規(guī)約中的signature,類子的基調(diào)對應為Alloy規(guī)約中的enum或field。對于區(qū)塊鏈應用中的基本模塊,其SOFIA規(guī)約中描述單個操作的公理定義了各個操作的行為,對應為Alloy規(guī)約的謂詞;而描述操作序列的公理定義了模塊在具體應用場景中的安全需求,對應為Alloy規(guī)約的斷言。對于組合模塊,實現(xiàn)規(guī)約公理必須正確實現(xiàn)抽象規(guī)約公理中定義的模塊行為,因此對應為Alloy規(guī)約的謂詞;而抽象規(guī)約中的公理對應為斷言,用于驗證模塊使用的安全模式是否被正確組合和模塊是否滿足安全需求。接下來將在此基礎上分析2種規(guī)約間的映射關(guān)系并構(gòu)造轉(zhuǎn)換規(guī)則,從而將區(qū)塊鏈應用的SOFIA規(guī)約轉(zhuǎn)換為Alloy規(guī)約。

    5.1 基本模塊的規(guī)約轉(zhuǎn)換

    基本模塊的Alloy規(guī)約使用七元組〈S,M,Enum,F,O,P,A〉表示,定義如下:

    定義3(基本模塊的Alloy規(guī)約(Alloy Specification of Basic Module)) 使用Alloy語言對基本模塊進行形式化描述,所得規(guī)約是一個七元組〈S,M,Enum,F,O,P,A〉,其中:

    S表示基本模塊中的類和類之間的繼承關(guān)系。S=〈S,?〉,其中S表示規(guī)約中signature的集合,?表示S上的擴展(繼承)關(guān)系。

    M(Members)表示類中的數(shù)據(jù)成員,M={Ms|s∈S},Ms表示s中的數(shù)據(jù)成員集合。

    Enum(Enumeration)表示模式中的枚舉類型集合。

    F(Fact)表示模塊中數(shù)據(jù)類型應滿足的約束,F(xiàn)={Fs|s∈S},其中Fs表示對s中數(shù)據(jù)成員的約束。對于每個f∈F,f=〈fV,fp〉,其中fV為變量集合,fp為一個約束條件。

    O(Operation)表示模塊中的操作集合。對于每個o∈O,o=〈φ,In,Out〉分別表示操作名和操作的輸入輸出參數(shù)集合。

    P(Predicate)表示模塊中操作的行為。P={Po|o∈O},其中Po表示對操作o的謂詞約束集合。

    A(Assert)表示模塊的安全需求。對于每個a∈A,a=〈aV,ap〉,其中aV表示斷言中使用的變量集合,ap=〈seq,ae〉表示斷言中的謂詞約束,seq表示謂詞中包含的操作序列,ae表示執(zhí)行操作序列后應成立的等式。

    根據(jù)上述定義,分析2種規(guī)約之間的映射關(guān)系,進而給出以下的轉(zhuǎn)換規(guī)則:

    規(guī)則1將SOFIA規(guī)約中的S轉(zhuǎn)換為Alloy規(guī)約中的S。其中,SOFIA規(guī)約的類子集合S和擴展關(guān)系?轉(zhuǎn)換為Alloy規(guī)約的signature集合S和擴展關(guān)系?,而使用關(guān)系在Alloy規(guī)約中沒有顯式定義,無需轉(zhuǎn)換。

    規(guī)則2對于SOFIA規(guī)約中每個類子的基調(diào)單元Σs∈Σ,將其中的常操作子(Const)加入Alloy規(guī)約的枚舉類型集合Enum,屬性操作子(Attr)轉(zhuǎn)換為Alloy規(guī)約中對應signature的數(shù)據(jù)成員Ms∈M,其它操作子(Retr&Tran)則轉(zhuǎn)換為Alloy規(guī)約中的一個操作o∈O。

    規(guī)則3對于SOFIA規(guī)約中每個描述數(shù)據(jù)類型約束的公理axattr=〈V,e〉,轉(zhuǎn)換為Alloy規(guī)約中的f∈F,其中變量集V轉(zhuǎn)換為fV,條件等式e轉(zhuǎn)換為fp。

    規(guī)則4對于SOFIA規(guī)約中每個描述單個操作的公理axop=〈V,e〉,將公理中的條件等式e轉(zhuǎn)換為Alloy規(guī)約中對應操作o的一條謂詞約束po∈Po,其中變量為操作o的輸入輸出參數(shù)。

    規(guī)則5對于SOFIA規(guī)約中每個描述操作序列的公理axseq=〈V,e〉,轉(zhuǎn)換為Alloy規(guī)約中的一個斷言a∈A,其中變量集V轉(zhuǎn)換為aV,條件等式e轉(zhuǎn)換為seq?ae。

    根據(jù)上述規(guī)則構(gòu)造基本模塊的規(guī)約轉(zhuǎn)換算法,表1給出了算法中使用的符號及描述。

    Table 1 Symbols and descriptions in algorithm 1

    算法1基本模塊的規(guī)約轉(zhuǎn)換算法

    輸入:基本模塊SOFIA規(guī)約〈S,Σ,Ax〉。

    輸出:基本模塊Alloy規(guī)約〈S,M,Enum,F,O,P,A〉。

    1.foreachs∈Sdo/* 遍歷SOFIA規(guī)約的類子,根據(jù)規(guī)則1和2進行轉(zhuǎn)換 */

    2.S←S+s;?←?+?S;/* 轉(zhuǎn)換類子s及其擴展關(guān)系 */

    5.endfor

    6.S=〈S,?〉;

    7.foreachax∈Axdo//遍歷公理集合

    8.ifax∈Axattrthen/*根據(jù)規(guī)則3將描述數(shù)據(jù)約束的公理轉(zhuǎn)換為fact*/

    9.fV=ax.v;fp=ax.e;F←F+〈fV,fp〉;/*將轉(zhuǎn)換得到的fact加入集合F*/

    10.endif

    11.ifax∈Axopthen/* 根據(jù)規(guī)則4將描述單個操作的公理轉(zhuǎn)換為一條謂詞約束 */

    12.o=∏op(ax);Po←Po+ax.e;/* 將公理等式加入對應操作o的謂詞集合 */

    13.endif

    14.ifax∈Axseqthen/* 根據(jù)規(guī)則5將描述操作序列的公理轉(zhuǎn)換為斷言 */

    15.seq=∏oplist_seq(ax);aV=ax.v;ae=ax.e;/* 獲取公理的操作、變量和等式*/

    16.foreacho∈seqdo/* 遍歷操作集合,將操作的輸出變量加入變量集 */

    17.aV←aV+∏out(o);

    18.endfor

    19.A←A+〈aV,〈seq,ae〉〉;/*將轉(zhuǎn)換得到的斷言加入集合A*/

    20.endif

    21.endfor

    22.foreacho∈Odo/* 公理處理完成后,遍歷操作集合 */

    23.P←P+Po/* 將遍歷到的操作的謂詞加入集合P*/

    24.endfor

    25.return〈S,M,Enum,F,O,P,A〉

    5.2 組合模塊的規(guī)約轉(zhuǎn)換

    組合模塊使用其子模塊定義的數(shù)據(jù)類型,因此其Alloy規(guī)約不包含對數(shù)據(jù)類型的描述,使用三元組表示,定義如下:

    定義4(組合模塊的Alloy規(guī)約(Alloy Specification of Composition Module)) 使用Alloy語言對組合模塊進行形式化描述,所得規(guī)約是一個三元組〈O,P,A〉,其中:

    O(Operation)表示模塊中的操作集合。

    P(Predicate)表示模塊中操作的內(nèi)部實現(xiàn)。P={Po|o∈O},其中Po表示描述操作o內(nèi)部實現(xiàn)的謂詞集合。

    以下規(guī)則從組合模塊的SOFIA規(guī)約中提取出定義操作的基調(diào)集合、描述操作內(nèi)部實現(xiàn)和功能特性的公理集合,以及描述操作序列的公理集合,并將其轉(zhuǎn)換為Alloy規(guī)約:

    規(guī)則6將抽象規(guī)約的基調(diào)集合ΣA加入Alloy規(guī)約的操作集合O。

    規(guī)則9將實現(xiàn)規(guī)約的基調(diào)集合ΣI加入Alloy規(guī)約的操作集合O。

    規(guī)則10對于實現(xiàn)規(guī)約的每條公理axI=〈V,e〉,將公理中的條件等式e轉(zhuǎn)換為Alloy規(guī)約中對應操作o的一條謂詞約束po∈Po,其中變量為操作o的輸入輸出參數(shù)。

    根據(jù)上述規(guī)則給出組合模塊的規(guī)約轉(zhuǎn)換算法,算法的主要思路是依次處理抽象規(guī)約的基調(diào)和公理集,分別轉(zhuǎn)換為Alloy規(guī)約的操作集合和斷言集合,然后將實現(xiàn)規(guī)約的公理轉(zhuǎn)換為Alloy規(guī)約中對應操作的謂詞。除表1中定義的符號外,該算法還需要使用∏op_imp(axI)和∏oplist_abs(axA)2個符號,其中∏op_imp(axI)表示實現(xiàn)規(guī)約公理axI的對應操作,∏oplist_abs(axA)表示抽象規(guī)約公理axA包含的操作集合。

    算法2組合模塊的規(guī)約轉(zhuǎn)換算法

    輸入:組合模塊SOFIA規(guī)約,包括實現(xiàn)規(guī)約SI和抽象規(guī)約SA。

    輸出:組合模塊Alloy規(guī)約〈O,P,A〉。

    1.O←O+ΣA/* 將抽象規(guī)約的基調(diào)單元加入操作集合O*/

    2.foreachax∈AxA do//遍歷抽象規(guī)約的公理集

    3.seq=∏oplist_abs(ax);aV=ax.v;e=ax.e;/*獲取公理的操作集、變量集和等式*/

    4.foreacho∈seqdo/* 遍歷操作集合,將操作的輸出變量加入變量集 */

    5.aV←aV+∏out(o);

    6.endfor

    9.elseAseq←Aseq+〈aV,〈seq,e〉〉;/* 否則加入描述安全需求的集合Aseq*/

    10.endif

    11.endfor

    12.foreachax∈AxIdo//遍歷實現(xiàn)規(guī)約的公理集

    13.o=∏op_imp(ax);Po←Po+ax.e;/* 將公理等式加入對應操作o的謂詞集合*/

    14.endfor

    15.foreacho∈Odo/* 實現(xiàn)公理處理完成后,遍歷操作集合 */

    17.endfor

    18.A=Aop+Aseq;

    19.return〈O,P,A〉

    5.3 安全解決方案的驗證

    安全解決方案的規(guī)約中往往存在操作的前后置條件定義錯誤、模塊間的操作調(diào)用錯誤等缺陷,導致方案無法滿足安全需求。本節(jié)使用模型檢測工具Alloy Analyzer分析規(guī)約中的謂詞和斷言,檢查規(guī)約中是否存在上述缺陷,從而對規(guī)約的正確性進行驗證。

    規(guī)約的驗證過程包括2個階段,第1階段驗證基本模塊是否滿足安全需求,第2階段驗證組合模塊是否正確組合了其子模塊且滿足安全需求。下面分別介紹2個驗證階段的主要步驟。

    在第1階段中,對于方案中的每個基本模塊,首先執(zhí)行由謂詞定義的操作,以檢查該操作的前后置條件是否與模塊中的其他公理存在相互矛盾。然后將模塊中的斷言改寫為謂詞,其中斷言包含的全局變量被轉(zhuǎn)換為謂詞的變量,斷言等式被轉(zhuǎn)換為謂詞等式,改寫示例如下所示:

    assertassertion{//改寫前的斷言

    allv1:type1,v2:type2 |op[v1,v2] ?v1=v2

    }

    predpredicate[v1:type1,v2:type2] {/*改寫后的謂詞*/

    op[v1,v2] =>v1=v2

    }

    改寫后的謂詞用于檢查斷言中定義的操作序列和需求是否存在矛盾,最后驗證各個斷言是否成立,以檢查模塊是否滿足斷言中定義的安全需求。

    第2階段中對組合模塊的驗證包括以下3個步驟,其中步驟1和步驟2用于驗證模塊組合的正確性,步驟3用于驗證模塊是否滿足需求。

    步驟1驗證模塊中各個謂詞的可滿足性。

    組合模塊中的謂詞定義了模塊中的操作如何通過調(diào)用其子模塊中的的操作實現(xiàn)相應功能,如果謂詞中的操作調(diào)用是正確的,則謂詞應當是可滿足的,即能夠生成滿足謂詞的實例。因此,對于模塊中每個操作o對應的謂詞,使用模型檢測工具生成滿足謂詞的實例。如果無法生成實例,則表明操作調(diào)用存在錯誤。

    步驟2驗證模塊中各個操作的功能特性。

    步驟3驗證應用場景中的安全需求。

    組合模塊中描述操作序列的斷言定義了模塊在應用場景中應滿足的安全需求。因此,對于模塊中每個描述操作序列的斷言,首先將斷言改寫為謂詞并生成實例,若能夠生成實例,則表明斷言中不存在相互矛盾。然后在給定范圍內(nèi)生成違背斷言的反例,若無法生成反例,則表明斷言在給定范圍內(nèi)成立,即模塊滿足該斷言中定義的安全需求。

    根據(jù)文獻[20]中案例研究的結(jié)論,較小范圍的實例能夠檢測出絕大多數(shù)的缺陷,因此可以認為經(jīng)過上述步驟驗證的斷言對所有實例都成立。

    6 案例研究

    6.1 案例描述

    本文以4.1節(jié)的安全解決方案DataM為研究案例,該方案由基本模塊DataOp、Vote和組合模塊DataAC組成,因此其SOFIA規(guī)約包含Basic、UtilOp、DataOp、Owner、Policy、Vote、DataAC、DataACImp、DataM、DataMImp共10個規(guī)約包[14],規(guī)約結(jié)構(gòu)如圖3所示。

    Figure 3 Specifications structure of security solution DataM圖3 安全解決方案DataM規(guī)約結(jié)構(gòu)

    規(guī)約中的Basic描述方案中使用的基本數(shù)據(jù)類型;UtilOp描述了一些公共操作,如集合操作、查詢操作等;Owner、Policy、Vote、DataOp分別是數(shù)據(jù)所有者驗證、訪問策略管理、投票管理以及數(shù)據(jù)操作規(guī)約包;DataAC和DataACImp分別是訪問權(quán)限驗證的抽象規(guī)約包和實現(xiàn)規(guī)約包;DataM和DataMImp分別是數(shù)據(jù)管理方案的抽象規(guī)約包和實現(xiàn)規(guī)約包。對應的Alloy規(guī)約將組合模塊的抽象規(guī)約和實現(xiàn)規(guī)約合并為一個模塊,其余部分的結(jié)構(gòu)與SOFIA規(guī)約基本相同。

    由于Basic、UtilOp、DataOp中不包含數(shù)據(jù)安全相關(guān)的操作,因此本案例主要分析Owner、Policy等7個規(guī)約包及其轉(zhuǎn)換后的Alloy規(guī)約模塊。SOFIA規(guī)約中的類子、操作和公理數(shù)量及對應Alloy規(guī)約中的signature(表中簡寫成sig)、fact、謂詞和斷言數(shù)量見表2。

    Table 2 Statistics of specifications

    6.2 實驗結(jié)果和分析

    將Alloy規(guī)約中具有相同操作序列的斷言合并后,首先使用Alloy Analyzer分析Owner、Policy和Vote基本模塊中的謂詞和斷言,驗證基本模塊的正確性,然后執(zhí)行DataAC和DataM規(guī)約中謂詞描述的操作并驗證描述單個操作和安全需求的斷言,從而驗證組合的正確性和模塊的安全性。以DataM規(guī)約為例,其合并斷言后的Alloy規(guī)約中包含4個謂詞集合、4個描述單個操作的斷言集合和10個描述安全需求的斷言集合,驗證結(jié)果顯示描述操作的謂詞及斷言改寫的謂詞均能生成實例,且斷言均無法生成反例,表明該方案能夠滿足定義的安全需求。

    接下來向方案的SOFIA規(guī)約中注入單缺陷,再轉(zhuǎn)換為Alloy規(guī)約進行驗證。其中,注入缺陷的位置為基本模塊規(guī)約和組合模塊實現(xiàn)規(guī)約中描述單個操作的公理,此類公理被轉(zhuǎn)換為Alloy規(guī)約中描述操作的謂詞,因此能夠通過驗證模塊中的斷言檢測注入的缺陷。注入缺陷后的規(guī)約不能存在語法錯誤,否則將無法進行規(guī)約轉(zhuǎn)換和驗證。

    注入缺陷的類型包括替換公理中的常量、變量和操作,添加或刪除公理,刪除公理中的if條件等文獻[21]給出的代數(shù)規(guī)約常見缺陷。這些缺陷往往改變了模式中部分操作的前后置條件,或改變了模式間的操作調(diào)用關(guān)系,導致模式無法實現(xiàn)預期的安全需求。以下面的公理為例:

    pr.p.right=op;//公理1

    pr.p.right=uid; //缺陷公理1(替換變量)

    //公理2

    dac.getdata(uid,did,db,pdb) =dac.dop.getdata(db,did);

    //缺陷公理2(替換操作)

    dac.getdata(uid,did,db,pdb) =dac.dop.deldata(did);

    公理1為Policy規(guī)約中描述添加策略操作的公理,表示新策略的權(quán)限等級right等于輸入?yún)?shù)op。注入缺陷后變量op被替換為uid,即用戶id,導致添加策略操作出現(xiàn)錯誤。公理2為DataMImp規(guī)約中描述數(shù)據(jù)查詢操作的公理,表示調(diào)用DataOp模塊中的getdata操作查詢數(shù)據(jù)。注入缺陷后getdata操作被替換為刪除數(shù)據(jù)操作deldata,導致模式間的調(diào)用出錯。

    根據(jù)注入缺陷位置的不同,驗證方法可分為2類。對于基本模塊缺陷,首先執(zhí)行存在缺陷的操作謂詞,再驗證該模塊中的斷言;對于組合模塊缺陷,首先執(zhí)行存在缺陷的操作謂詞,再依次驗證該模塊中描述單個操作的斷言和安全需求的斷言。若驗證過程中描述操作的謂詞或由斷言改寫的謂詞無法生成實例,以及斷言成功生成反例,則表明該方法能夠發(fā)現(xiàn)缺陷,否則無法發(fā)現(xiàn)缺陷。表3給出了注入150個單缺陷后的驗證結(jié)果,即發(fā)現(xiàn)的缺陷數(shù)量與注入缺陷總數(shù)之比。

    Table 3 Verification results of defect injection

    分析表3中給出的驗證結(jié)果,可得出以下結(jié)論:

    (1)上述驗證方法能夠檢測出規(guī)約中的大部分缺陷。表3的驗證結(jié)果顯示,在注入的150個缺陷中有12個缺陷未被檢測出。進一步分析未被檢測出的缺陷發(fā)現(xiàn),其中5個缺陷沒有改變操作的行為,如替換一個對操作結(jié)果沒有影響的常量,或添加一條if條件永不成立的公理。以Vote模塊中的部分公理為例,這些公理表示根據(jù)投票屬性policyOp執(zhí)行權(quán)限授予、更新或解除3種操作。policyOp為枚舉類型,僅包含這3種操作,而缺陷公理的if條件表示policyOp不為這3種操作中的任何一種,因此這個條件不可能成立,缺陷公理對操作沒有影響。

    auth_grant_sys(pdb,v.user,v.data,v.right),ifv.op=grant;

    auth_update_sys(pdb,v.policy,v.right),ifv.op=update;

    auth_revoke_sys(v.policy,pdb),ifv.op=revoke;

    //缺陷公理

    …,ifv.op〈〉grant,v.op〈〉update,v.op〈〉revoke;

    (2)模塊中的公理必須正確、完整地描述安全需求。若公理缺少對部分應用場景的描述,則無法檢測出這些應用場景中的缺陷,未檢測出的7個缺陷屬于此類。如Policy模塊的授權(quán)操作中包含一個條件判斷,當用戶沒有權(quán)限或權(quán)限較低時才執(zhí)行操作,以防止重復授權(quán)。注入的缺陷刪除了這一條件,但由于模塊中的公理沒有描述重復授權(quán)的場景,因此無法檢測出該缺陷。

    實驗結(jié)果和上述分析表明,本文方法能夠有效地檢測出安全模式中的缺陷,但仍然存在一些問題。該方法只能驗證方案和定義的安全需求是否一致,而不能發(fā)現(xiàn)安全需求定義本身存在的漏洞。此外,組合模塊中描述安全需求的斷言往往包含3個以上的操作,導致驗證時生成的反例較為復雜,如DataM規(guī)約中的反例往往包含40個以上的變量,增加了在組合模塊中定位缺陷的難度。

    7 結(jié)束語

    本文提出了一個模式驅(qū)動的系統(tǒng)安全性設計與驗證方法,首先使用模塊化思想設計安全解決方案并確定方案中各個模塊使用的安全模式,然后使用SOFIA語言對模塊中包含的數(shù)據(jù)結(jié)構(gòu)和操作語義進行建模,最后將SOFIA規(guī)約轉(zhuǎn)換為Alloy規(guī)約進行安全性驗證。案例研究表明,該方法能夠有效地驗證安全解決方案設計的正確性。下一步的工作將使用SOFIA語言對常用的安全模式進行建模,構(gòu)建安全模式庫,并將該方法應用到一個完整的區(qū)塊鏈醫(yī)療系統(tǒng)的開發(fā)過程中,結(jié)合模型檢測和自動測試2種方式驗證該系統(tǒng),以提高區(qū)塊鏈應用的安全性。

    猜你喜歡
    斷言謂詞公理
    von Neumann 代數(shù)上保持混合三重η-*-積的非線性映射
    C3-和C4-臨界連通圖的結(jié)構(gòu)
    特征為2的素*-代數(shù)上強保持2-新積
    被遮蔽的邏輯謂詞
    ——論胡好對邏輯謂詞的誤讀
    黨項語謂詞前綴的分裂式
    西夏研究(2020年2期)2020-06-01 05:19:12
    Top Republic of Korea's animal rights group slammed for destroying dogs
    歐幾里得的公理方法
    Abstracts and Key Words
    哲學分析(2017年2期)2017-05-02 08:31:38
    公理是什么
    也談“語言是存在的家”——從語言的主詞與謂詞看存在的殊相與共相
    外語學刊(2016年4期)2016-01-23 02:33:55
    狂野欧美白嫩少妇大欣赏| 777米奇影视久久| 看免费成人av毛片| 午夜精品国产一区二区电影| 毛片一级片免费看久久久久| 国产亚洲午夜精品一区二区久久| 亚洲av中文av极速乱| 人人妻人人澡人人爽人人夜夜| 免费黄网站久久成人精品| 国产黄色视频一区二区在线观看| 男男h啪啪无遮挡| 成人影院久久| 日韩三级伦理在线观看| 国产 一区精品| 亚洲精品aⅴ在线观看| 性高湖久久久久久久久免费观看| 午夜福利视频在线观看免费| 秋霞在线观看毛片| 欧美日韩国产mv在线观看视频| 成人18禁高潮啪啪吃奶动态图 | 亚洲在久久综合| 中文字幕人妻熟人妻熟丝袜美| 国产视频内射| 美女内射精品一级片tv| 一区二区av电影网| 国产精品成人在线| 母亲3免费完整高清在线观看 | 亚洲精品日韩av片在线观看| 伊人亚洲综合成人网| 国产成人精品在线电影| a级片在线免费高清观看视频| 99久国产av精品国产电影| 日本猛色少妇xxxxx猛交久久| 人人妻人人澡人人看| 汤姆久久久久久久影院中文字幕| 亚洲经典国产精华液单| 亚洲精华国产精华液的使用体验| 国产亚洲av片在线观看秒播厂| 如何舔出高潮| 97精品久久久久久久久久精品| 99九九在线精品视频| 久久99热这里只频精品6学生| 一级毛片 在线播放| 观看av在线不卡| 高清黄色对白视频在线免费看| 久久人妻熟女aⅴ| 亚洲成人av在线免费| 成年人免费黄色播放视频| 日日摸夜夜添夜夜添av毛片| 九九爱精品视频在线观看| 一级黄片播放器| 国产成人av激情在线播放 | 国产精品熟女久久久久浪| 热re99久久精品国产66热6| 新久久久久国产一级毛片| 18+在线观看网站| 九草在线视频观看| 精品99又大又爽又粗少妇毛片| 精品亚洲成a人片在线观看| 久久久久久人妻| 丰满迷人的少妇在线观看| 久久99蜜桃精品久久| 国产成人精品一,二区| 国产亚洲精品第一综合不卡 | 亚洲精品av麻豆狂野| av播播在线观看一区| 免费观看av网站的网址| 国产精品99久久久久久久久| 日本黄色日本黄色录像| 久久久国产欧美日韩av| 亚洲不卡免费看| 乱码一卡2卡4卡精品| 亚洲美女搞黄在线观看| 美女视频免费永久观看网站| 精品少妇内射三级| 久久人人爽av亚洲精品天堂| 99久久综合免费| 午夜免费鲁丝| a级毛片免费高清观看在线播放| 国产精品一国产av| 少妇丰满av| 亚洲熟女精品中文字幕| 九草在线视频观看| 全区人妻精品视频| 天天影视国产精品| 大又大粗又爽又黄少妇毛片口| 欧美一级a爱片免费观看看| 赤兔流量卡办理| 国产午夜精品一二区理论片| 欧美老熟妇乱子伦牲交| 大又大粗又爽又黄少妇毛片口| 国产 精品1| 午夜激情福利司机影院| 老司机影院成人| 日本黄色片子视频| 如何舔出高潮| 日日啪夜夜爽| 丝瓜视频免费看黄片| 老熟女久久久| 99久久精品一区二区三区| 国产精品不卡视频一区二区| 18+在线观看网站| videos熟女内射| 精品亚洲成国产av| 中文字幕人妻熟人妻熟丝袜美| 国产乱人偷精品视频| 高清在线视频一区二区三区| 亚洲欧美色中文字幕在线| 欧美变态另类bdsm刘玥| 国产精品不卡视频一区二区| 看十八女毛片水多多多| 亚洲性久久影院| 国产有黄有色有爽视频| 精品国产露脸久久av麻豆| 高清午夜精品一区二区三区| 成人综合一区亚洲| 日韩一区二区视频免费看| 欧美人与善性xxx| 欧美日韩综合久久久久久| 免费观看在线日韩| 午夜福利在线观看免费完整高清在| 欧美亚洲 丝袜 人妻 在线| 午夜日本视频在线| 欧美亚洲 丝袜 人妻 在线| 两个人的视频大全免费| 肉色欧美久久久久久久蜜桃| 高清午夜精品一区二区三区| 亚洲精品乱码久久久久久按摩| 母亲3免费完整高清在线观看 | 免费不卡的大黄色大毛片视频在线观看| xxx大片免费视频| 久久人人爽av亚洲精品天堂| 热re99久久国产66热| 亚洲欧美日韩卡通动漫| 91精品伊人久久大香线蕉| 一级毛片我不卡| videossex国产| av卡一久久| 日日摸夜夜添夜夜爱| 日韩强制内射视频| 日韩强制内射视频| 在线观看美女被高潮喷水网站| 午夜福利视频精品| 能在线免费看毛片的网站| 欧美日韩国产mv在线观看视频| 黄片播放在线免费| 亚洲欧洲精品一区二区精品久久久 | 一级毛片我不卡| 人妻人人澡人人爽人人| av又黄又爽大尺度在线免费看| 最新的欧美精品一区二区| 狠狠婷婷综合久久久久久88av| av网站免费在线观看视频| 男女免费视频国产| 人妻夜夜爽99麻豆av| 欧美精品人与动牲交sv欧美| 插逼视频在线观看| 国产免费福利视频在线观看| 国产av精品麻豆| 日韩av不卡免费在线播放| freevideosex欧美| freevideosex欧美| 美女国产视频在线观看| 91久久精品国产一区二区三区| 少妇猛男粗大的猛烈进出视频| 成人无遮挡网站| 麻豆乱淫一区二区| 丁香六月天网| 80岁老熟妇乱子伦牲交| 肉色欧美久久久久久久蜜桃| 亚洲欧美一区二区三区黑人 | av国产精品久久久久影院| 国产精品三级大全| 夫妻午夜视频| 国产成人免费无遮挡视频| 国产高清有码在线观看视频| 国产免费一区二区三区四区乱码| 国产成人a∨麻豆精品| 欧美 亚洲 国产 日韩一| 国产亚洲一区二区精品| 欧美xxxx性猛交bbbb| 丝袜喷水一区| 日本黄色日本黄色录像| 国产精品久久久久久久电影| freevideosex欧美| 人人妻人人澡人人看| 国产伦精品一区二区三区视频9| 在线观看三级黄色| 免费观看无遮挡的男女| 精品一区二区三区视频在线| 18禁动态无遮挡网站| 久久久a久久爽久久v久久| 成年人免费黄色播放视频| 欧美最新免费一区二区三区| 亚洲精品乱码久久久久久按摩| 91aial.com中文字幕在线观看| 国产熟女午夜一区二区三区 | 亚洲av福利一区| 免费av中文字幕在线| 欧美精品国产亚洲| 制服人妻中文乱码| 久久青草综合色| 免费观看的影片在线观看| 国产视频内射| a级毛色黄片| 国产成人精品一,二区| 99国产精品免费福利视频| 精品熟女少妇av免费看| 久久久午夜欧美精品| 日韩伦理黄色片| 看非洲黑人一级黄片| 精品一区二区三卡| 久久精品熟女亚洲av麻豆精品| 性高湖久久久久久久久免费观看| 人妻制服诱惑在线中文字幕| 成人午夜精彩视频在线观看| 国产在线免费精品| 一区二区三区精品91| 午夜免费鲁丝| 亚洲国产欧美日韩在线播放| 乱码一卡2卡4卡精品| 十八禁高潮呻吟视频| 欧美激情 高清一区二区三区| 边亲边吃奶的免费视频| 3wmmmm亚洲av在线观看| 国产精品三级大全| 夜夜骑夜夜射夜夜干| 精品亚洲成a人片在线观看| 精品人妻熟女毛片av久久网站| 熟女电影av网| 2022亚洲国产成人精品| 欧美少妇被猛烈插入视频| 午夜91福利影院| 亚洲av综合色区一区| 大又大粗又爽又黄少妇毛片口| 久久久久久久久久成人| 日本黄大片高清| 日韩制服骚丝袜av| 色视频在线一区二区三区| 2021少妇久久久久久久久久久| 最近的中文字幕免费完整| 国产日韩欧美在线精品| 97在线人人人人妻| 丝瓜视频免费看黄片| 久久精品国产亚洲av涩爱| 熟女电影av网| 精品国产乱码久久久久久小说| 男女国产视频网站| 亚洲婷婷狠狠爱综合网| 超碰97精品在线观看| av视频免费观看在线观看| 晚上一个人看的免费电影| av在线老鸭窝| 免费人成在线观看视频色| 久久国产精品大桥未久av| 国产精品偷伦视频观看了| 亚洲av电影在线观看一区二区三区| 国产成人av激情在线播放 | 夫妻午夜视频| 日韩免费高清中文字幕av| 纯流量卡能插随身wifi吗| 欧美老熟妇乱子伦牲交| 22中文网久久字幕| 夫妻午夜视频| av不卡在线播放| 18禁观看日本| 欧美激情 高清一区二区三区| 成人毛片60女人毛片免费| 最新中文字幕久久久久| 欧美日韩精品成人综合77777| 一边亲一边摸免费视频| 国产精品国产三级国产av玫瑰| 免费大片18禁| 五月天丁香电影| 女的被弄到高潮叫床怎么办| 国产伦理片在线播放av一区| 久久热精品热| 精品一区二区免费观看| av一本久久久久| 久久久久精品性色| 高清在线视频一区二区三区| 十八禁网站网址无遮挡| 国产黄频视频在线观看| a级毛片免费高清观看在线播放| 一二三四中文在线观看免费高清| 亚洲五月色婷婷综合| 久久精品国产亚洲网站| 国产亚洲精品第一综合不卡 | 国产成人aa在线观看| 亚洲欧美中文字幕日韩二区| 成人二区视频| 国产亚洲一区二区精品| av黄色大香蕉| 国产欧美亚洲国产| 成年美女黄网站色视频大全免费 | 欧美精品亚洲一区二区| 久久久久久久大尺度免费视频| 国产精品人妻久久久久久| 久久综合国产亚洲精品| 蜜臀久久99精品久久宅男| 亚洲精品色激情综合| 亚洲,一卡二卡三卡| 麻豆乱淫一区二区| 成年女人在线观看亚洲视频| 夫妻性生交免费视频一级片| 男女啪啪激烈高潮av片| 国产黄频视频在线观看| 亚洲欧洲日产国产| 国语对白做爰xxxⅹ性视频网站| 一区二区三区乱码不卡18| 国产精品一区www在线观看| 飞空精品影院首页| 亚洲国产精品999| 只有这里有精品99| 国产成人av激情在线播放 | 精品99又大又爽又粗少妇毛片| 色5月婷婷丁香| 久久久a久久爽久久v久久| 新久久久久国产一级毛片| 久久久国产精品麻豆| 亚洲熟女精品中文字幕| 国产亚洲欧美精品永久| 亚洲精品国产av成人精品| 青春草视频在线免费观看| 狠狠婷婷综合久久久久久88av| 欧美人与性动交α欧美精品济南到 | 国产 一区精品| 校园人妻丝袜中文字幕| 超碰97精品在线观看| 极品少妇高潮喷水抽搐| 久久久欧美国产精品| 久久精品人人爽人人爽视色| 欧美日韩成人在线一区二区| 色哟哟·www| 最近2019中文字幕mv第一页| 少妇被粗大的猛进出69影院 | 人妻 亚洲 视频| 老司机影院毛片| 人人妻人人澡人人看| 亚洲色图综合在线观看| 欧美3d第一页| a级片在线免费高清观看视频| 2022亚洲国产成人精品| 激情五月婷婷亚洲| 一级黄片播放器| 日韩在线高清观看一区二区三区| 边亲边吃奶的免费视频| 色哟哟·www| 免费黄色在线免费观看| 久久毛片免费看一区二区三区| 欧美精品一区二区大全| 午夜久久久在线观看| 亚洲欧美中文字幕日韩二区| 日韩精品免费视频一区二区三区 | 久久久a久久爽久久v久久| 亚洲第一区二区三区不卡| 日韩中文字幕视频在线看片| 2021少妇久久久久久久久久久| 欧美97在线视频| av网站免费在线观看视频| 精品少妇久久久久久888优播| 久久久久久久久久久丰满| 免费高清在线观看视频在线观看| 18禁在线无遮挡免费观看视频| 丰满少妇做爰视频| 久热这里只有精品99| 午夜av观看不卡| 亚洲精华国产精华液的使用体验| 亚洲精品国产av蜜桃| 久久精品人人爽人人爽视色| 国产av码专区亚洲av| 91久久精品国产一区二区三区| 丝袜在线中文字幕| 亚洲国产精品一区二区三区在线| 亚洲色图综合在线观看| 日韩成人伦理影院| 久久久久视频综合| 韩国av在线不卡| 久久久国产精品麻豆| 多毛熟女@视频| 热re99久久精品国产66热6| 日本-黄色视频高清免费观看| 亚洲精品av麻豆狂野| 99热全是精品| 天天操日日干夜夜撸| 搡老乐熟女国产| 亚洲精品国产av蜜桃| 美女脱内裤让男人舔精品视频| 9色porny在线观看| 另类精品久久| 老司机影院毛片| 国产一区亚洲一区在线观看| 韩国高清视频一区二区三区| 精品人妻偷拍中文字幕| 搡老乐熟女国产| 狠狠精品人妻久久久久久综合| 夜夜看夜夜爽夜夜摸| 久久久精品94久久精品| 亚洲av不卡在线观看| 亚洲精品视频女| 亚洲综合精品二区| 成人亚洲欧美一区二区av| 黑人猛操日本美女一级片| 久久久a久久爽久久v久久| 国产永久视频网站| 精品久久久精品久久久| 国产欧美亚洲国产| 国产成人av激情在线播放 | 成年人免费黄色播放视频| 青春草亚洲视频在线观看| 国产深夜福利视频在线观看| 亚洲欧美精品自产自拍| 国产精品三级大全| 午夜精品国产一区二区电影| 国产免费福利视频在线观看| 国产亚洲最大av| 999精品在线视频| 成人亚洲欧美一区二区av| 多毛熟女@视频| 亚洲av综合色区一区| 亚洲人成77777在线视频| 午夜激情久久久久久久| 一边摸一边做爽爽视频免费| 久久精品人人爽人人爽视色| av免费在线看不卡| 99久国产av精品国产电影| 99久久精品一区二区三区| 精品人妻偷拍中文字幕| 欧美日韩视频高清一区二区三区二| 丝袜在线中文字幕| 美女脱内裤让男人舔精品视频| 视频中文字幕在线观看| 涩涩av久久男人的天堂| 免费高清在线观看视频在线观看| 99九九在线精品视频| 在线播放无遮挡| 日韩三级伦理在线观看| 超碰97精品在线观看| 边亲边吃奶的免费视频| 日韩成人av中文字幕在线观看| 丝瓜视频免费看黄片| 国产黄色免费在线视频| 好男人视频免费观看在线| 精品视频人人做人人爽| 欧美日韩国产mv在线观看视频| 如何舔出高潮| 国产成人精品无人区| 免费观看性生交大片5| 另类亚洲欧美激情| 九色成人免费人妻av| 久久久久久久亚洲中文字幕| 国产国语露脸激情在线看| av播播在线观看一区| 国产黄色视频一区二区在线观看| 国产成人精品在线电影| 日本爱情动作片www.在线观看| 国产一区有黄有色的免费视频| 日韩精品有码人妻一区| 中文字幕亚洲精品专区| 亚洲美女黄色视频免费看| 一级毛片我不卡| 亚洲性久久影院| 亚洲精品色激情综合| 亚洲国产欧美日韩在线播放| 男的添女的下面高潮视频| 国产精品久久久久久av不卡| 国产午夜精品一二区理论片| 久久久久久伊人网av| 国产一级毛片在线| 亚洲精品日韩在线中文字幕| 老司机影院成人| 欧美激情极品国产一区二区三区 | 成人毛片60女人毛片免费| 成人影院久久| 黑人巨大精品欧美一区二区蜜桃 | 王馨瑶露胸无遮挡在线观看| 日本欧美视频一区| 日本av免费视频播放| 亚洲国产最新在线播放| 国产精品国产av在线观看| 日韩精品有码人妻一区| 美女国产高潮福利片在线看| 久久久久久久久久成人| 女人精品久久久久毛片| 国产黄色视频一区二区在线观看| 亚洲中文av在线| 黑人欧美特级aaaaaa片| 国产av一区二区精品久久| 美女国产视频在线观看| 综合色丁香网| 丁香六月天网| 满18在线观看网站| 天堂8中文在线网| 一个人免费看片子| 欧美精品一区二区免费开放| 丰满少妇做爰视频| 欧美激情 高清一区二区三区| 日本vs欧美在线观看视频| 一边摸一边做爽爽视频免费| 黑丝袜美女国产一区| 9色porny在线观看| 亚洲少妇的诱惑av| 久久久久久久久久久久大奶| 亚洲高清免费不卡视频| 成年女人在线观看亚洲视频| 视频区图区小说| 久久99热6这里只有精品| 日本-黄色视频高清免费观看| 亚洲国产精品一区三区| 一级爰片在线观看| 国产 一区精品| 黄色视频在线播放观看不卡| 亚洲成色77777| 丰满迷人的少妇在线观看| 欧美97在线视频| 亚洲欧美成人综合另类久久久| 久久精品夜色国产| 插逼视频在线观看| 国产av国产精品国产| a级片在线免费高清观看视频| 午夜久久久在线观看| 乱码一卡2卡4卡精品| 亚洲av成人精品一二三区| 亚洲精品中文字幕在线视频| 欧美精品人与动牲交sv欧美| 精品久久久精品久久久| 人人妻人人澡人人爽人人夜夜| 国产黄片视频在线免费观看| 蜜桃在线观看..| 国产精品三级大全| 一级爰片在线观看| 亚洲国产av新网站| 纯流量卡能插随身wifi吗| 日本av免费视频播放| 日本黄色片子视频| 国产精品无大码| 91精品国产九色| 91国产中文字幕| 久久国内精品自在自线图片| 伦理电影大哥的女人| 日本av手机在线免费观看| 久久久欧美国产精品| av又黄又爽大尺度在线免费看| 涩涩av久久男人的天堂| 国产精品秋霞免费鲁丝片| 啦啦啦啦在线视频资源| 久久热精品热| 国产精品嫩草影院av在线观看| 欧美xxⅹ黑人| 国产片特级美女逼逼视频| 男女啪啪激烈高潮av片| 一边摸一边做爽爽视频免费| 亚洲精品自拍成人| av电影中文网址| 国产毛片在线视频| 久久久久人妻精品一区果冻| 国产精品人妻久久久久久| 狂野欧美激情性xxxx在线观看| 欧美激情国产日韩精品一区| 国产黄片视频在线免费观看| 在线精品无人区一区二区三| 久久综合国产亚洲精品| 两个人免费观看高清视频| 免费不卡的大黄色大毛片视频在线观看| 丝袜在线中文字幕| 欧美亚洲 丝袜 人妻 在线| 久久久久国产精品人妻一区二区| 精品人妻偷拍中文字幕| 高清欧美精品videossex| 国产成人精品在线电影| 少妇猛男粗大的猛烈进出视频| 伊人久久精品亚洲午夜| 国产黄片视频在线免费观看| 免费看光身美女| 18禁在线播放成人免费| 精品人妻在线不人妻| xxx大片免费视频| 成人综合一区亚洲| 国产精品三级大全| 热99久久久久精品小说推荐| 啦啦啦在线观看免费高清www| 亚洲国产精品国产精品| 最新中文字幕久久久久| 亚洲不卡免费看| 色吧在线观看| 18禁动态无遮挡网站| 观看av在线不卡| 香蕉精品网在线| 美女主播在线视频| 99热这里只有是精品在线观看| 亚洲一区二区三区欧美精品| 简卡轻食公司| 人成视频在线观看免费观看| 亚洲欧美中文字幕日韩二区| 免费av不卡在线播放| 大片免费播放器 马上看| 国产成人freesex在线| 日韩三级伦理在线观看| 久热久热在线精品观看| 成人黄色视频免费在线看| 嘟嘟电影网在线观看| 国产午夜精品久久久久久一区二区三区| 99热6这里只有精品| 超色免费av| 飞空精品影院首页| 91aial.com中文字幕在线观看| 国产精品一二三区在线看| 久久久午夜欧美精品| 韩国av在线不卡| freevideosex欧美| 在线亚洲精品国产二区图片欧美 | 精品国产国语对白av| 国产欧美亚洲国产| 久久国产亚洲av麻豆专区| 日韩熟女老妇一区二区性免费视频|