四、Flash Media Server3.5安全特性
此文是結構松散的初學者教程系列第四篇。主要闡述了如何更好的應用Flash Media Server3.5的新安全特性。首先我將告訴你如何加密視頻,使用戶無法攔截網絡上的流信息。然后我將解釋如何添加SWF證書,從而使得用戶無法反編譯以及重新使用你的SWF文件。
他們不把它叫做“野生,野生的網頁”的原因是它的情況并不少見。例如,當你發布影片到你的網站上,幾分鐘之后它就會出現在別的地方。事實上,如果有正當理由困擾著網絡視頻的使用的話,那就是不安全性。
讓我說清楚本文的目的。在這里我將采用的方法并不是像保護一個州的首腦一樣將視頻包裹在一個安全的警戒區。相反,我將會使它可以被自由的使用,但想偷就不是那么容易了。
我將用類比的方法來闡述內容。最近我需要為我的筆記本電腦配置一個鼠標。在如此簡單的購物中使我感到震驚的是鼠標的包裝:它被包裝在一個堅硬的塑料殼里面,想要打開它必須要用到鏈鋸。這樣包裝的目的就是防止偷竊。想要打開它需要非常長的時間而且機會是很好的。如果你試圖打開包偷走鼠標的話,會有一名監視你的保安人員走過來詢問你究竟要做什么。
采用漸進方式下載視頻,也就是使用HTTP連接將FLV文件下載到Adobe Flash Player中等同于將鼠標用USB線懸掛在架子上。絕對是不安全的,而且比較容易被偷。原因是FLV文件被下載到了瀏覽器的緩存中。將此FLV文件從緩存中復制到桌面是不費吹灰之力的。
如果僅僅是通過手機向祖父傳遞兒子的視頻或相片的時候,安全不那么重要。換句話說,如果你花錢購買了內容或者是投資了內容的生產,那么保護你的投資對你來說就變得意義重大了。這也就是Flash Media Server產生的原因。
當通過FMS流傳輸視頻的時候,沒有任何東西進入瀏覽器的緩存。Flash Player擔當起了將比特流轉換成網頁中放器中FLVPlayback組件能播放的視頻。通過FMS流傳輸視頻為視頻的安全做出了重大升級。就像是零售商將鼠標鎖在了櫥窗里,或將鼠標轉移到上鎖的陳列盒里。
注意:閱讀Flash VIdeo Learning Guide的“Delivery options for Flash Video"章節獲取更多的網絡傳輸視頻方法,同時觀看視頻技術中心的“Delivering video on the web”視頻了解漸進式下載FLV文件和流傳輸之間的區別。
Flash Media Server3.5內置了兩種特性幫助你將鼠標放回到架子上而且不會被偷走:加密和SWF證書。此文告訴你如果應用這些特性到一個流視頻中。
加密或靜區
你不是很討厭當你在和別人談話的時候,別人趴在墻上偷聽嗎?在互聯網上這是非常普遍的,很多第三方開發的程序已經被用來監聽服務器和客戶端的信息。當它們捕獲到一個感興趣的數據流后直接就會抓住它,而不先進行詢問。
FLash Media Server內置了加密特性,最令人喜歡的一點就是:為了使用它你并不需要獲得量子物理學的博士學位,而僅僅需要的是多按下鍵盤上的一個鍵。
具體步驟如下:
1.下載將會用到的文件http://download.macromedia.com/pub/developer/beginner_security_fms3.zip。解壓后,拖動Vulures.flv和Vultures.mp4兩個文件到vod文件夾下的media文件夾里。路徑是C:\Program Files\Adobe\Flash Media Server 3.5\applications\vod\media.
2.打開一個新的Flash Cs4 文件。拖動一個FLVPlayback副本到舞臺上。
3.在組建檢查器的參數選項卡中,雙擊source參數打開內容路徑對話框(見圖1)。
4.輸入如下路徑:rtmpe://localhost/vod/Vultures
5.點擊Ok,當Flash將元數據加載到FLV文件中后對話框會關閉。
6.保存并測試影片。
圖1:通過在rtmp路徑中添加字母e實現Flv文件加密
播放視頻的FLV文件是一個加密的文件。通過添加字母e到路徑上,你就告訴了FMS3.5對vod文件夾中的FLV文件添加實時的加密。在服務器到客戶端Flash播放器的傳輸過程中文件都是加密了的,而Flash Player并不需要任何鑰匙就可以實現文件的解密。
只有當你打開FMS3.5 管理控制臺后才會被提示流是經過加密處理的。如果你單擊View Applications然后單擊Client選項卡,你就會看到在協議欄里流出服務器的視頻流所采用的協議是RTMPE。(見圖2)
圖2.管理控制臺指示協議欄的加密FLV流。
SWF文件的防盜校對
如果你接觸網絡有一段時間了,你就會明白捕獲一個SWF文件是多么容易的一件事。事實上,關于這個操作的一個非常普遍的討論時“嘿,我已經得到了 一個SWF文件,問題是我該如何反編譯它從而獲得源文件呢?”我不想深入討論有關的道德問題,因為在特定情況下這樣操作是十分必要的。但總體而言,反編譯SWF文件是不可接受的。
這就提出了一個相當有意思的問題:“我已經花費了大量的時間和金錢開發SWF文件。我該如何防止它被其他人反編譯呢?”如果你采用Flash Media Server3.5話,那將會是一件極其容易的事情。
具體步驟:
1.創建一個新的Flash Cs4文檔。
2.舞臺上添加一個FLVPlayback組件,并將其源參數設置為rtmpe://localhost/vod/mp4:Vultures
3.在皮膚屬性,選擇SkinUnderPlaySeekFullscreen.swf.
4.添加一個新圖層,在此圖層的舞臺頂部加入一些文件或者畫一個簡單的圖形。文字或圖形在這個練習中是十分重要的。
5.繼續,測試影片。一切工作正常,文本位于視頻之上(見圖3)。
圖3:視頻正常播放
注意:正如我以前指出的那樣,當指向的是vod文件夾中的mp3和mp4文件時需要在媒體類型后追加冒號和文件名,沒有擴展名。如果文件無法正常工作,認真檢查無比確保冒號和文件名中間沒有插入空格。
保護文件不被偷走和反編譯是Flash Media Server3.5的一個極其漂亮的特性。關于這一特性,默認情況下是不被激活的,你要啟動它需要改變一些設置。
首先改變驅動該特性的XML文件。如果你不太適應直接改變application文件,那么事先先把文件復制到桌面,這樣如果你犯了錯誤的話,還可以用原來的文件替換掉。
6.保存文件并定位到C:\Program Files\Adobe\Flash Media Server3.5\conf\_defaultRoot_\_defaultVHost_,打開此文件夾里的Applications.xml文件。
注意:我會用Dreamweaver來打開這個XML文件,至于采用什么應用程序完全取決于個人愛好。
7.向下滾動到726行,如果沒有行標,那么用SWf作為關鍵字進行搜索就可以找到了。
8.現在把<SWFVerification enable="false">中的false改成true,見圖4.
圖4.更改設置為true,打開SWF證書。
先不要保存文件,這個過程還有一個你需要知道的方面。
你不能僅僅打開SWFVerification就高興的希望它能工作。你同時還需要放置一個SWF文件副本到某特定的位置。如果向下滾動XML文檔就會注意到這樣一個標簽<SWFFolder></SWFFolder>。如果你已經閱讀了在此標簽之前的注釋文字的話(見圖5),你就會明白需要創建一個文件夾(推薦使用SWFs名字),同時將即將創建的SWF文件放置到這個文件夾下。將會發生的是服務器會首先去包含此SWF文件的文件夾以及證實其是否正確。
圖5.通過將SWF文件放置到一個特定的文件夾鎖定它。
9.如果繼續向下滾動到XML文件的下一部分,就會發現可以設置采用的Flash播放器的版本。不要隨便修改這里。唯一可用的版本是Flash Player 9.0.115及更高版本。這里的設置是為了使其能夠適應未來的播放器更高的版本。
10.滾動到<Cache>標簽區域。你就會看到SWF文件會存活--TTL標簽意味著Time To Live--1440分鐘在緩存中也就是24小時。如果你認為過長或過于偏執,你可以更改數值。事實上,改成5的話就意味著只會在內存中保留5分鐘。(見圖6)。
圖 6.SWF只在緩存中保存5分鐘
11.保存文件并退出編輯此文件的程序。
在更改了服務器配置之后,你將要做的是重新啟動FMS3.5server。
具體步驟如下:
1.啟動Flash Media Server管理控制臺,打開后,單擊Manage Servers按鈕。
2.在servers面板的底部有5個按鈕。中間的那個像圓形箭頭的按鈕(見圖7)就是要找的按鈕。用來重啟服務器或主機。單擊后,將會提示你是否要重啟服務器。單擊Restart后,SWF Verification就被打開了。
圖7.單擊中間按鈕重啟服務器
3.返回到Flash Cs4中,發布Vultures影片。在瀏覽器中打開HTMl文件,視頻不會播放。事實上,你應該看到的是酒吧,但你現在看到的是SWF文件不能被確認而服務器拒絕了此流。
圖8.SWF文件不能被證實時看到的(你沒有做錯人和事)。
4.現在為了使一切正常工作,需要做的是復制粘貼此項目中的SWF文件到Application.xml中你啟動SWFVerfication時所指向的文件夾中。定位到C:\Program Files\Adobe\Flash Media Server 3.5\applications\vod創建一個名為SWFs的文件夾。
5.回到包含已發布HTML文件的那個文件夾中,打開HTMl文件,視頻開始播放了!
6.為了更真切的認識到這一特性是如何加固房屋的,返回到Flash 項目中,移動圖層2里的對象到舞臺的另一位置,見圖9.你所做的正式模擬一個盜賊偷盜你的SWF文件,反編譯它,以及玩弄它。
圖9.屋內的盜賊
7.使用相同的名字發布次文件,打開HTML文件。你就會看到圖10 所示的內容。事實上,FMS3.5已看到了當前的SWF文件,指向了SWFs文件夾,然后詢問“此文件夾中的SWF文件是當前正播放的SWF文件嗎?”響亮的回答“不是”。結果就是否定了這次連接請求。
圖10.由于兩個文件不匹配且不能被證實所以否定了流
最后,一下是一些需要知道的詳細信息:
1.如果設置了 <SWFVerification enabled="true">,那么就打開了這一特性,所有本地創建的SWF 文件都需要被證實。如果你不認為自己會用到這一特性,那么在學習完此教程之后就將值設置為false.
2.如果任由verification特性打開,確保所有使用FMS3.5的SWF文件都被復制到了SWFs文件夾。如果不這樣做的話,什么都不會工作--我猜Adobe的技術支持熱線必定會接到許多盛怒的電話。
在本篇文章里我已經告訴你了如何在本地工作。如果這兩個特性對你來說直觀重要,那么為了將盜賊擋在門外你需要和你的網絡服務提供商或FVSS討論這些特性。
接下來
此文告訴你了一些保護你的內容的方法。其中之一相對簡單---RTMPE加密視頻流,另一種是采用fms3.5的SWFVerification新特性。如果你比較關注這一話題,以下是其他相關的內容:
1.Lisa Larson-Kelley在 Scaling and securing streaming media applications with Flash Media Server文中圍繞這一主題進行了更深入的闡述。
2.如果你真的需要工業實力保護,你可能想了解Flash Media 版權管理服務器,請閱讀Laurel Reitman's overview.
下一篇文章涵蓋了使用FLVPlayback組件和ActionScript3.0實現音頻的基本流處理。
轉載于:https://www.cnblogs.com/AndySong/archive/2009/05/15/1457774.html
總結
以上是生活随笔為你收集整理的四、Flash Media Server3.5安全特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P2P in Flash Player
- 下一篇: 关于SQL Server中索引使用及维护