Tải bản đầy đủ (.pdf) (89 trang)

nghiên cứu bảo mật asp.net. ứng dụng trong thiết kế website khoa cntt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.41 MB, 89 trang )

HUTECH
B GIÁO DC ÀO VÀ O TO
TRNG I HC DÂN LP K THUT CÔNG NGH
KHOA CÔNG NGH THÔNG TIN
B MÔN CÔNG NGH PHN MM






LUN VN TT NGHIP


 TÀI :

Nghiên cu bo mt ASP.NET. ng dng trong
thit k Website Khoa CNTT




GVHD : Th.S Nguyn Hà Giang
SVTH : Lê Phng Nam 10102099
Thiu ng Phúc 10102133





TP. H CHÍ MINH


2005
HUTECH



HUTECH





LI CM N

ooOOoo—

Trong sut khóa hc (2001-2005) ti trng K Thu Công Ngh TP.H
Chí Minh, vi s giúp đ ca quí thy cô và ging viên hng dn t nhiu phía
và nhât là trong thi gian thc hin đ tài, nên đ tài đã đc hoàn thành đng qui
đnh. Em xin chân thành cm n đn:
Em xin cm n các thy cô trong khoa công ngh thông tin đã ging dy
nhng kin thc chuyên môn làm c s đ chúng em thc hin tt lun vn và
hoàn tt khóa hc thun li.
c bit, em xin cm n Thy Nguyn Hà Giang giáo viên hng dn đ
tài đã nhit tình giúp đ và cho chúng em nhng li ch dy quí báu, giúp chúng
em đnh hng tt trong khi thc hin lun vn và Thy Bùi Âu Phng đã to
mi điu kin cho chúng em trin khai cài đt chng trình.
Tt c bn bè đã giúp đ và đng viên trong quá trình làm lun vn.

Tp.H Chí Minh Tháng 12 nm 2005
Sinh viên thc hin


HUTECH
NHN XÉT CA GIÁO VIÊN HNG DN
oOOo—
























K thut công ngh, Ngày tháng nm 2005
Giáo viên hng dn

HUTECH
NHN XÉT CA GIÁO VIÊN PHN BIN
oOOo—
























K thut công ngh, Ngày tháng nm 2005
Giáo viên phn bin
HUTECH

B GIÁO DC & ÀO TO CNG HÒA XÃ HI CH NGHA VIT NAM
I HC DL K THUT CÔNG NGH TP.HCM C LP – T DO – HNH PHÚC
Khoa : CNTT, B môn : …………………… _____oOo_____




Chú ý : Sinh viên phi dán bn nhim v

H và tên sinh viên : …………………………… MSSV :………………….……
Ngành : : ……………………………… Lp :……………………………………
:



2. Nhim v :
a. D liu ban đu :





b. Ni dung
· Phn tìm hiu công ngh :







· Phn phân tích, thit k & xây dng ng dng minh ha :



:
:
5. H tên giáo viên hng dn :

Ni dung và yêu c
.
TP.HCM, ngày ………. tháng ……… nm 200
CH NHIM KHOA GIÁO VIÊN HNG DN CHÍNH
(Ký và ghi rõ h tên) (Ký và ghi rõ h tên)




PHN DÀNH CHO B MÔN
Ngi duyt (chm s b) :……………………….Ngày bo v : ………………………
HUTECH


HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 1
MC LC
MC LC 1
CHNG 1 : GII THIU  TÀI 3

1.1 Hoàn cnh ra đi. 3
1.2 Ni dung các chng. 3
CHNG 2 : TÌM HIU V BO MT 4
2.1 Các khái nim. 4
2.1.1 Cracker. 4
2.1.2 Hacker. 4
2.1.3 Router. 4
2.1.4 Cookie. 4
2.1.5 Proxy. 5
2.1.6 Ping. 6
2.1.7 Cng o (Virtual Port). 6
2.1.8 Tng la (Fire wall). 6
2.1.9 Virus. 7
2.1.10 Trojan. 7
2.1.11 Worms. 7
2.1.12 Bom th. 7
2.1.13 IP Spoofing. 7
2.2 Các nguyên nhân ch quan làm cho h thng hay ng dng web b tn công. 8
2.2.1 Cu hình sai máy ch. 8
2.2.2 H điu hành và ng dng b li. 8
2.2.3 Nhà cung cp thiu trách nhim. 8
2.2.4 Thiu s t vn đy đ. 9
2.3 Các bc khi ngi tn công mun tn công vào h thng. 9
2.3.1 FootPrinting. 9
2.3.2 Scanning. 9
2.3.3 Enumeration. 10
2.3.5 Escalating Privileges (Leo thang đc quyn). 10
2.3.6 Pilfering. 10
2.3.8 To BackDoor. 11
2.3.9 Denial of Services (Tn công t chi dch v). 11

2.4 Bo mt trong ASP.NET. 11
2.4.1 nh dng bo mt ASP.NET 12
2.4.2 nh dng phân cp (Configuraion hierarcy) 12
2.4.3 Thc thi ASP.NET authorization. 15
2.4.4 Cu trúc bo mt ASP.NET 17
2.4.5 Windows authentication. 19
2.4.6 Forms authentication. 22
2.4.7 Passport authentications. 29
2.4.7.1 Cu trúc tng quan. 29
2.4.7.2 Các bc tng quát đ thc thi mt ng dng web s dng Passport. 32
2.4.7.3 Thc thi bo mt đi vi Passport. 33
CHNG 3 : CÁC BIN PHÁP BO MT TRONG ASP.NET 37
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 2
3.1 Bo mt đng truyn. 37
3.2 Mã hóa. 38
3.2.1 Mã hóa trong .NET 39
3.2.2 DPAPI 42
3.3 Phòng tránh SQL injection. 45
3.4 Phòng tránh tn công CSS. 48
3.5 Bo mt tài nguyên. 51
CHNG 4 : THC THI CHNG TRÌNH 53
4.1 Mc đích xây dng trang web 53
4.2 Ni dung trang web. 53
4.3 S đ user case. 54
4.2 S đ lp. 57
4.3 C s d liu. 60

4.6 Các component. 63
4.7.1 To tài khon bt buc ngi dùng nhp mt khu phc tp. 64
4.7.2 Dùng các k thut mã hóa cho mt khu, cho các kt ni c s d liu. 65
4.7.3 Bo mt đng truyn. 67
4.7.4 Kim tra các giá tr nhp vào tránh b CSS. 67
4.7.5 Bo mt cookie. 67
4.7.6 Gii hn thi gian tn ti ca các phiên làm vic (session). 67
4.7.7 Thông tin bo mt đc lu trong registry. 68
4.7.8 To mt tài khon kt ni ni c s d liu. 69
4.7.9 Tránh SQL injection. 69
4.7.10 Bo mt các tài nguyên h thng. 69
4.7.11 Qun lý các debug li. 69
4.8 Các giao din. 70
CHNG 5 : TNG KT VÀ ÁNH GIÁ. 75
5.1 Kt qu đt đc. 75
5.2 Hn ch thiu sót. 75
5.4 Hng phát trin. 76
DANH SÁCH CÁC HÌNH 77
DANH MC BNG 78
TÀI LIU THAM KHO 80
PH LC 81
HNG DN CÀI T 81









HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 3
CHNG 1 : GII THIU  TÀI
1.1 Hoàn cnh ra đi.
Cùng vi s phát trin ca công ngh thông tin thì các ng dng web cng
phát trin theo ngày mt mnh m hn đ đáp ng nhng nhu cu v trao đi
thông tin, hc tp nghiên cu, qung cáo mua bán, dch v, du lch…Vì vy mà
các ngôn ng, công c cng nh các tin ích đ thit k web ra đi ngày càng
nhiu đ đáp ng cho nhu cu trên.
Các ngôn ng nh ASP.NET, PHP, Perl, JSP , Servlet… là mt trong các
ngôn ng mnh hin nay dùng đ thit k các ng dng web
. Bên cnh nhng tính
nng u vit
ca mi ngôn ng trên đ xây dng các ng dng web thì nhng
khuyt đim v vn đ bo mt ngun tài nguyên cho ng dng, và các thông tin
bo mt ca ngi s dng ca tng ngôn ng cng là mt
vn đ thách thc cho
các nhà phát trin ng dng. T nhng vn đ trên chúng em đã chn
 tài : Nghiên cu bo mt ASP.NET ng dng trong thit k website
khoa công ngh thông tin.
Bo mt không ch da vào vic dùng mt ngôn ng sao cho ng dng
đc an toàn mà là s kt hp ca nhiu yu t nh bo mt đng truyn, bo
mt c s d liu, thit b, qun tr h điu hành… và bài toán bo mt không có
li gii chính xác, nó ch tng đi trong tng giai đon, tng môi trng c th vì
các tin tc ngày mt tinh vi hn luôn tìm ra các l hng bo mt vì vy bo mt
cho mt ng dng cn phi đa ra mt chin lc, nghiên cu bo mt lâu dài phù
hp vi tng thi đim.

1.2 Ni dung các chng.
Chng 1: Phn tng quan ca đ tài.
Chng 2: Tìm hiu khái nim trong bo mt và các mô hình bo mt ASP.NET
Chng 3 : Tìm hiu các k thut bo mt trong ASP.NET và bin pháp xây dng
Chong 4: Thc thi cài đt ng dng.
Chung 5: Kt lun đánh giá kt qu làm đc và hng phát trin.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 4
CHNG 2 : TÌM HIU V BO MT
2.1 Các khái nim.
Mt s khái nim thng dùng khi làm công tác bo mt
2.1.1 Cracker.
Cracker là nhng ngi phá hoi máy tính vi mc đích tr thù hay mc
đích tài chính nào đó. Nhng ngi này là nh ng
chuyên gia phá hoi h thng
vi mc đích tr thù hay li ích cá nhân…
2.1.2 Hacker.
Không ít nhng ngi thng đánh đng hacker vi cracker. Ngun gc
ban đu hacker là nhng ngi có k nng lp trình, có kin thc v h thng, mc
đích ca hacker thng khám phá tìm hiu hc hi, và phô bày nhng l hng h
thng đ giúp các nhà qun tr sa li, ch không phi vì tin hay phá hoi. Nhiu
hacker đã đc tuyn vào các công ty làm nhim v khc phc khuyt đim cho
h thng hay phn mm. Tuy nhiên cng hin ti cng có mt s quan nim
hacker m trng và hacker m đen, hacker m trng thì tt, hacker m đen ging
nh cracker
2.1.3 Router.
Còn gi là b dn đng, là nhng máy tính có nhim v đa các s 1 và 0

trong h nh phân bit cách tìm đn ni cn thit trên không gian o. Tin tc dùng
hình thc tn công s dng nhng máy tính đã b khng ch đ đánh la các
router gi thông tin gi ti nhiu trang web trong mng.
2.1.4 Cookie.
Cookie là nhng phn d liu nh có cu trúc đc chia s gia web site và
browser ca ngi dùng. Cookies đc lu tr di nhng file d liu nh dng
text (size di 4k). Chúng đc các trang
web to ra đ lu tr/truy tìm/nhn bit
các thông tin v ngi dùng đã ghé thm trang web và nhng vùng mà h đi qua
trong trang web.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 5
Nhng thông tin này có th bao gm tên/đnh danh ngi dùng, mt khu,
s thích, thói quen Cookie đc browser ca ngi dùng chp nhn lu trên đa
cng ca máy mình, không phi browser nào cng h tr cookie. Sau mt ln truy
cp vào site, nhng thông tin v ngi dùng đc lu tr trong cookie.  nhng
ln truy cp sau đn site đó, trang web có th dùng li nhng thông tin trong
cookie (nh thông tin liên quan đn vic đng nhp vào mt din đàn, tài khon
mua bán ) mà ngi dùng không phi làm li thao tác đng nhp hay phi nhp
li các thông tin khác. Vn đ đt ra là có nhiu site qun lý vic dùng li các
thông tin lu trong cookie không chính xác, kim tra không đy đ hoc mã hoá
các thông tin trong cookie còn s h giúp cho tin tc khai thác đ vt qua kim
tra đng nhp, đot quyn điu khin trang web.
Cookies thng có các thành phn sau :
+ Tên: do ngi lp trình trang web chn
+ Domain: là tên min t máy ch
(server) mà cookie đc to và gi đi

+ ng dn: thông tin v đng dn  trang web mà ngi dùng đang xem
+ Ngày ht hn: là thi đim mà cookie ht hiu lc .
+ Bo mt: Nu giá tr này đc thit lp bên trong cookie, thông tin s đc mã
hoá trong quá trình truyn gia server và browser.
+ Các giá tr khác: là nhng d liu đc trng đc máy ch (web server) lu tr
đ nhn dng v sau các giá tr này ko cha các khong trng, du chm, phy và
b gii hn trong khong 4kb.

2.1.5 Proxy.
Proxy cung cp cho ngi s dng truy xut internet vi nhng host đn.
Nhng proxy server phc v nhng nghi thc đt bit hoc mt tp nhng nghi
thc thc thi trên dual_homed host hoc basion host. Nhng chng trình client
ca ngi s dung s qua trung gian proxy server thay th cho server tht s mà
ngi s dng cn giao tip. Proxy server xác đnh nhng yêu cu t client và
quyt đnh đáp ng hay không đáp ng, nu yêu cu đc đáp ng, proxy server
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 6
s kt ni vi server tht thay cho client và tip tc chuyn tip đn nhng yêu cu
t client đn server, cng nh đáp ng nhng yêu cu ca server đn client. Vì vy
proxy server ging cu ni trung gian gia server và client.
Proxy cho ngi dùng truy xut dch v trên internet theo ngha trc tip.
Vi dual host homed cn phi đng nhp vào host trc khi s dng dch v nào
trên internet. iu này thng không tin li, và mt s ngi tr  nên tht vng
khi h có cm giác thông qua firewall, vi proxy nó gii quyt đc vn đ này.
Tt nhiên nó còn có nhng giao thc mi nhng nói chung nó cng khá tin li
cho user. Bi vì proxy cho phép user truy xut nhng dch v trên internet t h
thng cá nhân ca h, vì vy nó không cho phép gói tin (packet) đi trc tip gia

h thng s dng và internet.
ng đi là giáng tip thông qua dual homed host
hoc thông qua s kt hp gia bastion host và screening rounter.
2.1.6 Ping.
Thut ng này ch vic gi mt thông đip đn gin ti mt máy tính khác
và nó s gi thông tin v cho ngi gi. c s dng nh mt công c kim tra
xem hai máy tính có th liên lc đc vi nha u không, nhng chng trình ping
nguy him có th gây ri lon h thng.

2.1.7 Cng o (Virtual Port).
2.1.8 Tng la (Fire wall).
Là mt s t nhiên đc gói  trong TCP (Tranmission Control Protocol)
và UDP (User Diagram Protocol) header. Nh
chúng ta đã bit, Windows có th
chy nhiu chng trình 1 lúc, mi chng trình này có mt cng riêng dùng đ
truyn và nhn d liu.
Là ni đ kim tra thông tin vào ra máy tính, tng la kim tra và phân
tích xem thông tin đi đâu và v đâu ,
nu mt v trí b nghi ng thì tng la s
chn thông tin đn và đi đó. Khi mt v trí b chn tng la có th to ra mt
nht kí ghi li các đa ch mun xâm nhp vào máy tính.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 7
2.1.9 Virus.
ây là chng trình vi nhng mã đc bit đc cài (hoc lây lan t máy
khác) lên máy ca nn nhân và thc hin nhng yêu cu ca mã đó , đa s
virus

đc s dng đ phá hoi d liu hoc phá hoi máy tính.
2.1.10 Trojan.
ây là chng trình đip viên đc cài vào máy ca ngi khác đ n cp
nhng tài liu trên máy đó gi v cho ch nhân ca nó ,
nhng thông tin mà trojan
n cp có th là mt khu, account, hay cookie ………. tu theo ý mun ca ngi
to ra nó.

2.1.11 Worms.

ây là chng trình đc lp có th t nhân bn bn thân nó và lây lan khp
bên trong mng .Cng ging nh virus, nó cng có th phá hoi d liu, hoc nó
có th phá hoi bên trong mng, nhiu khi còn làm c mng b ngng hot đng.
2.1.12 Bom th.
Là chng trình gi mt lúc nhiu g ói d liu cho cùng mt đa
ch, làm
quá ti h
thng, tt nghn đng truyn (trên server) hoc dùng làm công c đ
phá ri tinh thn đi phng (bom Mail).
2.1.13 IP Spoofing.
Mt s IP có mc đích đ xác đnh mt thit b duy nht trên th gii. Vì
vy trên mng mt máy ch có th cho phép mt thit b khác trao đi d liu qua
li mà không cn kim tra máy ch. Tuy nhiên tin tc có th thay đi IP ca h,
ngha là h có th gi mt thông tin gi đn mt máy khác mà máy đó s tin rng
thông tin nhn đc xut phát t mt máy nào đó (tt nhiên là không phi máy ca
tin tc). Tin tc có th vt qua máy ch mà không cn phi có quyn điu khin
máy ch đó. IP Spoofing có hiu qu khi tin tc vt qua tng la đánh cp tài
khon.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT



Trang 8
2.2 Các nguyên nhân ch quan làm cho h thng hay ng dng web b
tn công.
Có th có nhiu nguyên nhân nhng mt trong nhng nguyên nhân sau
khin cho trang web d b tn công
2.2.1 Cu hình sai máy ch.
ây là nguyên nhân to ra đa phn các l hng bo mt. Rt nhiu khi
ngi qun tr không nhn bit đc các dch v đang chy trên máy ch ca
h Hoc vì nguyên nhân ch quan nào đó nên vic cu hình máy ch sai, hoc
cha kp sa li.
2.2.2 H điu hành và ng dng b li.
S thay đi nhanh chóng ca công ngh nên vic cp nht nu nh không
đy đ,
nên khi các máy tính ni mng hin nhiên là đang đi mt vi nguy c b
xâm nhp
ây là mt s ví d v dch v và ng dng.
 H thng in trên mng.
 H thng điu khin t xa.
 Chia s tp tin.
 Các mã CGI và script ví d.
Khi nhng h thng này s dng các giá tr mc đnh hoc b cu hình sai thì s là
c hi tt đ tin tc xâm nhp.

Li trong các ng dng : nhng li ny sinh khi lp trình là mt yu t làm cho
ng dng vt ra ngoài tm kim soát ca ngi s dng. Ví d nh nhng li ca
MS IIS hay trong ISC BIND hay SSH và rt nhiu li khác na trong các h thng
ca Sun. n
gin hn na là li ca IE mà ngi dùng có th tr thành mc tiêu

ca virus.

2.2.3 Nhà cung cp thiu trách nhim.
Rt nhiu nhà cung cp không quan tâm đn điu gì xy ra trong chng
trình ca h. Vic đm bo cht lng (QA) trong ngành công nghip phn mm
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 9
rt yu.  tit kim chi phí thì ngi ta thng không áp dng nhng tiêu chun
v qui trình sn xut. Và đó là nguyên nhân làm cho các h thng mng và máy
tính ca ngi s dng b phá hoi. Trong tròng hp các bn sa li b chm ch
cng có th làm hi đn công tác bo mt.

2.2.4 Thiu s t vn đy đ.
Nu nh tt c các vn đ  trên đu đc gii quyt thì các công ty hay t
chc li vp phi mt vn đ khác là thiu nhng các nhân đáng tin tng. Có th
thu thp mt
đi ng k s, qun tr và lp trình viên đ trình đ, nhng không d
tìm ra các chuyên gia bo mt gii.Và không th đào to đi ng chuyên gia bo
mt trong vài ngày. ó là mt quá trình rt dài, phi bt đu t các kin thc
c
bn nh, phn cng, h điu hành, mã hoá và lp trình. Nhng nh vy mi ch đ
cho các hiu bit s đng v bo mt. Vic thiu nhân s làm cho các chng trình
v bo mt trong các t chc b xao lãng hoc đi sai đng. Không có các chính
sách v bo mt hoc nu có thì
cha đc hoàn chnh. Chính điu đó làm cho h
thng b
nh hng trc các cuc tn công.

2.3 Các bc khi ngi tn công mun tn công vào h thng.
2.3.1 FootPrinting.
ây là cách mà tin tc làm khi mun ly mt lng thông tin ti đa v máy
ch/doanh nghip/ngi dùng. Nó bao gm chi tit v đa ch IP, Whois, DNS
đó là nhng thông tin chính thc có liên quan đn mc tiêu. Nhiu khi đn gin tin
tc ch cn s dng các công c tìm kim trên mng đ tìm nhng thông tin đó. Và
nhng thông tin này là mt trong nhng yu t đu tiên giúp tin tc tn công h
thng web.
2.3.2 Scanning.
Khi đã có
nhng thông tin  giai đon footprinting ri thì tip đn là đánh
giá và đnh danh nhng nhng dch v mà mc tiêu có. Vic này bao gm quét
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 10
cng, xác đnh h điu hành, tên máy ch, schema ca c s d liu … Các công
c đc s dng  đây nh nmap, WS pingPro, siphon, fscam…

2.3.3 Enumeration.
Bc th ba là tìm kim nhng tài nguyên đoc bo v kém, hoch tài
khon ngi dung mà có th s dng đ xâm nhp. Nó bao gm các mt khu mc
đnh, các script và dich v mc đnh. Rât nhiu ngi qun tr mng không bit
đn hoc không sa đi li các giá tr này.
2.3.4 Gaining Access.
Bây gi ngi xâm nhp s tìm cách truy cp vào mng bng nhng thông
tin có đc  ba bc trên. Phng pháp đc s dng  đây có th là tn công
vào li tràn b đm, ly và gii mã tp tin mt khu, hay brute force (kim tra tt
c các trng hp –

vét cn) mt khu. Các công c thng đc s dng  bc
này là NAT, podium, hoc Lopht
.
2.3.5 Escalating Privileges (Leo thang đc quyn).
Ngi tn công tìm cách xâm nhp đc vào mng vi tài khon hp l (tài
khon guest), thì h s tìm cách kim soát toàn b h thng. Tin tc s tìm cách b
khóa mt khu ca ngi qun tr h thng, hoc s dng l hng đ leo thang đc
quyn chim quyn qun tr. John và Riper là hai chng trình b khóa mt khu
rt hay đc s dng.
2.3.6 Pilfering.
Thêm mt ln na các máy tìm kim li đc s dng đ tìm các phng
pháp truy cp vào mng. Nhng tp tin vn bn cha mt khu hay các c ch
không an toàn khác là c hi cho tin tc tn công.
2.3.7 Covering Tracks.
Sau khi đã có nhng thô ng tin cn thit, tin tc tìm cách xoá du vt, xoá
các tp tin log ca h điu hành làm cho ngi qun lý không nhn ra h thng đã
b xâm nhp hoc có biêt cng không tìm ra k xâm nhp là ai.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 11
2.3.8 To BackDoor.
Ngi tn công đ li "Back Doors", tc là mt c ch cho phép ngi tn
công truy cp tr li bng con đng bí mt không phi tn nhiu công sc, bng
vic cài đt Trojan hay to user mi (đi vi t chc có nhiu user), hay m mt
cng nào đó. Công c  đây là các loi Trojan, keylog…
2.3.9 Denial of Services (Tn công t chi dch v).
Nêu không thành công trong vic xâm nhp, thì DoS là phng tiên cui
cùng đ tn công h thng. Nu h thng không đc cu hình đúng cách, nó s b

phá v và cho phép ngi tn công truy cp. Hoc trong trng hp khác thì DoS
s làm cho h thng không hot đng đc na. Các công c hay đc s dng đ
tn công DoS là trin00, Pong Of Death, teardrop, và các loi nuker, flooder.
2.4 Bo mt trong ASP.NET.
 Authentication (thm đnh quyn) : Khi ng dng web đc xây dng,
ngoài nhng tài nguyên chung ai cng đc quyn s dng, thì có nhng
tài nguyên đc gi kín gii hn bi mt s ngi, đ truy cp nhng
ngun tài nguyên này thì client trc tiên phi đc kim tra xem có quyn
truy xut tài nguyên hay không qua tên đng nhp và mt khu.
 Authorization : Khi đã đc chng nhn v quyn truy xut tài nguyên thì
authorization là vic chng nhn client có nhng quyn nào đ truy xut
nhng ngun tài nguyên nào (tp tin, c s d liu…).

Hình 2.1 : Mô hình truy xut tài nguyên.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 12
ASP.NET h tr các k thut thm đnh quyn : Window (mc đnh), Form,
Passport, None.
• Window
• Form
• Passport
• None
2.4.1 nh dng bo mt ASP.NET
Vic đnh dng bo mt đc t chc tp trung theo các dng tp tin XML
có cha các th (tag) chc các thuc tính và đnh dng cài đt đ cu hình bo mt
cho tài nguyên h thng. Trong ASP.NET có hai loi tp tin đnh dng là
machine.config và web.config.

• Tp tin đnh dng gc machine.config cung cp các đnh dng mc đnh
cho toàn b web server. Tp tin này đc h tr bi .NET Framework,
mi phiên bn ca .NET Framwork s có các machine.config riêng bit.
• Tp tin đnh dng web.config cng có ch đnh dng tng t nh
machine.config, nhng nó đc dùn g đ áp dng cho tng ng dng c
th vi các đnh dng c th vì c ch đnh dng trong ASP.NET là mt
h thng đnh dng phân cp vì vy trong mt ng dng ASP.NET có th
có nhiu tp tin web.config.
2.4.2 nh dng phân cp (Configuraion hierarcy)
Khi tp tài nguyên nhn đc yêu cu thì ht thng ASP.NET s đnh dng nh
sau:
 Cài đt đnh dng đt trong tp tin web.config đt trong ng dng con s
cài đè lên các cài đt trong web.config ca ng dng cha.
 Tng t cài đt trong web.config ca ng dng c ha s đè lên cài đt
web.config ca ng dng gc và cài đt ng dng web.config ca ng dng gc s
đè lên cài đt ng dng trong machine.config ca .NET Framework. Tuy nhiên
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 13
vn mang tính k tha các cài đt ca ng dng con ch đè lên các cài đt ng
dng nào mà ng dng cha có và k tha nhng cài đt nào mà nó không có.



Hình 2.2 : Mô hình phân cp đnh dng ca ASP.NET




Tt c các thông tin cu hình trong web.config đc đt trong th <configuration>
</configuration>. Th <system.web> trình bày tt c các thit lp các lp ca
ASP.NET
<configuration>
<system.web>
<!—Authentication section >
<forms name=”[name]” loginUrl=”[Url]” protection=”[All, None,
Encryption, Validation]” timeout=”s phút” path=”[path]” >
<!—Credentials Attributes >
<credentials passwordFormat=”[Clear, SHA1, MD5]”>
<user name=”[username]” password=”[password]” />
</credentials>
< Passport Attributes >
<passport redirectUrl=”Internal” />
< Authorization section >
<authorization>
<allow user=”*” /> <!—Allow all user >
<! <allow users=”[comma separated list of users]”
roles=”[comma separated list of roles]” />
<deny users=”[comma separated list of users]”
roles=”[comma separated list of users]” />
</authorization>
</system.web>
</configuration>
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 14
 Th <AUTHENTICATION> :

• Th này thit lp tt c các ch đ tài nguyên ca toàn ng dng web.
Có các la chn nh “Windows”, “Forms”, “Passport” và “None”.
• Thit lp mc đnh là <authentication mode="Windows">.
• Authentication không th đt di th mc gc ca ng dng.
 Thuc tính FORMS : đuc đt trong th <authentication> dùng cu hình
tên ca cookie s dng, đa ch trang đng nhp, thi gian tn ti ca
cookie, đng dn dùng cookie.
 name = “[cookie name]” : Tên ca cookie dùng phng thc HTTP
khi s dng xác nhn truy cp bng Forms. Mc đnh đc đt là
<forms name=”.ASPXAUTH”>. Nu có nhiu ng dng s dng xác
nhn truy cp dng Forms trên cùng mt máy thì vic đt cùng mt tên
có th xy ra vic giao thoa quyn truy cp tài nguyên gia các ng
dng.
 loginUrl = “[url]” : Cha đa ch trang đng nhp nu ngi dùng
khôn đc quyn truy cp tài nguyên. Giá tr mc đnh là <forms
loginUrl=”default.aspx”>.
 protection = ”[All|None|Encryption|Validation]” : Ch đ bo v d
liu trong cookie. Giá tr mc đnh là <forms protection=”All”>
All : cookie đc bo v bng vic mã hóa và xác nhn d liu.
None : Thit lp này đc thc hin tt hn các phng thc khác khi
thc hin bng .NET Framework. Khi thc hin phng thc này vic
mã hóa và kim tra đu không hot đng.
Encryption : Cookie đc mã hóa di dng Triple DES hay DES,
nhng trong phng thc này cookie không đc kim tra.
Validation : Vic mã hóa không thc hin trong cookie
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 15

 timeout = ”[minutes]” khon thi gian cho mt cookie hp l. Giá tr
mc đnh là <forms timeout=”30”>. Timeout là giá tr chuyn đng,
thi gian ht hn đc tính t ln yêu cu cui cùng đc nhn.
 path = ”/” thit lp đng dn đ lu cookie trên máy ngi dùng.
 Các thuc tính CREDENTIALS.
Thành phn <credentials> cho phép lu tr danh sách ngi dùng trong tp
tin web.config. Tuy nhiên cng có th thc thi kim tra password t ngun bên
ngoài mà không cn dùng <credentials>

 passwordFormat=”[Clear|SHA1|MD5]” : đnh dng giá tr mt khu
ca ngi dùng lu trong <user>
 th con <credentials> h tr mt thuc tính và mt th con.
 Th con <user> có hai thuc tính là tên đng nhp
(username) và
mt khu
(password)
 Mc đnh <credentials passwordFormat=”SHA1”>
Clear : ch đnh mt khu không đc mã hóa.
MD5 : ch đnh mt khu đc mã hóa theo thut gii MD5.
SHA1 : ch đnh mt khu đc mã hóa dùng thut gii SHA1.
 Thuc tính PASSPORT.
Thuc tính passport là redirectUrl = ”[url]” ch đnh trang đ yêu cu xác nhn
quyn truy cp tài nguyên nu nh ngi dùng không đng nhp bng
passport
.

2.4.3 Thc thi ASP.NET authorization.
Vic cp quyn truy cp là mt x lý là ni mà nhng ngi phát trin web
quyt đnh mt ngi đc đc cp quyn truy xut đn mt trang web hay tài
nguyên. Trong ASP.NET có hai cách chính đ truy xut đn mt tài nguyên cho

phép là : s cp quyn tp tin (File Authorization) và quyn đa ch URL (ULR
Authorization)
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 16
 S cp quyn tp tin đc thc hin da vào tài khon đc xác nhn
cung cp bi IIS. Nó đc thc thi bi FileAuthorizationModule. Nó kim tra
danh sách điu khin truy xut
(Access Control List - ACL) hoc các quyn truy
xut đn tài nguyên đ quyt đnh ngi s dng có quyn truy cp ngun tài
nguyên đc bo v hay không. FileAuthorizationModule cung cp dch v xác
nhn quyn da vào các h thng tp tin ACL. Ngi s dng có th cu hình các
tp tin ACL cho tp tin hay th mc s dng Security tab trong trang thuc tính
Explorer. AccessCheck ch đc gi nu có mt windowsIdentity kt hp vi yêu
cu (request), vì vy nó b gii hn s dng cho xác nhn Forms hay Passport, ni
có đúng mt tài khon Window (truy cp tài khon n danh – anonymous
account).
 Vic cp quyn URL (URL Authorization) đc thc thi bi
URLAuthorizationModule.  cp quyn URL, ngi dùng n danh đc kim
tra vi cu hình d liu. Nu truy cp đc chp nhn cho yêu cu URL, thì truy
xut ca ngi dùng đc chp nhn. Vic s dng URLAuthorizationModule,
ngi phát trin web có th thc thi s đòi hi cp quyn khng đnh hay ph
đnh. ó là ngi phát trin trin web có th cho phép hay t chi nhóm ngi
đc s dng tài
nguyên.  thc thi cp quyn URL, đt danh sách ngi dùng
hay các quyn truy cp tài nguyên trong th <deny> ca <authorization> ca file
cu hình .config.
Cú pháp chung ca <authorization>

<[element] [users] [roles] [verbs] />
• Th <allow> cho phép ngi s dng truy xut đn tài nguyên
• Th <deny> hy b vic s dng truy xut đn tài nguyên
Các thuc tính h tr cho <allow> và <deny>
Roles : đnh danh mt vai trò
(role) đích cho phn t này. Kt hp đi tng
IPprincipal cho yêu cu quyt đnh vai trò ca thành viên. Có th gán đi tng
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 17
IPrincipal tùy theo yêu cu ng cnh đã cho v à có th quyt đnh vai trò thành
viên bt c khi nào có th. Ví d lp WindowsPrincipal mc đnh s dng cho
nhóm Windows NT đ quyt đnh vai trò thành viên.
User : inh danh các đnh danh đích cho phn t này
Verb : nh ngha các hành đng ca HTTP nh GET, HEAD, POST.
Có hai đnh danh dùng cho users và roles : * dùng cho tt c ngi dùng, ? các
ngi dùng không đc chng thc.
2.4.4 Cu trúc bo mt ASP.NET
ASP làm vic chung vi IIS, .NET framework, và các cu trúc service ca
h điu hành. Khi clien yêu cu mt request ti ti mt trang web thì nó phi qua
mt dãy xác đnh danh (authentication) và xác đnh quyn (authorization).

Hình 2.3: K thut xác nhn và phân quyn truy cp tài nguyên ca IIS và
ASP.NET
• IIS nhn đc yêu cu HTTP(S) web t mng. SSL đc s dng đ bo
đm rng đc các nhn dng ca server, ca client và các la chn khác là
bo mt.
HUTECH

Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT


Trang 18
• IIS xác nhn yêu cu này bng vic s dng Basic, Digest, Integrated
(NTLM hoc Kerberos), hoc Certificate authentication. Nu tt c hoc
mt phn trang web không yêu cu xác đnh danh cho vic truy cp t IIS.
Thì IIS s cu hình xác đnh n danh có ngha là b qua vic kim tra 
mc IIS. IIS to mt Window access token cho mi xác thc ngi dùng.
Nu xác nhn n danh đc chn (anonymous authentication) đ c chn
thì IIS to mt du hiu truy cp (access token) cho tài khon ngi dùng
n danh trên Internet (mc đnh là IUSR_MACHINE)
• IIS phân quyn truy cp cho đi tng gi
(caller) đ truy cp tài nguyên
đc yêu cu
(request). Quyn truy cp dng NTFS đc đnh ngha bi
ACL đính kèm đ yêu cu v tài nguyên đc phân quyn truy cp. IIS
cng có th đc cu hình đ chp nhn yêu cu ngun tài nguyên t mt
đa ch IP đã đc ch đnh.
• IIS truyn du hiu xác nhn truy cp t Window đn ASP.NET
• ASP.NET xác nhn đi tng gi
 Nu ASP.NET đc cu hình là xác nhn truy cp tài nguyên dùng
chung vi cp quyn ca Window thì khi IIS chp nhn yêu cu truy
cp thì ASP.NET chp nhn bt kì du hiu truy cp nào t IIS
 Nu ASP.NET đc cu hình cho xác nhn quyn truy cp  dng Form
thì vic xác nhn s da vào d liu lu tr nh c s d liu SQL hay
dch v Active Dirctory hoc các thông tin đc lu tr  client
 Nu ASP.NET đuc cu hình là xác đnh danh là Passport thì các thông
tin đng nhp ca ngi dùng s đuc gi trc tip đn trang web
Passport ca Microsoft đ xác đnh quyn hn truy cp.

• ASP.NET phân quyn truy cp ti các yêu cu tài nguyên hay các thao tác
UrlAuthorizationModule dùng đ xác nhn quyn truy cp đc cu hình
trong web.config (nm t rong th <authorization>) đ bo đm các quyn
truy cp trong tp tin hay th mc.

×