Ng 2.4: Các th uc tính Public static đ cđ nh ng ha trong p

Một phần của tài liệu nghiên cứu bảo mật asp.net. ứng dụng trong thiết kế website khoa cntt (Trang 34)

:

Bng 2.4: Các th uc tính Public static đ cđ nh ng ha trong p

FormAuthentication.

Ph ng th c Public Mô t

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

kh u h p l , false n u không h p l .

Authenticate

Tr v m t đ i t ng FormsAuthenticatonTicket,

d a vào danh sách mã hóa có đ c t HTTP cookie

Decrypt

Tr v m t chu i mã hóa quy n truy c p thích h p

cho vic s d ng HTTP cookie d a vào

FormsAuthenticationTicket 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

HU

TEC

H

Kh i t o FormsAuthentication b ng cách đ c trong

t p tin c u hình và khai thác giá tr cookie và chìa

khóa mã hóa cho ng d ng.

Initialize (adsbygoogle = window.adsbygoogle || []).push({});

ây là mt hàm n p ch ng. a tr c ti p quy n

truy c p ng i dùng đ n đ a ch URL ban đ u.

RedirectFromLoginPage

Hà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.

Các thu c tính Public Mô t

Tr v đ ng d n mà cookie đ c t o ra.

CookiePath

Tr v ngày/th i gian mà cookie h t h n.

Expiration

Tr v true n u cookie h t h n.

Expired

Tr v true n u m t cookie đ c s d ng.

IsPersistent

Tr v ngày/th i gian mà cookie đ c dùng ban đ u.

IssueDate

Tr v tên đ ng nh p k t h p v i quy n truy c p

trong cookie. Mt giá tr dài 32 bytes đ c l u

trong cookie. Name

Tr v m t chu i đ nh ngh a ng d ng mà nó đ c l u trong cookie.

UserData

Tr v s byte phiên b n dùng trong t ng lai

Version

B ng 2.6 : Các thu c tính public đ c đ nh ngh a trong

FormsAuthenticationTicket (adsbygoogle = window.adsbygoogle || []).push({});

Thu c tính Public Description

Tr v l ai nh n d ng (Trong tr ng h p dùng

xác nh n quy n b ng Forms).

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

HU

TEC

H

2.4.7 Passport authentications.

2.4.7.1 C u trúc t ng quan.

Passport 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 nng 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 .

HU

TEC

H

Passport có hai ph n Passport sign-in và profile c a ng i dùng. Sign-in

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 . (adsbygoogle = window.adsbygoogle || []).push({});

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 .

HU

TEC

H

Hình 2.7 : NET Passport Sign-in, N i ng i dùng đ ng nh p vào đ truy xu t tài

nguyên c a ng d ng web

Ngay khi ng i dùng có ID, thì khi ng i dùng mu n truy xu t tài nguyên đ 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

HU TEC 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 Ki m tra đ ng nh p Sai

Passport ghi/c p nh t cookie trong Passport.com

úng

Passport tìm ki m v trí khóa mã hóa gi i mã đ c d ch b i trình qu n lý passport

Passport gi i mã chu i thông tin truy v n và làm cho nó có hi u l c trang thành viên

K t thúc x lý, vô hi u trang ng i dùng mu n truy c p

Sai

Hình 2.8 : Mô hình làm vi c c a Passport

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.

• ng kí trang web v i d ch v Passport. • T i, cài và đ nh d ng SDK passport.

• Trong khi ki m tra trang web c a ng i s d ng, ng i s d ng không (adsbygoogle = window.adsbygoogle || []).push({});

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

HU

TEC

H

ng i s d ng xác nh n các k t qu phát tri n d a vào .NET Passport

Server mà không cn tury xu t đ n s nh n di n ng i dùng th gi i

th c c a NET Passport.

• nh d ng trong t p tin web.config

2.4.7.3 Th c thi b o m t đ i v i Passport.

L p PassportIdentity t o ra m t th c th đ i t ng PassportIdentity

LogoTag2 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.

<authentication mode=”Passport”> <passport redirectURL=”login.aspx” /> </authentication>

using System.Web.Security; ...

public class Default : System.Web.UI.Page {

public PassportIdentity pass;

private void Page_Load(object sender, System.EventArgs e)

{

pass = (PassportIdentity)User.Identity; }

HU

TEC

H

Cú pháp c a ph ng th c LogoTag2 : public string LogoTag2(string

strReturnUrl, int iTimeWindow, bool fForceLogin, string strCoBrandedArgs, int

iLangID, bool fSecure, string strNameSpace, int iKPP, bool bUseSecureAuth);

• Tham s strReturnUrl là m t giá tr l a ch n nó thi t l p v trí URL mà

Login server chuyn đ n ng i dùng sau khi đ ng nh p .NET Passport

thành công (adsbygoogle = window.adsbygoogle || []).push({});

iTimeWindow là m t s nguyên tính b ng giây. Ch ra kho n th i gian mà ng i dùng signed in sau cùng. Giá tr này ph i trong kho n 100-1.000.000

• Các tham s khàc c a LogoTag2 : [ForceLogin], [coBranArgs], [lang_id],

[bSecure], [NameSpace], [KPP], và [SecureLevel] ch đ nh ng i dùng có

b t bu c đ ng nh p hay không, ch ra đ a ch nhãn nh (image), qui đ nh

ngôn ng dùng trong .NET Passport, có truy c p qua SSl hay không

Có ba l a ch n m c b o m t cho đ ng nh p .NET Passport là

Giá tr SecureLevel Mô t

0 Giao din đ ng nhp đáp ng HTTP t .NET Passport

domain authority 0 (default).

10

Giao din đ ng nh p đáp ng HTTP t .NET Passport

domain authority. Yêu c u r ng URL tr v là m t HTTPS

URL; m c khác s xác nh n là th t b i

100

Giao din đ ng nh p đáp ng HTTPS t .NET Passport domain authority, và tin trình đ ng nh p yêu c u có PIN đ thêm vào password

B ng 2.8 : Các m c b o m t c a .NET passport

pass = (PassportIdentity)User.Identity;

string returnURL = "http://phptr/default.aspx"; string logo = pass.LogoTag2(returnURL,

10000,true,null,1033,false,Context.Request.ServerVariables["SERVER_NA ME"],0, false);

HU

TEC

H

Ng i dùng có th nhúng h p tho i sign-in vào trong trang web c a ng i s d ng

thay vì ph i đ a ng i dùng đ n trang .NET Passport-hosted sign-in. T o nên tính linh đ ng khi thi t k ng d ng web. Hai h p tho i sign-in là Standard inline và Compact.

Hình 2.9 : H p th ai sign-in c a passport

L i ích c a vi c s d ng xác nh n passport là có th truy c p thông tin c a

ng i dùng, n u ng i dùng cho phép thông tin c a mình đ c truy xu t khi đ ng kí .NET Passport. Nh ng Passport User ID (PUID) c a ng i dùng đ c truy xu t

b ng Name hay các thu c tính HesPUID trong l p PassportIdentity. Có th dùng PUID nh là index đ l u thông tin ng i dùng trên trang web ng d ng. M t s

thu c tính khác dùng đ truy xu t thông tin ng i dùng nh là FirstName, LastName, NickName, Gender, Birthdate, PreferredEmail, TimeZone, Occupation và Country.

So sánh Form/Passport (adsbygoogle = window.adsbygoogle || []).push({});

HU

TEC

H

• H tr th m đ nh quy n d a vào vi c l u tr d li u truy n th ng nh :

c s d li u SQL, Active Directory.

• H tr c p phép cho các role-based đ c tìm ki m trong d li u l u tr

(data store).

• K t h p ph ng v i giao di n web ng i dùng.

• ASP.NET cung c p nhi u ch c n ng công c . Nên mã l p trình t ng đ i ít so v i ASP c .

Thu n l i c a Passports Authentication.

• Passport là gi i pháp t p trung.

• Duy chuy n các credential đ c t o ra t ng d ng.

• Có th dùng role-based authorization schemes

HU TEC H CH NG 3 : CÁC BI N PHÁP B O M T TRONG ASP.NET 3.1 B o m t đ ng truy n.

Nhi u ng d ng truy n nh ng d li u nh y c m qua m ng đ n ng i dùng

và gi a các nút ng d ng v i nhau. D li u nh y c m có th bao g m quy n truy

c p tài nguyên, ho c th tín d ng, phiên giao d ch trong ngân hàng, đ b o v b o

v d li u không b l và không b thay đ i trong khi truy n, ph i có bi n pháp b o

m t gi a các kênh truy n

B o m t kênh truy n th c hi n hai ch c n ng sau:

Privacy : là m t khái ni m b o đ m d li u v n gi kín và tin c y và

không b xem tr m b i các ph n m m giám sát m ng. Privacy th ng

dùng mã hóa

Integrity : b o mât kênh truy n ph i b o đ m r ng d li u đ c b o v

ng u nhiên ho c làm gi m kh n ng c ý trong khi truy n. Intergrity th ng s d ng Message Authentication Codes(MACs).

3.1.1 Các k thu t b o m t trên kênh truy n

Secure Sockets Layer / Transport Layer Security (SSL/TLS). ây là

k thu t b o m t ph bi n nh t đ b o m t kênh truy n gi a browser và

máy ch Web. K thu t này c ng có th dùng b o m t kênh truy n gi a Web service và c s d li u.

Internet Protocol Security (IPSec). IPSec cung cung c p gi i pháp b o (adsbygoogle = window.adsbygoogle || []).push({});

m t kênh truy n m c ph ng ti n và dùng đ b o m t d li u g i đi

gi a hai máy tính ví d nh gi a máy ch ng d ng và máy ch c s

d li u.

Remote Procedure Call (RPC) Encryption. Giao th c RPC dùng cho

các ng d ng phân tán COM (DCOM) cung cp m c truy c p mà k t

qu là mã hóa m i gói tin d li u truy n đi gi a client và server.  Mô hình làm vi c

HU

TEC

H

Hình 3.1 Mô hình làm vi c c a ng d ng

Khi m t client yêu c u t i m t tài nguyên nó s đi qua m t s kênh truy n.Nh

liên k t client và máy ch web có th qua Internet hay Intranet dùng HTTP. Hai

liên k t còn l i là liên k t trong ph m vi domain.

Hình 3.2 : Mô hình tri n khai ng d ng web v i b o m t kênh truy n

Các k thu t này d a và nhi u y u t : giao th c truy n, k thu t end point, môi tr ng trong ng d ng (thi t b , h đi u hành, t ng l a…).

3.2 Mã hóa.

Mã hóa cung c p các ch c n ng sau:

Confidentiality. b o đ m cho nh ng d li u cá nhân. Confidentiality đ c

s d ng đ mã hóa. Gi i thu t mã hóa (s d ng các khóa đ mã hóa) đ c dùng đ chuy n đo n ký t có ngh a thành đo n ký t vô ngh a. Gi i thu t mã hóa đ i x ng dùng cùng m t khóa cho vi c mã hóa và gi i mã trong khi gi i

thu t mã hóa không đ i x ng s d ng m t c p khóa public/private.

Data integrity. b o v d li u trong tr ng h p có s c ho c b phá ho i.

Integrity đ c s d ng nh nh ng đo n mã xác minh hoc các hash (b ng b m). M t hash là m t b ng đánh s chi u dài c đ nh có đ c t m t chu i

HU

TEC

H

m t kênh an toàn. D li u nh n đ c s đ c chuyn thành m t hash đ so

Một phần của tài liệu nghiên cứu bảo mật asp.net. ứng dụng trong thiết kế website khoa cntt (Trang 34)