本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),尤其是一種穩(wěn)定通信的方法、系統(tǒng)、挖礦服務(wù)器和客戶端。
背景技術(shù):
P2P對(duì)等網(wǎng)絡(luò),即對(duì)等計(jì)算機(jī)網(wǎng)絡(luò),是一種在對(duì)等者(Peer)之間分配任務(wù)和工作負(fù)載的分布式應(yīng)用架構(gòu),是對(duì)等計(jì)算模型在應(yīng)用層形成的一種組網(wǎng)或網(wǎng)絡(luò)形式。P2P電子貨幣系統(tǒng)為一種采用工作量證明機(jī)制的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)來(lái)記錄交易的公開信息,在進(jìn)行工作量證明的計(jì)算中,計(jì)算客戶端會(huì)連接前端的挖礦服務(wù),獲取計(jì)算工作,并將計(jì)算結(jié)果返回給挖礦服務(wù)器,其中挖礦服務(wù)器與計(jì)算客戶端之間的連接為TCP的長(zhǎng)連接方式。
然而,在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)至少存在以下問題:現(xiàn)有技術(shù)中挖礦服務(wù)器與計(jì)算客戶端之間的TCP長(zhǎng)連接需要一直保持連接和穩(wěn)定性,如果遇到了DDOS等攻擊,計(jì)算客戶端就不能連接到挖礦服務(wù),會(huì)影響整個(gè)挖礦進(jìn)程和收益。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例所要解決的一個(gè)技術(shù)問題是:使挖礦服務(wù)器與服務(wù)器之間的連接在接收到攻擊后能快速重新建立。
本發(fā)明實(shí)施例提供的一種穩(wěn)定通信的方法,其特征在于,包括:
響應(yīng)于接收到客戶端的訪問請(qǐng)求,挖礦服務(wù)器發(fā)送多個(gè)ip地址給所述客戶端;基于所述多個(gè)ip地址中的一個(gè)ip地址建立所述客戶端與所述挖礦服務(wù)器的連接;
當(dāng)接收到基于所述客戶端與所述挖礦服務(wù)器建立連接的一個(gè)ip地址的攻擊時(shí),斷開所述客戶端與所述挖礦服務(wù)器基于所述一個(gè)ip地址的連接;基于所述多個(gè)ip地址中的另一個(gè)ip地址建立所述客戶端與所述挖礦服務(wù)器的連接。
基于上述方法的另一實(shí)施例中,所述客戶端從接收到的所述多個(gè)ip地址選擇另一個(gè)ip地址與所述挖礦服務(wù)器建立連接后,還包括:所述挖礦服務(wù)器向所述客戶端重新發(fā)送多個(gè)ip地址。
基于上述方法的另一實(shí)施例中,所述挖礦服務(wù)器發(fā)送多個(gè)ip地址給所述客戶端,包括:
所述挖礦服務(wù)器基于TCP同步握手通信將所述多個(gè)ip地址發(fā)送給所述客戶端。
基于上述方法的另一實(shí)施例中,所述挖礦服務(wù)器向所述客戶端重新發(fā)送多個(gè)ip地址后,還包括:
對(duì)所述被攻擊的ip地址分析獲得對(duì)應(yīng)所述ip地址的的網(wǎng)絡(luò)地址和主機(jī)地址,基于網(wǎng)絡(luò)地址將所述被攻擊的ip地址進(jìn)行地域劃分,將經(jīng)過(guò)地域劃分后的所述被攻擊的ip地址存入相應(yīng)地域數(shù)據(jù)庫(kù)中;
所述地域數(shù)據(jù)庫(kù)中用于存儲(chǔ)針對(duì)同一客戶端的屬于一個(gè)網(wǎng)絡(luò)地址的所有已經(jīng)被攻擊過(guò)的ip地址。
基于上述方法的另一實(shí)施例中,所述地域數(shù)據(jù)庫(kù)中存儲(chǔ)的所有ip地址將不再發(fā)送到所述地域數(shù)據(jù)庫(kù)所對(duì)應(yīng)的客戶端。
基于上述方法的另一實(shí)施例中,所述客戶端與所述挖礦服務(wù)器建立連接后,接收所述挖礦服務(wù)器發(fā)送的具有預(yù)設(shè)工作量的計(jì)算任務(wù),所述客戶端處理所述計(jì)算任務(wù)得到計(jì)算結(jié)果,并將所述計(jì)算結(jié)果反饋給所述挖礦服務(wù)器。
基于上述方法的另一實(shí)施例中,所述挖礦服務(wù)器接收所述客戶端發(fā)送的計(jì)算結(jié)果后,向所述客戶端反饋對(duì)應(yīng)所述計(jì)算結(jié)果的預(yù)設(shè)工作量。
基于上述方法的另一實(shí)施例中,所述挖礦服務(wù)器發(fā)送具有預(yù)設(shè)工作量的計(jì)算任務(wù)之前,還包括:
將所述預(yù)設(shè)工作量的計(jì)算任務(wù)通過(guò)約定的密鑰進(jìn)行加密,將加密后的所述預(yù)設(shè)工作量的計(jì)算任務(wù)發(fā)送到所述客戶端,所述客戶端通過(guò)約定的密鑰對(duì)接收到的加密后的所述預(yù)設(shè)工作量的計(jì)算任務(wù)進(jìn)行解密后得到所述預(yù)設(shè)工作量的計(jì)算任務(wù)。
基于上述方法的另一實(shí)施例中,所述挖礦服務(wù)器接收到客戶端的訪問請(qǐng)求后,發(fā)送多個(gè)ip地址給所述客戶端的同時(shí),還將約定的密鑰發(fā)送給所述客戶端。
基于上述方法的另一實(shí)施例中,所述基于所述客戶端與所述挖礦服務(wù)器建立連接的一個(gè)ip地址的攻擊包括:分布式拒絕服務(wù)攻擊。
基于上述方法的另一實(shí)施例中,所述挖礦服務(wù)器響應(yīng)于接收到的分布式拒絕服務(wù)攻擊后,在設(shè)定時(shí)間內(nèi)變換所述挖礦服務(wù)器對(duì)應(yīng)域名的ip地址,使所述分布式拒絕服務(wù)攻擊不能集中流量針對(duì)所述挖礦服務(wù)器。
基于上述方法的另一實(shí)施例中,所述客戶端與所述挖礦服務(wù)器之間的連接為TCP長(zhǎng)連接。
根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,提供的一種挖礦服務(wù)器,包括:
連接建立單元,用于響應(yīng)于接收到客戶端的訪問請(qǐng)求,發(fā)送多個(gè)ip地址給所述客戶端;基于所述多個(gè)ip地址中的一個(gè)ip地址與所述客戶端建立連接;
連接轉(zhuǎn)換單元,用于當(dāng)所述與客戶端基于一個(gè)ip地址的連接受到攻擊時(shí),斷開與所述客戶端基于所述一個(gè)ip地址的連接;響應(yīng)于所述客戶端發(fā)送的基于所述多個(gè)ip地址中的另一個(gè)ip地址建立連接請(qǐng)求,與所述客戶端的連接。
根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,提供的一種客戶端,其特征在于,包括:
連接請(qǐng)求單元,用于向挖礦服務(wù)器發(fā)送訪問請(qǐng)求,并接收挖礦服務(wù)器發(fā)送多個(gè)ip地址;基于所述多個(gè)ip地址中的一個(gè)ip地址與所述挖礦服務(wù)器建立連接;
連接替換單元,用于當(dāng)所述與挖礦服務(wù)器基于一個(gè)ip地址的連接受到攻擊時(shí),斷開與所述挖礦服務(wù)器基于所述一個(gè)ip地址的連接;基于所述接收的多個(gè)ip地址中的另一個(gè)ip地址向所述挖礦服務(wù)器發(fā)送建立連接請(qǐng)求,建立與所述挖礦服務(wù)器的連接。
根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,提供的一種穩(wěn)定通信的系統(tǒng),包括如上所述的挖礦服務(wù)器和如上所述的客戶端。
基于本發(fā)明上述實(shí)施例提供的一種穩(wěn)定通信的方法、系統(tǒng)、挖礦服務(wù)器和客戶端,每次挖礦服務(wù)器與客戶端建立連接時(shí),挖礦服務(wù)器發(fā)送多個(gè)ip地址給客戶端,選擇其中一個(gè)ip地址建立挖礦服務(wù)器與客戶端的連接,當(dāng)接收到對(duì)連接的攻擊時(shí),斷開該連接,選擇多個(gè)ip地址的中另一個(gè)ip地址重新建立挖礦服務(wù)器與客戶端的連接,有效的防止因?yàn)楣舳l(fā)送的挖礦服務(wù)器與客戶端斷開無(wú)法連接的現(xiàn)象,并且每次發(fā)送多個(gè)ip地址使后續(xù)重新建立連接快捷方便,并且不會(huì)出錯(cuò)。
下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
附圖說(shuō)明
構(gòu)成說(shuō)明書的一部分的附圖描述了本發(fā)明的實(shí)施例,并且連同描述一起用于解釋本發(fā)明的原理。
參照附圖,根據(jù)下面的詳細(xì)描述,可以更加清楚地理解本發(fā)明,其中:
圖1為本發(fā)明方法一個(gè)實(shí)施例的流程圖。
圖2為本發(fā)明方法另一個(gè)實(shí)施例的流程圖。
圖3為本發(fā)明方法又一個(gè)實(shí)施例的流程圖。
圖4為本發(fā)明挖礦服務(wù)器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
圖5為本發(fā)明挖礦服務(wù)器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
圖6為本發(fā)明挖礦服務(wù)器又一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
圖7為本發(fā)明客戶端的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
現(xiàn)在將參照附圖來(lái)詳細(xì)描述本發(fā)明的各種示例性實(shí)施例。應(yīng)注意到:除非另外具體說(shuō)明,否則在這些實(shí)施例中闡述的部件和步驟的相對(duì)布置、數(shù)字表達(dá)式和數(shù)值不限制本發(fā)明的范圍。
同時(shí),應(yīng)當(dāng)明白,為了便于描述,附圖中所示出的各個(gè)部分的尺寸并不是按照實(shí)際的比例關(guān)系繪制的。
以下對(duì)至少一個(gè)示例性實(shí)施例的描述實(shí)際上僅僅是說(shuō)明性的,決不作為對(duì)本發(fā)明及其應(yīng)用或使用的任何限制。
對(duì)于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細(xì)討論,但在適當(dāng)情況下,所述技術(shù)、方法和設(shè)備應(yīng)當(dāng)被視為說(shuō)明書的一部分。
應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步討論。
本發(fā)明實(shí)施例可以應(yīng)用于計(jì)算機(jī)系統(tǒng)/服務(wù)器,其可與眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起操作。適于與計(jì)算機(jī)系統(tǒng)/服務(wù)器一起使用的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于:個(gè)人計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)系統(tǒng)、瘦客戶機(jī)、胖客戶機(jī)、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)個(gè)人電腦、小型計(jì)算機(jī)系統(tǒng)﹑大型計(jì)算機(jī)系統(tǒng)和包括上述任何系統(tǒng)的分布式云計(jì)算技術(shù)環(huán)境,等等。
計(jì)算機(jī)系統(tǒng)/服務(wù)器可以在由計(jì)算機(jī)系統(tǒng)執(zhí)行的計(jì)算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語(yǔ)境下描述。通常,程序模塊可以包括例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類型。計(jì)算機(jī)系統(tǒng)/服務(wù)器可以在分布式云計(jì)算環(huán)境中實(shí)施,分布式云計(jì)算環(huán)境中,任務(wù)是由通過(guò)通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行的。在分布式云計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備的本地或遠(yuǎn)程計(jì)算系統(tǒng)存儲(chǔ)介質(zhì)上。
圖1為本發(fā)明方法一個(gè)實(shí)施例的流程圖。如圖1所示,該實(shí)施例方法包括:
步驟10,響應(yīng)于接收到客戶端的訪問請(qǐng)求,挖礦服務(wù)器發(fā)送多個(gè)ip地址給該客戶端;基于多個(gè)ip地址中的一個(gè)ip地址建立該客戶端與挖礦服務(wù)器的連接。
在本實(shí)施例中挖礦服務(wù)器每次接收到客戶端的訪問請(qǐng)求,都發(fā)送多個(gè)ip地址給該客戶端,而客戶端選擇接收的多個(gè)ip地址中的一個(gè)ip地址與挖礦服務(wù)器建立連接,使連接具有可選擇性,對(duì)于針對(duì)ip地址的攻擊有一定防范功能。
步驟20,當(dāng)接收到基于該客戶端與挖礦服務(wù)器建立連接的一個(gè)ip地址的攻擊時(shí),斷開該客戶端與挖礦服務(wù)器基于一個(gè)ip地址的連接;基于多個(gè)ip地址中的另一個(gè)ip地址建立該客戶端與挖礦服務(wù)器的連接。
基于本發(fā)明上述實(shí)施例提供的一種穩(wěn)定通信的方法,每次挖礦服務(wù)器與客戶端建立連接時(shí),挖礦服務(wù)器發(fā)送多個(gè)ip地址給客戶端,選擇其中一個(gè)ip地址建立挖礦服務(wù)器與客戶端的連接,當(dāng)接收到對(duì)連接的攻擊時(shí),斷開該連接,選擇多個(gè)ip地址的中另一個(gè)ip地址重新建立挖礦服務(wù)器與客戶端的連接,有效的防止因?yàn)楣舳l(fā)送的挖礦服務(wù)器與客戶端斷開無(wú)法連接的現(xiàn)象,并且每次發(fā)送多個(gè)ip地址使后續(xù)重新建立連接快捷方便,并且不會(huì)出錯(cuò)。
圖2為本發(fā)明方法另一個(gè)實(shí)施例的流程圖。該實(shí)施例方法包括:
步驟10,響應(yīng)于接收到客戶端的訪問請(qǐng)求,挖礦服務(wù)器發(fā)送多個(gè)ip地址給該客戶端;基于多個(gè)ip地址中的一個(gè)ip地址建立該客戶端與挖礦服務(wù)器的連接。
步驟20,當(dāng)接收到基于該客戶端與挖礦服務(wù)器建立連接的一個(gè)ip地址的攻擊時(shí),斷開該客戶端與挖礦服務(wù)器基于一個(gè)ip地址的連接;基于多個(gè)ip地址中的另一個(gè)ip地址建立該客戶端與挖礦服務(wù)器的連接。
步驟30,挖礦服務(wù)器向該客戶端重新發(fā)送多個(gè)ip地址。
在本實(shí)施例中,挖礦服務(wù)器與客戶端已重新基于一個(gè)ip地址建立了連接,此時(shí)挖礦服務(wù)器重新向該客戶端發(fā)送多個(gè)ip地址,可以使客戶端與挖礦服務(wù)器之間的連接在再次收到攻擊時(shí)保證還具有可替換的ip地址,因?yàn)槿绻状伟l(fā)送的ip地址為2個(gè),收到攻擊替換ip地址后,客戶端將沒有可用的ip地址,因此,挖礦服務(wù)器需要重新向該客戶端發(fā)送多個(gè)ip地址,以保證該連接能夠接收多次攻擊。
本發(fā)明另一個(gè)實(shí)施例中,在上述實(shí)施例的基礎(chǔ)上,步驟10和步驟30中挖礦服務(wù)器發(fā)送多個(gè)ip地址給該客戶端,具體可以包括:
挖礦服務(wù)器基于TCP同步握手通信將多個(gè)ip地址發(fā)送給該客戶端。
本實(shí)施例中基于TCP同步握手通信發(fā)送多個(gè)ip地址,保證了ip地址發(fā)送的準(zhǔn)確性和穩(wěn)定性,保證了客戶端一定能收到挖礦服務(wù)器發(fā)送的ip地址。TCP(Transmission Control Protocol傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由IETF的RFC 793定義。TCP三次握手的過(guò)程如下:客戶端發(fā)送SYN(SEQ=x)報(bào)文給服務(wù)器端,進(jìn)入SYN_SEND狀態(tài)。服務(wù)器端收到SYN報(bào)文,回應(yīng)一個(gè)SYN(SEQ=y(tǒng))ACK(ACK=x+1)報(bào)文,進(jìn)入SYN_RECV狀態(tài)??蛻舳耸盏椒?wù)器端的SYN報(bào)文,回應(yīng)一個(gè)ACK(ACK=y(tǒng)+1)報(bào)文,進(jìn)入Established狀態(tài)。
本發(fā)明另一個(gè)實(shí)施例中,在上述實(shí)施例的基礎(chǔ)上,在步驟30之后還可以包括:
對(duì)被攻擊的ip地址分析獲得對(duì)應(yīng)該ip地址的的網(wǎng)絡(luò)地址和主機(jī)地址,基于網(wǎng)絡(luò)地址將該被攻擊的ip地址進(jìn)行地域劃分,將經(jīng)過(guò)地域劃分后的該被攻擊的ip地址存入相應(yīng)地域數(shù)據(jù)庫(kù)中。
其中,地域數(shù)據(jù)庫(kù)中用于存儲(chǔ)針對(duì)同一客戶端的屬于一個(gè)網(wǎng)絡(luò)地址的所有已經(jīng)被攻擊過(guò)的ip地址。并且地域數(shù)據(jù)庫(kù)中存儲(chǔ)的所有ip地址將不再發(fā)送到該地域數(shù)據(jù)庫(kù)所對(duì)應(yīng)的客戶端。
在本實(shí)施例中,將被攻擊過(guò)的客戶端和ip地址進(jìn)行存儲(chǔ),并且每個(gè)被攻擊過(guò)的客戶端對(duì)應(yīng)所有針對(duì)該客戶端受到攻擊的ip地址,保存這些受過(guò)攻擊的ip地址,并控制這些受過(guò)攻擊的ip地址不再重新發(fā)送到對(duì)應(yīng)的客戶端,保證了該客戶端不會(huì)因?yàn)橹匦逻B接受過(guò)攻擊的ip地址而受到重復(fù)攻擊。
圖3為本發(fā)明方法又一個(gè)實(shí)施例的流程圖。該方法實(shí)施例包括:
步驟10,響應(yīng)于接收到客戶端的訪問請(qǐng)求,挖礦服務(wù)器發(fā)送多個(gè)ip地址給該客戶端;基于多個(gè)ip地址中的一個(gè)ip地址建立該客戶端與挖礦服務(wù)器的連接。
步驟40,判斷是否接收到基于該客戶端與挖礦服務(wù)器建立連接的一個(gè)ip地址的攻擊,如果是,執(zhí)行步驟20;否則,執(zhí)行步驟50。
步驟20,斷開該客戶端與挖礦服務(wù)器基于一個(gè)ip地址的連接;基于多個(gè)ip地址中的另一個(gè)ip地址建立該客戶端與挖礦服務(wù)器的連接,執(zhí)行步驟40。
步驟50,接收挖礦服務(wù)器發(fā)送的具有預(yù)設(shè)工作量的計(jì)算任務(wù),該客戶端處理該計(jì)算任務(wù)得到計(jì)算結(jié)果,并將計(jì)算結(jié)果反饋給挖礦服務(wù)器。
在本實(shí)施例中,記載了挖礦服務(wù)器與客戶端建立連接的目的所在,建立連接并不是最終目的,建立連接是為了傳輸計(jì)算任務(wù)和計(jì)算結(jié)果,因此,在建立連接后,并且該連接未受到攻擊時(shí),挖礦服務(wù)器下發(fā)計(jì)算任務(wù)到客戶端,客戶端計(jì)算后將計(jì)算結(jié)果反饋給挖礦服務(wù)器,實(shí)現(xiàn)了客戶端在穩(wěn)定的連接中進(jìn)行挖礦的過(guò)程。
在本發(fā)明上述實(shí)施例的一個(gè)具體示例中,在步驟50挖礦服務(wù)器接收客戶端發(fā)送的計(jì)算結(jié)果后,還包括向該客戶端反饋對(duì)應(yīng)計(jì)算結(jié)果的預(yù)設(shè)工作量。
比特幣挖礦過(guò)程通常有大量客戶端參與挖礦,因此,在產(chǎn)出時(shí)需要按照工作量對(duì)產(chǎn)出的比特幣進(jìn)行分配,因此,需要對(duì)每個(gè)客戶端進(jìn)行計(jì)算并基于計(jì)算結(jié)果得到的工作量進(jìn)行統(tǒng)計(jì),只有在比特幣產(chǎn)出時(shí)得到每個(gè)參與計(jì)算的客戶端的工作量,才能將比特幣公平的分配到付出算力的客戶端中。
在本發(fā)明上述實(shí)施例的一個(gè)具體示例中,在步驟50挖礦服務(wù)器發(fā)送具有預(yù)設(shè)工作量的計(jì)算任務(wù)之前,還包括:
將預(yù)設(shè)工作量的計(jì)算任務(wù)通過(guò)約定的密鑰進(jìn)行加密,將加密后的預(yù)設(shè)工作量的計(jì)算任務(wù)發(fā)送到客戶端,該客戶端通過(guò)約定的密鑰對(duì)接收到的加密后的預(yù)設(shè)工作量的計(jì)算任務(wù)進(jìn)行解密后得到該預(yù)設(shè)工作量的計(jì)算任務(wù)。
在本實(shí)施例中為了保證挖礦服務(wù)器與客戶端之間傳輸?shù)娜蝿?wù)數(shù)據(jù)的安全性,在傳輸之前將計(jì)算任務(wù)進(jìn)行加密,客戶端收到加密的計(jì)算任務(wù)后通過(guò)約定密鑰進(jìn)行解密,保證了計(jì)算任務(wù)與客戶端的對(duì)應(yīng)性,即發(fā)給該客戶端的計(jì)算任務(wù),即使被非法截獲了,由于無(wú)法解密也無(wú)法對(duì)該計(jì)算任務(wù)進(jìn)行處理,保證了與挖礦服務(wù)器建立穩(wěn)定連接的客戶端的利益不受侵害。
在本實(shí)施例中,上述又一個(gè)實(shí)施例中所使用的密鑰是挖礦服務(wù)器接收到客戶端的訪問請(qǐng)求后,發(fā)送多個(gè)ip地址給該客戶端的同時(shí)發(fā)送給該客戶端的。
通過(guò)在建立連接的過(guò)程中同時(shí)通知密鑰,保證了密鑰的即時(shí)性和安全性,對(duì)于同一個(gè)客戶端在其他時(shí)間重新申請(qǐng)?jiān)L問請(qǐng)求時(shí),將重新發(fā)送新的密鑰,以保證密鑰的即時(shí)性,對(duì)于過(guò)期密鑰將不可用,進(jìn)一步保證了計(jì)算任務(wù)的安全性。
本發(fā)明還一個(gè)實(shí)施例中,在上述各實(shí)施例的基礎(chǔ)上,步驟20中基于客戶端與挖礦服務(wù)器建立連接的一個(gè)ip地址的攻擊包括:DDOS分布式拒絕服務(wù)攻擊。
分布式拒絕服務(wù)(DDOS:Distributed Denial of Service)攻擊指借助于客戶/服務(wù)器技術(shù),將多個(gè)計(jì)算機(jī)聯(lián)合起來(lái)作為攻擊平臺(tái),對(duì)一個(gè)或多個(gè)目標(biāo)發(fā)動(dòng)DDOS攻擊,從而成倍地提高拒絕服務(wù)攻擊的威力。在信息安全的三要素——“保密性”、“完整性”和“可用性”中,DOS(Denial of Service),即拒絕服務(wù)攻擊,針對(duì)的目標(biāo)正是“可用性”。該攻擊方式利用目標(biāo)系統(tǒng)網(wǎng)絡(luò)服務(wù)功能缺陷或者直接消耗其系統(tǒng)資源,使得該目標(biāo)系統(tǒng)無(wú)法提供正常的服務(wù)。因此,本發(fā)明方法在受到DDOS攻擊后,首先是斷開該連接,以避免挖礦服務(wù)器被大量數(shù)據(jù)消耗導(dǎo)致癱瘓,而導(dǎo)致其他客戶端也無(wú)法正常工作,重新建立連接后,該DDOS攻擊將失去攻擊目標(biāo)。
在本發(fā)明上述實(shí)施例的一個(gè)具體示例中,挖礦服務(wù)器響應(yīng)于接收到的分布式拒絕服務(wù)攻擊后,在設(shè)定時(shí)間內(nèi)變換挖礦服務(wù)器對(duì)應(yīng)域名的ip地址。
本實(shí)施例中,在受到攻擊后,斷開連接前的時(shí)間里,挖礦服務(wù)器變換對(duì)應(yīng)域名的ip地址,使該分布式拒絕服務(wù)攻擊不能集中流量針對(duì)挖礦服務(wù)器,保證了挖礦服務(wù)器的正常工作。
在本發(fā)明上述各個(gè)實(shí)施例的一個(gè)具體示例中,客戶端與挖礦服務(wù)器之間的連接為TCP長(zhǎng)連接。
TCP(Transmission Control Protocol傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,能夠保證挖礦服務(wù)器的可訪問性和穩(wěn)定性。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
圖4為本發(fā)明挖礦服務(wù)器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。該實(shí)施例的挖礦服務(wù)器可用于實(shí)現(xiàn)本發(fā)明上述各方法實(shí)施例。如圖4所示,該實(shí)施例包括:
連接建立單元11,用于響應(yīng)于接收到客戶端的訪問請(qǐng)求,發(fā)送多個(gè)ip地址給客戶端;基于多個(gè)ip地址中的一個(gè)ip地址與客戶端建立連接;
連接轉(zhuǎn)換單元12,用于當(dāng)與客戶端基于一個(gè)ip地址的連接受到攻擊時(shí),斷開與客戶端基于所述一個(gè)ip地址的連接;響應(yīng)于客戶端發(fā)送的基于所述多個(gè)ip地址中的另一個(gè)ip地址建立連接請(qǐng)求,與客戶端的連接。
基于本發(fā)明上述實(shí)施例提供的挖礦服務(wù)器,每次挖礦服務(wù)器與客戶端建立連接時(shí),挖礦服務(wù)器發(fā)送多個(gè)ip地址給客戶端,選擇其中一個(gè)ip地址建立挖礦服務(wù)器與客戶端的連接,當(dāng)接收到對(duì)連接的攻擊時(shí),斷開該連接,選擇多個(gè)ip地址的中另一個(gè)ip地址重新建立挖礦服務(wù)器與客戶端的連接,有效的防止因?yàn)楣舳l(fā)送的挖礦服務(wù)器與客戶端斷開無(wú)法連接的現(xiàn)象,并且每次發(fā)送多個(gè)ip地址使后續(xù)重新建立連接快捷方便,并且不會(huì)出錯(cuò)。
本發(fā)明挖礦服務(wù)器的另一個(gè)實(shí)施例中,在上述實(shí)施例的基礎(chǔ)上,連接轉(zhuǎn)換單元12還用于在基于另一個(gè)ip地址建立與客戶端的連接后,向客戶端重新發(fā)送多個(gè)ip地址。
在本實(shí)施例中,挖礦服務(wù)器與客戶端已重新基于一個(gè)ip地址建立了連接,此時(shí)挖礦服務(wù)器重新向該客戶端發(fā)送多個(gè)ip地址,可以使客戶端與挖礦服務(wù)器之間的連接在再次收到攻擊時(shí)保證還具有可替換的ip地址,因?yàn)槿绻状伟l(fā)送的ip地址為2個(gè),收到攻擊替換ip地址后,客戶端將沒有可用的ip地址,因此,挖礦服務(wù)器需要重新向該客戶端發(fā)送多個(gè)ip地址,以保證該連接能夠接收多次攻擊。
本發(fā)明另一個(gè)實(shí)施例中,在上述實(shí)施例的基礎(chǔ)上,連接轉(zhuǎn)換單元12發(fā)送多個(gè)ip地址給客戶端時(shí),具體用于:基于TCP同步握手通信將多個(gè)ip地址發(fā)送給客戶端。
圖5為本發(fā)明挖礦服務(wù)器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。在上述實(shí)施例的基礎(chǔ)上,如圖5所示,還包括存儲(chǔ)單元13,用于對(duì)被攻擊的ip地址分析獲得對(duì)應(yīng)ip地址的的網(wǎng)絡(luò)地址和主機(jī)地址,基于網(wǎng)絡(luò)地址將被攻擊的ip地址進(jìn)行地域劃分,將經(jīng)過(guò)地域劃分后的被攻擊的ip地址存入相應(yīng)地域數(shù)據(jù)庫(kù)中;
其中,地域數(shù)據(jù)庫(kù)中用于存儲(chǔ)針對(duì)同一客戶端的屬于一個(gè)網(wǎng)絡(luò)地址的所有已經(jīng)被攻擊過(guò)的ip地址。
在本發(fā)明上述實(shí)施例的一個(gè)具體示例中,存儲(chǔ)單元13還用于控制地域數(shù)據(jù)庫(kù)中存儲(chǔ)的所有ip地址將不再發(fā)送到所述地域數(shù)據(jù)庫(kù)所對(duì)應(yīng)的客戶端。
圖6為本發(fā)明挖礦服務(wù)器又一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。在上是實(shí)施例的基礎(chǔ)上,連接建立單元11和連接轉(zhuǎn)換單元12建立與客戶端的連接后,還包括計(jì)算單元14,用于發(fā)送具有預(yù)設(shè)工作流的計(jì)算任務(wù)給客戶端,并接收客戶端反饋的對(duì)計(jì)算任務(wù)處理得到計(jì)算結(jié)果。
在本發(fā)明上述實(shí)施例的一個(gè)具體示例中,還包括結(jié)果反饋單元15,用于在接收客戶端發(fā)送的計(jì)算結(jié)果后,向客戶端反饋對(duì)應(yīng)計(jì)算結(jié)果的預(yù)設(shè)工作量。
在本發(fā)明上述實(shí)施例的一個(gè)具體示例中,還包括加密單元,用于將預(yù)設(shè)工作量的計(jì)算任務(wù)通過(guò)約定的密鑰進(jìn)行加密,將加密后的預(yù)設(shè)工作量的計(jì)算任務(wù)發(fā)送到客戶端。
在本發(fā)明上述實(shí)施例的一個(gè)具體示例中,連接建立單元11和連接轉(zhuǎn)換單元12在發(fā)送多個(gè)ip地址給客戶端的同時(shí),還用于控制將約定的密鑰發(fā)送給客戶端。
本發(fā)明還一個(gè)實(shí)施例中,在上述各實(shí)施例的基礎(chǔ)上,連接轉(zhuǎn)換單元12接收到的與客戶端基于一個(gè)ip地址的連接受到的攻擊為分布式拒絕服務(wù)攻擊。
本實(shí)施例在受到DDOS攻擊后,首先是斷開該連接,以避免挖礦服務(wù)器被大量數(shù)據(jù)消耗導(dǎo)致癱瘓,而導(dǎo)致其他客戶端也無(wú)法正常工作,重新建立連接后,該DDOS攻擊將失去攻擊目標(biāo)。
在本發(fā)明上述實(shí)施例的一個(gè)具體示例中,連接轉(zhuǎn)換單元12接收到分布式拒絕服務(wù)攻擊后,還用于在設(shè)定時(shí)間內(nèi)變換對(duì)應(yīng)域名的ip地址,使分布式拒絕服務(wù)攻擊不能集中流量針對(duì)挖礦服務(wù)器。
在本發(fā)明上述各個(gè)實(shí)施例的一個(gè)具體示例中,連接建立單元11和連接轉(zhuǎn)換單元12建立的與客戶端之間的連接為TCP長(zhǎng)連接。
圖7為本發(fā)明客戶端的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。如圖7所示,該客戶端包括:
連接請(qǐng)求單元21,用于向挖礦服務(wù)器發(fā)送訪問請(qǐng)求,并接收挖礦服務(wù)器發(fā)送多個(gè)ip地址;基于所述多個(gè)ip地址中的一個(gè)ip地址與所述挖礦服務(wù)器建立連接;
連接替換單元22,用于當(dāng)所述與挖礦服務(wù)器基于一個(gè)ip地址的連接受到攻擊時(shí),斷開與所述挖礦服務(wù)器基于所述一個(gè)ip地址的連接;基于所述接收的多個(gè)ip地址中的另一個(gè)ip地址向所述挖礦服務(wù)器發(fā)送建立連接請(qǐng)求,建立與所述挖礦服務(wù)器的連接。
本發(fā)明客戶端的另一個(gè)實(shí)施例中,在上述實(shí)施例的基礎(chǔ)上,還包括解密單元,用于通過(guò)約定的密鑰對(duì)接收到的挖礦服務(wù)器加密后的預(yù)設(shè)工作量的計(jì)算任務(wù)進(jìn)行解密,并得到預(yù)設(shè)工作量的計(jì)算任務(wù)。
其中,解密單元與挖礦服務(wù)器中的加密單元相對(duì)應(yīng),用于對(duì)挖掘服務(wù)器發(fā)送的經(jīng)過(guò)加密單元加密后的任務(wù)數(shù)據(jù)進(jìn)行解密。
本發(fā)明還提供穩(wěn)定通信的系統(tǒng)的一個(gè)實(shí)施例,包括如上述實(shí)施例中任意一項(xiàng)的挖礦服務(wù)器和如上述實(shí)施例中任意一項(xiàng)的客戶端。
1、一種穩(wěn)定通信的方法,包括:
響應(yīng)于接收到客戶端的訪問請(qǐng)求,挖礦服務(wù)器發(fā)送多個(gè)ip地址給所述客戶端;基于所述多個(gè)ip地址中的一個(gè)ip地址建立所述客戶端與所述挖礦服務(wù)器的連接;
當(dāng)接收到基于所述客戶端與所述挖礦服務(wù)器建立連接的一個(gè)ip地址的攻擊時(shí),斷開所述客戶端與所述挖礦服務(wù)器基于所述一個(gè)ip地址的連接;基于所述多個(gè)ip地址中的另一個(gè)ip地址建立所述客戶端與所述挖礦服務(wù)器的連接。
2、根據(jù)1所述的方法,所述客戶端從接收到的所述多個(gè)ip地址選擇另一個(gè)ip地址與所述挖礦服務(wù)器建立連接后,還包括:所述挖礦服務(wù)器向所述客戶端重新發(fā)送多個(gè)ip地址。
3、根據(jù)1或2所述的方法,所述挖礦服務(wù)器發(fā)送多個(gè)ip地址給所述客戶端,包括:
所述挖礦服務(wù)器基于TCP同步握手通信將所述多個(gè)ip地址發(fā)送給所述客戶端。
4、根據(jù)2或3所述的方法,所述挖礦服務(wù)器向所述客戶端重新發(fā)送多個(gè)ip地址后,還包括:
對(duì)所述被攻擊的ip地址分析獲得對(duì)應(yīng)所述ip地址的的網(wǎng)絡(luò)地址和主機(jī)地址,基于網(wǎng)絡(luò)地址將所述被攻擊的ip地址進(jìn)行地域劃分,將經(jīng)過(guò)地域劃分后的所述被攻擊的ip地址存入相應(yīng)地域數(shù)據(jù)庫(kù)中;
所述地域數(shù)據(jù)庫(kù)中用于存儲(chǔ)針對(duì)同一客戶端的屬于一個(gè)網(wǎng)絡(luò)地址的所有已經(jīng)被攻擊過(guò)的ip地址。
5、根據(jù)4所述的方法,所述地域數(shù)據(jù)庫(kù)中存儲(chǔ)的所有ip地址將不再發(fā)送到所述地域數(shù)據(jù)庫(kù)所對(duì)應(yīng)的客戶端。
6、根據(jù)1至5任意一項(xiàng)所述的方法,所述客戶端與所述挖礦服務(wù)器建立連接后,接收所述挖礦服務(wù)器發(fā)送的具有預(yù)設(shè)工作量的計(jì)算任務(wù),所述客戶端處理所述計(jì)算任務(wù)得到計(jì)算結(jié)果,并將所述計(jì)算結(jié)果反饋給所述挖礦服務(wù)器。
7、根據(jù)6所述的方法,所述挖礦服務(wù)器接收所述客戶端發(fā)送的計(jì)算結(jié)果后,向所述客戶端反饋對(duì)應(yīng)所述計(jì)算結(jié)果的預(yù)設(shè)工作量。
8、根據(jù)6或7所述的方法,所述挖礦服務(wù)器發(fā)送具有預(yù)設(shè)工作量的計(jì)算任務(wù)之前,還包括:
將所述預(yù)設(shè)工作量的計(jì)算任務(wù)通過(guò)約定的密鑰進(jìn)行加密,將加密后的所述預(yù)設(shè)工作量的計(jì)算任務(wù)發(fā)送到所述客戶端,所述客戶端通過(guò)約定的密鑰對(duì)接收到的加密后的所述預(yù)設(shè)工作量的計(jì)算任務(wù)進(jìn)行解密后得到所述預(yù)設(shè)工作量的計(jì)算任務(wù)。
9、根據(jù)8所述的方法,所述挖礦服務(wù)器接收到客戶端的訪問請(qǐng)求后,發(fā)送多個(gè)ip地址給所述客戶端的同時(shí),還將約定的密鑰發(fā)送給所述客戶端。
10、根據(jù)1至9任意一項(xiàng)所述的方法,所述基于所述客戶端與所述挖礦服務(wù)器建立連接的一個(gè)ip地址的攻擊包括:分布式拒絕服務(wù)攻擊。
11、根據(jù)9所述的方法,所述挖礦服務(wù)器響應(yīng)于接收到的分布式拒絕服務(wù)攻擊后,在設(shè)定時(shí)間內(nèi)變換所述挖礦服務(wù)器對(duì)應(yīng)域名的ip地址,使所述分布式拒絕服務(wù)攻擊不能集中流量針對(duì)所述挖礦服務(wù)器。
12、根據(jù)1至11任意一項(xiàng)所述的方法,所述客戶端與所述挖礦服務(wù)器之間的連接為TCP長(zhǎng)連接。
13、一種挖礦服務(wù)器,包括:
連接建立單元,用于響應(yīng)于接收到客戶端的訪問請(qǐng)求,發(fā)送多個(gè)ip地址給所述客戶端;基于所述多個(gè)ip地址中的一個(gè)ip地址與所述客戶端建立連接;
連接轉(zhuǎn)換單元,用于當(dāng)所述與客戶端基于一個(gè)ip地址的連接受到攻擊時(shí),斷開與所述客戶端基于所述一個(gè)ip地址的連接;響應(yīng)于所述客戶端發(fā)送的基于所述多個(gè)ip地址中的另一個(gè)ip地址建立連接請(qǐng)求,與所述客戶端的連接。
14、根據(jù)13所述的挖礦服務(wù)器,所述連接轉(zhuǎn)換單元還用于在基于另一個(gè)ip地址建立與所述客戶端的連接后,向所述客戶端重新發(fā)送多個(gè)ip地址。
15、根據(jù)13或14所述的挖礦服務(wù)器,所述連接轉(zhuǎn)換單元發(fā)送多個(gè)ip地址給所述客戶端時(shí),具體用于:基于TCP同步握手通信將所述多個(gè)ip地址發(fā)送給所述客戶端。
16、根據(jù)14或15所述的挖礦服務(wù)器,還包括存儲(chǔ)單元,用于對(duì)所述被攻擊的ip地址分析獲得對(duì)應(yīng)所述ip地址的的網(wǎng)絡(luò)地址和主機(jī)地址,基于網(wǎng)絡(luò)地址將所述被攻擊的ip地址進(jìn)行地域劃分,將經(jīng)過(guò)地域劃分后的所述被攻擊的ip地址存入相應(yīng)地域數(shù)據(jù)庫(kù)中;
所述地域數(shù)據(jù)庫(kù)中用于存儲(chǔ)針對(duì)同一客戶端的屬于一個(gè)網(wǎng)絡(luò)地址的所有已經(jīng)被攻擊過(guò)的ip地址。
17、根據(jù)16所述的挖礦服務(wù)器,所述存儲(chǔ)單元還用于控制所述地域數(shù)據(jù)庫(kù)中存儲(chǔ)的所有ip地址將不再發(fā)送到所述地域數(shù)據(jù)庫(kù)所對(duì)應(yīng)的客戶端。
18、根據(jù)13至17任意一項(xiàng)所述的挖礦服務(wù)器,所述連接建立單元和所述連接轉(zhuǎn)換單元建立與所述客戶端的連接后,還包括計(jì)算單元,用于發(fā)送具有預(yù)設(shè)工作流的計(jì)算任務(wù)給所述客戶端,并接收所述客戶端反饋的對(duì)所述計(jì)算任務(wù)處理得到計(jì)算結(jié)果。
19、根據(jù)18所述的挖礦服務(wù)器,還包括結(jié)果反饋單元,用于在接收所述客戶端發(fā)送的計(jì)算結(jié)果后,向所述客戶端反饋對(duì)應(yīng)所述計(jì)算結(jié)果的預(yù)設(shè)工作量。
20、根據(jù)18或19所述的挖礦服務(wù)器,還包括加密單元,用于將所述預(yù)設(shè)工作量的計(jì)算任務(wù)通過(guò)約定的密鑰進(jìn)行加密,將加密后的所述預(yù)設(shè)工作量的計(jì)算任務(wù)發(fā)送到所述客戶端。
21、根據(jù)20所述的挖礦服務(wù)器,所述連接建立單元和連接轉(zhuǎn)換單元在發(fā)送多個(gè)ip地址給所述客戶端的同時(shí),還用于控制將約定的密鑰發(fā)送給所述客戶端。
22、根據(jù)13至21任意一項(xiàng)所述的挖礦服務(wù)器,所述連接轉(zhuǎn)換單元接收到的與客戶端基于一個(gè)ip地址的連接受到的攻擊為分布式拒絕服務(wù)攻擊。
23、根據(jù)22所述的挖礦服務(wù)器,所述連接轉(zhuǎn)換單元接收到分布式拒絕服務(wù)攻擊后,還用于在設(shè)定時(shí)間內(nèi)變換對(duì)應(yīng)域名的ip地址,使所述分布式拒絕服務(wù)攻擊不能集中流量針對(duì)所述挖礦服務(wù)器。
24、根據(jù)權(quán)利要求13至23任意一項(xiàng)所述的挖礦服務(wù)器,所述連接建立單元和所述連接轉(zhuǎn)換單元建立的與所述客戶端之間的連接為TCP長(zhǎng)連接。
25、一種客戶端,包括:
連接請(qǐng)求單元,用于向挖礦服務(wù)器發(fā)送訪問請(qǐng)求,并接收挖礦服務(wù)器發(fā)送多個(gè)ip地址;基于所述多個(gè)ip地址中的一個(gè)ip地址與所述挖礦服務(wù)器建立連接;
連接替換單元,用于當(dāng)所述與挖礦服務(wù)器基于一個(gè)ip地址的連接受到攻擊時(shí),斷開與所述挖礦服務(wù)器基于所述一個(gè)ip地址的連接;基于所述接收的多個(gè)ip地址中的另一個(gè)ip地址向所述挖礦服務(wù)器發(fā)送建立連接請(qǐng)求,建立與所述挖礦服務(wù)器的連接。
26、根據(jù)25所述的客戶端,還包括解密單元,用于通過(guò)約定的密鑰對(duì)接收到的挖礦服務(wù)器加密后的所述預(yù)設(shè)工作量的計(jì)算任務(wù)進(jìn)行解密,并得到所述預(yù)設(shè)工作量的計(jì)算任務(wù)。
27、一種穩(wěn)定通信的系統(tǒng),包括如13至24任意一項(xiàng)所述的挖礦服務(wù)器和如25或26所述的客戶端。
本說(shuō)明書中各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似的部分相互參見即可。對(duì)于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。
可能以許多方式來(lái)實(shí)現(xiàn)本發(fā)明的方法和裝置。例如,可通過(guò)軟件、硬件、固件或者軟件、硬件、固件的任何組合來(lái)實(shí)現(xiàn)本發(fā)明的方法和裝置。用于所述方法的步驟的上述順序僅是為了進(jìn)行說(shuō)明,本發(fā)明的方法的步驟不限于以上具體描述的順序,除非以其它方式特別說(shuō)明。此外,在一些實(shí)施例中,還可將本發(fā)明實(shí)施為記錄在記錄介質(zhì)中的程序,這些程序包括用于實(shí)現(xiàn)根據(jù)本發(fā)明的方法的機(jī)器可讀指令。因而,本發(fā)明還覆蓋存儲(chǔ)用于執(zhí)行根據(jù)本發(fā)明的方法的程序的記錄介質(zhì)。
本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無(wú)遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變換對(duì)于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實(shí)施例是為了更好說(shuō)明本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。