本發(fā)明涉及視頻播放領(lǐng)域,特別涉及一種數(shù)據(jù)的傳輸方法及裝置。
背景技術(shù):
mpeg(movingpictureexpertsgroup,動(dòng)態(tài)圖像專家組)組織批準(zhǔn)了mpeg-dash(dynamicadaptivestreamingoverhttp,基于http的動(dòng)態(tài)自適應(yīng)流媒體)協(xié)議標(biāo)準(zhǔn)。隨后,mpeg-dash成為互聯(lián)網(wǎng)流媒體領(lǐng)域的大熱話題。動(dòng)態(tài)自適應(yīng)流媒體dash目前應(yīng)用于領(lǐng)先的內(nèi)容分發(fā)平臺(tái),其以自適應(yīng)流媒體方式傳輸音頻和視頻內(nèi)容,支持連續(xù)觀看而不會(huì)出現(xiàn)畫面停滯或斷斷續(xù)續(xù)的現(xiàn)象。市場(chǎng)對(duì)dash技術(shù)標(biāo)準(zhǔn)的采用日益增長(zhǎng)。
現(xiàn)有技術(shù)中,dash系統(tǒng)中的dash服務(wù)端產(chǎn)生關(guān)于播放視頻文件的媒體表示描述mpd和切片文件,其中,mpd是可擴(kuò)展標(biāo)記語(yǔ)言xml文件,包含了與切片文件相關(guān)的所有信息的說明;dash客戶端向該dash服務(wù)端請(qǐng)求mpd,dash服務(wù)端響應(yīng)并向該dash客戶端發(fā)送mpd;dash客戶端接收并解析該mpd,根據(jù)當(dāng)前網(wǎng)絡(luò)情況和自身設(shè)備的性能信息,選擇合適的mpd中的url(uniformresourcelocator,統(tǒng)一資源定位符),并使用該合適的url向dash服務(wù)端請(qǐng)求相應(yīng)的切片文件,dash客戶端播放該相應(yīng)的切片文件,并及時(shí)更新當(dāng)前網(wǎng)絡(luò)情況。在現(xiàn)有的dash系統(tǒng)中,整個(gè)請(qǐng)求視頻文件的過程都是明文進(jìn)行的,這樣就使得dash服務(wù)端有可能遭到非法dash客戶端的安全攻擊。可想而知的,dash系統(tǒng)中未實(shí)行安全機(jī)制,所述dash服務(wù)端與所述dash客戶端所傳輸?shù)膍pd容易被竊取,數(shù)據(jù)安全性不高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例公開了一種數(shù)據(jù)的傳輸方法及裝置,以實(shí)現(xiàn)對(duì)dash系統(tǒng)中所傳輸?shù)臄?shù)據(jù)進(jìn)行加密,提高所傳輸?shù)臄?shù)據(jù)的安全性。具體方案如下:
一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)的傳輸方法,應(yīng)用于動(dòng)態(tài)自適應(yīng)流 媒體dash客戶端,其中,所述dash客戶端與dash服務(wù)端連接,所述方法包括:
向所述dash服務(wù)端發(fā)送攜帶有預(yù)設(shè)擴(kuò)展字段的安全傳輸層協(xié)議tls連接請(qǐng)求,以使所述dash服務(wù)端從所述tls連接請(qǐng)求所攜帶的預(yù)設(shè)擴(kuò)展字段中選擇自身所支持的第一加密算法,向所述dash客戶端發(fā)送攜帶有所述第一加密算法的tls連接回復(fù),以與所述dash客戶端建立tls連接,其中,所述預(yù)設(shè)擴(kuò)展字段中包含所述dash客戶端所支持的至少一種加密算法;
向所述dash服務(wù)端發(fā)送媒體表示描述mpd請(qǐng)求,以使所述dash服務(wù)端根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,并將加密后所形成的目標(biāo)mpd反饋給所述dash客戶端;
接收所述dash服務(wù)端反饋的所述目標(biāo)mpd;
根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密;
從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用的目標(biāo)url;
依據(jù)所述目標(biāo)url向所述dash服務(wù)端請(qǐng)求相應(yīng)的切片文件。
可選的,所述預(yù)設(shè)擴(kuò)展字段中還攜帶關(guān)于所述目標(biāo)mpd的校驗(yàn)碼crc的目標(biāo)值的計(jì)算方式;
所述tls連接回復(fù)中還攜帶有所述目標(biāo)mpd的crc的所述目標(biāo)值,其中,所述目標(biāo)mpd的crc的所述目標(biāo)值為:所述dash服務(wù)端根據(jù)所述預(yù)設(shè)擴(kuò)展字段所攜帶的所述計(jì)算方式計(jì)算得到的值;
在所述根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密之前,所述方法還包括:
根據(jù)所述目標(biāo)mpd的crc的所述目標(biāo)值,判斷所述目標(biāo)mpd是否有效;
當(dāng)判斷為有效時(shí),執(zhí)行所述根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密的步驟。
可選的,所述根據(jù)所述目標(biāo)mpd的crc的所述目標(biāo)值,判斷所述目標(biāo)mpd是否有效,包括:
根據(jù)所述預(yù)設(shè)擴(kuò)展字段所攜帶的計(jì)算方式,計(jì)算所述目標(biāo)mpd的crc的標(biāo) 準(zhǔn)值;
判斷所述標(biāo)準(zhǔn)值是否與所述目標(biāo)值相同;
如果相同,表明所述目標(biāo)mpd有效;
如果不相同,表明所述目標(biāo)mpd無效。
可選的,所述預(yù)設(shè)擴(kuò)展字段所攜帶的計(jì)算方式包括:
當(dāng)關(guān)于所述目標(biāo)mpd的crc的長(zhǎng)度大于或者等于第一預(yù)定數(shù)值時(shí),選取所述crc的第一預(yù)定數(shù)值個(gè)字節(jié)進(jìn)行計(jì)算,確定所述目標(biāo)mpd的crc的所述目標(biāo)值;
當(dāng)關(guān)于所述目標(biāo)mpd的crc的長(zhǎng)度小于第一預(yù)定數(shù)值時(shí),對(duì)所述crc的所有字節(jié)進(jìn)行整體計(jì)算,確定所述目標(biāo)mpd的crc的所述目標(biāo)值。
可選的,所述tls連接請(qǐng)求中還攜帶所述dash客戶端生成的第一隨機(jī)數(shù),所述tls連接回復(fù)中還攜帶所述dash服務(wù)端生成的第二隨機(jī)數(shù);
在所述向所述dash服務(wù)端發(fā)送mpd請(qǐng)求之前,所述方法還包括:
根據(jù)所述第一隨機(jī)數(shù)、所述第二隨機(jī)數(shù)以及所述目標(biāo)值,計(jì)算關(guān)于所述目標(biāo)mpd的目標(biāo)解密密鑰;
所述根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密,包括:
利用所述目標(biāo)解密密鑰以及所述第一加密算法所對(duì)應(yīng)的所述解密算法,對(duì)所述目標(biāo)mpd解密。
可選的,所述目標(biāo)mpd中攜帶關(guān)于所包括url對(duì)應(yīng)的切片文件的加密信息,所述加密信息包括第二加密算法,其中,所述第二加密算法為dash客戶端所支持的所述至少一種加密算法中的一種算法;
所述方法還包括:
接收所述切片文件;
根據(jù)所述第二加密算法所對(duì)應(yīng)解密算法,對(duì)所述切片文件解密;
播放所述解密后的切片文件。
可選的,所述加密信息中還包括所述切片文件對(duì)應(yīng)的目標(biāo)令牌token標(biāo)識(shí);
在所述根據(jù)所述第二加密算法所對(duì)應(yīng)解密算法,對(duì)所述切片文件解密之前,所述方法還包括:
判斷所述目標(biāo)token標(biāo)識(shí)是否和與所述切片文件同時(shí)所接收的token標(biāo)識(shí)相同;
如果是,執(zhí)行所述根據(jù)所述第二加密算法所對(duì)應(yīng)解密算法,對(duì)所述切片文件解密的步驟。
第二方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)的傳輸方法,應(yīng)用于動(dòng)態(tài)自適應(yīng)流媒體dash服務(wù)端,其中,所述dash服務(wù)端與dash客戶端連接,所述方法包括:
接收所述dash客戶端發(fā)送的攜帶有預(yù)設(shè)擴(kuò)展字段的安全傳輸層協(xié)議tls連接請(qǐng)求,其中,所述預(yù)設(shè)擴(kuò)展字段中攜帶所述dash客戶端所支持的至少一種加密算法;
從所述至少一種加密算法中,確定自身所支持的第一加密算法;
向所述dash客戶端發(fā)送攜帶有所述第一加密算法的tls連接回復(fù),以與所述dash客戶端建立tls連接;
接收所述dash客戶端發(fā)送的媒體表示描述mpd請(qǐng)求;
根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密;
向所述dash客戶端發(fā)送加密后所形成的目標(biāo)mpd,以使所述dash客戶端在根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密后,從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用的目標(biāo)url,依據(jù)所述目標(biāo)url向所述dash服務(wù)端請(qǐng)求相應(yīng)的切片文件;
響應(yīng)所述目標(biāo)url,向所述dash客戶端發(fā)送與所述目標(biāo)url相應(yīng)的切片文件。
可選的,所述預(yù)設(shè)擴(kuò)展字段中還攜帶關(guān)于所述目標(biāo)mpd的校驗(yàn)碼crc的目標(biāo)值的計(jì)算方式;
所述向所述dash客戶端發(fā)送攜帶有所述第一加密算法的tls連接回復(fù)之 前,所述方法還包括:
根據(jù)所述預(yù)設(shè)擴(kuò)展字段所攜帶的所述計(jì)算方式,計(jì)算所述目標(biāo)mpd的crc的所述目標(biāo)值;
所述向所述dash客戶端發(fā)送攜帶有所述第一加密算法的tls連接回復(fù),包括:
向所述dash客戶端發(fā)送攜帶有所述第一加密算法以及所述目標(biāo)mpd的crc的所述目標(biāo)值的tls連接回復(fù)。
可選的,所述tls連接請(qǐng)求中還攜帶所述dash客戶端生成的第一隨機(jī)數(shù),所述tls連接回復(fù)中還攜帶所述dash服務(wù)端生成的第二隨機(jī)數(shù);
所述根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密之前,所述方法還包括:
根據(jù)所述第一隨機(jī)數(shù)、所述第二隨機(jī)數(shù)以及所述目標(biāo)值,計(jì)算關(guān)于所述目標(biāo)mpd的目標(biāo)解密密鑰;
所述根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,包括:
根據(jù)所述第一加密算法以及所述目標(biāo)解密密鑰,對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密。
可選的,所述根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密之前,所述方法還包括:
從所述至少一種加密算法中,確定自身所支持的第二加密算法;
根據(jù)所述第一加密算法,對(duì)url對(duì)應(yīng)的切片文件的加密信息以及與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,以形成目標(biāo)mpd,其中,所述url對(duì)應(yīng)的切片文件的加密信息包括所述第二加密算法;
在所述響應(yīng)所述目標(biāo)url,向所述dash客戶端發(fā)送與所述目標(biāo)url相應(yīng)的切片文件之前,所述方法還包括:
根據(jù)所述第二加密算法對(duì)與所述目標(biāo)url相應(yīng)的所述切片文件進(jìn)行加密,以使所述dash客戶端根據(jù)所述目標(biāo)mpd中所攜帶的所述第二加密算法所對(duì)應(yīng)解密算法,對(duì)所接收到的切片文件解密。
可選的,所述根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密之前,所述方法還包括:
確定所述切片文件所對(duì)應(yīng)的目標(biāo)令牌token標(biāo)識(shí);
所述根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,包括:
根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd以及所述目標(biāo)token標(biāo)識(shí)進(jìn)行加密。
第三方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)的傳輸裝置,應(yīng)用于動(dòng)態(tài)自適應(yīng)流媒體dash客戶端,其中,所述dash客戶端與dash服務(wù)端連接,所述裝置包括:安全傳輸層協(xié)議tls連接請(qǐng)求發(fā)送模塊、媒體表示描述mpd請(qǐng)求發(fā)送模塊、目標(biāo)mpd接收模塊、目標(biāo)mpd解密模塊、目標(biāo)統(tǒng)一資源定位符url選擇模塊和切片文件請(qǐng)求模塊;
所述tls連接請(qǐng)求發(fā)送模塊:用于向所述dash服務(wù)端發(fā)送攜帶有預(yù)設(shè)擴(kuò)展字段的tls連接請(qǐng)求,以使所述dash服務(wù)端從所述tls連接請(qǐng)求所攜帶的預(yù)設(shè)擴(kuò)展字段中選擇自身所支持的第一加密算法,向所述dash客戶端發(fā)送攜帶有所述第一加密算法的tls連接回復(fù),以與所述dash客戶端建立tls連接,其中,所述預(yù)設(shè)擴(kuò)展字段中包含所述dash客戶端所支持的至少一種加密算法;
所述mpd請(qǐng)求發(fā)送模塊:用于向所述dash服務(wù)端發(fā)送mpd請(qǐng)求,以使所述dash服務(wù)端根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,并將加密后所形成的目標(biāo)mpd反饋給所述dash客戶端;
所述目標(biāo)mpd接收模塊:用于接收所述dash服務(wù)端反饋的所述目標(biāo)mpd;
所述目標(biāo)mpd解密模塊:用于根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密;
所述目標(biāo)url選擇模塊:用于從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用的目標(biāo)url;
所述切片文件請(qǐng)求模塊:用于依據(jù)所述目標(biāo)url向所述dash服務(wù)端請(qǐng)求相應(yīng)的切片文件。
第四方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)的傳輸裝置,應(yīng)用于動(dòng)態(tài)自適 應(yīng)流媒體dash服務(wù)端,其中,所述dash服務(wù)端與dash客戶端連接,所述裝置包括:安全傳輸層協(xié)議tls連接請(qǐng)求接收模塊、第一加密算法確定模塊、tls連接回復(fù)發(fā)送模塊、媒體表示描述mpd請(qǐng)求接收模塊、mpd加密模塊、目標(biāo)mpd發(fā)送模塊和切片文件發(fā)送模塊;
所述tls連接請(qǐng)求接收模塊:用于接收所述dash客戶端發(fā)送的攜帶有預(yù)設(shè)擴(kuò)展字段的tls連接請(qǐng)求,其中,所述預(yù)設(shè)擴(kuò)展字段中攜帶所述dash客戶端所支持的至少一種加密算法;
所述第一加密算法確定模塊:用于從所述至少一種加密算法中,確定自身所支持的第一加密算法;
所述tls連接回復(fù)發(fā)送模塊:用于向所述dash客戶端發(fā)送攜帶有所述第一加密算法的tls連接回復(fù),以與所述dash客戶端建立tls連接;
所述mpd請(qǐng)求接收模塊:用于接收所述dash客戶端發(fā)送的mpd請(qǐng)求;
所述mpd加密模塊:用于根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密;
所述目標(biāo)mpd發(fā)送模塊:用于向所述dash客戶端發(fā)送加密后所形成的目標(biāo)mpd,以使所述dash客戶端在根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密后,從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用的目標(biāo)url,依據(jù)所述目標(biāo)url向所述dash服務(wù)端請(qǐng)求相應(yīng)的切片文件;
所述切片文件發(fā)送模塊:用于響應(yīng)所述目標(biāo)url,向所述dash客戶端發(fā)送與所述目標(biāo)url相應(yīng)的切片文件。
在本方案中,動(dòng)態(tài)自適應(yīng)流媒體dash客戶端向dash服務(wù)端發(fā)送攜帶有預(yù)設(shè)擴(kuò)展字段的安全傳輸層協(xié)議tls連接請(qǐng)求,以使該dash服務(wù)端從該tls連接請(qǐng)求所攜帶的預(yù)設(shè)擴(kuò)展字段中選擇自身所支持的第一加密算法,向該dash客戶端發(fā)送攜帶有該第一加密算法的tls連接回復(fù),以與該dash客戶端建立tls連接,其中,該預(yù)設(shè)擴(kuò)展字段中包含該dash客戶端所支持的至少一種加密算法;向該dash服務(wù)端發(fā)送媒體表示描述mpd請(qǐng)求,以使該dash服務(wù)端根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,并將加密后所形成的目標(biāo)mpd反饋給該dash客戶端;接收該dash服務(wù)端反饋的該目標(biāo)mpd;根據(jù)該第一加 密算法所對(duì)應(yīng)解密算法,對(duì)該目標(biāo)mpd解密;從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用的目標(biāo)url;依據(jù)該目標(biāo)url向該dash服務(wù)端請(qǐng)求相應(yīng)的切片文件。通過對(duì)目標(biāo)mpd進(jìn)行加密的方式,以避免該目標(biāo)mpd內(nèi)的數(shù)據(jù)被竊取,提高在dash系統(tǒng)中所傳輸?shù)臄?shù)據(jù)的安全性。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)的傳輸方法的流程示意圖;
圖2為本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)的傳輸方法的另一流程示意圖;
圖3為本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)的傳輸裝置的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)的傳輸裝置的另一結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)的傳輸方法及裝置,以實(shí)現(xiàn)對(duì)dash系統(tǒng)中所傳輸?shù)臄?shù)據(jù)進(jìn)行加密,提高所傳輸?shù)臄?shù)據(jù)的安全性。
下面首先對(duì)本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)的傳輸方法進(jìn)行介紹。
需要說明的是,本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)的傳輸方法,可以應(yīng)用于動(dòng)態(tài)自適應(yīng)流媒體dash客戶端,其中,該dash客戶端與dash服務(wù)端連接,并且在該dash客戶端與dash服務(wù)端之間在基于http動(dòng)態(tài)自適應(yīng)流媒體協(xié)議請(qǐng)求媒體表示描述mpd時(shí),可以使用超文本傳輸安全協(xié)議(hypertexttransferprotocolsecure,https)以及安全傳輸層協(xié)議(transportlayersecurityprotocol, tls),該tls在該dash客戶端與dash服務(wù)端之間提供保密性和數(shù)據(jù)完整性,該https為以安全為目標(biāo)的http通道。
如圖1所示,本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)的傳輸方法,可以包括步驟:
s101:該dash客戶端向dash服務(wù)端發(fā)送攜帶有預(yù)設(shè)擴(kuò)展字段的tls連接請(qǐng)求,以使該dash服務(wù)端從該安全傳輸層協(xié)議tls連接請(qǐng)求所攜帶的預(yù)設(shè)擴(kuò)展字段中選擇自身所支持的第一加密算法,向該dash客戶端發(fā)送攜帶有該第一加密算法的tls連接回復(fù),以與該dash客戶端建立tls連接,其中,該預(yù)設(shè)擴(kuò)展字段中包含該dash客戶端所支持的至少一種加密算法;
可以理解的是,在請(qǐng)求媒體表示描述mpd前,需要在該dash客戶端與dash服務(wù)端之間建立tls連接,與現(xiàn)有技術(shù)不同的是,在建立該tls連接時(shí),該dash客戶端向dash服務(wù)端發(fā)送攜帶有預(yù)設(shè)擴(kuò)展字段的tls連接請(qǐng)求,其中,該預(yù)設(shè)擴(kuò)展字段中包含該dash客戶端所支持的至少一種加密算法,在建立連接的同時(shí),該dash客戶端與dash服務(wù)端會(huì)協(xié)商好進(jìn)行后續(xù)的數(shù)據(jù)傳輸時(shí),所需要的數(shù)據(jù)加密相關(guān)信息,如第一加密算法,以保證所傳輸?shù)臄?shù)據(jù)的安全性。作為本發(fā)明的一種實(shí)施方式,該預(yù)設(shè)擴(kuò)展字段可以定義為use_encrypt_mpd。
舉例而言,該dash客戶端所支持的加密算法可以為:des(dataencryptionstandar,數(shù)據(jù)加密標(biāo)準(zhǔn))、dsa(digitalsignaturealgorithm,數(shù)字簽名算法)以及aes(advancedencryptionstandard,高級(jí)加密標(biāo)準(zhǔn))等等。需要強(qiáng)調(diào)的是,該dash客戶端所支持的加密算法可以根據(jù)實(shí)際情況進(jìn)行設(shè)定,本發(fā)明實(shí)施例對(duì)此不做限定。
s102:向該dash服務(wù)端發(fā)送媒體表示描述mpd請(qǐng)求,以使該dash服務(wù)端根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,并將加密后所形成的目標(biāo)mpd反饋給該dash客戶端;
需要說明的是,該dash客戶端與dash服務(wù)端之間建立好tls連接以及協(xié)商好后續(xù)的數(shù)據(jù)傳輸時(shí)所需的第一加密算法后,dash客戶端向該dash服務(wù)端發(fā)送mpd請(qǐng)求,此時(shí),該mpd請(qǐng)求可以基于https。此時(shí),為了保護(hù)所傳輸?shù)臄?shù)據(jù)的安全性,該dash服務(wù)端在接收到該mpd請(qǐng)求后,會(huì)根據(jù)協(xié)商好的第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,并將該加密后所形成 的目標(biāo)mpd反饋給該dash客戶端。防止該目標(biāo)mpd在傳輸過程中被截取,該目標(biāo)mpd中所包含的數(shù)據(jù)被竊取的情況。
s103:接收該dash服務(wù)端反饋的該目標(biāo)mpd;
具體的,在向該dash服務(wù)端發(fā)送mpd請(qǐng)求后,該dash服務(wù)端會(huì)響應(yīng)該mpd請(qǐng)求,向該dash客戶端發(fā)送加密后所形成的目標(biāo)mpd,該客戶端會(huì)接收該dash服務(wù)端反饋的該目標(biāo)mpd,繼而進(jìn)行后續(xù)的數(shù)據(jù)的傳輸流程,其中,接收該目標(biāo)mpd可以采用現(xiàn)有技術(shù),在此不做贅述。
s104:根據(jù)該第一加密算法所對(duì)應(yīng)解密算法,對(duì)該目標(biāo)mpd解密;
可以理解的是,根據(jù)該第一加密算法,可以利用現(xiàn)有技術(shù)組合成解密算法,根據(jù)該解密算法對(duì)該目標(biāo)mpd進(jìn)行解密,其中,該解密過程可以利用現(xiàn)有技術(shù),在此不做贅述。
s105:從解密結(jié)果所包括的url中選擇待利用的目標(biāo)url;
需要說明的是,該目標(biāo)mpd中包含多個(gè)url(uniformresourcelocator,統(tǒng)一資源定位符),其各自對(duì)應(yīng)著一個(gè)切片文件,將該目標(biāo)mpd解密后,該dash客戶端可以根據(jù)自身的網(wǎng)絡(luò)情況以及自身的配置性能信息,從該所包括的url中選擇待利用的目標(biāo)url。
s106:依據(jù)該目標(biāo)url向該dash服務(wù)端請(qǐng)求相應(yīng)的切片文件。
具體的,在該dash客戶端選擇出待利用的目標(biāo)url后,會(huì)依據(jù)該目標(biāo)url向該dash服務(wù)端請(qǐng)求相應(yīng)的切片文件。
應(yīng)用本發(fā)明實(shí)施例,dash客戶端向dash服務(wù)端發(fā)送攜帶有預(yù)設(shè)擴(kuò)展字段的tls連接請(qǐng)求,以使該dash服務(wù)端從該tls連接請(qǐng)求所攜帶的預(yù)設(shè)擴(kuò)展字段中選擇自身所支持的第一加密算法,向該dash客戶端發(fā)送攜帶有該第一加密算法的tls連接回復(fù),以與該dash客戶端建立tls連接,其中,該預(yù)設(shè)擴(kuò)展字段中包含該dash客戶端所支持的至少一種加密算法;向該dash服務(wù)端發(fā)送mpd請(qǐng)求,以使該dash服務(wù)端根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,并將加密后所形成的目標(biāo)mpd反饋給該dash客戶端;接收該dash服務(wù)端反饋的該目標(biāo)mpd;根據(jù)該第一加密算法所對(duì)應(yīng)解密算法,對(duì)該目標(biāo)mpd解密;從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用 的目標(biāo)url;依據(jù)該目標(biāo)url向該dash服務(wù)端請(qǐng)求相應(yīng)的切片文件。通過對(duì)目標(biāo)mpd進(jìn)行加密的方式,以避免該目標(biāo)mpd內(nèi)的數(shù)據(jù)被竊取,提高在dash系統(tǒng)中所傳輸?shù)臄?shù)據(jù)的安全性。
作為本發(fā)明的一種實(shí)施方式,對(duì)于數(shù)據(jù)加密所依據(jù)的信息有多種,在保證該dash客戶端與dash服務(wù)端之間的互通性的同時(shí),又要提高該加密的安全性與保密性,該數(shù)據(jù)加密所依據(jù)的信息可以是不固定的,根據(jù)該mpd請(qǐng)求的內(nèi)容的不同,而隨機(jī)變換的,具體的,所述預(yù)設(shè)擴(kuò)展字段中還可以攜帶關(guān)于該目標(biāo)mpd的校驗(yàn)碼crc的目標(biāo)值的計(jì)算方式;
該tls連接回復(fù)中還攜帶有該目標(biāo)mpd的crc的目標(biāo)值,其中,該目標(biāo)mpd的crc的目標(biāo)值為:該dash服務(wù)端根據(jù)該預(yù)設(shè)擴(kuò)展字段所攜帶的計(jì)算方式計(jì)算得到的值;
在所述根據(jù)該第一加密算法所對(duì)應(yīng)解密算法,對(duì)該目標(biāo)mpd解密之前,所述方法還可以包括:
根據(jù)該目標(biāo)mpd的crc的目標(biāo)值,判斷該目標(biāo)mpd是否有效;當(dāng)判斷為有效時(shí),執(zhí)行s104。
該目標(biāo)mpd在傳輸?shù)倪^程中可能會(huì)被劫取,并替換成其他mpd,為了節(jié)省解密該目標(biāo)mpd所占用的資源,在解密該目標(biāo)mpd之前,可以首先根據(jù)該目標(biāo)mpd的crc的目標(biāo)值,判斷該目標(biāo)mpd是否有效,當(dāng)判斷該目標(biāo)mpd無效時(shí),可以將該目標(biāo)mpd丟棄,無需再進(jìn)行后續(xù)的解密過程,重新進(jìn)行mpd請(qǐng)求;當(dāng)判斷有效時(shí),繼續(xù)后續(xù)流程。
具體的,所述根據(jù)該目標(biāo)mpd的crc的目標(biāo)值,判斷該目標(biāo)mpd是否有效,可以包括:
根據(jù)該預(yù)設(shè)擴(kuò)展字段所攜帶的計(jì)算方式,計(jì)算該目標(biāo)mpd的crc的標(biāo)準(zhǔn)值;
判斷該標(biāo)準(zhǔn)值是否與該目標(biāo)值相同;
如果相同,表明該目標(biāo)mpd有效;
如果不相同,表明該目標(biāo)mpd無效。
其中,對(duì)于進(jìn)行數(shù)據(jù)傳輸?shù)膁ash客戶端與dash服務(wù)端之間,該dash 客戶端將攜帶關(guān)于該目標(biāo)mpd的校驗(yàn)碼crc的目標(biāo)值的計(jì)算方式的預(yù)設(shè)擴(kuò)展字段發(fā)送給dash服務(wù)端,該dash服務(wù)端根據(jù)該計(jì)算方式,確定了該目標(biāo)mpd的crc的目標(biāo)值,并將該目標(biāo)值發(fā)送給dash客戶端,以通知該dash客戶端,其要發(fā)送該目標(biāo)值的目標(biāo)mpd,當(dāng)該dash客戶接收到該目標(biāo)mpd后,根據(jù)該目標(biāo)值判斷該接收到的目標(biāo)mpd是否為該dash服務(wù)器所要向該dash客戶端發(fā)送的目標(biāo)mpd,根據(jù)與該dash服務(wù)器同樣的計(jì)算方式,對(duì)所接收的目標(biāo)mpd的crc進(jìn)行計(jì)算,得到標(biāo)準(zhǔn)值,判斷該目標(biāo)值與該標(biāo)準(zhǔn)值是否相同,如果相同,表明該目標(biāo)mpd有效;如果不相同,表明該目標(biāo)mpd無效,則將該所接收的目標(biāo)mpd丟棄。
具體的,該預(yù)設(shè)擴(kuò)展字段所攜帶的計(jì)算方式可以包括:
當(dāng)關(guān)于該目標(biāo)mpd的crc的長(zhǎng)度大于或者等于第一預(yù)定數(shù)值時(shí),選取該crc的第一預(yù)定數(shù)值個(gè)字節(jié)進(jìn)行計(jì)算,確定該目標(biāo)mpd的crc的目標(biāo)值;
當(dāng)關(guān)于該目標(biāo)mpd的crc的長(zhǎng)度小于第一預(yù)定數(shù)值時(shí),對(duì)該crc的所有字節(jié)進(jìn)行整體計(jì)算,確定該目標(biāo)mpd的crc的目標(biāo)值。
作為本發(fā)明的一種實(shí)施方式,對(duì)于不同的mpd其對(duì)應(yīng)的crc的長(zhǎng)度會(huì)存在差異,該第一預(yù)定數(shù)值可以為32字節(jié),當(dāng)該目標(biāo)mpd的crc的長(zhǎng)度大于或者等于32字節(jié)時(shí),可以選取該目標(biāo)mpd的crc前后各16個(gè)字節(jié),組合成32字節(jié)的數(shù)據(jù),對(duì)該數(shù)據(jù)進(jìn)行計(jì)算,得到crc32值(目標(biāo)值),根據(jù)該crc32值進(jìn)行目標(biāo)mpd的校驗(yàn);當(dāng)該目標(biāo)mpd的crc的長(zhǎng)度小于32字節(jié)時(shí),則對(duì)該目標(biāo)mpd的crc的所有字節(jié)進(jìn)行計(jì)算,得到crc32值,根據(jù)該crc32值進(jìn)行目標(biāo)mpd的校驗(yàn);特殊的,作為本發(fā)明的一種實(shí)施方式,可能會(huì)未獲得該目標(biāo)mpd的crc的長(zhǎng)度,此時(shí)可以不對(duì)該目標(biāo)mpd進(jìn)行校驗(yàn),或者通過“0”填充該crc32值,例如,該目標(biāo)mpd的crc的長(zhǎng)度為0,即smpdcrc_32_null;
如果smpd_aes128_cm模式,則該目標(biāo)解密密鑰為0x00000000mpd_keyx;
如果smpd_aes192_cm模式,則該目標(biāo)解密密鑰為0x00000000mpd_keyx0000;
如果smpd_aes256_cm模式,則該目標(biāo)解密密鑰為0x00000000mpd_keyx00000000。
作為本發(fā)明的一種實(shí)施方式,該加密解密的過程中,還需要該加解密所需的密鑰,其中該密鑰可以是該dash客戶端與該dash服務(wù)器之間已經(jīng)預(yù)先約定好的,也可以是該dash客戶端與該dash服務(wù)器之間隨機(jī)協(xié)商,對(duì)于該加解密的安全性的考慮,后者會(huì)更加優(yōu)選,具體的,所述tls連接請(qǐng)求中還攜帶該dash客戶端生成的第一隨機(jī)數(shù),所述tls連接回復(fù)中還攜帶該dash服務(wù)端生成的第二隨機(jī)數(shù);
在所述向該dash服務(wù)端發(fā)送媒體表示描述mpd請(qǐng)求之前,所述方法還可以包括:
根據(jù)該第一隨機(jī)數(shù)、該第二隨機(jī)數(shù)以及該目標(biāo)值,計(jì)算關(guān)于該目標(biāo)mpd的目標(biāo)解密密鑰;
所述根據(jù)該第一加密算法所對(duì)應(yīng)解密算法,對(duì)該目標(biāo)mpd解密,可以包括:
利用該目標(biāo)解密密鑰以及該第一加密算法所對(duì)應(yīng)的解密算法,對(duì)該目標(biāo)mpd解密。
作為本發(fā)明的一種實(shí)施方式,該目標(biāo)值可以是利用現(xiàn)有技術(shù)生成的一個(gè)4字節(jié)的數(shù),該目標(biāo)解密密鑰可以是由該4字節(jié)的目標(biāo)值、第一隨機(jī)數(shù)的4個(gè)字節(jié)以及第二隨機(jī)數(shù)的4個(gè)字節(jié)組成,其中,該第一隨機(jī)數(shù)的4個(gè)字節(jié)以及第二隨機(jī)數(shù)的4個(gè)字節(jié)可以稱為一個(gè)8字節(jié)的私有key,可以用mpd_keyx表示。
例如:該目標(biāo)值生成的4字節(jié)的數(shù)為0xaabbccdd,
如果smpd_aes128_cm模式,則該目標(biāo)解密密鑰為0xaabbccddmpd_keyx;
如果smpd_aes192_cm模式,則該目標(biāo)解密密鑰為0xaabbccddmpd_keyx0000;
如果smpd_aes256_cm模式,則該目標(biāo)解密密鑰為0xaabbccddmpd_keyx00000000。
需要說明的是,為了更進(jìn)一步的保證該dash客戶端與dash服務(wù)端之間所傳輸?shù)臄?shù)據(jù)的安全性,對(duì)于該切片文件進(jìn)行加密,進(jìn)而進(jìn)行傳輸。具體的,所述目標(biāo)mpd中攜帶關(guān)于所包括url對(duì)應(yīng)的切片文件的加密信息,該加密信息包括所述第二加密算法,其中,該第二加密算法為dash客戶端所支持的至少一種加密算法中的一種算法;
所述方法還可以包括:
接收該切片文件;
根據(jù)該第二加密算法所對(duì)應(yīng)解密算法,對(duì)該切片文件解密;
播放該解密后的切片文件。
更進(jìn)一步的,所述加密信息中還可以包括該切片文件對(duì)應(yīng)的目標(biāo)令牌token標(biāo)識(shí);
在所述根據(jù)該第二加密算法所對(duì)應(yīng)解密算法,對(duì)該切片文件解密之前,所述方法還可以包括:
判斷該目標(biāo)token標(biāo)識(shí)是否和與該切片文件同時(shí)所接收的token標(biāo)識(shí)相同;
如果是,執(zhí)行所述根據(jù)該第二加密算法所對(duì)應(yīng)解密算法,對(duì)該切片文件解密的步驟。
需要說明的是,為了節(jié)省該dash客戶端對(duì)該切片文件解密時(shí)所需占用的資源,在對(duì)該切片文件進(jìn)行解密之前可以首先根據(jù)該切片文件對(duì)應(yīng)的目標(biāo)token標(biāo)識(shí),判斷該切片文件是否有效,如果無效則對(duì)該切片文件進(jìn)行丟棄,如果有效,對(duì)該切片文件進(jìn)行解密,并進(jìn)行后續(xù)的播放過程。
可以理解的是,在該dash服務(wù)器向該dash客戶端發(fā)送目標(biāo)mpd之前將該mpd中所包含的url所對(duì)應(yīng)的切片文件的token標(biāo)識(shí)(目標(biāo)token標(biāo)識(shí))都添加入了該目標(biāo)mpd中,另外,在根據(jù)該所選擇的目標(biāo)url發(fā)送切片文件時(shí),同時(shí)攜帶該切片文件對(duì)應(yīng)的token標(biāo)識(shí),判斷該所接收的token標(biāo)識(shí)與該目標(biāo)token標(biāo)識(shí)是否相同,以判斷該切片文件是否為所需要的切片文件,即該切片文件是否有效。
相應(yīng)于上述方法實(shí)施例,本發(fā)明實(shí)施例還提供的一種數(shù)據(jù)的傳輸方法,可以應(yīng)用于動(dòng)態(tài)自適應(yīng)流媒體dash服務(wù)端,其中,該dash服務(wù)端與dash客戶端連接,其中,需要說明的是,該dash服務(wù)端可以與多個(gè)該dash客戶端連接,如圖2所示,該方法可以包括步驟:
s201:接收該dash客戶端發(fā)送的攜帶有預(yù)設(shè)擴(kuò)展字段的安全傳輸層協(xié)議 tls連接請(qǐng)求,其中,該預(yù)設(shè)擴(kuò)展字段中攜帶該dash客戶端所支持的至少一種加密算法;
可以理解的是,該dash服務(wù)器利用現(xiàn)有技術(shù)接收該dash客戶端發(fā)送的攜帶有預(yù)設(shè)擴(kuò)展字段的tls連接請(qǐng)求,該預(yù)設(shè)擴(kuò)展字段中攜帶該dash客戶端所支持的至少一種加密算法,該dash服務(wù)器接收到該tls連接請(qǐng)求后,可以知曉該dash客戶端要與自身建立tls連接,并進(jìn)行后續(xù)的數(shù)據(jù)的傳輸,該至少一種加密算法用于后續(xù)的所需傳輸?shù)臄?shù)據(jù)的加密。
s202:從該至少一種加密算法中,確定自身所支持的第一加密算法;
具體的,該dash服務(wù)器接收到tls連接請(qǐng)求后,從該tls連接請(qǐng)求中攜帶的預(yù)設(shè)擴(kuò)展字段所包含的至少一種加密算法中,確定自身所支持的第一加密算法,繼續(xù)后續(xù)的數(shù)據(jù)的傳輸流程;作為本發(fā)明的一種實(shí)施方式,如果該dash服務(wù)器未能從該至少一種加密算法中確定出自身所支持的第一加密算法,則該數(shù)據(jù)的加密無法完成,該數(shù)據(jù)的傳輸流程結(jié)束或者利用現(xiàn)有技術(shù)對(duì)未加密的數(shù)據(jù)進(jìn)行傳輸,等等,這都是合理的。
s203:向該dash客戶端發(fā)送攜帶有該第一加密算法的tls連接回復(fù),以與該dash客戶端建立tls連接;
需要說明的是,向該dash客戶端發(fā)送tls連接回復(fù)是為了與該dash客戶端建立tls連接,以告知該dash客戶端,其可以進(jìn)行后續(xù)的數(shù)據(jù)的傳輸流程,向該dash客戶端發(fā)送該第一加密算法是為了告知該dash客戶端,對(duì)于后續(xù)的數(shù)據(jù)的傳輸過程中,其會(huì)依據(jù)該第一加密算法進(jìn)行數(shù)據(jù)的加密。
s204:接收該dash客戶端發(fā)送的媒體表示描述mpd請(qǐng)求;
具體的,該dash服務(wù)器利用現(xiàn)有技術(shù)接收該dash客戶端發(fā)送的mpd請(qǐng)求,會(huì)響應(yīng)該mpd請(qǐng)求,選擇出與該mpd請(qǐng)求對(duì)應(yīng)的mpd,進(jìn)行后續(xù)的數(shù)據(jù)的傳輸?shù)牧鞒獭?/p>
s205:根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密;
具體的,該dash服務(wù)器可以根據(jù)現(xiàn)有技術(shù)利用該確定的第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密。
s206:向該dash客戶端發(fā)送加密后所形成的目標(biāo)mpd,以使該dash客戶 端在根據(jù)該第一加密算法所對(duì)應(yīng)解密算法,對(duì)該目標(biāo)mpd解密后,從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用的目標(biāo)url,依據(jù)該目標(biāo)url向該dash服務(wù)端請(qǐng)求相應(yīng)的切片文件;
需要說明的是,該dash服務(wù)端將該mpd進(jìn)行加密后,形成目標(biāo)mpd,將該目標(biāo)mpd發(fā)送給該dash客戶端,以使該dash客戶端根據(jù)所協(xié)商好的該第一加密算法所對(duì)應(yīng)解密算法,利用現(xiàn)有技術(shù)對(duì)該目標(biāo)mpd進(jìn)行解密,并且從該解密結(jié)果中所包含的url中,依據(jù)該dash客戶端自身的網(wǎng)絡(luò)狀態(tài)依據(jù)設(shè)備配置性能信息,選擇待利用的目標(biāo)url,并且向該dash服務(wù)端請(qǐng)求切片文件。
s207:響應(yīng)該目標(biāo)url,向該dash客戶端發(fā)送與該目標(biāo)url相應(yīng)的切片文件。
可以理解的是,該目標(biāo)url唯一對(duì)應(yīng)一個(gè)切片文件,根據(jù)該目標(biāo)url可以確定相應(yīng)的切片文件,將該切片文件發(fā)送給該dash客戶端,其中,該切片文件可以是經(jīng)過加密后的文件,也可以是未進(jìn)行加密的文件,這都是可以的。
應(yīng)用本發(fā)明實(shí)施例,該dash服務(wù)端根據(jù)與該dash客戶端協(xié)商好的第一加密算法,對(duì)該目標(biāo)mpd進(jìn)行加密傳輸,可以避免該目標(biāo)mpd被竊取,導(dǎo)致該目標(biāo)mpd所對(duì)應(yīng)的數(shù)據(jù)被竊取,可以提高dash系統(tǒng)中所傳輸?shù)臄?shù)據(jù)的安全性。
具體的,所述預(yù)設(shè)擴(kuò)展字段中還攜帶關(guān)于該目標(biāo)mpd的校驗(yàn)碼crc的目標(biāo)值的計(jì)算方式;
所述向該dash客戶端發(fā)送攜帶有該第一加密算法的tls連接回復(fù)之前,所述方法還可以包括:
根據(jù)該預(yù)設(shè)擴(kuò)展字段所攜帶的該計(jì)算方式,計(jì)算該目標(biāo)mpd的crc的目標(biāo)值;
所述向該dash客戶端發(fā)送攜帶有該第一加密算法的tls連接回復(fù),包括:
向該dash客戶端發(fā)送攜帶有該第一加密算法以及該目標(biāo)mpd的crc的目標(biāo)值的tls連接回復(fù)。
為保證該dash客戶端與dash服務(wù)端之間所要傳輸?shù)臄?shù)據(jù)的準(zhǔn)確性,保 證數(shù)據(jù)的安全,并且保證該dash客戶端與dash服務(wù)端之間的同步性,該預(yù)設(shè)擴(kuò)展字段中還可以攜帶關(guān)于該目標(biāo)mpd的校驗(yàn)碼crc的目標(biāo)值的計(jì)算方式,根據(jù)該計(jì)算方式,該dash服務(wù)端可以計(jì)算出該目標(biāo)mpd的crc的目標(biāo)值,同時(shí),將該目標(biāo)值添加入該tls鏈接回復(fù)中,一起傳輸給該dash客戶端,以保證后續(xù)的數(shù)據(jù)的傳輸?shù)耐叫裕揹ash客戶端與dash服務(wù)端之間可以根據(jù)該目標(biāo)值對(duì)該傳輸?shù)哪繕?biāo)mpd進(jìn)行校驗(yàn),判斷該目標(biāo)mpd的有效性及真實(shí)性。
作為本發(fā)明的一種實(shí)施方式,在該加密解密的過程中,還需要該加解密所需的密鑰,其中,該密鑰可以是該dash客戶端與該dash服務(wù)器之間已經(jīng)預(yù)先約定好的,也可以是該dash客戶端與該dash服務(wù)器之間隨機(jī)協(xié)商,對(duì)于該加解密的安全性的考慮,后者會(huì)更加優(yōu)選,具體的,所述tls連接請(qǐng)求中還攜帶該dash客戶端生成的第一隨機(jī)數(shù),該tls連接回復(fù)中還攜帶該dash服務(wù)端生成的第二隨機(jī)數(shù);
所述根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密之前,所述方法還可以包括:
根據(jù)該第一隨機(jī)數(shù)、該第二隨機(jī)數(shù)以及該目標(biāo)值,計(jì)算關(guān)于該目標(biāo)mpd的目標(biāo)解密密鑰;
所述根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,包括:
根據(jù)該第一加密算法以及該目標(biāo)解密密鑰,對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密。
更進(jìn)一步的,為了更好的保證該dash客戶端與該dash服務(wù)器之間所傳輸?shù)臄?shù)據(jù)的安全性,該切片文件也可以是加密后,再進(jìn)行傳輸?shù)?,另外,?duì)于該切片文件的加密,該dash客戶端與該dash服務(wù)器之間也是需要進(jìn)行相互通信,協(xié)商與該切片文件相關(guān)的加密信息的。具體的,所述根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密之前,所述方法還可以包括:
從該至少一種加密算法中,確定自身所支持的第二加密算法;
根據(jù)該第一加密算法,對(duì)url對(duì)應(yīng)的切片文件的加密信息以及與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,以形成目標(biāo)mpd,其中,該url對(duì)應(yīng)的切片文件的加 密信息包括該第二加密算法;
在所述響應(yīng)該目標(biāo)url,向該dash客戶端發(fā)送與該目標(biāo)url相應(yīng)的切片文件之前,所述方法還可以包括:
根據(jù)該第二加密算法對(duì)與該目標(biāo)url相應(yīng)的該切片文件進(jìn)行加密,以使該dash客戶端根據(jù)該目標(biāo)mpd中所攜帶的該第二加密算法所對(duì)應(yīng)解密算法,對(duì)所接收到的切片文件解密。
更進(jìn)一步的,所述根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密之前,所述方法還可以包括:
確定該切片文件所對(duì)應(yīng)的目標(biāo)令牌token標(biāo)識(shí);
所述根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,包括:
根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd以及該目標(biāo)token標(biāo)識(shí)進(jìn)行加密。
可以理解的是,為了更好的確定該切片文件的準(zhǔn)確性,減輕該dash客戶端解密該切片文件時(shí)所占用的資源,該dash服務(wù)端向該dash客戶端發(fā)送與該mpd請(qǐng)求對(duì)應(yīng)的mpd的同時(shí),還發(fā)送該切片文件所對(duì)應(yīng)的目標(biāo)token標(biāo)識(shí),以在解密該切片文件之前,首先校驗(yàn)該切片文件是否有效,即該切片文件的真實(shí)性。
相應(yīng)于上述方法實(shí)施例,如圖3所示,本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)的傳輸裝置,可以應(yīng)用于動(dòng)態(tài)自適應(yīng)流媒體dash客戶端,其中,所述dash客戶端與dash服務(wù)端連接,所述裝置可以包括:安全傳輸層協(xié)議tls連接請(qǐng)求發(fā)送模塊301、媒體表示描述mpd請(qǐng)求發(fā)送模塊302、目標(biāo)mpd接收模塊303、目標(biāo)mpd解密模塊304、目標(biāo)統(tǒng)一資源定位符url選擇模塊305和切片文件請(qǐng)求模塊306;
所述tls連接請(qǐng)求發(fā)送模塊301:用于向所述動(dòng)態(tài)自適應(yīng)流媒體dash服務(wù)端發(fā)送攜帶有預(yù)設(shè)擴(kuò)展字段的安全傳輸層協(xié)議tls連接請(qǐng)求,以使所述dash服務(wù)端從所述tls連接請(qǐng)求所攜帶的預(yù)設(shè)擴(kuò)展字段中選擇自身所支持的第一加密算法,向所述dash客戶端發(fā)送攜帶有所述第一加密算法的tls連接回復(fù),以與所述dash建立tls連接,其中,所述預(yù)設(shè)擴(kuò)展字段中包含所述dash客戶端所支持的至少一種加密算法;
所述mpd請(qǐng)求發(fā)送模塊302:用于向所述dash服務(wù)端發(fā)送媒體表示描述 mpd請(qǐng)求,以使所述dash服務(wù)端根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,并將加密后所形成的目標(biāo)mpd反饋給所述dash客戶端;
所述目標(biāo)mpd接收模塊303:用于接收所述dash服務(wù)端反饋的所述目標(biāo)mpd;
所述目標(biāo)mpd解密模塊304:用于根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密;
所述目標(biāo)url選擇模塊305:用于從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用的目標(biāo)url;
所述切片文件請(qǐng)求模塊306:用于依據(jù)所述目標(biāo)url向所述dash服務(wù)端請(qǐng)求相應(yīng)的切片文件。
應(yīng)用本發(fā)明實(shí)施例,dash客戶端向dash服務(wù)端發(fā)送攜帶有預(yù)設(shè)擴(kuò)展字段的tls連接請(qǐng)求,以使該dash服務(wù)端從該tls連接請(qǐng)求所攜帶的預(yù)設(shè)擴(kuò)展字段中選擇自身所支持的第一加密算法,向該dash客戶端發(fā)送攜帶有該第一加密算法的tls連接回復(fù),以與該dash客戶端建立tls連接,其中,該預(yù)設(shè)擴(kuò)展字段中包含該dash客戶端所支持的至少一種加密算法;向該dash服務(wù)端發(fā)送mpd請(qǐng)求,以使該dash服務(wù)端根據(jù)該第一加密算法對(duì)與該mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,并將加密后所形成的目標(biāo)mpd反饋給該dash客戶端;接收該dash服務(wù)端反饋的該目標(biāo)mpd;根據(jù)該第一加密算法所對(duì)應(yīng)解密算法,對(duì)該目標(biāo)mpd解密;從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用的目標(biāo)url;依據(jù)該目標(biāo)url向該dash服務(wù)端請(qǐng)求相應(yīng)的切片文件。通過對(duì)目標(biāo)mpd進(jìn)行加密的方式,以避免該目標(biāo)mpd內(nèi)的數(shù)據(jù)被竊取,提高在dash系統(tǒng)中所傳輸?shù)臄?shù)據(jù)的安全性。
具體的,所述預(yù)設(shè)擴(kuò)展字段中還攜帶關(guān)于所述目標(biāo)mpd的校驗(yàn)碼crc的目標(biāo)值的計(jì)算方式;
所述tls連接回復(fù)中還攜帶有所述目標(biāo)mpd的crc的所述目標(biāo)值,其中,所述目標(biāo)mpd的crc的所述目標(biāo)值為:所述dash服務(wù)端根據(jù)所述預(yù)設(shè)擴(kuò)展字段所攜帶的所述計(jì)算方式計(jì)算得到的值;
所述裝置還可以包括目標(biāo)mpd判斷模塊:
所述目標(biāo)mpd判斷模塊:用于在所述根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密之前,根據(jù)所述目標(biāo)mpd的crc的所述目標(biāo)值,判斷所述目標(biāo)mpd是否有效,當(dāng)判斷為有效時(shí),觸發(fā)所述目標(biāo)mpd解密模塊304。
具體的,所述目標(biāo)mpd判斷模塊包括標(biāo)準(zhǔn)值計(jì)算單元與判斷單元;
所述標(biāo)準(zhǔn)值計(jì)算單元:用于根據(jù)所述預(yù)設(shè)擴(kuò)展字段所攜帶的計(jì)算方式,計(jì)算所述目標(biāo)mpd的crc的標(biāo)準(zhǔn)值;
所述判斷單元:用于判斷所述標(biāo)準(zhǔn)值是否與所述目標(biāo)值相同;
如果相同,表明所述目標(biāo)mpd有效;
如果不相同,表明所述目標(biāo)mpd無效。
具體的,所述預(yù)設(shè)擴(kuò)展字段所攜帶的計(jì)算方式包括:
當(dāng)關(guān)于所述目標(biāo)mpd的crc的長(zhǎng)度大于或者等于第一預(yù)定數(shù)值時(shí),選取所述crc的第一預(yù)定數(shù)值個(gè)字節(jié)進(jìn)行計(jì)算,確定所述目標(biāo)mpd的crc的所述目標(biāo)值;
當(dāng)關(guān)于所述目標(biāo)mpd的crc的長(zhǎng)度小于第一預(yù)定數(shù)值時(shí),對(duì)所述crc的所有字節(jié)進(jìn)行整體計(jì)算,確定所述目標(biāo)mpd的crc的所述目標(biāo)值。
具體的,所述tls連接請(qǐng)求中還攜帶所述dash客戶端生成的第一隨機(jī)數(shù),所述tls連接回復(fù)中還攜帶所述dash服務(wù)端生成的第二隨機(jī)數(shù);
所述裝置還包括第一目標(biāo)解密密鑰計(jì)算模塊:
所述第一目標(biāo)解密密鑰計(jì)算模塊:用于在所述向所述dash服務(wù)端發(fā)送媒體表示描述mpd請(qǐng)求之前,根據(jù)所述第一隨機(jī)數(shù)、所述第二隨機(jī)數(shù)以及所述目標(biāo)值,計(jì)算關(guān)于所述目標(biāo)mpd的目標(biāo)解密密鑰;
所述目標(biāo)mpd解密模塊304,具體用于:
利用所述目標(biāo)解密密鑰以及所述第一加密算法所對(duì)應(yīng)的所述解密算法,對(duì)所述目標(biāo)mpd解密。
具體的,所述目標(biāo)mpd中攜帶關(guān)于所包括url對(duì)應(yīng)的切片文件的加密信息,所述加密信息包括第二加密算法,其中,所述第二加密算法為dash客戶端所支 持的所述至少一種加密算法中的一種算法;
所述裝置還包括切片文件接收模塊、切片文件解密模塊和切片文件播放模塊:
所述切片文件接收模塊:用于接收所述切片文件;
所述切片文件解密模塊:用于根據(jù)所述第二加密算法所對(duì)應(yīng)解密算法,對(duì)所述切片文件解密;
所述切片文件播放模塊:用于播放所述解密后的切片文件。
具體的,所述加密信息中還包括所述切片文件對(duì)應(yīng)的目標(biāo)令牌token標(biāo)識(shí);
所述裝置還包括token標(biāo)識(shí)判斷模塊;
所述token標(biāo)識(shí)判斷模塊:用于判斷所述目標(biāo)token標(biāo)識(shí)是否和與所述切片文件同時(shí)所接收的token標(biāo)識(shí)相同;如果是,觸發(fā)所述切片文件解密模塊。
相應(yīng)于上述方法實(shí)施例,如圖4所示,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)的傳輸裝置,可以應(yīng)用于動(dòng)態(tài)自適應(yīng)流媒體dash服務(wù)端,其中,所述dash服務(wù)端與dash客戶端連接,所述裝置可以包括:安全傳輸層協(xié)議tls連接請(qǐng)求接收模塊401、第一加密算法確定模塊402、tls連接回復(fù)發(fā)送模塊403、媒體表示描述mpd請(qǐng)求接收模塊404、mpd加密模塊405、目標(biāo)mpd發(fā)送模塊406和切片文件發(fā)送模塊407;
所述tls連接請(qǐng)求接收模塊401:用于接收所述dash客戶端發(fā)送的攜帶有預(yù)設(shè)擴(kuò)展字段的安全傳輸層協(xié)議tls連接請(qǐng)求,其中,所述預(yù)設(shè)擴(kuò)展字段中攜帶所述dash客戶端所支持的至少一種加密算法;
所述第一加密算法確定模塊402:用于從所述至少一種加密算法中,確定自身所支持的第一加密算法;
所述tls連接回復(fù)發(fā)送模塊403:用于向所述dash客戶端發(fā)送攜帶有所述第一加密算法的tls連接回復(fù),以與所述dash客戶端建立tls連接;
所述mpd請(qǐng)求接收模塊404:用于接收所述dash客戶端發(fā)送的媒體表示描述mpd請(qǐng)求;
所述mpd加密模塊405:用于根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng) 的mpd進(jìn)行加密;
所述目標(biāo)mpd發(fā)送模塊406:用于向所述dash客戶端發(fā)送加密后所形成的目標(biāo)mpd,以使所述dash客戶端在根據(jù)所述第一加密算法所對(duì)應(yīng)解密算法,對(duì)所述目標(biāo)mpd解密后,從解密結(jié)果所包括的統(tǒng)一資源定位符url中選擇待利用的目標(biāo)url,依據(jù)所述目標(biāo)url向所述dash服務(wù)端請(qǐng)求相應(yīng)的切片文件;
所述切片文件發(fā)送模塊407:用于響應(yīng)所述目標(biāo)url,向所述dash客戶端發(fā)送與所述目標(biāo)url相應(yīng)的切片文件。
應(yīng)用本發(fā)明實(shí)施例,該dash服務(wù)端根據(jù)與該dash客戶端協(xié)商好的第一加密算法,對(duì)該目標(biāo)mpd進(jìn)行加密傳輸,可以避免該目標(biāo)mpd被竊取,導(dǎo)致該目標(biāo)mpd所對(duì)應(yīng)的數(shù)據(jù)被竊取,可以提高dash系統(tǒng)中所傳輸?shù)臄?shù)據(jù)的安全性。
具體的,所述預(yù)設(shè)擴(kuò)展字段中還攜帶關(guān)于所述目標(biāo)mpd的校驗(yàn)碼crc的目標(biāo)值的計(jì)算方式;
所述裝置還包括目標(biāo)值計(jì)算模塊;
所述目標(biāo)值計(jì)算模塊:用于所述向所述dash客戶端發(fā)送攜帶有所述第一加密算法的tls連接回復(fù)之前,根據(jù)所述預(yù)設(shè)擴(kuò)展字段所攜帶的所述計(jì)算方式,計(jì)算所述目標(biāo)mpd的crc的目標(biāo)值;
所述tls連接回復(fù)發(fā)送模塊403,具體用于:
向所述dash客戶端發(fā)送攜帶有所述第一加密算法以及所述目標(biāo)mpd的crc的目標(biāo)值的tls連接回復(fù)。
具體的,所述tls連接請(qǐng)求中還攜帶所述dash客戶端生成的第一隨機(jī)數(shù),所述tls連接回復(fù)中還攜帶所述dash服務(wù)端生成的第二隨機(jī)數(shù);
所述裝置還包括第二目標(biāo)解密密鑰計(jì)算模塊;
所述第二目標(biāo)解密密鑰計(jì)算模塊:用于所述根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密之前,根據(jù)所述第一隨機(jī)數(shù)、所述第二隨機(jī)數(shù)以及所述目標(biāo)值,計(jì)算關(guān)于所述目標(biāo)mpd的目標(biāo)解密密鑰;
所述mpd加密模塊405,具體用于:
根據(jù)所述第一加密算法以及所述目標(biāo)解密密鑰,對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密。
具體的,所述裝置還包括第二加密算法確定模塊和切片文件加密模塊;
所述第二加密算法確定模塊:用于所述根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密之前,從所述至少一種加密算法中,確定自身所支持的第二加密算法;
所述mpd加密模塊405,具體用于:
根據(jù)所述第一加密算法,對(duì)url對(duì)應(yīng)的切片文件的加密信息以及與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密,以形成目標(biāo)mpd,其中,所述url對(duì)應(yīng)的切片文件的加密信息包括所述第二加密算法;
所述切片文件加密模塊:用于在所述響應(yīng)所述目標(biāo)url,向所述dash客戶端發(fā)送與所述目標(biāo)url相應(yīng)的切片文件之前,根據(jù)所述第二加密算法對(duì)與所述目標(biāo)url相應(yīng)的所述切片文件進(jìn)行加密,以使所述dash客戶端根據(jù)所述目標(biāo)mpd中所攜帶的所述第二加密算法所對(duì)應(yīng)解密算法,對(duì)所接收到的切片文件解密。
具體的,所述裝置還可以包括目標(biāo)令牌token標(biāo)識(shí)確定模塊;
所述目標(biāo)token標(biāo)識(shí)確定模塊:用于所述根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd進(jìn)行加密之前,確定所述切片文件所對(duì)應(yīng)的目標(biāo)token標(biāo)識(shí);
所述mpd加密模塊405,具體用于:
根據(jù)所述第一加密算法對(duì)與所述mpd請(qǐng)求對(duì)應(yīng)的mpd以及所述目標(biāo)token標(biāo)識(shí)進(jìn)行加密。
對(duì)于系統(tǒng)/裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含” 或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施方式中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,這里所稱得的存儲(chǔ)介質(zhì),如:rom/ram、磁碟、光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。