Nêu không thành công trong vic xâm nh p, thì DoS là ph ng tiên cu i cùng đ t n công h th ng... 2.4.5 Windows authentication.. Khi dùng Windows authentication, vic... Ch n your applicatio
Trang 2H U
H
Trang 3c 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
Trang 4H U
H
-
K thu t công ngh , Ngày tháng n m 2005
Giáo viên h ng d n
Trang 5H U
H
-
K thu t công ngh , Ngày tháng n m 2005
Giáo viên ph n bi n
Trang 6H U
H
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 : ………
Trang 7H U
H
Trang 8H U
H
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
Trang 9H U
H
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
Trang 10Cá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 tc 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
Trang 11th 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 cng 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
Trang 12H U
H
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 cp 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
Trang 13H U
H
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 ging 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
Trang 14â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
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
Trang 15ây là nguyên nhân to 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
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
Trang 16H U
H
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 bo 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
Trang 17H U
H
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 cp 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
Trang 18vi 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 vic 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à vic 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
Trang 19Vi 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
Trang 20H U
H
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]” />
<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>
Trang 21H U
H
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 ca 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]” : Cha đ 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
Trang 22H U
H
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)
Trang 23danh 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 cp 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 mt 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 quyn 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
Trang 24User : 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
Trang 25m 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 quyn 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
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
dch 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 nhp 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 (nm t rong th <authorization>) đ b o đ m các quy n truy c p trong t p tin hay th m c
Trang 26H U
H
i v i xác nh n quy n b ng Windows, FileAuthorizationModule (mô
hình HTTP khác) ki m tra đ i t ng g i có các quy n truy c p c n thi t đ truy c p ngu n tài nguyên D u hi u truy c p đ c so sánh v i ACL đ b o
v tài nguyên
Quy n s d ng tài nguyên (role) c ng có th dùng khai báo ho c l p trình
b o đ m r ng yêu c u truy c p đu c xác nh n đ truy c p tài nguyên hay
th c hi n yêu c u thao tác
• Mã trong ng truy c p các ngu n tài nguyên cc b hay t xa b ng m t
nh n d ng c th M c đ nh, ASP.NET th c hi n không impersonation và
k t qu là ASP.NET đ c c u hình đ x lý vi c nh n d ng truy c p Thay
đ i l a ch n g m nh n d ng đ i t ng g i đ u tiên n u impersonate đ c
s d ng nh n d ng c u hình service
2.4.5 Windows authentication
Khi c u hình ASP.NET cho xác nh n Windows, IIS xác nh n ng d ng c a
ng i dùng b ng vi c xác nh n Basic, xác nh n Intergrated Windows, xác nh n Digest, ho c xác nh n Client Certificate Ng i phát tri n web không ph i vi t b t
c đo n mã xác nh n nào C hai xác nh n Intergrated Window và xác nh n Client Certificate cung cp vi c th m đ nh quy n m t cách m nh m tr phi ng i s
d ng có c s h t ng PKI và client có s ch ng nh n
dùng Windows authentication v i ASP.NET, ng d ng web ph i có m t tài kho n Window đ c xác nh n b i máy ch Nh ng tài kho n này có th là m t tài kho n Windows c c b ho c tài kho n trong domain IIS xác nh n ng i dùng và truy n d u hi u Window cho vi c xác nh n ng i dùng m i khi có m t yêu c u web
C u hình Windows ACLs cho File Authorization
Nh ng yêu c u cho các lo i t p tin đ c ánh x đ n ASP.NET ISAPI đ c
ki m tra b i FileAuthorizationModule Khi dùng Windows authentication, vic
Trang 27H U
H
xác nh n quy n truy c p c a ng i dùng đ c so sánh v i ACL kèm theo khi yêu
c u truy xu t t p tin, IIS th c hi n ki m tra l n n a d u hi u xác nh n ng i dùng
và ACL kèm theo tp tin Nhà phát tri n ng d ng c n k t h p ACL trên nh ng
lo i t p tin tr c ti p đ c yêu c u b i ng i s d ng và trên ngu n tài nguyên khác đ c truy c p b i ng d ng
• Nh ng ngu n tài nguyên đ c yêu c u tr c ti p b i ng i s d ng : nh ng ngu n tài nguyên nh : Web pages (.aspx), web service (.asmx) đ c yêu
c u tr c ti p t ng i dùng, d u hi u xác nh n quy n h n c a ng i dùng
đ c so sánh v i Windows ACL kèm theo t p tin Và b o đ m r ng ng i dùng đ c c p quy n truy c p web page và web services
• Nh ng ngu n tài nguyên mà ng d ng truy c p : N u impersonation đ c
s d ng, ngu n tài nguyên nh : t p tin, c s , d li u, registry keys và Active Directory đc truy c p b ng vi c s d ng nh n d ng impersonation M c khác nh n d ng x lý c a ng d ng nh là tài kho n Network Service đ c dùng cho truy c p tài nguyên Khi truy c p ngu n tài nguyên thành công, ACL g n kèm nh ng ngu n tài nguyên này ph i đ c
c u hình thích h p cho phép x lý tài kho n ho c nh n d ng impersonation
nh cho phép đ c, hay cho phép ghi
N u ng i dùng yêu c u m t tài nguyên đ c b o v thì IIS s xác nh n ng i dùng và gán các biu h i n b o cho nó ASP.NET dùng d u hi u nh n d ng quy n truy c p đ quy t đ nh yêu c u đ c cho phép hay không, Ng i dùng có th dùng impersonation đ gi i h n hay cho phép truy c p ngu n tài nguyên đ c b o v
N u impersonation đ c s d ng, ASP.NET đóng vai ng i dùng b i d u hi u
b o m t đ c gán v i yêu c u Sau đó ki m tra xem ng i dùng có đ c c p quy n truy xu t tài nguyên hay không N u truy xu t đ c c p, thì ASP.NET s
g i tài nguyên đ c yêu c u thông IIS, ng c l i nó g i thông báo l i đ n ngu i dùng
xác nh n quy n ch đ Windows c u hình trong web.config
Trang 28L y m t giá tr đ ch ra vi c tài kho n ng i dùng đ c
nh n di n nh là m t tài kho n n danh b i h t th ng hay không
IsAnonymous
L y m t giá tr đ ch ra vi c ng i dùng đ c ch ng th c
b i window hay không IsAuthenticated
L y ra m t giá tr đ ch ra vi c tài kho n ng i dùng đ c
nh n di n nh m t tài kho n Guest b i h th ng hay không IsGuest
L y m t giá tr đ ch ra vi c tài kho n ng i dùng đ c
nh n di n nh m t tài kho n h th ng b i h th ng hay không
IsSystem
L y tên đ ng nh p c a window ng i dùng Name
L y bi u hi n tài kho n windows c a ng i dùng Token
B ng 2.1 : Các thu c tính trong l p WindowsIdentity
Tr v m t đ i t ng windowIdentity đ i di n cho
m t ng i dùng Windows Anonymous
GetAnonymous
Tr v đ i t ng windowsIdentity đ i di n cho ng i dùng window hi n t i
Trang 29Ví d :
String isAuthentication = User.Identity.IsAuthenticated;
String name = User.Identity.Name;
String AuthenticationType = User.Identity.AuthenticationType;
Khi ng i dùng truy c p ngu n tài nguyên đ c b o m t thì h p tho i sau s thông báo đ yêu c u nh p tên đ ng nh p (username) và m t kh u (password)
Hình 2.4: Màn hình đ ng nh p khi dùng Windows Authentication
Trang 30H U
HHình 2.5: Quá trình c p quy n truy c p d ng b o m t Forms
Ng i dùng đ a ra m t yêu c u đ n trang Default.aspx
Vì đây là b o m t d a quy n truy xu t Form c a HTML nên không k t h p v i
nh n d ng thông qua IIS vì v y IIS cho phép truy c p n danh (Anonymous access) s không ki m tra yêu c u này ASP.NET s tìm trong th
<authorization> trong web.config và ki m tra th y th < deny users=”?”> vì
th client không đ c truy xu t đ n trang Default.aspx
Yêu c u c a client đ c đ a đ n trang đ ng nh p (Login.aspx) đ ki m tra
quy n truy c p đ c ch đ nh b i thu c tính loginUrl trong th <forms>
Client s cung c p các thu c tính đ xác đ nh quy n truy c p (credentials)
và đ a đ n form đ ng nh p
Các credential đ c ki m tra d a vào d li u l u tr (SQL hay Active Directory) và tìm quy n truy c p thích h p cho client
Client đ c đ a đ n trang Default.aspx m t l n n a
M t cookie đ c t o b i m t FormsAuthenticationTicket và g i v cho
client Các quy n truy c p (roles) đ c l u tr trong ticket Vi c l u danh
sách quy n truy c p trong ticket , client tránh ph i truy c p d li u đ truy
Trang 31o ASP.NET ki m tra th <authorization> và tìm th <deny
users=”?”> Tuy nhiên l n này ng i dùng đã đ c th m đ nh quy n
o ASP.NET ki m tra th <authorizatin> và b o đ m r ng ng i
dùng đ c quy n truy xu t trang Default.aspx hay không
Các b c đ xây d ng b o m t theo d ng Form
1 C u hình IIS cho truy c p n danh
2 C u hình ASP.NET cho Forms Authentication
3 T o form đ ng nh p và ki m tra credential
4 Tìm danh sách vai trò t đ li u l u tr
5 T o Forms Authentication ticket đ l u tr vai trò trong ticket
6 T o đ i t ng Iprinciple
7 t trong đ i t ng Iprinciple trong HTTP context
8 Xác nh n các quy n truy c p tài nguyên d a trên name/role membership
C u hình IIS cho truy c p n danh (Anonymous access)
1 Kh i đ ng Information Services administration tool
2 Ch n your application’s virtual directory, click ph i, sau đó ch n
Properties
3 Click Directory Security
4 Trong nhóm Anonymous access and authentication control , ch n Edit
5 Ch n Anonymous access
Trang 32<user name="Name1” password="Password1" />
<user name="Name2" password="Password2" />
…
<user name= “Namen” password=”Passwordn”>
</credentials>
L u các credentials trong c s d li u
UserID UserName Password Role
Ki m tra các credentials
L p FormsAuthentication cung c p hàm Authenticate t đ ng ki m tra trong web.config
Trang 33Hàm ki m tra do ng i s d ng t o ra ví d : bool isAuthentication hàm này s
ki m tra trong c s d li u có tài kho n này hay không
• T o m t đ i t ng IPrincipal trong HTTP context hi n hành
FormsAuthenticationTicket authTicket = new
roles ); // User data
// Encrypt the ticket
HttpCookie authCookie = new
HttpCookie(FormsAuthentication.FormsCookieName,
encryptedTicket);
Namespace System.Web.Security ch a t t c các l p dùng đ th c thi b o
m t ASP.NET
Trang 34Cung c p thông tin trình bày trong cookie đ c dùng b i FormsAuthenticationModule
FormsAuthenticationTicket
Cung cp m t l p d n xu t dùng b i FormsAuthentication và cho phép ng d ng truy
xu t cookie authentication ticket
FormsIdentity
Cung c p d li u cho s ki n FormsAuthenticationEventArgs
FormsAuthentication_OnAuthenticate
B ng 2.3 : Các l p đ c h tr b i NET Framework
Tr v tên cookie đ c đ nh d ng cho
ng d ng hi n th i
FormsCookieName
Tr v đ ng d n cookie đ c đ nh
d ng s d ng cho ng d ng hi n th i FormsCookiePath
B ng 2.4 : Các thu c tính Public static đ c đ nh ngh a trong l p
FormAuthentication
Ki m tra tên đ ng nh p và m t kh u d a vào danh sách các tên đ ng nhp và m t kh u l u trong t p tin c u hình Tr v true n u tên đ ng nh p và m t
Encrypt
ây là m t hàm n p ch ng T o cookie cho quy n truy c p d a vào tên đ ng nh p
GetAuthCookie
Tr v m t đ a ch tr c ti p URL cho yêu cu ban
đ u không đ c ch p nh n khi đ a đ n trang đ ng
nh p N u không có đ a ch URL ban đ u thì s dùng trang m c đ nh là default.aspx
GetRedirectUrl
Th t c b m m t kh u thích h p cho vi c l u tr trong các t p tin c u hình, d a vào m t m t kh u và
m t chu i ch đ nh l ai k thu t b m
HashPasswordForStoring-InConfigFile
Trang 35Hàm np ch ng T o quy n truy c p cho tên đ ng
nh p và kèm nó kèm nó theo t p các cookie g i ra ngòai
SetAuthCookie
Xóa quy n truy c p tài nguyên b ng m t SetForms
v i m t giá tr r ng d vào quy n truy c p ng i dùng
SignOut
B ng 2.5 : Các ph ng th c Public static trong l p FormsAuthentication
AuthenticationType
Indicates whether authentication took place
IsAuthenticated
Tr v tên đ ng nh p Name
Tr v FormsAuthenticationTicket k t h p v i yêu c u hi n hành
Ticket
B ng 2.7 : Các thu c tính public đ c đ nh ngh a trong FormsIdentity
Trang 36Passport là m t d ch v xác nh n riêng l (single sign -in - SSI) m t tên và
m t m t kh u (password) t p trung cung c p b i Microsoft v i m c đích là làm cho cho nhng ng i s d ng internet c m th y thân thi n h n Khi s d ng passport ch c n m t s thông tin c b n nh m t tên đ ng nh p, m t m t kh u,
m t email, m t đ a ch , m t s đi n tho i là ng i s d ng có th truy xu t các ngu n tài nguyên b o m t c a nhi u trang web khác nhau mà không c n nh đ n nhi u tên đ ng nh p và m t kh u, passport đ c ng d ng trong các web đa
th ng m i khi mà có nhi u tên đ ng nh p và m t kh u mà ng i dùng ph i nh Các thông tin ca ng i dùng đ c Microsoft dùng các công ngh mã hóa nh Secure Socket Layer (SSL) và thu t toán 3DES đ b o v d li u
Passport là dch v xác nh n d ng form Khi ng i dùng yêu m t ngu n tài nguyên đ c b o m t (dùng HTTP Get Request) , ASP.NET ki m tra xem ng i dùng có Passport ticket h p l hay không thông qua profile N u không h p l ,
ng i dùng đ c chuy n đ n d ch v đ ng nh p Passport, n i mà ng i dùng ph i
đ ng nh p các thông tin (đ a ch email/password) N u nh ng credential nh p vào
là h p l , d ch v đ ng nh p Passport d n ng i dùng đ n tài nguyên đ c b o v
N u không thì ng i dùng ph i đ ng kí thông tin c a mình r i m i đ c chuy n
đ n ngu n tài nguyên đ c b o v
Hình 2.6: Trang ch c a Micorsoft Passport
Trang 37H U
H
Passport có hai ph n Passport sign-in và profile c a ng i dùng Sign-in là
môt đ a ch email c th trong passport.com hay hotmai.com, mà dù ng i dùng
có th đ ng ký đ a ch v i b t kì domain nào Trong khi nó không c n thi t ph i là
m t đ a ch mail h p l , các trang web có th ki m tra xem n u nh đ a ch c a
ng i s d ng là h p l qua profile ,vì v y ng i s d ng có th b t ch i d ch
v
Vi c ki m tra x lý này h i y u và trong th c t nó đ a đ n m t trang client đ ki m tra, m c dù Passport có kh n ng ki m tra nó Vi c này đ c dùng nhi u h n vì nó s g i e-mail t i n i đ ng kí e-mail c a ng i s d ng v i m t đ a
ch liên k t có ch đo n script đ ng i s d ng kh ng đ nh l i m t l n n a là đ a
ch e-mail c a mình là h p l qua e-mail mà Passport g i t i Ví d có th l u tr
nh n d ng ng i dùng d a trên ID truy n đ n Trong tr ng h p sau khi ki m tra
đ a ch , có th thay đ i thu c tính c trong profile c a ng i dùng đ ch ra ngu i dùng đã đ c ki m ch ng
Profile c a ng i s d ng không có gì h n là n i ch a đ ng thông tin c a
ng i s d ng trên máy ch c a Passport Nó ch a tên ng i dùng, đ a ch e-mail , thành ph … nh ng th này không có th có ho c không có s n mà ph thu c vào
ng i dùng ch n đ chia s thông tin v i các trang web khác Và ng i dùng đ c
b o đ m r ng s nh n đ c m t Passport User ID (PPUID) duy nh t đ nh n d ng
ng i dùng trong ph m vi h th ng c a Passport và nên ph c v nh là m t ch c
n ng chính đ nh n di n ng i s d ng trong ph m vi h th ng l u tr
Trang 38đ c b o v đ n m t trang web nào đó s d ng đ ng nh p đ ng kí Passport ASP.NET s ki m tra s h p l b ng cách liên k t t i trang passport đ ki m tra xem ID c a ng i dùng có t n t i hay không đ c p quy n truy c p tài nguyên cho
ng i s d ng
Passport dùng cookie đ l u tr m t ticket ch PPUID và timestamp information
M t cookie đ c ghi trong m t ví trí trong domain c a thành viên và m t đ c
l u trong domain ca Passport.com Thông tin trong ticket có th s d ng đ
quy t đ nh n u nh ng i dùng v n đ c xem là h p l b ng vi c xem l i th i h n
c a ticket, n u không ng i dùng có th b nh c nh ho c ép bu c qua UI m t l n
n a
Trang 39H U
H
Ng i dùng kh i t o x lý đ ng nh p ( Nh n nút đ ng nh p)
a ng i dùng đ n trang đ ng nh p Passport.
Nh n siteID và v trí domain
Ki m tra s h p l SiteID/Domain
úng
Ng i dùng cung c p thông tin đ ng nh p
• Trong khi ki m tra trang web c a ng i s d ng, ng i s d ng không
th dùng các Passport Account thông th ng Mà thay vào đó, đ ki m tra SDK ng i s d ng ph i đ a ra m t Preproduction Passport Account, hay khoá Preproduction Môi tr ng Preproduction cho phép
Trang 40LogoTag2 là m t ph ng th c c a PassportIdentity tr v m t đo n HTM mà nó
g m có m t th <img> đ liên k t t i Microsoft NET Passport Liên k t này s
hi n th đ ng nh p (Sign-In) n u ticket trong cookie không đ c tìm th y ho c Sign Out n u Ticket trong cookie đ c tìm th y
public PassportIdentity pass;
private void Page_Load(object sender,