:
B ng 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
â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
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 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 .
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
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
• 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
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
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