當前位置:首頁 » 服務存儲 » 為了實現存儲保護用戶
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

為了實現存儲保護用戶

發布時間: 2022-05-28 20:38:12

① 分區存儲管理中如何實現分區的保護

分區保護的目的是防止未經核準的用戶訪問分區,常用以下兩種方式。
(1)上界/下界寄存器保護。上界寄存器中存放的是作業的裝入地址,下界寄存器裝入的是作業的結束地址,形成的物理地址必須滿足如下條件:
上界寄存器<=物理地址<=下界寄存器
(2)基址/限長寄存器保護。基址寄存器中存放的是作業的裝入地址,限長寄存器裝入的是作業長度,形成的物理地址必須滿足如下條件:
基址寄存器<=物理地址<基址寄存器+限長寄存器

② 分區存儲管理中常用哪些分配策略

1、固定分區存儲管理
其基本思想是將內存劃分成若干固定大小的分區,每個分區中最多隻能裝入一個作業。當作業申請內存時,系統按一定的演算法為其選擇一個適當的分區,並裝入內存運行。由於分區大小是事先固定的,因而可容納作業的大小受到限制,而且當用戶作業的地址空間小於分區的存儲空間時,造成存儲空間浪費。

一、空間的分配與回收

系統設置一張「分區分配表」來描述各分區的使用情況,登記的內容應包括:分區號、起始地址、長度和佔用標志。其中佔用標志為「0」時,表示目前該分區空閑;否則登記佔用作業名(或作業號)。有了「分區分配表」,空間分配與回收工作是比較簡單的。

二、地址轉換和存儲保護

固定分區管理可以採用靜態重定位方式進行地址映射。

為了實現存儲保護,處理器設置了一對「下限寄存器」和「上限寄存器」。當一個已經被裝入主存儲器的作業能夠得到處理器運行時,進程調度應記錄當前運行作業所在的分區號,且把該分區的下限地址和上限地址分別送入下限寄存器和上限寄存器中。處理器執行該作業的指令時必須核對其要訪問的絕對地址是否越界。

三、多作業隊列的固定分區管理

為避免小作業被分配到大的分區中造成空間的浪費,可採用多作業隊列的方法。即系統按分區數設置多個作業隊列,將作業按其大小排到不同的隊列中,一個隊列對應某一個分區,以提高內存利用率。

2、可變分區存儲管理
可變分區存儲管理不是預先將內存劃分分區,而是在作業裝入內存時建立分區,使分區的大小正好與作業要求的存儲空間相等。這種處理方式使內存分配有較大的靈活性,也提高了內存利用率。但是隨著對內存不斷地分配、釋放操作會引起存儲碎片的產生。

一、空間的分配與回收

採用可變分區存儲管理,系統中的分區個數與分區的大小都在不斷地變化,系統利用「空閑區表」來管理內存中的空閑分區,其中登記空閑區的起始地址、長度和狀態。當有作業要進入內存時,在「空閑區表」中查找狀態為「未分配」且長度大於或等於作業的空閑分區分配給作業,並做適當調整;當一個作業運行完成時,應將該作業佔用的空間作為空閑區歸還給系統。

可以採用首先適應演算法、最佳(優)適應演算法和最壞適應演算法三種分配策略之一進行內存分配。

二、地址轉換和存儲保護

可變分區存儲管理一般採用動態重定位的方式,為實現地址重定位和存儲保護,系統設置相應的硬體:基址/限長寄存器(或上界/下界寄存器)、加法器、比較線路等。

基址寄存器用來存放程序在內存的起始地址,限長寄存器用來存放程序的長度。處理機在執行時,用程序中的相對地址加上基址寄存器中的基地址,形成一個絕對地址,並將相對地址與限長寄存器進行計算比較,檢查是否發生地址越界。

三、存儲碎片與程序的移動

所謂碎片是指內存中出現的一些零散的小空閑區域。由於碎片都很小,無法再利用。如果內存中碎片很多,將會造成嚴重的存儲資源浪費。解決碎片的方法是移動所有的佔用區域,使所有的空閑區合並成一片連續區域,這一技術稱為移動技術(緊湊技術)。移動技術除了可解決碎片問題還使內存中的作業進行擴充。顯然,移動帶來系統開銷加大,並且當一個作業如果正與外設進行I/O時,該作業是無法移動的。

3、頁式存儲管理

基本原理

1.等分內存

頁式存儲管理將內存空間劃分成等長的若干區域,每個區域的大小一般取2的整數冪,稱為一個物理頁面有時稱為塊。內存的所有物理頁面從0開始編號,稱作物理頁號。

2.邏輯地址

系統將程序的邏輯空間按照同樣大小也劃分成若干頁面,稱為邏輯頁面也稱為頁。程序的各個邏輯頁面從0開始依次編號,稱作邏輯頁號或相對頁號。每個頁面內從0開始編址,稱為頁內地址。程序中的邏輯地址由兩部分組成:

邏輯地址
頁號p
頁內地址 d

3.內存分配

系統可用一張「位示圖」來登記內存中各塊的分配情況,存儲分配時以頁面(塊)為單位,並按程序的頁數多少進行分配。相鄰的頁面在內存中不一定相鄰,即分配給程序的內存塊之間不一定連續。

對程序地址空間的分頁是系統自動進行的,即對用戶是透明的。由於頁面尺寸為2的整數次冪,故相對地址中的高位部分即為頁號,低位部分為頁內地址。

3.5.2實現原理

1.頁表

系統為每個進程建立一張頁表,用於記錄進程邏輯頁面與內存物理頁面之間的對應關系。地址空間有多少頁,該頁表裡就登記多少行,且按邏輯頁的順序排列,形如:

邏輯頁號
主存塊號

0
B0

1
B1

2
B2

3
B3

2.地址映射過程

頁式存儲管理採用動態重定位,即在程序的執行過程中完成地址轉換。處理器每執行一條指令,就將指令中的邏輯地址(p,d)取來從中得到邏輯頁號(p),硬體機構按此頁號查頁表,得到內存的塊號B』,便形成絕對地址(B』,d),處理器即按此地址訪問主存。

3.頁面的共享與保護

當多個不同進程中需要有相同頁面信息時,可以在主存中只保留一個副本,只要讓這些進程各自的有關項中指向內存同一塊號即可。同時在頁表中設置相應的「存取許可權」,對不同進程的訪問許可權進行各種必要的限制。

4、段式存儲管理

基本原理

1.邏輯地址空間

程序按邏輯上有完整意義的段來劃分,稱為邏輯段。例如主程序、子程序、數據等都可各成一段。將一個程序的所有邏輯段從0開始編號,稱為段號。每一個邏輯段都是從0開始編址,稱為段內地址。

2.邏輯地址

程序中的邏輯地址由段號和段內地址(s,d)兩部分組成。

3.內存分配

系統不進行預先劃分,而是以段為單位進行內存分配,為每一個邏輯段分配一個連續的內存區(物理段)。邏輯上連續的段在內存不一定連續存放。

3.6.2實現方法

1.段表

系統為每個進程建立一張段表,用於記錄進程的邏輯段與內存物理段之間的對應關系,至少應包括邏輯段號、物理段首地址和該段長度三項內容。

2.建立空閑區表

系統中設立一張內存空閑區表,記錄內存中空閑區域情況,用於段的分配和回收內存。

3.地址映射過程

段式存儲管理採用動態重定位,處理器每執行一條指令,就將指令中的邏輯地址(s,d)取來從中得到邏輯段號(s),硬體機構按此段號查段表,得到該段在內存的首地址S』, 該段在內存的首地址S』加上段內地址d,便形成絕對地址(S』+d),處理器即按此地址訪問主存。

5、段頁式存儲管理

頁式存儲管理的特徵是等分內存,解決了碎片問題;段式存儲管理的特徵是邏輯分段,便於實現共享。為了保持頁式和段式上的優點,結合兩種存儲管理方案,形成了段頁式存儲管理。

段頁式存儲管理的基本思想是:把內存劃分為大小相等的頁面;將程序按其邏輯關系劃分為若干段;再按照頁面的大小,把每一段劃分成若干頁面。程序的邏輯地址由三部分組成,形式如下:

邏輯地址
段號s
頁號p
頁內地址d

內存是以頁為基本單位分配給每個程序的,在邏輯上相鄰的頁面內存不一定相鄰。

系統為每個進程建立一張段表,為進程的每一段各建立一張頁表。地址轉換過程,要經過查段表、頁表後才能得到最終的物理地址。

③ 如何安全的存儲用戶的密碼

保護密碼最好的的方式就是使用帶鹽的密碼hash(salted password hashing).對密碼進行hash操作是一件很簡單的事情,但是很多人都犯了錯。接下來我希望可以詳細的闡述如何恰當的對密碼進行hash,以及為什麼要這樣做。
重要提醒
如果你打算自己寫一段代碼來進行密碼hash,那麼趕緊停下吧。這樣太容易犯錯了。這個提醒適用於每一個人,不要自己寫密碼的hash演算法 !關於保存密碼的問題已經有了成熟的方案,那就是使用phpass或者本文提供的源碼。
什麼是hash
hash("hello") =
hash("hbllo") =
hash("waltz") =

Hash演算法是一種單向的函數。它可以把任意數量的數據轉換成固定長度的「指紋」,這個過程是不可逆的。而且只要輸入發生改變,哪怕只有一個bit,輸出的hash值也會有很大不同。這種特性恰好合適用來用來保存密碼。因為我們希望使用一種不可逆的演算法來加密保存的密碼,同時又需要在用戶登陸的時候驗證密碼是否正確。
在一個使用hash的賬號系統中,用戶注冊和認證的大致流程如下:
1, 用戶創建自己的賬號
2, 用戶密碼經過hash操作之後存儲在資料庫中。沒有任何明文的密碼存儲在伺服器的硬碟上。
3, 用戶登陸的時候,將用戶輸入的密碼進行hash操作後與資料庫里保存的密碼hash值進行對比。
4, 如果hash值完全一樣,則認為用戶輸入的密碼是正確的。否則就認為用戶輸入了無效的密碼。
5, 每次用戶嘗試登陸的時候就重復步驟3和步驟4。

在步驟4的時候不要告訴用戶是賬號還是密碼錯了。只需要顯示一個通用的提示,比如賬號或密碼不正確就可以了。這樣可以防止攻擊者枚舉有效的用戶名。
還需要注意的是用來保護密碼的hash函數跟數據結構課上見過的hash函數不完全一樣。比如實現hash表的hash函數設計的目的是快速,但是不夠安全。只有加密hash函數(cryptographic hash functions)可以用來進行密碼的hash。這樣的函數有SHA256, SHA512, RipeMD, WHIRLPOOL等。
一個常見的觀念就是密碼經過hash之後存儲就安全了。這顯然是不正確的。有很多方式可以快速的從hash恢復明文的密碼。還記得那些md5破解網站吧,只需要提交一個hash,不到一秒鍾就能知道結果。顯然,單純的對密碼進行hash還是遠遠達不到我們的安全需求。下一部分先討論一下破解密碼hash,獲取明文常見的手段。
如何破解hash
字典和暴力破解攻擊(Dictionary and Brute Force Attacks)
最常見的破解hash手段就是猜測密碼。然後對每一個可能的密碼進行hash,對比需要破解的hash和猜測的密碼hash值,如果兩個值一樣,那麼之前猜測的密碼就是正確的密碼明文。猜測密碼攻擊常用的方式就是字典攻擊和暴力攻擊。
Dictionary Attack

Trying apple : failed
Trying blueberry : failed
Trying justinbeiber : failed
...
Trying letmein : failed
Trying s3cr3t : success!

字典攻擊是將常用的密碼,單詞,短語和其他可能用來做密碼的字元串放到一個文件中,然後對文件中的每一個詞進行hash,將這些hash與需要破解的密碼hash比較。這種方式的成功率取決於密碼字典的大小以及字典的是否合適。
Brute Force Attack

Trying aaaa : failed
Trying aaab : failed
Trying aaac : failed
...
Trying acdb : failed
Trying acdc : success!

暴力攻擊就是對於給定的密碼長度,嘗試每一種可能的字元組合。這種方式需要花費大量的計算機時間。但是理論上只要時間足夠,最後密碼一定能夠破解出來。只是如果密碼太長,破解花費的時間就會大到無法承受。
目前沒有方式可以阻止字典攻擊和暴力攻擊。只能想辦法讓它們變的低效。如果你的密碼hash系統設計的是安全的,那麼破解hash唯一的方式就是進行字典或者暴力攻擊了。
查表破解(Lookup Tables)
對於特定的hash類型,如果需要破解大量hash的話,查表是一種非常有效而且快速的方式。它的理念就是預先計算(pre-compute)出密碼字典中每一個密碼的hash。然後把hash和對應的密碼保存在一個表裡。一個設計良好的查詢表結構,即使存儲了數十億個hash,每秒鍾仍然可以查詢成百上千個hash。
如果你想感受下查表破解hash的話可以嘗試一下在CraskStation上破解下下面的sha256 hash。

反向查表破解(Reverse Lookup Tables)
Searching for hash(apple) in users' hash list... : Matches [alice3, 0bob0, charles8]
Searching for hash(blueberry) in users' hash list... : Matches [usr10101, timmy, john91]
Searching for hash(letmein) in users' hash list... : Matches [wilson10, dragonslayerX, joe1984]
Searching for hash(s3cr3t) in users' hash list... : Matches [bruce19, knuth1337, john87]
Searching for hash(z@29hjja) in users' hash list... : No users used this password

這種方式可以讓攻擊者不預先計算一個查詢表的情況下同時對大量hash進行字典和暴力破解攻擊。
首先,攻擊者會根據獲取到的資料庫數據製作一個用戶名和對應的hash表。然後將常見的字典密碼進行hash之後,跟這個表的hash進行對比,就可以知道用哪些用戶使用了這個密碼。這種攻擊方式很有效果,因為通常情況下很多用戶都會有使用相同的密碼。
彩虹表 (Rainbow Tables)
彩虹表是一種使用空間換取時間的技術。跟查表破解很相似。只是它犧牲了一些破解時間來達到更小的存儲空間的目的。因為彩虹表使用的存儲空間更小,所以單位空間就可以存儲更多的hash。彩虹表已經能夠破解8位長度的任意md5hash。彩虹表具體的原理可以參考http://www.project-rainbowcrack.com/
下一章節我們會討論一種叫做「鹽」(salting)的技術。通過這種技術可以讓查表和彩虹表的方式無法破解hash。
加鹽(Adding Salt)
hash("hello") =
hash("hello" + "QxLUF1bgIAdeQX") =
hash("hello" + "bv5PehSMfV11Cd") =
hash("hello" + "YYLmfY6IehjZMQ") =

查表和彩虹表的方式之所以有效是因為每一個密碼的都是通過同樣的方式來進行hash的。如果兩個用戶使用了同樣的密碼,那麼一定他們的密碼hash也一定相同。我們可以通過讓每一個hash隨機化,同一個密碼hash兩次,得到的不同的hash來避免這種攻擊。
具體的操作就是給密碼加一個隨即的前綴或者後綴,然後再進行hash。這個隨即的後綴或者前綴成為「鹽」。正如上面給出的例子一樣,通過加鹽,相同的密碼每次hash都是完全不一樣的字元串了。檢查用戶輸入的密碼是否正確的時候,我們也還需要這個鹽,所以鹽一般都是跟hash一起保存在資料庫里,或者作為hash字元串的一部分。
鹽不需要保密,只要鹽是隨機的話,查表,彩虹表都會失效。因為攻擊者無法事先知道鹽是什麼,也就沒有辦法預先計算出查詢表和彩虹表。如果每個用戶都是使用了不同的鹽,那麼反向查表攻擊也沒法成功。
下一節,我們會介紹一些鹽的常見的錯誤實現。
錯誤的方式:短的鹽和鹽的復用
最常見的錯誤實現就是一個鹽在多個hash中使用或者使用的鹽很短。
鹽的復用(Salt Reuse)
不管是將鹽硬編碼在程序里還是隨機一次生成的,在每一個密碼hash里使用相同的鹽會使這種防禦方法失效。因為相同的密碼hash兩次得到的結果還是相同的。攻擊者就可以使用反向查表的方式進行字典和暴力攻擊。只要在對字典中每一個密碼進行hash之前加上這個固定的鹽就可以了。如果是流行的程序的使用了硬編碼的鹽,那麼也可能出現針對這種程序的這個鹽的查詢表和彩虹表,從而實現快速破解hash。
用戶每次創建或者修改密碼一定要使用一個新的隨機的鹽
短的鹽
如果鹽的位數太短的話,攻擊者也可以預先製作針對所有可能的鹽的查詢表。比如,3位ASCII字元的鹽,一共有95x95x95 = 857,375種可能性。看起來好像很多。假如每一個鹽製作一個1MB的包含常見密碼的查詢表,857,375個鹽才是837GB。現在買個1TB的硬碟都只要幾百塊而已。
基於同樣的理由,千萬不要用用戶名做為鹽。雖然對於每一個用戶來說用戶名可能是不同的,但是用戶名是可預測的,並不是完全隨機的。攻擊者完全可以用常見的用戶名作為鹽來製作查詢表和彩虹表破解hash。
根據一些經驗得出來的規則就是鹽的大小要跟hash函數的輸出一致。比如,SHA256的輸出是256bits(32bytes),鹽的長度也應該是32個位元組的隨機數據。
錯誤的方式:雙重hash和古怪的hash函數
這一節討論另外一個常見的hash密碼的誤解:古怪的hash演算法組合。人們可能解決的將不同的hash函數組合在一起用可以讓數據更安全。但實際上,這種方式帶來的效果很微小。反而可能帶來一些互通性的問題,甚至有時候會讓hash更加的不安全。本文一開始就提到過,永遠不要嘗試自己寫hash演算法,要使用專家們設計的標准演算法。有些人會覺得通過使用多個hash函數可以降低計算hash的速度,從而增加破解的難度。通過減慢hash計算速度來防禦攻擊有更好的方法,這個下文會詳細介紹。
下面是一些網上找到的古怪的hash函數組合的樣例。
md5(sha1(password))
md5(md5(salt) + md5(password))
sha1(sha1(password))
sha1(str_rot13(password + salt))
md5(sha1(md5(md5(password) + sha1(password)) + md5(password)))

不要使用他們!
注意:這部分的內容其實是存在爭議的!我收到過大量郵件說組合hash函數是有意義的。因為如果攻擊者不知道我們用了哪個函數,就不可能事先計算出彩虹表,並且組合hash函數需要更多的計算時間。
攻擊者如果不知道hash演算法的話自然是無法破解hash的。但是考慮到Kerckhoffs』s principle,攻擊者通常都是能夠接觸到源碼的(尤其是免費軟體和開源軟體)。通過一些目標系統的密碼–hash對應關系來逆向出演算法也不是非常困難。
如果你想使用一個標準的」古怪」的hash函數,比如HMAC,是可以的。但是如果你的目的是想減慢hash的計算速度,那麼可以讀一下後面討論的慢速hash函數部分。基於上面討論的因素,最好的做法是使用標準的經過嚴格測試的hash演算法。
hash碰撞(Hash Collisions)
因為hash函數是將任意數量的數據映射成一個固定長度的字元串,所以一定存在不同的輸入經過hash之後變成相同的字元串的情況。加密hash函數(Cryptographic hash function)在設計的時候希望使這種碰撞攻擊實現起來成本難以置信的高。但時不時的就有密碼學家發現快速實現hash碰撞的方法。最近的一個例子就是MD5,它的碰撞攻擊已經實現了。
碰撞攻擊是找到另外一個跟原密碼不一樣,但是具有相同hash的字元串。但是,即使在相對弱的hash演算法,比如MD5,要實現碰撞攻擊也需要大量的算力(computing power),所以在實際使用中偶然出現hash碰撞的情況幾乎不太可能。一個使用加鹽MD5的密碼hash在實際使用中跟使用其他演算法比如SHA256一樣安全。不過如果可以的話,使用更安全的hash函數,比如SHA256, SHA512, RipeMD, WHIRLPOOL等是更好的選擇。
正確的方式:如何恰當的進行hash
這部分會詳細討論如何恰當的進行密碼hash。第一個章節是最基礎的,這章節的內容是必須的。後面一個章節是闡述如何繼續增強安全性,讓hash破解變得異常困難。
基礎:使用加鹽hash
我們已經知道惡意黑客可以通過查表和彩虹表的方式快速的獲得hash對應的明文密碼,我們也知道了通過使用隨機的鹽可以解決這個問題。但是我們怎麼生成鹽,怎麼在hash的過程中使用鹽呢?
鹽要使用密碼學上可靠安全的偽隨機數生成器(Cryptographically Secure Pseudo-Random Number Generator (CSPRNG))來產生。CSPRNG跟普通的偽隨機數生成器比如C語言中的rand(),有很大不同。正如它的名字說明的那樣,CSPRNG提供一個高標準的隨機數,是完全無法預測的。我們不希望我們的鹽能夠被預測到,所以一定要使用CSPRNG。

④ 採用虛擬存儲器的目的是什麼如何實現虛擬存儲器系統

為了給用戶提供更大的隨機存取空間而採用的一種存儲技術。它將內存與外存結合使用,好像有一個容量極大的內存儲器,工作速度接近於主存,每位成本又與輔存相近,在整機形成多層次存儲系統。 虛擬存儲器源出於英國ATLAS計算機的一級存儲器概念。這種系統的主存為16千字的磁芯存儲器,但中央處理器可用20位邏輯地址對主存定址。到1970年,美國RCA公司研究成功虛擬存儲器系統。IBM公司於1972年在IBM370系統上全面採用了虛擬存儲技術。虛擬存儲器已成為計算機系統中非常重要的部分。 虛擬存儲器是由硬體和操作系統自動實現存儲信息調度和管理的。它的工作過程包括6個步驟:①中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否 存放在主存內。②如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。③從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。④從地址變換表讀出與邏輯組號a對應的物理組號a。⑤從物理組號a和組內位元組地址b得到物理地址。⑥根據物理地址從主存中存取必要的信息。 調度方式有分頁式、段式、段頁式3種。頁式調度是將邏輯和物理地址空間都分成固定大小的頁。主存按頁順序編號,而每個獨立編址的程序空間有自己的頁號順序,通過調度輔存中程序的各頁可以離散裝入主存中不同的頁面位置,並可據表一一對應檢索。頁式調度的優點是頁內零頭小,頁表對程序員來說是透明的,地址變換快,調入操作簡單;缺點是各頁不是程序的獨立模塊,不便於實現程序和數據的保護。段式調度是按程序的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了內存零頭,易於實現存儲保護,便於程序動態裝配;缺點是調入操作復雜。將這兩種方法結合起來便構成段頁式調度。在段頁式調度中把物理空間分成頁,程序按模塊分段,每個段再分成與物理空間頁同樣小的頁面。段頁式調度綜合了段式和頁式的優點。其缺點是增加了硬體成本,軟體也較復雜。大型通用計算機系統多數採用段頁式調度。 虛擬存儲器地址變換基本上有3種形虛擬存儲器工作過程式:全聯想變換、直接變換和組聯想變換。任何邏輯空間頁面能夠變換到物理空間任何頁面位置的方式稱為全聯想變換。每個邏輯空間頁面只能變換到物理空間一個特定頁面的方式稱為直接變換。組聯想變換是指各組之間是直接變換,而組內各頁間則是全聯想變換。 替換規則用來確定替換主存中哪一部分,以便騰空部分主存,存放來自輔存要調入的那部分內容。常見的替換演算法有4種。①隨機演算法:用軟體或硬體隨機數產生器確定替換的頁面。②先進先出:先調入主存的頁面先替換。③近期最少使用演算法:替換最長時間不用的頁面。④最優演算法:替換最長時間以後才使用的頁面。這是理想化的演算法,只能作為衡量其他各種演算法優劣的標准。 虛擬存儲器的效率是系統性能評價的重要內容,它與主存容量、頁面大小、命中率,程序局部性和替換演算法等因素有關。

採納哦

⑤ 為什麼要進行存儲保護

存貯保護,是指給外置的存儲設備加個保護程序,寫不進去數據,也刪不掉數據。當多個用戶共享主存時,為使系統能正常工作,應防止由於一個用戶程序出錯而破壞其它用戶的程序和系統軟體,還要防止一個用戶程序不合法的訪問不是分給它的主存區域。為此,系統提供存儲保護。
通常採用的方法是:存儲區域保護和訪問方式保護。

⑥ 如何安全的存儲用戶密碼

大多數的web開發者都會遇到設計用戶賬號系統的需求。賬號系統最重要的一個方面就是如何保護用戶的密碼。一些大公司的用戶資料庫泄露事件也時有發生,所以我們必須採取一些措施來保護用戶的密碼,即使網站被攻破的情況下也不會造成較大的危害。如果你還在存儲用戶密碼的MD5,那可真的有點弱了。
保護密碼最好的的方式就是使用帶鹽的密碼hash(salted password hashing).對密碼進行hash操作是一件很簡單的事情,但是很多人都犯了錯。接下來我希望可以詳細的闡述如何恰當的對密碼進行hash,以及為什麼要這樣做。
重要提醒
如果你打算自己寫一段代碼來進行密碼hash,那麼趕緊停下吧。這樣太容易犯錯了。這個提醒適用於每一個人,不要自己寫密碼的hash演算法 !關於保存密碼的問題已經有了成熟的方案,那就是使用phpass或者本文提供的源碼。
什麼是hash
hash("hello") =
hash("hbllo") =
hash("waltz") =

Hash演算法是一種單向的函數。它可以把任意數量的數據轉換成固定長度的「指紋」,這個過程是不可逆的。而且只要輸入發生改變,哪怕只有一個bit,輸出的hash值也會有很大不同。這種特性恰好合適用來用來保存密碼。因為我們希望使用一種不可逆的演算法來加密保存的密碼,同時又需要在用戶登陸的時候驗證密碼是否正確。
在一個使用hash的賬號系統中,用戶注冊和認證的大致流程如下:
1, 用戶創建自己的賬號
2, 用戶密碼經過hash操作之後存儲在資料庫中。沒有任何明文的密碼存儲在伺服器的硬碟上。
3, 用戶登陸的時候,將用戶輸入的密碼進行hash操作後與資料庫里保存的密碼hash值進行對比。
4, 如果hash值完全一樣,則認為用戶輸入的密碼是正確的。否則就認為用戶輸入了無效的密碼。
5, 每次用戶嘗試登陸的時候就重復步驟3和步驟4。

在步驟4的時候不要告訴用戶是賬號還是密碼錯了。只需要顯示一個通用的提示,比如賬號或密碼不正確就可以了。這樣可以防止攻擊者枚舉有效的用戶名。
還需要注意的是用來保護密碼的hash函數跟數據結構課上見過的hash函數不完全一樣。比如實現hash表的hash函數設計的目的是快速,但是不夠安全。只有加密hash函數(cryptographic hash functions)可以用來進行密碼的hash。這樣的函數有SHA256, SHA512, RipeMD, WHIRLPOOL等。
一個常見的觀念就是密碼經過hash之後存儲就安全了。這顯然是不正確的。有很多方式可以快速的從hash恢復明文的密碼。還記得那些md5破解網站吧,只需要提交一個hash,不到一秒鍾就能知道結果。顯然,單純的對密碼進行hash還是遠遠達不到我們的安全需求...
以上是下面鏈接文章里的片段
具體請查看這個鏈接里的文章:
http://www.freebuf.com/articles/web/28527.html
滿意望採納~

⑦ 如何保障SAN安全 在交換機上實現存儲安全

FC、IP網路的安全性
不論是光纖通道還是IP網路,主要的潛在威脅來自非授權訪問,特別是管理介面。例如,一旦獲得和存儲區域網路(SAN)相連接伺服器管理員的許可權,欺詐進入就可以得逞。這樣入侵者可以訪問任何一個和SAN連接的系統。因此,無論使用的是哪一種存儲網路,應該認識到應用充分的許可權控制、授權訪問、簽名認證的策略對防止出現安全漏洞是至關重要的。
測錯攻擊在IP網路中也比在光纖通道的SAN中易於實現。針對這類攻擊,一般是採用更為復雜的加密演算法。
盡管DoS似乎很少發生,但是這並不意味著不可能。然而如果要在光纖通道SAN上實現DoS攻擊,則不是一般的黑客軟體所能實現的,因為它往往需要更為專業的安全知識。
實現SAN數據安全方法
保證SAN數據安全的兩個基本安全機制是分區制zoning和邏輯單元值(Logical Unit Number)掩碼。
分區制是一種分區方法。通過該方法,一定的存儲資源只對於那些通過授權的用戶和部門是可見的。一個分區可以由多個伺服器、存儲設備、子系統、交換機、HBA和其它計算機組成。只有處於同一個分區的成員才可以互相通訊。
分區制往往在交換級來實現。根據實現方式,可以分為兩種模式,一為硬分區,一為軟分區。硬分區是指根據交換埠來制定分區策略。所有試圖通過未授權埠進行的通訊均是被禁止的。由於硬分區是在系統電路里來實現,並在系統路由表中執行,因此,較之軟分區,具有更好的安全性。
在光纖通道網路中,軟分區是基於廣域命名機制的(WWN)的。WWN是分配給網路中光纖設備的唯一識別碼。由於軟分區是通過軟體來保證在不同的分區中不會出現相同的WWNs,因此,軟分區技術比硬分區具有更好的靈活性,特別是在網路配置經常變化的應用中具有很好的可管理性。
有些交換機具有埠綁定功能,從而可以限制網路設備只能和通過預定義的交換埠進行通訊。利用這種技術,可以實現對存儲池的訪問限制,從而保護SAN免受非授權用戶的訪問。
另一種被廣泛採用的技術是LUN掩碼。一個LUN就是對目標設備(如磁帶和磁碟陣列)內邏輯單元的SCSI識別標志。在光纖通道領域,LUN是基於系統的WWN實現的。
LUN掩碼技術是將LUN分配給主機伺服器,這些伺服器只能看到分配給它們的LUN。如果有許多伺服器試圖訪問特定的設備,那麼網路管理者可以設定特定的LUN或LUN組可以訪問,從而可以拒絕其它伺服器的訪問,起到保護數據安全的目的。不僅在主機上,而且在HBA、存儲控制器、磁碟陣列、交換機上也可以實現各種形式的LUN屏蔽技術。
如果能夠將分區制和LUN技術與其它的安全機制共同運用到網路及其設備上的話,對網路安全數據安全將是非常有效的。
業界對存儲安全的做法
盡管目前對於在哪一級設備應用存儲安全控制是最優的還沒有一個明確的結論,例如,IPSec能夠在ASIC、VPN設備、家電和軟體上實現,但目前已有很多商家在他們的數據存儲產品中實現了加密和安全認證功能。
IPSec對於其它基於IP協議的安全問題,比如互聯網小型計算機介面(iSCSI)、IP上的光纖通道 (FCIP)和互聯網上的光線通道 (IFCP)等,也能起到一定的的作用。
通常使用的安全認證、授權訪問和加密機制包括輕量級的路徑訪問協議Lightweight Directory Access Protocol (LDAP)、遠程認證撥入用戶服務(RADIUS), 增強的終端訪問控制器訪問控制系統(TACACS+)、Kerberos、 Triple DES、高級加密標准(AES)、安全套接層 (SSL)和安全Shell(SSH)。
盡管SAN和NAS的安全機制有諸多相似之處,其實它們之間也是有區別的。很多NAS系統不僅支持SSH、SSL、Kerberos、RADIUS和LDAP安全機制,同時也支持訪問控制列表(ACL)以及多級許可。這裡面有一個很重要的因素是文件鎖定,有很多產品商家和系統通過不同的方式來實現這一技術。例如,微軟採用的為硬鎖定,而基於 Unix的系統採用的是相對較為鬆弛的建議級鎖定。由此可以看到,如果在Windows-Unix混合環境下,將會帶來一定的問題。
呼喚存儲安全標准化
SAN安全的實現基礎在交換機這一層。因此,存儲交換機的標准對網路產品製造商的技術提供方式的影響是至關重要的。
存儲安全標准化進程目前還處於萌芽階段。ANSI成立了T11光纖通信安全協議(FC-SP)工作組來設計存儲網路基礎設施安全標準的框架。目前已經提交了多個協議草案,包括FCSec協議,它實現了IPSec和光纖通訊的一體化;同時提交的還有針對光纖通訊的挑戰握手認證協議(CHAP)的一個版本;交換聯結認證協議(SLAP)使用了數字認證使得多個交換機能夠互相認證;光纖通信認證協議(FCAP)是SLAP的一個擴展協議。IEEE的存儲安全工作組正在准備制定一個有關將加密演算法和方法標准化的議案。
存儲網路工業協會(SNIA)於2002年建立了存儲安全工業論壇(SSIF),但是由於不同的產品商支持不同的協議,因此實現協議間的互操作性還有很長一段路要走。
關注存儲交換安全
大家都已經注意到了為了保證存儲安全,應該在存儲交換機和企業網路中的其它交換機上應用相同的安全預警機制,因此,對於存儲交換機也應有一些特殊的要求。
存儲交換安全最重要的一個方面是保護光纖管理介面,如果管理控制台沒有很好的安全措施,則一個非授權用戶有可能有意或無意地入侵系統或改變系統配置。有一種分布鎖管理器可以防止這類事情發生。用戶需要輸入ID和加密密碼才能夠訪問交換機光纖的管理界面。為了將SAN設備的管理埠通過安全認證機制保護起來,最好是將SAN配置管理工作集中化,並且對管理控制台和交換機之間的通訊進行加密。另外一個方面,在將交換機接入到光纖網路之前,也應該通過ACL和 PKI機制實現授權訪問和安全認證。因此,交換機間鏈接應當建立在嚴密的安全防範措施下。

⑧ Windows 7 中如何安全保存用戶名與密碼,從哪些方面實現其安全保護

原則方法1、原則上登錄密碼設置要不同

1、很多人為了圖省事和方便,各種賬戶注冊的登錄密碼設置為一個密碼。
這就加大了密碼丟失的風險。
因為有些注冊用戶名是使用手機號、郵箱注冊的,這些很容易獲取。
一個被盜,接連被盜的風險就大了。

原則方法2、一個密碼在唯一對應的地方登陸

1、什麼意思呢?說的就是如果你使用的qq密碼,那麼你可以再騰訊的各種平台上登陸。但是如果跳到不是騰訊的另一方去了,那麼你就該停止輸入登陸密碼了。
這個需要自己判斷是不是另一方。
如果非要登陸的,可以登陸qq,然後使用快捷登陸,這個一般網站都開辟了這樣的功能。

原則方法3、定期修改密碼

1、不管多長多復雜的密碼,一旦留下痕跡,被人破解了後果會很嚴重。尤其是涉及到財產安全的。
定期修改密碼可以起到保護的作用,這就是為什麼會有動態密碼的出現。

方法原則4、開通登陸提示和保護

1、很多應用都開通了登陸提示,具體狀況形式多樣。
例如:有的是以登陸地點是否顯示異常來體現。
有的是以開啟設備鎖來體現,比如在電腦登陸賬戶時必須通過手機確認。

方法原則5、用戶名注冊盡量用自定義字元

1、用戶名注冊的時候,很多可以使用郵箱、手機號,避開這些容易被獲取的用戶名,即使別人知道密碼,不知道用戶名也無法登陸。
至於郵箱手機什麼的可以使用綁定功能,用於找回密碼使用。

原則方法6、密碼存放盡量不要存在設備上,改用紙質收藏

很多人習慣將很多的用戶米及其對應的密碼記錄在手機便簽、電腦桌面、記事本等處圖方便。
殊不知萬一設備被盜或者丟失,連同很多賬戶也跟著丟失了。
所以如果要記的密碼很多,做好使用紙質的保存,然後存放好,以便遺忘時候拿出來看。

其他

1、以上就是小編想到的保護密碼安全的方法,大家有更精闢更好更簡單的方法歡迎給予評論。幫助大家共同擁有一個和諧安全的互聯網上網體驗,歡迎分享。

⑨ 存儲系統的存儲保護

近代計算機系統資源為一同執行的多個用戶程序所共享。就主存來說,它同時存有多個用戶的程序和系統軟體。為使系統正常工作,必須防止由於一個用戶程序出錯而破壞同時存在主存內的系統軟體或其他用戶的程序,還須防止一個用戶程序不合法地訪問並非分配給它的主存區域。因此,存儲保護是多道程序和多處理機系統必不可少的部分。
主存保護是存儲保護的重要環節。主存保護一般有存儲區域保護和訪問方式保護。存儲區域保護可採用界限寄存器方式,由系統軟體經特權指令給定上、下界寄存器內容,從而劃定每個用戶程序的區域,禁止越界訪問。
界限寄存器方式只適用於每個用戶程序佔用一個或幾個連續的主存區域,而對於虛擬存儲器系統,由於一個用戶的各頁離散地分布於主存內,就需要採用鍵式保護和環狀保護等方式。鍵式保護是由操作系統為每個存儲頁面規定存儲鍵,存取存儲器操作帶有訪問鍵,當兩鍵符合時才允許執行存取操作,從而保護別的程序區域不被侵犯,環狀保護是把系統程序和用戶程序按重要性分層,稱為環,對每個環都規定訪問它的級別,違反規定的存取操作是非法的,以此實現對正在執行的程序的保護。