數(shù)據(jù)傳輸方法及系統(tǒng)與客戶端的數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
本發(fā)明有關(guān)于一種數(shù)據(jù)傳輸方法,特別是一種適于客戶端與服務(wù)器的數(shù)據(jù)傳輸方法及系統(tǒng)與客戶端的數(shù)據(jù)傳輸方法。
【背景技術(shù)】
[0001]一般來說,服務(wù)器與客戶端之間都會需要進(jìn)行數(shù)據(jù)傳輸?shù)牟僮?。為了避免?fù)制封包重發(fā)事件以及增加數(shù)據(jù)傳輸?shù)陌踩裕蠖急仨毥逵杉用苊荑€的方式進(jìn)行認(rèn)證。其中,認(rèn)證的方式有時間認(rèn)證方式與交換加密密鑰的方式。
[0002]傳統(tǒng)的時間認(rèn)證方式,需要對時間進(jìn)行同步,除了會造成時間傳輸誤差,且處理速度也會造成誤差,因此時間認(rèn)證保護(hù)的范圍較為局限。另外,交換加密密鑰方式,可能需要長時間交握和交換密鑰動作,使得系統(tǒng)的降低效能并增加系統(tǒng)的負(fù)擔(dān)。因此,服務(wù)器與客戶端之間的數(shù)據(jù)傳輸上仍有改善的空間。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明提供一種數(shù)據(jù)傳輸方法及系統(tǒng)與客戶端的數(shù)據(jù)傳輸方法,藉以增加數(shù)據(jù)傳輸?shù)陌踩浴?br>[0004]本發(fā)明提供一種數(shù)據(jù)傳輸方法,適于客戶端與服務(wù)器。此數(shù)據(jù)傳輸方法包括下列步驟??蛻舳水a(chǎn)生起始值。服務(wù)器響應(yīng)起始值,以產(chǎn)生第一時間??蛻舳水a(chǎn)生第二時間與第一驗證哈希碼,其中第一驗證哈希碼與第一時間及第二時間相關(guān)。服務(wù)器產(chǎn)生隨機(jī)變量與第二驗證哈希碼,其中第二驗證哈希碼與第一時間、隨機(jī)變量及第一驗證哈希碼相關(guān)??蛻舳水a(chǎn)生第一傳輸數(shù)據(jù)與第三驗證哈希碼,其中第三驗證哈希碼與第一傳輸數(shù)據(jù)、第一驗證哈希碼及第二驗證哈希碼相關(guān)。服務(wù)器產(chǎn)生回應(yīng)信息與第四驗證哈希碼,其中第四驗證哈希碼與回應(yīng)信息、第二驗證哈希碼及第三驗證哈希碼相關(guān)。
[0005]本發(fā)明提供一種數(shù)據(jù)傳輸系統(tǒng),包括客戶端與服務(wù)器。客戶端用以產(chǎn)生起始值。服務(wù)器用以響應(yīng)起始值產(chǎn)生第一時間。其中,客戶端響應(yīng)第一時間,以產(chǎn)生第二時間與第一驗證哈希碼,其中第一驗證哈希碼與第一時間及第二時間相關(guān)。服務(wù)器響應(yīng)第二時間與第一驗證哈希碼,以產(chǎn)生隨機(jī)變量與第二驗證哈希碼,其中第二驗證哈希碼與第一時間、隨機(jī)變量及第一驗證哈希碼相關(guān)??蛻舳隧憫?yīng)隨機(jī)變量與第二驗證哈希碼,以產(chǎn)生第一傳輸數(shù)據(jù)與第三驗證哈希碼,其中第三驗證哈希碼與第一傳輸數(shù)據(jù)、第一驗證哈希碼及第二驗證哈希碼相關(guān)。服務(wù)器響應(yīng)第一傳輸數(shù)據(jù)與第三驗證哈希碼,以產(chǎn)生第一回應(yīng)信息與第四驗證哈希碼,其中第四驗證哈希碼與第一回應(yīng)信息、第二驗證哈希碼及第三驗證哈希碼相關(guān)。
[0006]本發(fā)明提供一種客戶端的數(shù)據(jù)傳輸方法,適于與服務(wù)器進(jìn)行數(shù)據(jù)傳輸。此客戶端的數(shù)據(jù)傳輸方法包括下列步驟。產(chǎn)生起始值。依據(jù)服務(wù)器響應(yīng)起始值而回傳的第一時間,產(chǎn)生第二時間與第一驗證哈希碼,其中第一驗證哈希碼與第一時間及第二時間相關(guān)。依據(jù)服務(wù)器響應(yīng)第二時間與第一驗證哈希碼而回傳的隨機(jī)變量與第二驗證哈希碼,產(chǎn)生第一傳輸數(shù)據(jù)與第三驗證哈希碼,其中第二驗證哈希碼與第一時間、隨機(jī)變量及第一驗證哈希碼相關(guān),第三驗證哈希碼與第一傳輸數(shù)據(jù)、第一驗證哈希碼及第二驗證哈希碼相關(guān)。
[0007]本實施例所提供的數(shù)據(jù)傳輸方法及系統(tǒng)與客戶端的數(shù)據(jù)傳輸方法,藉由客戶端在接收到服務(wù)器所發(fā)出的信息(例如第一時間或驗證哈希碼)后才據(jù)以產(chǎn)生對應(yīng)的信息(例如傳輸數(shù)據(jù)與對應(yīng)的驗證哈希碼),以及服務(wù)器端在接收到客戶端所發(fā)出的信息(例如第二時間、驗證哈希碼或傳輸數(shù)據(jù))后才據(jù)以產(chǎn)生對應(yīng)的信息(例如回應(yīng)信息及對應(yīng)的驗證哈希碼)。如此一來,可以達(dá)成聯(lián)機(jī)認(rèn)證各自獨立、避免復(fù)制封包,重發(fā)攻擊、訊息尚未取得回復(fù)前不得重發(fā)訊息,以增加數(shù)據(jù)傳輸?shù)陌踩浴?br>[0008]以上的關(guān)于本
【發(fā)明內(nèi)容】
的說明及以下的實施方式的說明用以示范與解釋本發(fā)明的精神與原理,并且提供本發(fā)明的專利申請范圍更進(jìn)一步的解釋。
【附圖說明】
[0009]下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明,附圖中:
圖1為本發(fā)明的第一實施例所揭露的數(shù)據(jù)傳輸方法的流程圖。
圖2為本發(fā)明的第一實施例的數(shù)據(jù)傳輸系統(tǒng)的客戶端與服務(wù)器之間的數(shù)據(jù)傳輸?shù)氖疽鈭D。
圖3為圖1的步驟S108的詳細(xì)流程圖。
圖4為圖1的步驟SllO的詳細(xì)流程圖。
圖5為圖1的步驟S112的詳細(xì)流程圖。
圖6為本發(fā)明的第二實施例所揭露的數(shù)據(jù)傳輸方法的流程圖。
圖7為本發(fā)明的第二實施例的客戶端與服務(wù)器之間的數(shù)據(jù)傳輸?shù)氖疽鈭D。
圖8為圖6的步驟S602的詳細(xì)流程圖。
圖9為圖6的步驟S604的詳細(xì)流程圖。
圖10為本發(fā)明的第三實施例所揭露的客戶端的數(shù)據(jù)傳輸方法的流程圖。
圖11為本發(fā)明的第四實施例所揭露的客戶端的數(shù)據(jù)傳輸方法的流程圖。
符號說明
100數(shù)據(jù)傳輸系統(tǒng) 110客戶端 120服務(wù)器
【具體實施方式】
[0010]以下在實施方式中詳細(xì)敘述本發(fā)明之詳細(xì)特征以及優(yōu)點,其內(nèi)容足以使任何熟習(xí)相關(guān)技藝者了解本發(fā)明之技術(shù)內(nèi)容并據(jù)以實施,且根據(jù)本說明書所揭露之內(nèi)容、申請專利范圍及圖式,任何熟習(xí)相關(guān)技藝者可輕易地理解本發(fā)明相關(guān)之目的及優(yōu)點。以下之實施例進(jìn)一步詳細(xì)說明本發(fā)明之觀點,但非以任何觀點限制本發(fā)明之范疇。
[0011]還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者系統(tǒng)中還存在另外的相同要素。
[0012]圖1為本發(fā)明的第一實施例所揭露的數(shù)據(jù)傳輸方法的流程圖。圖2為本發(fā)明的第一實施例的數(shù)據(jù)傳輸系統(tǒng)的數(shù)據(jù)傳輸?shù)氖疽鈭D。本實施例的數(shù)據(jù)傳輸方法適于包括客戶端110與服務(wù)器120的數(shù)據(jù)傳輸系統(tǒng)100,也就是用于客戶端110與服務(wù)器120之間的數(shù)據(jù)傳輸。其中,客戶端110可為手機(jī)、平板計算機(jī)、一般桌上型或攜帶型計算機(jī)等操作裝置,或是各式可具有連網(wǎng)功能的硬設(shè)備,諸如網(wǎng)絡(luò)攝影機(jī)(IP Cam)、智能家電或穿戴式裝置等。服務(wù)器120可為一般實體的伺服機(jī)器或是云端服務(wù)器等實體或虛擬設(shè)備。
[0013]在步驟S102中,客戶端110產(chǎn)生起始值。也就是說,客戶端110向服務(wù)器120發(fā)送起始值,以作為要開始向服務(wù)器120輸出數(shù)據(jù)的依據(jù)。
[0014]在步驟S104中,服務(wù)器120響應(yīng)起始值,以產(chǎn)生第一時間Ts。也就是說,當(dāng)服務(wù)器120接收到客戶端110所發(fā)出的起始值時,服務(wù)器120例如提取當(dāng)前的服務(wù)器時間作為第一時間Ts,并輸出此第一時間TsT客戶端110。
[0015]在步驟S106中,客戶端110產(chǎn)生第二時間Tc與第一驗證哈希碼VH1O,其中第一驗證哈希碼VH1 O與第一時間Ts及第二時間T湘關(guān)。也就是說,當(dāng)客戶端110接收到服務(wù)器120所發(fā)出的第一時間1^時,客戶端110例如提取當(dāng)前客戶端110的時間作為第二時間Tc,且產(chǎn)生第一驗證哈希碼VH1 O,并輸出第二時間Tc與第一驗證哈希碼VH i O。在本實施例中,第一驗證哈希碼VH1O例如為經(jīng)哈希函數(shù)(Hash)換算后的結(jié)果,且此第一驗證哈希碼VH1 O包括共享密鑰K (Shared Key)、第一時間Ts與第二時間T c,亦即第一驗證哈希碼為VH1 (K+Ts+Tc)。并且,第二時間T。與第一驗證哈希碼VH ! O可表示為TJVH1 (K+Ts+Tc)
[0016]在步驟S108中,服務(wù)器120產(chǎn)生隨機(jī)變量Rand與第二驗證哈希碼VH2(),其中第二驗證哈希碼VH2 O與第一時間Ts、隨機(jī)變量Rand及第一驗證哈希碼VH1 O相關(guān)。也就是說,當(dāng)服務(wù)器120接收到客戶端110所發(fā)出的第二時間T。與第一驗證哈希碼VH! O時,服務(wù)器120會據(jù)以產(chǎn)生隨機(jī)變量Rand與第二驗證哈希碼VH2 O,并輸出隨機(jī)變數(shù)Rand與第二驗證哈希碼VH2 O。在本實施例中,隨機(jī)變量Rand例如為64位的變量或其他由系統(tǒng)自動隨機(jī)數(shù)生成的參數(shù)等。第二驗證哈希碼VH2O例如為經(jīng)哈希函數(shù)換算的結(jié)果,且此第二驗證哈希碼VH2 O包括共享密鑰K、第一時間Ts、隨機(jī)變量Rand與第一驗證哈希碼VH1 O,亦即第二驗證哈希碼VH2 O為VH2 (K+Ts+Rand+VHi O)。并且,隨機(jī)變量Rand與第二驗證哈希碼VH2 O可表示成 Rand+VH2 (K+Ts+Rand+VHi O)。
[0017]在步驟SllO中,客戶端110產(chǎn)生第一傳輸數(shù)據(jù)V1與第三驗證哈希碼VH3O,其中第三驗證哈希碼VH3 O與第一傳輸數(shù)據(jù)V1、第一驗證哈希碼VH1