2009年9月2日 星期三

K書筆記本-Cryptography(03)

密碼學的基礎中,密碼系統(Cryptosystems)並不是非常的安全,主要的原因除了以語言特性分析的問題以外,
簡單又容易的找到有問題的字元,這種類型的問題,其實與很多的破密分析中,解除與明文長度相同的加密
幾乎都能順利的找到明文內容也是很容易的,一個好的演算法必須要能在明文若改變1bit而密碼的改變高達50%以上
才是好的演算法,這種就被稱為Strict avalnche criterion;完全崩塌準則,當這樣的演算法才能避免以語言特性的破密法

再者,同一種演算法,在不同的兩把key對相同的明文進行演算時,也要能達成兩個不同key所演算後的密文內容
達到50%以上的改變,否則對於明文被重排時,還是可以比對出演算法的內容差異,
這個也是密碼系統在設計時必須考量到的問題。

基本的重排演算中,又可以被稱為substitution boxes或者叫做S-Boxes,在此指出的S-boxes中的”S”指的就是substitution
另外Transposition(更換) or Permutation(排列)也是屬於此法中常見的特徵,Compression(擠壓)則是hash的精神所在了,
把所有的內容值不論長短,均演算成為相同長度,此時若較長的字串則會受到擠壓了,那麼有由長的變成短的,
當然也會有短的明文Expansion(擴張)為較長的密文,在這個部份又因為key或是subkey的使用而擴大了
這個擴大的過程就稱為padding(補齊)亦指加入額外的資材在明文被加密為密文之後
也增加了因為訊息是被加密的過程中以foil traffic analysis(破列傳遞分析)可找到更多演算法的弱點

key mixing則是在加強了密碼的強度,不論在加密過程中使用了以key schedule的方式加強了key本身的安全性及key的可用性
key schedule又稱為key space,下圖即為key schedule的示意圖:
image
Initialization Vectors (IV):是決定了在整個密碼的加密過程中,增加了亂數的演算層度,有了IV的加入,使用密文更加的Random
在此我們提出一個例子,有一個很有名的加密法叫做RC4他是一種相當的Random的演算法,應用在WEP上
後為何變的如此的容易解開,原因發生在IV,這個加入亂數的IV是由User自行設定的share key,當share key常年不改的狀況之下
即使再random的演算法,只要蒐集到一定的封包量,要解開其內容就變的相當的容易
因此IV產出夠不夠Random也變成相當的重要。

Exclusive-OR(XOR)中文叫做反或閘,是一種數位電子運算的基礎,當兩個二進位的數串經過XOR演算
取出來的值就變的相當的複雜,例如有兩個不同的值分別是11100101及10101111經過XOR演算之後成了01001010
只要有其中一個值再度加入XOR演算就可以得到原另一值,是一種可以拿來做演算或是拿來驗證加密的內容的方法。

Symmetric key cryptography(對稱式金鑰密碼學)中包含的相當多的演算法,是整個密碼系統產生的始祖
Pre-Share key也是其中一種對稱式加密,其中包含:
single shared key又稱為private key/ single key/ secret key,不論是發送者或者是接收者都是使用同一把金鑰進行加密。
many algorithms: 它是眾多種公開標準的密碼演算法的基礎。
two main classes:因使用的方法不同,又分為兩種類別Stream Ciphers(串流加密)及black ciphers(分段加密)
stream是以時間區隔以不同的金鑰加密,因此相同明文可達到不同密文的效果,black ciphers則是以區段做區隔
因此同明文則密文亦會相同。下列是同步金鑰演算的過程:整個演算的過程只用到一把金鑰。

image

接下來,再與大家討論有關Symmetric key的各項議題,包括各種標準的運作原理。先給jason起來運動運動,不然屁股快跟椅子合體了…

K書筆記本-Cryptography(02)

密碼學中領域是離不開數學的,正所謂數學乃科學之母是一點也錯不了的,
從進位制、到網路傳遞都是經過數學的計算後,才真正得以正確的達成電腦的目的,
上個章節只能說是暖暖身,抖抖手腳,今天開始的分享才是真正講起沒有啥人聽的懂的話。

在基本的密碼系統之下,大致上分為:Code(密碼)、Substitution(替換)、Transposition(換置、重排)、
Polyalphabetic Substitution Cipher(多套字母替換)、Running Key(金鑰)、one-time pads(一次性密碼)

code:指的是將一串明文的被經過處理的文字串,以簡單的換置、替換…方法維持了基本的完整性及機密性。

Transposition:將原本的字串重新的排列將順序重新排列,有多重的方法去確保了明文的內容有效性。詳見下圖
我們將this is an example of transposition排列到下列表格中

T H I S I
S A N E X
A M P L E
O F T R A
N S P O S
I T I O N

橫的來看,還是原來的字串,但是將字串改變成為直的運作TSAONI HAMFST INPTPI SELROO IXEASN
以這樣的方式將原本的型態都是以明文做傳遞,以打散重排(Rearranging)的方式來保障字串原本的意義。

Substitution:以取代的方式將文字做順序的位移,當文字的變成另一個文字時就保護了真正的明文意義,
但這種方法只要以frequency analysis(語言特性分析)即可破解,例如英文中常見的組合er、qu則容易算出之間的文字差距,
因此容易被解開。
以上例為例:


1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

重排

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

this is an example of substitution經過重排後移4個字元,則變成了wklv lv hadpos ri vxevwlwxlrq,可以說是用了最基本的加密方式來達成隱碼的作用。

Polyalphabetic Substitution:以Substitution為基礎的一組多重重排的運算法,也就是說,除了以一種的重排理論來運作以外,還以不同的重排方法來加深加密的難度
在此以Frequency analysis就較難從中解出真正的文字意義了。
下列以四組重排字表來示範,以上面的例子做重排,第一個字為T重排為T,第二個字為H重排為K,第三個字為I重排為O,第四個字為S重排為B以此類推。


1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

1

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

2

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

3

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

4

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

G

H

I

Running Key:與特定的字表加密將其順序打亂,並重新選字排列,與Polyalphabetic substitution雷同,但是,其複雜程度又與重排再難上許多
將欲加密的文字選定一個字多,並將其順序依照字碼的字重新選字,例如明文為 Jason so handsome,Key為man我們先將字串轉換為字碼再從字表選字

下表為字表

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

下表為字串內容及字碼(字碼大於26則必須減去26),算好後字串就成了Chlhu lh ougklhty

J

A

S

O

N

S

O

H

A

N

D

S

O

M

E

字碼

10

1

19

15

14

19

15

8

1

14

4

19

15

13

5

M

A

N

M

A

N

M

A

N

M

A

N

M

A

N

字碼

13

1

14

13

1

14

13

1

14

13

1

14

13

1

14

AND

23

2

33

28

15

33

28

9

15

27

5

33

28

14

19

選字

C

H

L

H

U

L

H

O

U

G

K

L

H

T

Y

另外一種running key又稱為share book,意指雙方有一本相同的書,我們只需要傳輸第本書的第幾頁
第幾個字,這種方法即使密碼被取走了,沒有密碼書,還是解不開。

OTP:是目前最夯的一種密碼使用法,符合Some thing you have的精神,比起單純的some thing you know來說,強多了
OTP使用不管是傳送端、接收端都有很特殊的Key值,每一個key也只能使用一次,是一種只能不容易破解的演算法
它有幾個優點,不管是任種一種OTP在產生Key時是真正的random,沒有key會被重覆的使用,所有的pad安全的
即使是被惡意的拔開,也是無法被再次的使用了。

所有的密碼系統都離不開上列幾種,每種密碼系統特性在現在都還是看的到其踨影,下一段再跟大家一起來討論密碼學的部份囉!

2009年8月13日 星期四

K書筆記本-Cryptography(01)

密碼學…天啊…這種看了會讓人真接趴倒在馬路上的東西怎麼k的下去,如果你即將面臨失業(老闆經營不善)
我想,你應該很有精神k的下去(就跟偶一樣啦!!!),密碼學是整個資訊安全的A.I.C.中一看就知道非C莫屬
但是…把密碼演算更重要的是維持訊息的完整性,而非只有保持訊息的機密性而以。

那密碼學在資安領域中又扮演什麼角色呢??各位還記得嗎??機密性所維持的是『避免有意或無意的洩露資訊』
那麼密碼學有那些基本目標呢?
1.確保敏感資訊的機密性(加密演算法)
2.確保資訊的完整性(digest)
3.確認通訊驗證(SSL, CA)
4.提供支援不可否認性的有效性(digital signature)
5.提供安全存取控制的基礎
6.對選擇昂貴的或是費時的調整(花錢或Free)

在密碼學這個領域中呢,有三個很關鍵的用詞,這三個用詞常常在我們的生活中出現,但是…大家統稱叫加密或密碼學
但是在老外的眼中可有著大大的不同~~!
Cryptography(密碼學;密碼使用法):針對文字密碼學為基礎的演算,是用來保護資訊傳遞的方法。
Cryptanalysis(密碼分析):密碼分析主要是用來分析密碼學的強度,不論是讀取、變更訊息的完整或是驗證密碼、演算法弱點問題。
※也可稱為破密分析(是我國國人最弱的技術)
Cryptology(密碼術):指研究密碼學或是密碼分析。

另外,在整個密碼的產出或是使用的過程中也有特定的關鍵用詞:
Plaintext/Cleartext(明文;明碼):也就是最原始的訊息內容。
Ciphertext/Cryptogram(密文;密碼):經過演算過後的訊息內容。
Encipher/Encrypt/Encode(加密;編碼):指的是將明文演算成為密文的過程。
Decipher/Decrypt/Decode(解密;解碼):指的是將密文演算回復明文的過程。

還有一些必須要再提出來的關鍵用詞:
Cryptographic Algorithm(密碼演算法):指著是數學方法的密碼演算操作。
Cryptosystem(密碼系統):是指裝置或處理使用在加密或解密操作的系統。
Cryptovariable;key(密碼變數;金鑰;):用於密碼演算中左右演算的可變因素。
key space(金鑰可用量):指的是key可用的總數,供選擇使用來做為密碼系統。

要把密碼學說的簡單一點程序就像下面的流程:


明 密碼系統 密

-> (演算法) ->
文 文

密碼學中很多文字其實都是有著相同意思,但是其深層的意涵又有著不同的用法和作法
因密碼學這個領域其廣度及深度是相當的廣大,要把整個密碼學一口氣說完,實在是難呀!!!

接下來再跟大家一起討論同步加密、非同步加密、訊息完整性控制、金鑰管理、
密碼學的使用、破密分析最後是資訊隱藏技術。

2009年8月12日 星期三

K書筆記本-Access controls(07)

要測試存取控制有沒有做好最好的方法就是進行測試,但是在測試的階段最怕的,就是造成正在運作的系統因測試而掛點,
一般用來測試存取控制有沒有最好的就是Penetration Testing(滲透測試),不論選用何種的測試攻擊均是為了找出系統的弱點,
找出根本原因再加以修補,避免在發生事情之前先找到弱點的存在。

所謂的滲透測試指的就是請有技術能力的人來做入侵的行為,這種執行入侵的人一般稱為道德駭客(Ethical hack),
透過界定要測試的範圍(包含測試的區域、工具、測試內容…)來執行測試,必須要指定測試的方法及測試的程序,
來確保系統不會因測試的過程影響其可用性,最後在找到弱點時經過授權時才能進行更進一步可能危害系統的步驟。

在界定測試範圍時可以有程式的安全、阻斷服務的可能性、透過遠端撥接入侵、或是找到未授權的無線網路、社交工程及大眾電信系統等等
每一項都是測試入侵的路徑,當然,在進行測試的時侯,亦可依照整個入侵的層度及所獲得的資訊做入侵。

基本上滲透測試分為外部滲透及內部滲透,若是希望可以找出真正的弱點,當然最好的就是外部滲透,若是要找出未有效管理的系統,
則可透過內部滲透找到問題的原因,在外部滲透的部份又可分為Zero-knowledge(又稱為黑箱測試)、
Partial-knowledge(依照了解的內容層度可分為灰箱或白箱),而在內部測試則可分為Full-Knowledge(又稱為白箱測試)、
Targeted(鎖定特定攻擊)、Blind(僅有少部份的資訊,且資訊安全人員是在不知情的狀況下進行測試,
可以測試出安全人員的反應及回報機制)及Double-blind(與blind不同處則是在入侵的過程中,是受到安全人員的監視之下攻擊。)

基本上來說,滲透測試與實際入侵無異,只是與入侵不同的是找到弱點後呈報,非利用,
測試步驟共分為四大步驟:Discovery(找出資訊;host scan)、Enumeration(列舉攻擊主機;Port scan)、Vulnerability Mapping(弱點對映;test)、Exploiting(達成攻擊)。
每一個步驟當發現任何弱點會問題時,若要再進一步的測試,則必需重新取得授權後才可以執行測試 。

當找弱點的過程中一定會遇到一些突發狀況,應該要予以避免,例如:應用程式發生失敗、系統crash掉…等等,若在已知的問題下,應該予以避免
萬一要測試的弱點不知道會有任何的問題產生,則必須在取得授權後才可以再進行更進一步的測試,若有利益問題則必須要求切核切結書,以釐清責任問題
當然整個測試的過程應要達成文件化,像已找到的弱點和可能存在的問題(保有need to know原則),保存IDS/IPS的Log(有攻擊軌跡),並且避免被未經授權的人存取log
最後針對整個滲透結果提出建議及執行教育訓練,以加強人員各項技能。

存取控制是整個安全管控的核心,任何一件事情、物件都必須有人管理,有人負責,以避免可能因為人的問題而威脅到企業本身的權益,並降低各項安全問題的發生。
這個才是做資安的王道呀!

K書筆記本-Access controls(06)

存取控制是透過使用者的存取過程必須被管理,那麼,有沒有更加有效的管理方式呢?
當然有,再利害的駭客,你給他的輸入界面只能輸入0~9、enter和backspace的鍵盤(Physically constrained user interfaces)
他還能有辦法在鍵盤上輸入數字以外的攻擊手法嗎???

資安首重於人,管人就必須有效的管理使用者行為,其中限制使用者的操作界面是最常見的做法
例如透過Menu,依照使用者所登入的權限不同,僅開放給予使用的選單及資源,那麼減少了與敏感、機密資料接觸的機會
自然要發生未經授權的存取資料也不容易發生。
資料庫的部份透過db views的功能(又稱為VBAC;View based access control)這種限制方式是當使用者必須存取資料庫
僅給使用者看一些與工作內容有關聯的動態資料時可以提供least privilege的限制,僅給最少可以使用的資源來完成他的工作。
如果再不行,還有加密這一條路,當使用者要存取讀取的資料時,所有的資訊均被指定的使用者將資料加密了
那麼,使用者將無法存取較機密的資料。

講到了存取控制難免有因為架構劃分為集中式及分散式架構,在集中式架構中不乏有3A(Authentication, Authorization, Accounting)架構的各項存取控制技術
像是RADIUS(使用UDP傳遞,僅支援同步驗證), TACACS+(由Cisco發展,為確保遠端存取控制系統,且支援多重驗證,使用者可以自行更變密碼,
以TCP傳遞做為基礎), Diameter(使用UDP支援PPP…等連線方式,支援手持設備,由SUN開發),分散式則不適合各地分公司的方式,且無法提供一次性認證
因此,在本項架構中,為使維護便利,多數均採用集中式管理,但必須做好職務輪調及職責分工。

為了避免有違反完整性的問題產生,多數會採用IDS(Intrusion Detection Systems)來做為偵查、IPS(Intrusion Prevention Systems)做為系統保護
導入IDS的效益是可永確保入侵管理控制,避免風險被擴大,偵測其它安全機器可能有未防護或違反的事項,更準確的掌握問題避免攻擊者的入侵,
更可產生文件供企業去分析威脅,確保取得的證據以供爾後法庭上對已攻擊成功的證據。

當然IDS目前的形態很多,但若要拿來細分又分為三類,在此提醒各位,IDS是入侵偵測系統,重點是在於存取控制中的七大類型的偵測,而非預防
其中IDS又分為有Network-based IDS(NIDS)、Host-based IDS(HIDS)及Application-bassed IDS
NIDS是分析及監視網路封包內容,但所謂的NIDS僅能分析到網路第三層的封包,因此對於第七層的攻擊,則無法分析出來,而且對於已加密的封包也是束手無策。
HIDS是分析單一台電腦它並不是建構在HIDS之上的IDS,是一種另外類型的IDS,他可以偵測到主機上是否安全的傳遞資料,
包含已加密的資料亦可被檢查的出來是否包含有害的資訊,並且找出帶有惡意程式呼叫的指令。
AIDS不是愛滋病,是指HIDS的一種子分類,它是可以應用在在定應用程式使用的傳遞log的分析,
他能偵測已授權使用者,是否正在利用可用的資料或應用程式做惡意的行為,進而監看使用者使用程式的入侵行為,
它亦可以掌握加密的資訊,並而找出終端的所在位址,是一種能偵測木馬或是軟體惡意的篡改。

IPS則是兩項分類Host based IPS(HIPS)及Network based IPS(NIPS),HIPS與HIDS最大的差別就在於IPS是執行保護已知的攻擊行為,
NIPS則又叫做在線式的IDS或者是閘道式IDS,也有人稱它是防火牆,但它與防火牆最大的不同在於,防火牆是採用ACLs做為資源應用的規則,
而IPS則可依照兩種分類技術來達成保護的作用:Content-based, rate-based。
Content-based利用所分析出來的協定特徵,去比對偵測到的封包是否包含惡意內容。
Rate-based不像Content-based,主要是觀注在傳輸流上不正常的封包傳遞的內容,監視傳送的過程中去統計違規的內容值,
當在短時間之內傳遞了大量的有害資訊,則會被終止連線,但…此比率則必須視所定義的門檻值多高而定,低一點的,即使連慢速度的攻擊也會被偵查到
但是有可能造成誤判。

以上不管是IPS/IDS都是經過分析來找出有問題的封包,然而分析引擎就決定了它的效率及能力,Analysis engine methods共分為:Pattern (Signature) Based、
Anomaly based、Heuristic Scanning,其中Pattern based又分為pattern matching及stateful matching,Pattern matching是利用掃描封包的內容去偵測,
如果有連續的封包有特定的內容,與特徵內容相同的攻擊則可認定為有害的內容。Stateful Matching則是檢視連結的封包中,找出跨多個封包中在傳的資料流中
有更多符合的特徵資料庫中的惡意資訊,因此pattern是針對已知的攻擊。
Anomaly Based是由Statistical(統計)、traffic(傳遞)、protocol(協定)所組成,經由統計非正常的傳遞動作來找出未知的攻擊行為,
而傳遞則可識別任何一種不可接受的訊號,以偵測出未知的攻擊及詐欺。協定則是透過標準的協定規範去識別出攻擊者有違反的資訊,
本項則無使用特徵性的特點。
最後,配合上Heuristic scanning(啟發式掃描),適用以上各種偵測及防設,更勝於上列的幾種分析引擎,以上的觀念應用於防毒軟體上,
亦是現在的各廠商極力的研發防堵未發現的病毒類型也可以在第一時間即時的攔截到。最後IDS/IPS是為了保護網路的安全及防護,不論是異常的內容、回應的機制,甚至警報的類型都是需要被7X24的管理,有好的監控才有好的安全環境。

存取控制還必須保證些什麼呢?稽核軌跡及評估的工具,在資安中最重要的一個Life cycle就是PDCA,如果沒有做稽核,那麼資安只是為了做而做,
透過更多的評估工具及稽核去找出被入侵的記錄及相關所需的證據,更重要的是關於安全的Clipping level(門檻值),
仔細的稽核各項防護的資訊及各項變更是否有留下變更的記錄。

K書筆記本-Access controls(05)

識別管理是為了讓系統驗證並授權使用者使用系統,但存取資料呢?!存取資料是否也有存取控制
說到這個就睡了一大半了,因為…它確實很無趣,不就只是放權限嘛!那有這麼難
其實,整個放權限的過程中依照放權限的規則不同,有不同的存取控制

講到存取控制,大家最常見的就是DAC, MAC, RBAC, non-DAC…等等的資料存取控制
MAC(Mandatory Access Control; 強制存取控制):MAC源自已Orange Book(TCSEC)是一個以敏感等級做為區隔標示的存取架構,存取的過程受到規則(Rules)的限制,適用於介定組織公開及保護機密的資料,最典型的存取控制模型就是Bell-LaPaDdula,資料的owner確保 ”need to know”原則,依照人員所在的機密等級給予權限。
但在強制存取控制的模式下,並非所有的文件都是機密不可洩露,最大的恩素在於時間(time based isolation),基於time base access control之下,它確保了實體的資料安全,依照其機密分類等級及其設置的保密時間,並結合Role based access control,使在保持有機密的時間內只有特定的角色可以存取。(例如:軍方的機密文件只有陸軍參謀可以存取,那麼在機密的保護時間內,任何一個擔任陸軍參謀的人,都可以存取這份文件)

DAC(Discretionary Access Control;自主存取控制):源自於Orange Book(TCSEC)是一種自主可以選擇取存資料的模式,由最小管存取基礎來設定資料可被存取的廣度,包含need to know,是由資料的所有者自已決定要把資料給予誰來存取,因此onwer或是委托管理者都可決定授權給誰來存取。
在CISSP CBK中訂義了下列存取控制屬於DAC…若是對該部份有疑問者可以大家一起提出來討論。
ACLs(Access Control Lists;存取控制清單):ACLs確保了較簡單的模式來列出使用清單的存取object。ACLs可以決定使用者或群組去存可以或不可以存取受到保護的物件,最常見的像是防火牆,正向表列+負向表列,這種觀念即是來自已ACLs。
Assess Control Matrix;存取控制陣列:以ACLs為基礎,這種存取控制以subject為列,object為欄,交織出的權限表,去檢視那個subject有權存取object。
Rule Based Access Control;規則基礎存取控制:列出規則的管理存取模式,由系統的owner去建立或驗證使用者的身份及權限(讀、寫、執行…)。
RBAC(Role Based Access Control;角色基礎存取控制):這個控存取控制列在DAC恐怕有不少人會有意見,但在CBK所上述的,MAC是以Rule為基礎的存取控制,但RBAC確是屬於以Role為基礎的存取控制,一定有人會問,那rule呢,怎麼會是DAC,其實Jason查了很久,也跟恩師討論過,結論是RuleBAC是由system owner做存取控制,但MAC是由規則為基礎(像制定policy來規範),因此被歸類為DAC,而RBAC則是以Job function來給予存取的權限,隨著工作角色不同,經由初始化程序來做管理role的同時去附予其角色應有的權限,適用於企業組織中的存取控制方式。
Capability Tables;能力表:延伸來自於access control Matrix之中,是屬於以存取能力為基礎的系統,存取object時隨著附予的能力不同,則有不同的權限。

Non-DAC(非自主式存取控制):自主與強制不是已經很明確的告訴我們要嘛就是我自已管,要嘛就是別人管,那怎麼會出現一個Non-DAC呢?
其實Non-DAC不等於MAC,Non-DAC也有其特質,最常見的就是用來做為作業系統的保護,例如像木馬程式,最常使用的手法就是依照使用者的權限,可以去做變更保護的模式去存取未被控制的資料,Non-DAC是透過Security administrator做控制,由SecAdmin去確保敏感/機密檔案做寫入保護去確保其完整性及可辨視性,只給有授權的使用者確保基機密性,也觀注在確保的系統安全,由於安全管控是交由SecAdmin來全權負責,當然透過這一層的管理一定是比DAC安全多了,也與MAC有所差異。

安全的存取是企業中追求的目標,但落實安全存取,就必須知道存取控制中所包含的內容,以上所述的內容中,不論是以角色為基礎、存取清單…等等,都在我們的身邊可以找到其縱影,包含連小孩子誰可以玩什麼玩具,小孩們自有的規則,也不難看出誰比較強勢,大家也可以想想,自已所使用的網芳分享出去的資料是不是安全的被存取呢?以上供大家參考。

2009年8月11日 星期二

K書筆記本-Access controls(04)

識別管理一直是被認定為確保一致性的前置步驟,但在現在的社會中也如同上一個章節中所討論到的有著相當多的挑戰
如何正確的識別出使用者是『對的』使用者,一直以來就是被受注目的,Jason之前在做一個專案時
客戶即有要求,要做識別管理,當時來找Jason的場商也有現在最夯的靜脈認證(掌靜脈、指靜脈…等等)
都是為了確認『對的』人,但是確認的過程中也遇到不少的挑戰,只要有控制就要管理

識別管理過程中,最常遇到的問題共有三類(主要的類型、識別資料的類型、識別生命週期)
主要的類型(types of principals):主要又分為內部(包括有雇員、勞動約定者)及外部(顧客、合作伙伴、供應商),隨著類型的不同,有不同的系統、資料必須加以管理規範。
識別資料的類型(types of identity data):雖然是不同類型的資料供主要的識別管理,其中包含有個人(姓名、連絡資訊…)、法律上(有法定關係介於企業及主要類型的資料)、存取控制的資訊(ID, passworde, PKI, Tokens, biometrics…)。

做識別管理要訂義這麼多東西,那麼有什麼好處呢??不然幹嘛做它呢?!
精簡人力(headcount reduction):每個安全管理者以往花了35%以上的時間在處理使用者帳號密碼問題,舉凡忘了密碼、密碼強度不足…等等,集中式管理後,把此部份的問題所消耗掉的金錢、人力都節省了。
提升生產力(Productivity increase):當管理人力被節省了,當然就有更多的時間做更多,以後end users能自已rest自已的密碼,不用再麻煩管理員人,更多的使用者藉由SSO達成系統的使用彈性,識別管理系統確實擴大了人力效益,也提升了生產力。
風險管理(risk management):往往紙上作業的驗證是不能被用於稽核,但這個問題現在可以被控制了,更延伸的使用好的密碼、好的驗證及安全的系統,當組織在一般支援在多重資料處理中心時,必須將資料快速的複寫,集中使用者資料庫更可導入BCP中。

當然,要做識別管理,有那些科技可以support
目錄(directories):目錄是使用於集中化管理的技術,可用來儲存各種資料及需要可用的的資訊,兼俱有可用性及延展性,且是屬於標準協定,像是LDAP(light-weight directory access protocol)或是X.500.
網站存取管理(Web access management;WAM):使用WAM可以用來管理使用者識別、驗證、授權資料,WAM掌握了簽入處理,Web應用程式使用了plug-in結合了前台web,使用者授權後可以操作其應用程式來管理前台資料,進而去完成存取管理及導入SSO的應用。
密碼管理(password management):很遺憾的,使用者們所使用來登入系統的ID及密碼,不止好猜,還一組用久久,甚至連密碼都沒有換過,導入了密碼管理系統,除了可以訂義密碼的有效性、複雜性、不可逆…等等,加強了使用者使用ID、PASSWORD的強度。
帳戶管理(account management):帳戶管理是應用於各系統中的帳號,例如像網路系統的維護、ERP應用程式、資料庫伺服器…等等,有帳戶應用的系統之中,系統只被內部管理者進行管理,一個集中式帳戶管理的概念必須自動的同步散發各個系統之中,,不論是變更、移除、甚至是系統資源的存取都是建構在這個基礎之上,例如人力資源系統或是管理目錄…等等。
簡介更新(profile update):使用者視別包含有個人資訊,所有的變更應該設計的更簡單,更容易去管理,重點在於自動的參照系統的內容,管理目錄或是系統者的登入,例如像是CRM系統,WAM等等…更容易的讓使用者自行的去管理變更非過於隱私的個人資訊。
單一簽入(SSO):導入單一簽入,end users只需要記憶一組帳號密碼或是一組可供識別的資料,而其管理也只需要針對一項內容管理,大大的減少了管理的成本,但…若SSO系統遇到DoS,那麼…每一個系統的可用性就會受到損害。 目前有Kerberos及SESAME,Kerboeros大家不漠生,是由麻省理工所開發出來的SSO,而SESAME(Security European System for Applications in a Multi-Vendor Environment)則是由歐盟所開發,主要也針對Kerberos的弱點做補強。
安全領域(Security Domains):存取控制結構使用分割的位址空間,去區隔每一個subjects、各個敏感等級的objects及每個存取控制subjects權限等級,想到security domain就必須關聯到每個分割、獨立開的保護個別的資源。

PS. NO1.什麼是SSO?
整個識別管理中,不斷的提到SSO,似乎SSO是最好的解決方案了嗎?那SSO的處理流程又為何呢?有沒有其它的問題呢?
整個SSO大致上分為四個流程:
1.使用者輸入ID、PASSWORD
2.使用者輸入的ID及PASSWORD傳輸到驗證伺服器中去驗證
3.驗證伺服器確立了識別的資料
4.驗證伺服器授權存取所需的資源。

PS. NO2. 什麼是Kerberos?
Kerberos是由麻省理工學院所研發的SSO技術,它的組成有KDC(Key Distribution Center; 又分為AS(Authentication Server;驗證伺服器)、TGS(Ticket Granting Server;票據授權伺服器))及SS(SS;伺服器)TGT(Ticket Granting Ticket;票據授權票據)
其處理流程如下圖:
Kerberos



PS. NO3.Kerberos有什麼問題存在呢?
1.Kerberos有單點失效(Single point of failure)的問題當驗證伺服器發生問題時,那麼所有的驗證機制都將會失效。可用HA架構來補救。
2.Kerberos必須通訊的時鐘同步,因為票據有一定的有效期,因此如果時鐘不同步那麼認證會失敗,而預設值是不得誤差十分鐘。可用NTP來防止。
3.因為SSO是一組帳密通五關,因此…若有管理者的密碼被洩露,則會造成默大的損失。可以用職責分工來補救。