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

?

一種將認證中心與業(yè)務(wù)系統(tǒng)整合方案

2014-10-15 08:40:12吳潔明史建宜李碩征
關(guān)鍵詞:數(shù)字證書密碼證書

吳潔明,史建宜,李碩征

(北方工業(yè)大學(xué)信息工程學(xué)院,北京100144)

0 引言

公鑰基礎(chǔ)設(shè)施(PKI)是國際上解決開放式互聯(lián)網(wǎng)絡(luò)信息安全要求的一套體系。PKI體系支持身份認證,信息傳輸、存儲的完整性,消息傳輸、存儲的機密性,以及操作的不抵賴性。PKI的核心就是CA(認證中心)。

CA認證技術(shù)是保障通信網(wǎng)絡(luò)安全性的重要手段,它是以PKI為基礎(chǔ)?,F(xiàn)階段,PKI/CA技術(shù)被廣泛應(yīng)用到各種應(yīng)用系統(tǒng)中。它是唯一能同時解決身份認證、訪問控制、信息保密和不可抵賴性的安全技術(shù)。其中,身份認證功能是整個PKI/CA的核心[1-2]。

身份認證是安全技術(shù)的一個十分重要的方面,它也是保障業(yè)務(wù)系統(tǒng)安全性的第一道關(guān)卡,只有實現(xiàn)了合法有效的身份認證,才能對用戶進行訪問控制,一旦身份認證系統(tǒng)被攻破,系統(tǒng)的安全性設(shè)置就形同虛設(shè)[3-4]。

目前,很多業(yè)務(wù)系統(tǒng)都希望實現(xiàn)更加堅固有效的身份認證?,F(xiàn)階段,大部分業(yè)務(wù)系統(tǒng)使用簡單相等身份驗證的方式,對用戶進行訪問控制,但是這種方式存在安全漏洞。如果將CA與業(yè)務(wù)系統(tǒng)進行整合,可以大大提高用戶身份認證的安全性。目前,國內(nèi)出現(xiàn)了很多CA認證中心,比如:北京數(shù)字認證股份有限公司?,F(xiàn)在越來越多的業(yè)務(wù)系統(tǒng)使用這種第三方的CA認證中心,來提高業(yè)務(wù)系統(tǒng)的安全性。但是,如果在業(yè)務(wù)系統(tǒng)中使用這類CA認證中心,需要占用很大份額的開發(fā)經(jīng)費。并且,隨著市場競爭越來越激烈,在整個業(yè)務(wù)系統(tǒng)開發(fā)過程中,都在盡量降低開發(fā)成本。因此,中小型企業(yè)對于在業(yè)務(wù)系統(tǒng)中使用第三方收費的CA身份認證中心,變得望而卻步。

針對以上這種情況,本文提出了一種用開源的、免費的CA認證中心,代替收費的第三方CA認證中心,與中小型企業(yè)開發(fā)的業(yè)務(wù)系統(tǒng)進行整合實現(xiàn)有效的身份認證的方案,這種方案經(jīng)濟實惠、可行性強,同時可以增強業(yè)務(wù)系統(tǒng)的安全性。

1 背景知識

1.1 EJBCA

EJBCA是本方案實施的理論研究基礎(chǔ)。EJBCA是一個基于J2EE技術(shù)的企業(yè)級的PKI證書頒發(fā)機構(gòu)。EJBCA由CA、RA(注冊中心)、數(shù)據(jù)庫、CRL(證書撤銷列表)和LDAP(輕量級目錄服務(wù)器)組成,其中CA是EJBCA的核心組成部分。EJBCA是一個功能齊全的、免費的、開源的CA認證中心[5]。

1.2 EJBCA Web Service配置

EJBCA自從3.4版本之后,提供Web Service服務(wù),在安裝EJBCA時,需要通過配置來使EJBCA發(fā)布Web Service服務(wù)。成功發(fā)布Web Service服務(wù)之后,就可以很方便地訪問EJBCA Web Service提供的各種服務(wù),這有利于將EJBCA與業(yè)務(wù)系統(tǒng)更好地、更方便地整合到一起。

在搭建EJBCA環(huán)境時,使用的操作系統(tǒng)是 Windows,EJBCA版本是3.9,此版本可以提供Web Service服務(wù)。MySQL作為保存CA信息的數(shù)據(jù)庫,證書發(fā)布服務(wù)器使用的是開源的OpenLDAP,運行EJBCA的應(yīng)用服務(wù)器是JBOSS,版本為5.0.1。

此處簡述EJBCA中配置和發(fā)布Web Service的過程:

(1)啟用 EJBCA Web Service:在%EJBCA_HOME%confjaxws.properties文件中,配置 jbcaws.enabled項,將其設(shè)置為true。此設(shè)置表示將EJBCA部署到JBOSS時,發(fā)布EJBCA Web Sercvice服務(wù)。其中,%EJBCA_HOME%代表的是EJBCA的安裝路徑。

(2)部署EJBCA:在%EJBCA_HOME%in下,執(zhí)行ant deploy。執(zhí)行完畢后,EJBCA將成功部署到JBOSS應(yīng)用服務(wù)器上。

(3)啟用JBOSS:在%JBOSS_HOME%in下,執(zhí)行run.bat,即啟動JBOSS的服務(wù)。啟動成功后,用戶可以通過瀏覽器訪問EJBCA的服務(wù)。其中,%JBOSS_HOME%代表的是JBOSS的安裝路徑。

(4)配置域名:在hosts文件中,為EJBCA服務(wù)配置域名,添加一項:localhost ca.ejbca.com。此項表示當(dāng)訪問域名ca.ejbca.com時,其對應(yīng)的實際IP地址就是本地IP。

(5)修改WSDL文件:在%JBOSS_HOME%serverdefaultdatawsdlejbca.earejbca-ws-ejb.jar目錄下,存放的是EJBCA Web Service所對應(yīng)的WSDL文件,每次啟動JBOSS,都會重新發(fā)布一個新的WSDL文件。本文修改最新生成的WSDL文件,配置其中的soap:address項,配置如下:<soap:address location="https://ca.ejbca.com:8443/ejbca/ejbcaws/ejbcaws"/>。

經(jīng)過以上步驟,就完成了EJBCA的搭建和配置工作,EJBCA所能提供的主要功能結(jié)構(gòu)如圖1所示,主要功能結(jié)構(gòu)及描述如下。

圖1 EJBCA功能結(jié)構(gòu)圖

(1)MySQL數(shù)據(jù)庫:數(shù)據(jù)庫是整個EJBCA的基礎(chǔ)。CA認證中心的各種數(shù)據(jù),CA信息、證書信息、CRL信息、用戶信息、各種操作的日志信息都將存儲到MySQL數(shù)據(jù)庫中。

(2)RA注冊中心:RA注冊中心相當(dāng)于整個EJBCA的門戶。普通用戶通過瀏覽器可方便地進行用戶證書申請、證書文件下載、證書信息查看、證書狀態(tài)查詢等操作。管理員通過瀏覽器可以對用戶和用戶證書進行管理,主要包括添加、刪除、查看、修改、撤銷等。

(3)CA認證中心:CA認證中心是整個EJBCA的核心和精髓之處。它的主要工作就是負責(zé)證書的簽發(fā)和認證。EJBCA能夠很好地支持多級CA,可以根據(jù)實際的需要在ROOTCA下面生成多級SUBCA。從而,實現(xiàn)更好的CA認證中心服務(wù)。

(4)JBOSS應(yīng)用服務(wù)器:JBOSS應(yīng)用服務(wù)器為整個EJBCA提供了運行空間。EJBCA所能提供的所有服務(wù)都將在JBOSS上運行,用戶通過JBOSS對服務(wù)進行訪問。

(5)OpenLDAP:LDAP是一個目錄服務(wù)器,也被稱為證書發(fā)布服務(wù)器,主要功能是提供目錄瀏覽服務(wù),負責(zé)將RA注冊中心傳送過來的證書信息加入到此服務(wù)器上。用戶可以通過訪問LDAP服務(wù)獲得數(shù)字證書信息和CRL證書撤銷列表信息。EJBCA是開源的、免費的。所以,此處與EJBCA配合使用的LDAP,選擇使用了免費的OpenLDAP服務(wù)器。

(6)業(yè)務(wù)系統(tǒng):此業(yè)務(wù)系統(tǒng)主要是需要整合CA認證功能的業(yè)務(wù)系統(tǒng)。業(yè)務(wù)系統(tǒng)可以通過JBOSS來訪問EJBCA所提供的各種服務(wù),實現(xiàn)與EJBCA的交互,實現(xiàn)CA的身份認證,從而提高業(yè)務(wù)系統(tǒng)安全性[6-8]。

2 EJBCA與業(yè)務(wù)系統(tǒng)整合方案

2.1 編碼申領(lǐng)業(yè)務(wù)系統(tǒng)

本文通過編碼申領(lǐng)業(yè)務(wù)系統(tǒng)介紹EJBCA同業(yè)務(wù)系統(tǒng)整合的方案。

編碼申領(lǐng)業(yè)務(wù)系統(tǒng)主要是基于B/S架構(gòu),實現(xiàn)音像制品的申報、審核、發(fā)碼。每個編碼將唯一標(biāo)志一個音像制品,為了確保編碼能夠?qū)崿F(xiàn)其本身代表的意義,需要提高業(yè)務(wù)系統(tǒng)的安全性,確保只有真實有效的用戶才可以正常地登錄到系統(tǒng),進行音像制品編碼的申領(lǐng)工作。只有這樣,針對此音像制品發(fā)放的編碼,才具有實際的意義。

此編碼申領(lǐng)系統(tǒng)在安全性方面有一定的要求,但是客戶又希望盡量降低開發(fā)成本。為了同時滿足客戶在這兩方面的要求,使用EJBCA來實現(xiàn)CA身份認證功能。在使用基本的權(quán)限訪問控制保障業(yè)務(wù)系統(tǒng)安全性的基礎(chǔ)之上,將EJBCA的功能與此業(yè)務(wù)系統(tǒng)進行整合。為此編碼申領(lǐng)系統(tǒng)定制了一個符合它需求的、功能齊全的CA認證中心。

使用這套整合方案,既能提高業(yè)務(wù)系統(tǒng)的安全性,又能大大地降低系統(tǒng)開發(fā)成本,可行性和實施性好,經(jīng)濟實用。

2.2 EJBCA與編碼申領(lǐng)業(yè)務(wù)系統(tǒng)整合

EJBCA與業(yè)務(wù)系統(tǒng)整合方案的整合過程中,主要活動分為如下3部分:

(1)用戶申請數(shù)字證書:每個在編碼申領(lǐng)業(yè)務(wù)系統(tǒng)中的用戶,需要到EJBCA中的RA用戶注冊中心,申領(lǐng)自己的數(shù)字證書。

(2)制作數(shù)字證書:用戶申請證書的信息,經(jīng)過CA中心的RA審核人員的審核,將把數(shù)字證書對應(yīng)的證書密碼,以郵件的形式返還給申請用戶。用戶以用戶名和證書密碼,到EJBCA網(wǎng)站進行證書文件下載。此時,可以購買USB-KEY,本文使用的是飛天誠信的USB-KEY,通過它提供的證書導(dǎo)入工具,將證書文件導(dǎo)入到USB-KEY中。

(3)用戶登錄:為了提高編碼申領(lǐng)系統(tǒng)的安全性,在用戶登錄的時候,首先對用戶名和密碼進行判斷,判斷通過;隨后,對用戶的USB-KEY的有效性進行驗證,驗證通過;最后,通過使用用戶輸入的USBKEY密碼讀取用戶證書信息,通過EJBCA Web Service在線判斷當(dāng)前數(shù)字證書的有效性。從而可以實現(xiàn)用戶身份認證,大大提高系統(tǒng)的安全性。

EJBCA與業(yè)務(wù)系統(tǒng)整合方案的整體流程圖,如圖2所示。

具體流程分析及描述如下:

第(1)步:用戶申請證書。編碼申領(lǐng)業(yè)務(wù)系統(tǒng)中的用戶,需要到EJBCA申領(lǐng)自己的數(shù)字證書。用戶訪問EJBCA網(wǎng)站,在RA注冊中心填寫并提交用戶證書申請信息,等待審核。

圖2 整合流程的整體流程圖

第(2)步:審核用戶證書申請。EJBCA中有RA審核角色的用戶,此RA用戶將對用戶的證書申請進行審核。審核通過,此用戶證書文件對應(yīng)的密碼將以郵件的形式發(fā)給用戶,此密碼是隨機的4位數(shù)字,密碼的長度可以通過在EJBCA的用戶注冊模板中進行配置,比如:可以是長度為6或8的隨機數(shù)字等;審核不通過,用戶將變成失敗狀態(tài)。

第(3)步:下載用戶證書。用戶收到郵件后,訪問EJBCA網(wǎng)站,可以進行用戶證書文件下載,下載時可以選擇生成證書密鑰的長度,主要有1 024和2 048兩種長度。證書有pfx、pem、cer等格式,可以根據(jù)具體需要進行配置。

第(4)步:用戶證書導(dǎo)入USB KEY。每個生產(chǎn)USB KEY的公司,一般都會提供相應(yīng)的證書導(dǎo)入工具。使用所購買的USB KEY公司提供的導(dǎo)入工具,將下載的用戶證書文件導(dǎo)入到USB KEY中。

第(5)步:用戶名、密碼判斷。用戶登錄編碼申請業(yè)務(wù)系統(tǒng)時,需要輸入用戶名、密碼、USB KEY密碼。首先需要對用戶輸入的用戶名和密碼進行判斷,判斷數(shù)據(jù)庫中是否存在對應(yīng)用戶。

第(6)步:USB KEY驗證。根據(jù)用戶輸入的USB KEY密碼,讀取證書信息,需要對證書的有效性、時間是否在有效期內(nèi)等信息進行簡單的判斷。

第(7)步:證書是否撤銷。調(diào)用EJBCA Web Service中的證書撤銷狀態(tài)查詢服務(wù),判斷證書當(dāng)前的撤銷狀態(tài),從而能檢測出用戶證書當(dāng)前處在什么狀態(tài),是有效狀態(tài)還是撤銷狀態(tài)。

2.3 具體實現(xiàn)過程

在將EJBCA整合到編碼申領(lǐng)業(yè)務(wù)系統(tǒng)的過程中,主要包括3步:用戶申請數(shù)字證書、制作數(shù)字證書、登錄系統(tǒng)。其中,前兩步主要體現(xiàn)了如何使用EJBCA;第3步主要體現(xiàn)了業(yè)務(wù)系統(tǒng)如何與EJBCA Web Service服務(wù)進行信息交互。因此,此處詳細介紹用戶登錄部分。

用戶登錄具體可以分為3步:

(1)用戶名和密碼判斷,主要是查找對應(yīng)的用戶名和密碼的用戶在數(shù)據(jù)庫中是否存在。

(2)使用用戶輸入的USB-KEY的密碼,讀取USB-KEY中的證書信息,對證書進行簡單的有效性判斷,主要包括判斷證書是否有效、是否在證書有效期內(nèi)。主要代碼如下:

(Ⅰ)Certificate[]certs=keyStore.getCertificateChain(keyAlias);

(Ⅱ)X509Certificate x509Certificate=(X509Certificate)certs[0];

(Ⅲ)x509Certificate.checkValidity();

(Ⅳ)x509Certificate.checkValidity(date)。

第(Ⅰ)行:查看與給定別名關(guān)聯(lián)的證書鏈。

第(Ⅱ)行:取出第一個證書。

第(Ⅲ)行:驗證證書目前是否有效。

第(Ⅳ)行:檢查證書目前是否處于有效期內(nèi)。

(3)證書撤銷判斷,使用EJBCA Web Service所提供的證書撤銷狀態(tài)服務(wù),查詢此證書是否已經(jīng)被撤銷。主要代碼[8-9]如下:

(Ⅰ)ejbcaraws=getEjbcaWS();

(Ⅱ)RevokeStatus revokeStatus=ejbcaraws.checkRevokationStatus(

x509Certificate.getIssuerX500Principal().toString(),

x509Certificate.getSerialNumber().toString(16));

(Ⅲ)XMLGregorianCalendar xmlGregorianCalendar=

revokeStatus.getRevocationDate();

(Ⅳ)GregorianCalendar gregorianCalendar=

xmlGregorianCalendar.toGregorianCalendar();

(Ⅴ)SimpleDateFormat simpleDateFormat=

new SimpleDateFormat("yyyy-MM-dd");

(Ⅵ)String dateTimeString=simpleDateFormat.

format(gregorianCalendar.getTime());

(Ⅶ)if(!"1970-01-01".equals(dateTimeString))flag=false;

(Ⅷ)Integer reason=revokeStatus.getReason();

(Ⅸ)if(!reason.equals(-1))flag=false。

第(Ⅰ)行:初始化EJBCA Web Service服務(wù),得到EjbcaWS對象ejbcaraws。

第(Ⅱ)行:調(diào)用EJBCA Web Service中的checkRevokationStatus()服務(wù),得到此證書的當(dāng)前撤銷狀態(tài)。

第(Ⅲ)行:從RevokeStatus(證書撤銷狀態(tài))對象中,取出證書撤銷時間。

第(Ⅳ)~(Ⅵ)行:時間格式轉(zhuǎn)換。將XMLGregorianCalendar格式的證書撤銷時間,最終轉(zhuǎn)換成“yyyy-MM-dd”格式的、字符串類型的證書撤銷時間。

第(Ⅶ)行:每個證書默認的證書撤銷時間為格林威治標(biāo)準時間(世界時)。如果撤銷時間與格林威治標(biāo)準時間(1970-01-01)不相同,說明證書被撤銷,現(xiàn)在處于撤銷狀態(tài),把flag設(shè)置為false。

第(Ⅷ)行:取出證書撤銷原因的狀態(tài)。

第(Ⅸ)行:每個證書默認的證書撤銷原因的狀態(tài)為“-1”,此狀態(tài)代表證書沒有撤銷。如果證書被撤銷,此屬性將被設(shè)置為相應(yīng)的撤銷原因。如果撤銷原因狀態(tài)與“-1”不相等,說明證書被撤銷,現(xiàn)在處于撤銷狀態(tài),把flag設(shè)置為false。

當(dāng)所有驗證過程執(zhí)行完畢,flag仍然為true。此時,說明此用戶為真實有效的合法用戶,用戶身份認證成功,用戶可以成功登錄到編碼申領(lǐng)系統(tǒng),進行制品申報等業(yè)務(wù)操作了[9-11]。

2.4 結(jié)果分析

現(xiàn)階段,普通的業(yè)務(wù)系統(tǒng)進行的都是簡單相等驗證,即實際用戶名和密碼哈希值的簡單相等驗證。此驗證方法實質(zhì)上就是判斷用戶和密碼哈希值是否匹配。針對每一個用戶,每次驗證時在網(wǎng)絡(luò)上傳輸?shù)挠脩裘兔艽a都是一樣的,這是一個安全漏洞。

將EJBCA的CA身份認證功能添加到編碼申領(lǐng)業(yè)務(wù)系統(tǒng)中,在簡單相等身份驗證的基礎(chǔ)之上,添加了一層CA的身份認證。CA認證是十分安全可靠的,從而大大提高了業(yè)務(wù)系統(tǒng)的身份認證安全。

在經(jīng)濟效益方面,一個業(yè)務(wù)系統(tǒng)想要使用第三方CA認證中心,需要增加很多費用,包括CA認證服務(wù)器購置的費用;制作CA證書的費用;CA證書維護費用等,僅僅是以上幾項,大致需要幾十萬元,這使得很多業(yè)務(wù)系統(tǒng)對于CA認證都望而卻步。

本方案中,使用免費的、企業(yè)級的、功能齊全的EJBCA實現(xiàn)CA認證中心。客戶只需要花費一定量的費用購買USB KEY即可,此部分費用大致幾百元到幾千元。本方案為業(yè)務(wù)系統(tǒng)提供相同級別的安全,卻大大降低了費用。

3 結(jié)束語

互聯(lián)網(wǎng)的飛速發(fā)展,給人們生活帶來方便的同時,也帶來很多安全方面的隱患。越來越多的業(yè)務(wù)系統(tǒng)希望提高安全性,但是,又很顧忌使用第三方CA認證中心帶來的巨大開銷。所以,本文提出使用開源的、免費的CA認證中心——EJBCA。針對業(yè)務(wù)系統(tǒng)的具體需求,搭建自己的CA認證中心。這種方式靈活性非常強,比如:用戶不需要通過LDAP查看證書信息和證書撤銷列表,在整個EJBCA中就可以不搭建LDAP部分。通過配置EJBCA Web Service服務(wù),使得業(yè)務(wù)系統(tǒng)可以十分方便地與EJBCA進行信息交互,實現(xiàn)用戶的身份認證,從而得以保障業(yè)務(wù)系統(tǒng)的身份認證的安全性。而且,使用EJBCA所產(chǎn)生的費用,相對來說是十分低廉的。

下一步主要有兩項工作:第一,實現(xiàn)EJBCA的多級CA,這樣更加有利于實現(xiàn)對用戶證書權(quán)限的控制;第二,業(yè)務(wù)系統(tǒng)結(jié)合CA實現(xiàn)更加安全可靠的用戶身份認證。在此基礎(chǔ)之上,希望可以結(jié)合其他信息安全方面的技術(shù),對業(yè)務(wù)系統(tǒng)中需要在網(wǎng)絡(luò)間傳輸?shù)臄?shù)據(jù)進行安全操作。比如,實現(xiàn)制品申報數(shù)據(jù)的數(shù)字簽名、多人數(shù)字簽名、數(shù)字信封等功能。從而,進一步提高業(yè)務(wù)系統(tǒng)的安全性。

[1]顏海龍,喻建平,胡強,等.基于PKI/CA的分布式跨域信任平臺研究與實現(xiàn)[J].計算機工程與設(shè)計,2013,34(2):686-690.

[2]錢曉捷,趙亞濤,宋兵.容忍入侵的CA方案設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2011,32(10):3262-3265.

[3]顏海龍,閆巧,馮級強,等.基于PKI/CA互信互認體系的電子商務(wù)[J].深圳大學(xué)學(xué)報:理工版,2012,29(3):113-117.

[4]張虎強,洪佩林,李津生,等.用戶名密碼認證方案的安全性分析及解決方案[J].計算機工程與應(yīng)用,2006(33):102-106.

[5]陳勤,凌青山,丁宏.安全CA實例—EJBCA的研究[J].計算機工程與設(shè)計,2005,26(12):3222-3224.

[6]王代,陳長海,熊允發(fā).公安大學(xué)PKI/PMI身份認證與授權(quán)訪問系統(tǒng)分析[J].中國人民公安大學(xué)學(xué)報:自然科學(xué)版,2012(1):49-52.

[7]劉博,劉知貴,任立學(xué).PKI認證技術(shù)在閱卷系統(tǒng)中的應(yīng)用與實現(xiàn)[J].計算機安全,2010(5):83-85.

[8]吳鵬,王曉峻,蘇新寧.基于PKI/PMI的Web應(yīng)用安全解決方案[J].計算機工程與應(yīng)用,2006(6):1-3.

[9]徐歆愷,梁軍.巧用CAPICOM進行安全通信[J].計算機與網(wǎng)絡(luò),2009(18):53-55.

[10]周志剛,徐芳,肖曉華,等.在Java中進行數(shù)字簽名的一種實現(xiàn)方法[J].科學(xué)技術(shù)與工程,2006,6(17):2752-2754.

[11]張青鳳,張鳳琴.CryptoAPI在基于數(shù)字證書身份認證系統(tǒng)中的應(yīng)用[J].現(xiàn)代計算機,2011(10):28-31.

猜你喜歡
數(shù)字證書密碼證書
WJCI 收錄證書
CSCD收錄證書
草原與草坪(2022年1期)2022-05-11 10:44:40
密碼里的愛
收錄證書
密碼疲勞
英語文摘(2020年3期)2020-08-13 07:27:02
收錄證書
當(dāng)心黑客利用數(shù)字證書的漏洞
密碼藏在何處
基于數(shù)字證書的軍事信息系統(tǒng)安全防護方案
奪命密碼
延庆县| 上思县| 措美县| 庄浪县| 布拖县| 临清市| 湟源县| 尤溪县| 麟游县| 武强县| 湘乡市| 囊谦县| 忻城县| 通渭县| 张北县| 调兵山市| 巫山县| 江永县| 南部县| 平利县| 荥经县| 大新县| 济源市| 姜堰市| 墨江| 阿拉善盟| 江阴市| 平乡县| 合阳县| 铜川市| 东辽县| 保定市| 沾化县| 岚皋县| 桐庐县| 师宗县| 汤原县| 来安县| 大余县| 苍南县| 大同市|