国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

移動(dòng)端用戶行為特征識(shí)別研究

2021-03-24 09:56楊帆
軟件工程 2021年3期
關(guān)鍵詞:身份驗(yàn)證卷積神經(jīng)網(wǎng)絡(luò)移動(dòng)互聯(lián)網(wǎng)

楊帆

摘? 要:隨著移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,智能手機(jī)已經(jīng)成為人們社交、支付、出行、娛樂等活動(dòng)中不可或缺的工具。而一旦手機(jī)被盜用,用戶的各類應(yīng)用賬戶都可能被無限制地訪問,繼而導(dǎo)致身份冒用、隱私泄露、財(cái)產(chǎn)損失等嚴(yán)重后果。本文提出一種在移動(dòng)端采集用戶行為特征,并通過神經(jīng)網(wǎng)絡(luò)建模的識(shí)別方法,通過收集手機(jī)的傾斜角度、移動(dòng)速度、加速度,以及用戶點(diǎn)擊、滑動(dòng)屏幕的力度、速度、觸點(diǎn)形狀、面積等數(shù)據(jù),驗(yàn)證設(shè)備是否被他人盜用。這種身份驗(yàn)證技術(shù)具有難以竊取和偽造、驗(yàn)證流程用戶無感知、隱私性好等優(yōu)點(diǎn)。

關(guān)鍵詞:行為生物識(shí)別;身份驗(yàn)證;移動(dòng)互聯(lián)網(wǎng);卷積神經(jīng)網(wǎng)絡(luò)

中圖分類號(hào):TP311.52? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

Abstract:? With the rapid development of mobile Internet, smart phones have become an indispensable device in social activities, payments, travelling, entertainment and other activities. Once the mobile phone was stolen, the user's various application accounts might be accessed without restrictions, leading to serious consequences such as identity fraud, privacy leakage, and property loss. This paper proposes a recognition method that collects user behavior features on mobile terminals and uses neural network modeling. Data, such as tilt angle, movement speed, acceleration speed, as well as force, speed, shape and area of touchpoints, are collected to verify whether the device is stolen by others. This kind of identity verification technology has the advantages of being stealing and forgery resistant, undisturbed and privacy-friendly.

Keywords: behavioral biometrics; identity verification; mobile Internet; convolutional neural network

1? ?引言(Introduction)

目前,各類移動(dòng)端應(yīng)用為防止賬戶盜用,使用了多種身份認(rèn)證技術(shù),如數(shù)字密碼、圖形密碼、短信驗(yàn)證碼、指紋識(shí)別、人臉識(shí)別等,但這些身份驗(yàn)證方法均各自存在一些不足之處。首先,短信驗(yàn)證碼在盜用者解鎖手機(jī)之后就無法起到保護(hù)作用;數(shù)字和圖形密碼容易被猜測(cè),其中圖形密碼還能夠通過分析屏幕上殘留的手指痕跡被攻破[1];指紋和人臉識(shí)別一方面需要手機(jī)硬件支持,另一方面依賴用戶的唯一生物信息,容易引起對(duì)個(gè)人隱私的擔(dān)憂,如最近一份關(guān)于個(gè)人信息使用的調(diào)查中顯示,六成受訪者認(rèn)為人臉識(shí)別技術(shù)有濫用趨勢(shì)[2]。本文中,我們研究了在移動(dòng)端采集用戶行為特征進(jìn)行身份驗(yàn)證的方案:通過用戶使用手機(jī)時(shí)的握持方式、運(yùn)動(dòng)方式、屏幕點(diǎn)擊習(xí)慣等信息,進(jìn)行神經(jīng)網(wǎng)絡(luò)建模,驗(yàn)證設(shè)備使用者的身份??蓛?nèi)置于移動(dòng)端的網(wǎng)頁、小程序當(dāng)中,以無感形式運(yùn)行,具有較好的防盜和防偽性,且無須采集用戶的唯一生物特征。

2? ?相關(guān)研究(Related research)

最近幾年,國(guó)內(nèi)對(duì)行為特征識(shí)別的研究從采集的行為類型上大致可以分為鍵盤鼠標(biāo)行為、網(wǎng)絡(luò)訪問行為、手機(jī)攜帶行為、觸摸行為四種。

基于鍵盤鼠標(biāo)行為的身份驗(yàn)證:顏麗菁[3]和鐘意[4]基于用戶的擊鍵動(dòng)力學(xué)和鼠標(biāo)動(dòng)力學(xué)特征,分別提出了僅基于鼠標(biāo),以及結(jié)合鼠標(biāo)和鍵盤行為的用戶交互信息持續(xù)身份認(rèn)證方法。因?yàn)樵谘芯恐兄豢紤]用戶使用鼠標(biāo)和鍵盤的行為模式,所以只適用于電腦端認(rèn)證,無法用于移動(dòng)端。

基于網(wǎng)絡(luò)訪問行為的身份驗(yàn)證:譚飛越[5]提出了一套利用用戶Web瀏覽行為進(jìn)行身份驗(yàn)證的方案,主要收集用戶每天訪問的網(wǎng)頁數(shù)量、訪問時(shí)間、網(wǎng)頁URL,以及經(jīng)過文本處理而提取出的網(wǎng)頁主題等信息,體現(xiàn)不同個(gè)體之間在網(wǎng)絡(luò)訪問習(xí)慣和興趣方面的差異。這個(gè)方案只使用和具體瀏覽內(nèi)容相關(guān)的信息,而不采集從傳感器取得的物理行為數(shù)據(jù)。

基于手機(jī)攜帶行為的身份驗(yàn)證:龐曉健[6]和胡海龍[7]各自提出了基于手機(jī)中加速度計(jì)、陀螺儀等傳感器收集用戶運(yùn)動(dòng)、步態(tài)等手機(jī)攜帶過程中產(chǎn)生的信息進(jìn)行持續(xù)身份認(rèn)證的方案,其中胡海龍的方案還采集了手機(jī)藍(lán)牙、WIFI、GPS等信息。不過研究中沒有采集用戶和手機(jī)屏幕的交互數(shù)據(jù)。

基于觸摸行為的身份驗(yàn)證:鄒斌[8]和劉永帥[9]各自提出了通過記錄用戶觸屏行為,使用SVM、SMO等算法進(jìn)行身份認(rèn)證的方案。其中鄒斌使用的是一個(gè)公開的數(shù)據(jù)集,并未設(shè)計(jì)數(shù)據(jù)采集方案;而劉永帥則是在安卓2.3系統(tǒng)下開發(fā)了一款數(shù)據(jù)采集應(yīng)用,該應(yīng)用始終保持在后臺(tái)運(yùn)行,靜默記錄用戶和手機(jī)屏幕的交互。但是需要指出,隨著安卓系統(tǒng)的不斷更新,從2017年谷歌推出安卓8.0開始,對(duì)應(yīng)用的后臺(tái)運(yùn)行做出了嚴(yán)格的限制:后臺(tái)應(yīng)用僅在特定的情況下才會(huì)獲得約幾分鐘的時(shí)間窗口,隨后安卓系統(tǒng)會(huì)停止其服務(wù)。因此,比起通過后臺(tái)應(yīng)用持續(xù)收集觸摸行為等信息,將數(shù)據(jù)采集以模塊化的方式內(nèi)置于頁面中,如從HTML5頁面進(jìn)行數(shù)據(jù)收集,具有更高的可行性。

3? ?數(shù)據(jù)采集和處理(Data collection and parsing)

3.1? ?數(shù)據(jù)采集

設(shè)計(jì)HTML5頁面,向頁面中的元素添加eventListener,監(jiān)聽三類行為事件:觸摸事件、設(shè)備角度變化事件、設(shè)備移動(dòng)事件,具體包括:觸摸開始(touchstart)、觸點(diǎn)移動(dòng)(touchmove)、觸摸結(jié)束(touchend)、設(shè)備角度變化(deviceorientation)和設(shè)備移動(dòng)(devicemotion)。

(1)觸摸事件。在HTML5頁面上捕獲三類觸摸event后,可以通過event.touches[n]獲取由Touch對(duì)象構(gòu)成的數(shù)組TouchList,其中n表示觸點(diǎn)的編號(hào):數(shù)組中一個(gè)Touch對(duì)象代表一個(gè)觸點(diǎn),當(dāng)有多個(gè)手指觸摸屏幕時(shí),TouchList就會(huì)存儲(chǔ)多個(gè)Touch對(duì)象。

需要注意的是,Touch對(duì)象可以細(xì)分為三種:touches、targetTouches和changedTouches。changedTouches對(duì)象中記錄的是最近一次發(fā)生變化的觸摸點(diǎn)信息,例如同時(shí)有兩根手指觸摸屏幕,只移動(dòng)其中一根手指,那么對(duì)應(yīng)的touchmove事件中changedTouches就只會(huì)存在發(fā)生了移動(dòng)的觸點(diǎn)信息。另一方面,targetTouches對(duì)象中會(huì)包括此時(shí)屏幕上所有觸點(diǎn)的信息,無論其內(nèi)容是否發(fā)生了變化,但有一個(gè)前提是觸點(diǎn)必須保持在同一個(gè)dom元素內(nèi)。例如,手指先按下按鈕A,之后移動(dòng)到按鈕B上,那么從targetTouches中只能讀到按鈕A對(duì)應(yīng)的觸摸信息,移動(dòng)到按鈕B之后的則會(huì)被忽略。而touches則是表示范圍最廣的事件,它記錄當(dāng)前屏幕的所有觸點(diǎn),無論觸點(diǎn)信息是否發(fā)生變化,也無論觸點(diǎn)是否保持在同一個(gè)dom元素內(nèi)。

通過以上分析,changedTouches適用于只需要關(guān)注觸點(diǎn)狀態(tài)更新的場(chǎng)景,而targetTouches適用于只需要關(guān)注單個(gè)dom元素的場(chǎng)景,而我們需要對(duì)整個(gè)HTML頁面上所有觸點(diǎn)的狀態(tài)做持續(xù)的記錄,因此最適用的是touches對(duì)象。從touches對(duì)象的屬性中,我們可以獲得按壓力度、觸點(diǎn)形狀、觸點(diǎn)位置等信息。

(2)設(shè)備角度變化事件。在HTML5頁面上捕獲設(shè)備角度變化事件后,可以從事件屬性中獲得設(shè)備當(dāng)前在空間中的x、y、z坐標(biāo)角度。

(3)設(shè)備移動(dòng)事件。同樣的,在HTML5頁面上捕獲設(shè)備移動(dòng)事件后,可以從事件屬性中獲得設(shè)備當(dāng)前移動(dòng)加速度、重力加速度、旋轉(zhuǎn)角速度的數(shù)據(jù),均有x、y、z三個(gè)方向。

3.2? ?數(shù)據(jù)處理

(1)合并事件

以上三類行為事件是相互獨(dú)立的,也就是說,在用戶沒有操作屏幕時(shí)也會(huì)持續(xù)產(chǎn)生設(shè)備角度變化和設(shè)備移動(dòng)的數(shù)據(jù)。但我們最關(guān)注的是用戶進(jìn)行點(diǎn)擊、滑動(dòng)等操作時(shí)對(duì)應(yīng)的設(shè)備狀態(tài),因此在數(shù)據(jù)處理的第一步,需要找到每個(gè)觸摸事件所對(duì)應(yīng)的設(shè)備角度和移動(dòng)數(shù)據(jù)。具體方法是,對(duì)每個(gè)觸摸事件,向前找到距離它最近的角度變化和移動(dòng)事件各一條,將它們的屬性轉(zhuǎn)存到觸摸事件對(duì)象的屬性中。

(2)計(jì)算滑動(dòng)速度

對(duì)于滑動(dòng)事件,滑動(dòng)時(shí)各個(gè)觸點(diǎn)在屏幕上的絕對(duì)坐標(biāo)往往并不是十分重要,因?yàn)楦鶕?jù)頁面布局的不同,用戶滑動(dòng)的位置也會(huì)存在差別。而滑動(dòng)速度和位置無關(guān),更能反映用戶的操作習(xí)慣。因此我們使用前后兩次觸點(diǎn)移動(dòng)事件的坐標(biāo)差除以時(shí)間差,計(jì)算出對(duì)應(yīng)的手指滑動(dòng)速度。而對(duì)于點(diǎn)擊操作,直接將速度賦值為0。

(3)數(shù)據(jù)分片

一個(gè)孤立的操作,例如一次點(diǎn)擊,所包含的信息量是很少的,很難作為身份驗(yàn)證的依據(jù)。而一系列操作,例如一個(gè)完整的業(yè)務(wù)流程所對(duì)應(yīng)的多個(gè)點(diǎn)擊、滑動(dòng)操作的組合,就能提供較多的信息。因此,我們不直接把單個(gè)事件作為模型的輸入,而是將全量數(shù)據(jù)切分為數(shù)據(jù)片。

如前一節(jié)所述,在原始數(shù)據(jù)中,觸摸事件有三個(gè)種類,即觸摸開始(touchstart)、觸點(diǎn)移動(dòng)(touchmove)、觸摸結(jié)束(touchend)。一次點(diǎn)擊操作只會(huì)包含觸摸開始和觸摸結(jié)束兩個(gè)事件,而一次滑動(dòng)操作會(huì)包含觸摸開始、觸摸結(jié)束,以及在它們之間的數(shù)個(gè)觸點(diǎn)移動(dòng)事件。分片時(shí)從第一條touchend開始,向后找touchstart事件,并比較兩個(gè)事件的時(shí)間差是否大于設(shè)定的閾值k,如果大于則分片:將touchstart之前的所有記錄添加(extend)進(jìn)當(dāng)前片,并創(chuàng)建(append)一個(gè)新片;如果時(shí)間差在閾值k以內(nèi),則不進(jìn)行分片,只把touchstart之前的所有記錄添加到當(dāng)前片的尾部。遞歸地進(jìn)行以上流程,直到無法找到下一個(gè)touchstart為止。此流程可用偽代碼表示如下:

function slice(events, time_gap = 1000):

function do_slice(events):

i = 0

# 找下一個(gè)touchend事件

while i < len(events) and is_not_touchend(events[i]):

i += 1

# 如果后面沒有touchend了,結(jié)束遞歸

if i >= len(events):

return

end = events[i]

# 繼續(xù)找下一個(gè)touchstart事件

while i < len(events) and is_not_touch_start(events[i]):

i += 1

# 如果后面沒有touchstart,補(bǔ)全最后一個(gè)分片,并且結(jié)束遞歸

if i >= len(events):

extend_slice(slices, events)

return

start = events[i]

# 找到touchend和touchstart,比較兩者時(shí)間差

if time_diff(end, start) < time_gap:

extend_slice(slices, events[: i])

else:

new_slice(slices, events[: i])

# 將還沒處理的事件列表輸入下一步遞歸

do_slice(events[i: ])

slices = []

do_slice(events)

return slices

(4)篩選和填充

分片后的數(shù)據(jù),每一片可以表示為一個(gè)二維矩陣,矩陣的每一列表示一個(gè)特征維度,例如按壓力度,設(shè)備x、y、z軸加速度等,每一行表示一個(gè)觸摸事件。很顯然,用戶每次操作不會(huì)完全相同,所以每個(gè)矩陣中的事件個(gè)數(shù)也不同。而許多機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型要求輸入的樣本均具有相同的維度,因此需要對(duì)矩陣進(jìn)行0填充(Zero Padding)。在填充之前,我們可以首先將行數(shù)小于3的矩陣篩去,這些矩陣只記錄了一次孤立的點(diǎn)擊,不確定性過強(qiáng),不利于我們得到穩(wěn)定的模型。之后找到所有矩陣中行數(shù)最多的矩陣,將其他矩陣用0填充到和它相同的行數(shù)。

在經(jīng)過處理后,輸入矩陣的列(特征)內(nèi)容如表1所示。

4? ?模型設(shè)計(jì)(Model design)

我們將身份驗(yàn)證視為多分類問題,訓(xùn)練一個(gè)二分類器基于一對(duì)多(1 vs N)策略建模。具體地,選擇訓(xùn)練一維卷積神經(jīng)網(wǎng)絡(luò)作為分類器。

一維卷積和常用于圖像建模的二維卷積類似,區(qū)別在于其對(duì)輸入僅在一個(gè)維度上計(jì)算卷積,配合填充(padding)可保持各卷積層的輸出總有一個(gè)維度的長(zhǎng)度不變,即能保持時(shí)間序列信號(hào)的局部依賴關(guān)系不變,故而更加適用于序列化數(shù)據(jù)的建模[10]。其計(jì)算公式可表示為:

式中,f表示單個(gè)通道長(zhǎng)度為n的輸入,g表示尺寸為m的一維卷積核,i的取值為0到(n-m+1)。

我們?cè)O(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)共有三個(gè)卷積層、一個(gè)全連接層,以及一個(gè)使用sigmoid激活函數(shù)的輸出層。卷積層和全連接層均使用ReLU作為激活函數(shù),卷積核尺寸分別為3、5、7,卷積核個(gè)數(shù)分別為32、64、128。因?yàn)榫矸e核是一個(gè)滑動(dòng)窗口,輸出的矩陣行數(shù)會(huì)少于輸入。例如,輸入矩陣有n行,通過一個(gè)尺寸為3的一維卷積核后,輸出的行數(shù)會(huì)變?yōu)椋╪-2)行。因此我們?cè)谳斎刖矸e層前使用0填充,以保持每層輸出的feature map矩陣具有相同的行數(shù)。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,圖中的數(shù)值94為訓(xùn)練數(shù)據(jù)中一個(gè)分片包含的最多事件數(shù)。

神經(jīng)網(wǎng)絡(luò)經(jīng)過Sigmoid激活的全連接層,對(duì)于每一個(gè)輸入的數(shù)據(jù)片,輸出為一個(gè)取值從0到1的偽概率,越接近1表示網(wǎng)絡(luò)預(yù)測(cè)輸入樣本與對(duì)應(yīng)的正類樣本越接近。將樣本輸入各個(gè)模型,取輸出中最大值所對(duì)應(yīng)的類別,預(yù)測(cè)為樣本的類別。

5? ?實(shí)驗(yàn)(Experiment)

我們仿造移動(dòng)端支付應(yīng)用設(shè)計(jì)了一個(gè)支付小程序的HTML5頁面,內(nèi)置了數(shù)據(jù)采集模塊。征集50位志愿者,讓每位志愿者在支付小程序中完成一系列操作流程,過程中讓志愿者自由選擇最習(xí)慣的操作方式。設(shè)計(jì)的頁面如圖2所示。

在對(duì)數(shù)據(jù)處理后輸入神經(jīng)網(wǎng)絡(luò)進(jìn)行建模,采用二元交叉熵(Binary Cross Entropy)損失函數(shù),對(duì)每一個(gè)分類作獨(dú)立建模。建模時(shí)基于1 vs N策略,將當(dāng)前類作為正樣本,其余所有類作為負(fù)樣本,并取樣以控制正負(fù)樣本比例為1﹕1。預(yù)測(cè)時(shí)對(duì)一個(gè)樣本通過每個(gè)模型進(jìn)行評(píng)分,取Sigmoid函數(shù)輸出最大的分類。模型迭代過程中的準(zhǔn)確率曲線如圖3所示,對(duì)應(yīng)的AUC曲線如圖4所示。

使用模型進(jìn)行預(yù)測(cè),圖5是其中一個(gè)模型在輸入來自不同的兩個(gè)人的負(fù)樣本時(shí),輸出的頻率分布直方圖??梢钥吹剑瑢?duì)于圖中左側(cè)的輸入樣本,模型的分類效果很好,輸出p幾乎都在0附近;對(duì)于圖中右側(cè)的輸入樣本,模型的分類效果稍差一些,但綜合所有輸入分片的結(jié)果,依然能明顯看出模型偏向于拒絕(p<0.5)。圖6是同一個(gè)模型在輸入正樣本(本人操作)時(shí)的輸出,大多數(shù)預(yù)測(cè)p值均接近1,表示成功地接受了大多數(shù)正樣本。

6? ?結(jié)論(Conclusion)

本文分析了現(xiàn)有移動(dòng)端身份識(shí)別技術(shù)存在的一些不足之處,之后提出一種移動(dòng)端用戶行為特征識(shí)別方案。采集設(shè)備傳感器和屏幕產(chǎn)生的數(shù)據(jù),如傾斜角、移動(dòng)速度、加速度、觸點(diǎn)壓力、觸點(diǎn)形狀、滑動(dòng)速度等,從中對(duì)用戶使用手機(jī)時(shí)的行為習(xí)慣通過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行建模和識(shí)別。方案中的數(shù)據(jù)采集模塊可內(nèi)置于網(wǎng)頁、小程序中,無須安裝額外應(yīng)用。這種驗(yàn)證方法主要具有特征難以竊取和偽造、驗(yàn)證流程用戶無感知、不涉及指紋和人臉等唯一身份標(biāo)識(shí)等優(yōu)點(diǎn),可以作為傳統(tǒng)身份認(rèn)證技術(shù)的輔助技術(shù)。

參考文獻(xiàn)(References)

[1] Aviv, A. J., Gibson, et al. Smudge attacks on smartphone touch screens[C]. Usenix Conference on Offensive Technologies, 2010:1-7.

[2] 南都個(gè)人信息保護(hù)研究中心.人臉識(shí)別應(yīng)用公眾調(diào)研報(bào)告[EB/OL].[2020-10-13].http://epaper.oeeee.com/epaper/A/html/2020-10/14/content_29847.htm.

[3] 顏麗菁.基于用戶鼠標(biāo)行為的身份認(rèn)證方法研究[D].西安:西安理工大學(xué),2018.

[4] 鐘意.基于用戶交互行為特征的持續(xù)身份認(rèn)證研究[D].重慶:重慶郵電大學(xué),2019.

[5] 譚飛越.基于用戶行為特征的持續(xù)身份認(rèn)證研究[D].重慶:重慶郵電大學(xué),2019.

[6] 龐曉健.基于行為感知的移動(dòng)終端持續(xù)認(rèn)證研究[D].西安:西安電子科技大學(xué),2019.

[7] 胡海龍.基于行為生物特征的移動(dòng)用戶身份持續(xù)認(rèn)證方法研究[D].重慶:西南大學(xué),2019.

[8] 鄒斌.基于生物行為特征及單分類算法的手機(jī)用戶持續(xù)認(rèn)證研究[D].重慶:西南大學(xué),2019.

[9] 劉永帥.移動(dòng)設(shè)備上基于生理行為特征的用戶識(shí)別方法研究[D].成都:電子科技大學(xué),2016.

[10] Ronao C A, Cho S B. Human activity recognition with smartphone sensors using deep learning neural networks-

ScienceDirect[J]. Expert Systems with Applications, 2016, 59(10):235-244.

作者簡(jiǎn)介:

楊? ?帆(1982-),男,本科,中級(jí)工程師.研究領(lǐng)域:支付技術(shù),風(fēng)控,人工智能.

猜你喜歡
身份驗(yàn)證卷積神經(jīng)網(wǎng)絡(luò)移動(dòng)互聯(lián)網(wǎng)
基于深度卷積神經(jīng)網(wǎng)絡(luò)的物體識(shí)別算法
智能手機(jī)在大學(xué)生移動(dòng)學(xué)習(xí)中的應(yīng)用研究
深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
基于Android的一鍵智能報(bào)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 
大數(shù)據(jù)環(huán)境下基于移動(dòng)客戶端的傳統(tǒng)媒體轉(zhuǎn)型思路
基于移動(dòng)互聯(lián)網(wǎng)的心理健康教育初探
基于卷積神經(jīng)網(wǎng)絡(luò)的樹葉識(shí)別的算法的研究
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
身份驗(yàn)證中基于主動(dòng)外觀模型的手形匹配
ASP.NET中的Forms身份驗(yàn)證的研究
平乐县| 宜阳县| 石柱| 兴业县| 环江| 韶山市| 任丘市| 高要市| 南投市| 松阳县| 汕尾市| 大足县| 洪洞县| 南雄市| 西宁市| 安塞县| 江油市| 遂宁市| 社旗县| 南雄市| 淮阳县| 大连市| 军事| 呈贡县| 沂源县| 汤原县| 申扎县| 莲花县| 板桥市| 曲阜市| 永清县| 凤冈县| 北宁市| 蕲春县| 尖扎县| 左权县| 开化县| 永新县| 连城县| 安徽省| 隆化县|