人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統(tǒng) > 網(wǎng)絡(luò)技術(shù)教程 > 詳細頁面

用戶口令保護新招(1)

用戶口令保護新招(1)

更新時間:2021-04-08 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機整體,實現(xiàn)資源的全面共享和有機協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源、大型數(shù)據(jù)庫、網(wǎng)絡(luò)、傳感器等。 當前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認為是互聯(lián)網(wǎng)發(fā)展的第三階段。
  經(jīng)常有讀者詢問,如何在其站點上使用JavaScript,以確保用戶登錄時的口令不會外泄。對于這樣的問題,我的第一反應(yīng)就是告訴他們使用SSL(安全套接字協(xié)議層)。如使用正確,SSL對于安全要求較高的Web應(yīng)用是最佳的解決方案。但是,也有相當一部分開發(fā)者,他們的Web應(yīng)用對安全性的要求并不高,因此他們并不希望訪問者使用SSL 登錄。

  Web應(yīng)用一般使用一種叫做“會話狀態(tài)管理”(Session State Management) 的技術(shù)來追蹤和管理瀏覽器與服務(wù)器之間的相互活動。因為每個瀏覽器的瀏覽要求相對于其他瀏覽器都是獨立的(正如超文本傳輸協(xié)議中定義的那樣),所以Web 應(yīng)用必然使用某些技巧,如Cookie、隱藏表格字段、或重寫URL,它們可以識別出服務(wù)器與某個瀏覽器進行的獨立會話。大多數(shù)的服務(wù)器端編程環(huán)境(如ASP、PHP、ColdFusion等)都使用Cookie。

  會話狀態(tài)管理的問題在于從根本上講它是不安全的。這些被用來管理會話狀態(tài)的Cookie、表單值、或URL要在瀏覽器和服務(wù)器之間往來傳送,黑客可以在途中攔截它們。一旦攔截成功,黑客就可以利用這些信息強行接管用戶會話。

  在大多數(shù)服務(wù)器端腳本編寫環(huán)境里,你都可以采取一些措施以減少此類泄密的發(fā)生。例如,你可以為Cookie設(shè)定很短的使用期限,應(yīng)用“難預期會話狀態(tài)”信息。然而,最安全的解決方案還是使用SSL。使用SSL,不論用戶口令,還是會話狀態(tài)信息都會受到保護。

  如果你不使用SSL,那么可以要求用戶對你的應(yīng)用中的每個敏感頁進行重新認證。但是,從用戶的角度來講,這種方式未免太過麻煩。總之,你必須清楚你和你的用戶究竟愿意承擔多高的風險。如果口令泄露的風險過高,你就需要使用SSL建立應(yīng)用。如果你不能使用SSL,可以采用基于MD5的登錄方式作為代替。它至少可以保護你的用戶的口令免于外泄。另外,再選用一種可以防止會話狀態(tài)信息被竊的服務(wù)器端腳本編寫技術(shù)。

  通常,如果一個用戶不使用SSL登錄(即原來的HTTP),那么從離開瀏覽器直到到達目標網(wǎng)絡(luò)服務(wù)器的這段時間里,用戶口令都處于無保護的暴露狀態(tài),正如下頁中的圖表所示。

  不過,我們可以利用一種不可逆的函數(shù)開發(fā)一種登錄方案,利用這種方案就不會暴露用戶的口令。函數(shù)是集合的元素之間的一種對應(yīng)關(guān)系,在從集合A到集合B的函數(shù)中,A中每個元素在B中都有一個唯一的元素與之相對應(yīng)。不可逆函數(shù)在計算上很難逆轉(zhuǎn)——即給定集合B中的一個元素,很難確定在集合A中的哪個元素與之相對應(yīng)。

  這好比是一臺碎紙機。把文件放入碎紙機中銷毀是很容易的。但是反之,如果要把銷毀后的碎紙屑重新拼湊成原文可就難上加難了。

<B>采用MD5解決方案<B>

  當今最流行的不可逆函數(shù)應(yīng)用程序之一就是由Ronald Rivest開發(fā)的MD5算法。Ronald Rivest還是著名的RSA(Rivest,Shamir,Adelman)加密算法的開發(fā)者之一。MD5算法能為任何長度的信息生成一個16字節(jié)大小的“數(shù)字指紋”。這個信息可以是一個字符串、一個文件、一個文本流或任何其它形式的字節(jié)序列。在RFC1321中有MD5算法的詳細描述。

  我們要開發(fā)一種使用MD5算法的登錄方式,用以保護從一個瀏覽器發(fā)送至網(wǎng)絡(luò)服務(wù)器的用戶口令。

  當一名用戶對某個網(wǎng)絡(luò)應(yīng)用提出登錄請求時,其網(wǎng)絡(luò)服務(wù)器就會提供給用戶一個登錄表格。這是一個帶有隨機生成值的表格。其中的隨機生成值由服務(wù)器端腳本從一個數(shù)億記的取值空間中隨機選取生成。
<img src="http://edu.chinaz.com/UpLoadFiles/NewsPhoto/esastep1.gif">

  用戶在登錄表格中輸入他或她的用戶名和口令,用戶端腳本給口令附加一個隨機值,然后用MD5不可逆算法對結(jié)果進行計算。再用計算得出的值代替原口令。我把這個值稱為MD5口令。

  最后,用戶端腳本把用戶名和這個MD5口令發(fā)送到網(wǎng)絡(luò)服務(wù)器。因為在瀏覽器與服務(wù)器之間傳送的是MD5的運算結(jié)果,所以任何人都無法通過計算得出用戶所輸入的原始口令。
<img src="http://edu.chinaz.com/UpLoadFiles/NewsPhoto/esastep2.gif">

  網(wǎng)絡(luò)服務(wù)器在接收用戶名和MD5口令后,會執(zhí)行與用戶瀏覽器相同的運算。它給用戶口令(從服務(wù)器的被保護區(qū)域中提取)附加上隨機值(即已發(fā)送給用戶的隨機值),并計算出正確的MD5口令值。然后網(wǎng)絡(luò)應(yīng)用程序把這個值和它從瀏覽器收取的值相比較。如果兩值相等,網(wǎng)絡(luò)應(yīng)用程序就會生成一個服務(wù)器端會話變量,證明此用戶身份正確。
<img src="http://edu.chinaz.com/UpLoadFiles/NewsPhoto/esastep3.gif">

  說到這里,你也許會置疑使用隨機值的必要性。其實,這個隨機值是用來防止再度攻擊的。如果只有原始用戶口令通過MD5,那么相應(yīng)得出的MD5口令就會總是同一個值。黑客只要截獲MD5口令就同樣可以登錄進入網(wǎng)絡(luò)應(yīng)用。使用了隨機值后,每次登錄時生成的MD5口令都是唯一的,這樣就避免了上述問題的出現(xiàn)。

<B>JavaScript實現(xiàn)</B>
  在JavaScript中實現(xiàn)使用MD5加密的登錄方案是比較容易的。Paul Johnston 的站點為您提供了MD5算法實現(xiàn)的豐富資料。其它有關(guān)MD5的信息可以在此站點中找到。請將代碼 拷貝至一個文本文件,并命名為md5-js.txt。

  我們將在ASP環(huán)境下完成服務(wù)器端的腳本編寫(因為ASP支持JScript——微軟版的JavaScript)。你可以使用任何一種服務(wù)器端腳本編寫語言,但是你必須把MD5算法翻譯成你所選擇的語言。


網(wǎng)絡(luò)的神奇作用吸引著越來越多的用戶加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術(shù)都需要適時應(yīng)勢,對應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進步的催化劑。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 庆安县| 徐汇区| 彭泽县| 大埔县| 广元市| 彰化市| 遂溪县| 泰兴市| 博乐市| 武功县| 东乡县| 毕节市| 沙河市| 逊克县| 崇礼县| 秦皇岛市| 凤凰县| 璧山县| 德惠市| 那曲县| 盐边县| 伊川县| 阜宁县| 海丰县| 华安县| 秦安县| 温泉县| 萝北县| 洪雅县| 敦化市| 新津县| 无锡市| 麦盖提县| 定州市| 肇源县| 峨边| 井研县| 两当县| 南澳县| 郯城县| 尚义县|