1
I HC BÁCH KHOA HÀ NI
VIN CÔNG NGH THÔNG TIN VÀ TRUYN THÔNG
ĐỒ ÁN MÔN HỌC
XÂY DỰNG CÁC ỨNG DỤNG PHÂN TÁN
CƠ CHẾ ĐĂNG NHẬP MỘT LẦN - SINGLE SIGN ON
Sinh viên thc hin : Phùng Vũ Nhật Duy
Lp Truyn Thông Mng K53
ng dn : PSG.TS Nguyễn Linh Giang
HÀ NI 11 - 2012
2
MỤC LỤC
I. Cơ sở lý thuyết 3
1. Cơ chế đăng nhập một lần - Single Sign On 3
1.1. Khái niệm 3
1.2. Lợi ích 4
1.3. Các mô hình Single Sign On 4
2. Xác thực Kerberos 5
2.1. Khái niệm 5
2.2. Cách hoạt động 7
II. Xây dựng thử nghiệm Kerberos 12
1. Môi trƣờng Windows 12
2. Môi trƣờng Unix/Linux 16
III. Kết luận 25
TÀI LIỆU THAM KHẢO 26
3
I. Cơ sở lý thuyết
1. Cơ chế đăng nhập một lần - Single Sign On
1.1. Khái niệm
p mt ln (Single Sign On - SSO) kim soát truy cp, i
dùng mun truy cp vào nhiu dch v, thay vì php vi s dch v, ngi
dùng s ch cp mt ln duy nht.
vi
ch
i dùng
4
1.2. Lợi ích
Vi s tin dng c ng nhp mt ln các li ích sau:
Tránh vi nhiu dch v.
Tit king thi gim chi
phí.
1.3. Các mô hình Single Sign On
a. Mã đăng nhập một lần
p mt ln (One-time password token OTP token) là mng thc mà
i mi li dùng s c cp mt password mi. Np
truyn thi dùng ch có mt password c nh và rt d tr thành nn nhân ca tn công nghe lén,
thì v có giá tr mt ln và s không tn ti lâu.
m duy nht c password rt phc tp và có th gây phin phc khi
i dùng thc hip.
b. Mô hình SAML
SAML (Security Assertion Markup Language) là gii pháp da trên ngôn ng XML (eXtensible
Markup Language) cho vii thông tin xác thc gia nhà cung cp dch v và doanh nghip. Khi
i dùng gi mt dch v hoc tài nguyên, nhà cung cp xác thc s cp chng thi dùng. Sau
p dch v s da vào thông tin chng th cung cp quyn truy cp dch v hay tài
i dùng.
c. Smart card
Mô hình Smart card (Th thông minh) s dng các thông tin chng thc cha trong th xác thc
s dng các loi th này cn phi có các thit b chuyên dng.
Th bo him y t ti Pháp
5
d. Kerberos
Kerberos là mt giao thc chng thc mc phát trin trong d án Athena ca hc vin công
ngh Massachusetts (MIT). Tên ca giao thc ly t tên cu Cerberus canh
gác ca ngc trong thn thoi Hy Lp.
Nó m bo tính toàn vn và tính mt cho thông tin truy dng mã hoá bí m
Mô hình này hin th 5 và có th tring Windows
n lý thuyt chi tit v mô hình này.
2. Xác thực Kerberos
2.1. Khái niệm
Kerberos là mt giao thc m xác thc trong các mng máy tính hong trên nhng
ng truyc công khai t chng thc mnh cho các ng
dng mng phân tán; nó cho phép các thc th truyn thông trong mng chng
thc ln nhau mà vm bo an toàn. Mc tiêu khi thit k giao thc này là nhm vào mô hình
client/m bo chng thc cho c 2 chiu.
Các h u hành Windows 2000, Windows XP và Windows Server 2003 và sau này s dng mt
phiên b xác thc. H dng Kerberos
trong các phiên bn Clients và Server ca mình.
6
Một số thuật ngữ chính:
a. Service Server (SS): Máy chủ dịch vụ (Mail server, File server, Application server, …)
b. Realm, Principal, Instance
Principal: bi dùng, máy tính hay dch v c cung cp dch v bc gi là Kerberos
principal.
Instance: (thc th) c s dng bi các principal có quyn qun tr
Realm: tên min chng thc
Cu trúc chung ca mt principal ca Kerberos là username/instance@Realm
VD: Duy/ là mt principal c
instance và TTMK53.COM là realm.
c. Key Distribution Center (KDC)
Kerberos không xây dng các giao thc chng thc phc tp cho mi máy ch mà hong da trên
mt máy ch chng thc tp trung KDC (Key Distribution Center). i khóa, cung
cp khóa (vé) cho vic chng thi dùng và bo mt truyn thông bi khoá phiên trong vé. KDC gm 3
phn:
Máy ch chng thc AS (Authentication Server) bit khoá mt ca tt c
trên ms d liu tp trung.
Máy ch cp khoá TGS (Ticket Granting Server) cung cp vé dch v i dùng truy
nhp vào các máy ch trên mng.
d liu (Database) ca nó
d. Authentication Server (AS)
Khi 1 user (client) mun tham gia vào mt realm ca Kerberos thì thay vì user phi xác thc
vi AS. Khi nhn yêu cu tham gia h thng Kerberos ca user, AS kim tra nhân dnh ca ngi
yêu cu có nm trong c s d liu ca mình không. Nu có thì AS gi 2 gói tin sau ti ngi s
dng:
Gói tin A: "Khóa phiên TGS/client" c mt mã hóa vi khóa bí mt ca ni s dng.
Gói tin B: Ticket-Granting-Ticket (TGT)
e. Ticket-Granting-Ticket (TGT): c cp bi AS, bao gm ID máy client, a ch mng ca client, thi
hn cc mã hóa vi khóa bí mt ca TGS.
7
f. Ticket Granting Server (TGS)
TGS là b phn nhn vé chp thun TGT t user.TGS có nhim v kim tra các vé TGT có giá tr
không bng cách kic mã hóa bi key vi key ca TGT server Kerberos không.Nu
i cho user vé dch v mà user mun s dng.
g. Ticket
c cp bi TGS và máy ch ng dng, cung cp s chng thc cho máy ch ng dng hoc tài
nguyên. Mt vé Kerberos là mt cu trúc d lic mã hóa do KDC t share mt khóa
ca 1 phiên duy nht. Vé to ra có 2 mn danh tính ci tham gia và khi to mt khóa
ngn h 2 bên có th giao tip an toàn (gi là khóa phiên).
ng chính mà mi vé cu có là:
Yêu cu tên ca principal
Tên dch v ca principal
Khi nào thì vé có hiu lc, khi nào vé ht hiu lc (Timestamp, Lifetime)
Danh sách IP mà vé có th c dùng t
Mt c to b m bo rng nhi không có khóa không m
chnh sa nó lên honh danh ca client principal . Bi vì
Kerberos ch xác thc 1 lp thì bt k ai ngu có th
tham gia vào h thng Kerberos. Vì vy, vé trong Kerberos có thi gian tn ti ngn, khong t 10-24h .
u này thun tip 1 ln trong ngày làm vic ca user, hn ch vic tn công ly mt d
liu quan trng.
h. Session Key (SK): khóa phiên, đƣợc sử dụng cho 1 phiên giao dịch giữa client và server.
i. Ticket Cache: Còn đƣợc gọi là Credential Cache, chứa tất cả các khóa (vé) của Kerberos.
2.2. Cách hoạt động
Giao thức Kerberos hoạt động khá phức tạp, về cơ bản đƣợc thực hiện qua ba giai đoạn. Trong
ví dụ dƣới đây, ngƣời dùng U đăng nhập vào máy trạm Client và yêu cầu truy nhập tới máy chủ S.
8
Giai đoạn1: Người dùng U kết nối với AS để lấy vé xin truy nhập TGS (Ticket Grant Server)
Truyn thông vn khu cp, nhm ly v d liu chng
th y v chng thc cho các máy ch khác mà không phi nhp li khoá bí
mt ca client. Khoá bí mt cc s dng cho c vic mã hoá và gii mã.
1. i dùng U p vào h thng, username và password vào máy client. Bng thu
máy client s chuyi mt khu thành khoá mt (secret key) ca i dùng U. Client gi yêu
cu xin cp TGT ti AS
2. AS s truy l d liu, ly khoá bí mt ca U, gii mã phn d liu tin chng thc, kim tra
có hp l không. Nu có, AS gi li dùng U:
Gói tin A: Khóa phiên TGS/clientClient/TGS Session Key) c mã hóa vi khóa mt ca
ni s dng.
Gói tin B: Ticket-Granting-Ticket (TGT): ID ca ch mng ca client, thi hn ca
vé và Khóa phiên TGS/client c mã hóa vi khóa bí mt ca TGS.
3. Khi máy client nhc hai gói tin A và B, nó s gii mã gói tin A vi khóa m
password ci dùng. Nu password ci dùng nhp vào client không trùng vi password trong
AS, mã mt ci dùng s không th gic li, nu password trùng
kh i dùng s dùng khóa mt (secret key) c gi
. (máy client s không th gic mã hóa bi khóa mt ca TGS).
9
Giai đoạn 2: Truyền thông với máy chủ cấp vé dịch vụ TGS, lấy về service ticket truy nhập máy chủ S
4. Khi yêu cu dch v, máy client s gi 2 gói tin ti Ticket Grant Server
Gói tin C: Cha Ticket-Granting-Ticket (t gói tin B) và ID ca dch v yêu cu .
Gói tin D: Authenticator (B d liu chng thc) c mã hoá bng Khóa phiên TGS/client, gm
ID i dùng và tem thi gian. Authenticator ch s dng mt ln và có hiu lc trong mt thi
gian ngn.
5. Sau khi ly gói tin B t C, TGS s dùng khóa mt c gii mã gói tin B, ly ra
gii mã gói tin D( Authenticator), kim tra tính hp l. Nu hp lm bo chc
chn ri gi chic vé chính là ch nhân thc s ca nó gi 2 gói tin ti máy client:
Gói tin E: Vé Client/Server (Client-to-c mã hóa bi khóa mt ca dch v,
vé này bao ga ch mng ca client, thi h
(client/server session key).
Gói tin F: c mã hóa v
10
Giai đoạn 3: Truyền thông giữa người dùng U và máy chủ S, trao đổi dữ liệu
6. Khi nhc gói tin E và F t TGS, máy client s kt nn máy ch dch v S (service server) và gi
2 gói tin:
Gói tin E: c mã hóa bi khóa mt ca dch v
Gói tin G: Authenticator (B chng thc ) mi, bao gm ID máy client, nhãn thi gian. Gói tin này
c mã hóa b
7. Máy ch S s dùng mã mt ca nó, gii mã E, l Client/Server gii
mã Authenticator và gi cho client gói tin H
Gói tin H: nhãn thi gian trong Authenticator ca client cng vc mã hóa vi
8. Máy client gii mã gói tin H bng hoá phiên , xác minh nhãn thi gian trong c cp
nh. Nc cp nhng 1), kt ni truyn thông s c thc hin và k t
S s bu phc v các yêu cu dch v t i dùng/client.
y, c hai bên Client và Server c chng thc ln nhau, không xy ng hp gi mo
mt trong hai bên tham gia truyn thông.
11
2.3. Đánh giá ƣu nhƣợc điểm
a. Ƣu điểm
Theo c m: ci dùng, ca nhà qun tr, nhà phát trin h thng, kh a
Kerberos là:
Tăng sự tiện dụng cho người dùng: i dùng không cn php nhiu ln khi s dng h
thn phi nh quá nhiu mt khu cho các dch v trong h thng. Tt c ch là
mt tài khon cho ht thy các dch v trong h thng.
Hỗ trợ các nhà phát triển hệ thống: SSO cung cp mt framework chng thc chung cho các nhà
phát trin. Vì th h không cn phn chng thc khi xây dng h thng n
các yêu cu gn h thc chng thu này s làm cho các nhà phát trin hoàn toàn
yên tâm v an ninh ca h thc xây dc công vic nng nhc là xây dng an
toàn bo mt cho h thng mi.
Làm đơn giản hoá công tác quản trị: Theo truyn thng, mi ng d d lii dùng
riêng phc v chng thc lp ca nó, nên khi các h thng tham gia vào mng, s
i dùng s t nhanh làm quá ti công vétác qun tr. Vi SSO, mi h thng s
d d lii dùng tp trung vì th công tác qun tr c tp trung hoá, s ng
i dùng git nhiu.
Tăng cường bảo mật: H th chng tho mt truyn thông
trên mng. Gim thiu s ln nhp mt kh an toàn cho h thng vì vi s
ng mt khu nhing ghi mt khu ra xung quanh, d l.
b. Nhƣợc điểm
Bt k h thng bo m chng li tt c các kiu tn công ca hacker, Kerberos
m nh
Khó tích hợp với các hệ thống cũ: ng thì các h thng sn có trong m chng
th d lii dùng riêng. Vì th, vic tích hp h th
h SSO không tránh khi phi sa l th s
d lii dùng.
12
Tấn công ở desktop: c quyn truy nhp ti
i dùng ci khp mà quên không khoá máy
li. H thng SSO ch bo mng truyn mà không bo mt cho d lic khi c
truyn nên mt khu ci dùng rt có kh p, giành
quyn truy nhp h thng.
Điểm yếu trong mạng: Vp mt ln, dch v chng thc s c s dng bi tt c các
ng dng trong mng. Vì th, dch v này rt d b tn công DoS, làm tê lit c h thng.
II. Xây dựng thử nghiệm Kerberos
1. Môi trƣờng Windows
Thử nghiệm chứng thực ngƣời dùng trong Active Directory của Window server 2008
Thêm role Active Directory Domain Service vào Window Server 2008
13
Sau khi cài đặt dịch vụ xong, sẽ hiện ra thông báo nâng cấp lên domain bằng dcpromo.exe
Sau đó, tạo một domain mới trong một forest mới. Chọn next để tiếp tục
Điền tên domain: TTMK53.bk.vn. Chọn next để tiếp tục
14
Tiếp theo, lựa chọn function Window Server 2008 cho forest. Chọn next để tiếp tục cài đặt DNS,
sau đó là thông báo đường dẫn đến các thư mục của hệ thống, tóm tắt thông tin cài đặt. Sau khi cài đặt
xong, sẽ hiện ra thông báo cài đặt hoàn thành
Để Window Server có khả năng chứng thực, cần download và cài đặt Windows Server 2003
Resource Kit Tools tại địa chỉ: . Trong
bộ công cụ này, có sẵn 2 phần mềm dùng để chứng thực Kerberos là kerbtray và klist.
Sử dụng phần mềm để chứng thực user admin: vào chế độ dòng lệnh CMD, gõ lệnh “klist tickets”
và “klist tgt” để xem thông tin ticket
15
Xem thông tin ticket (vé) cho principal qua giao diện, thông tin
gồm tên dịch vụ, thời gian tồn tại của vé, các cờ báo hiệu và loại mã hóa
16
2. Môi trƣờng Unix/Linux
Mô hình gồm 2 máy ảo Ubuntu trong cùng mạng LAN 192.168.1.0/24
UTino : Địa chỉ 192.168.1.11, đóng vai trò KDC, cấp phát chứng thực cho client
Ubuntu1: Địa chỉ 192.168.1.12, đóng vai trò client
2.1. Cấu hình KDC
a. Cấu hình apache2 để tạo realm (tên miền)
- t apache2: #sudo apt-get install apache2
- Các file cc chính ct ti /etc/apache2 bao gm:
apache2.conf: tp cn
port.conf: tp cu hình port
sites-t
sites-c kích hot
- c /etc/apache2/sites-available, tc sites-available thc hin file
site1, copy file default-n file site1-ssl, nhm to mt site riêng
#cd /etc/apache2/sites-available
#sudo cp –f default site1
#sudo cp –f default-ssl site1-ssl
- c /etc/apache2/sites-available, sau khi vào file site1 bng lnh
#sudo nano site1
cu hình tu hình tên mic cha localhost mnh là
/var/www, i thành /etc/opt/site1.
17
T bây gi file localhost mnh nm t
sau:
- Kích hot site1 va to : #sudo a2ensite site1
- Cu hình SSL cho site1: #sudo nano site1-ssl, ti tên mic cha localhost ging file
site1
18
- Khng li server: #sudo /etc/init.d/apache2 restart
- Vào chnh sa file host, gõ lnh : #sudo nano /etc/hosts
- trình duya ch www.example.com , nu hin ra n
u hình thành công cho tên min EXAMPLE.COM
b. Cấu hình bind9 để tạo dịch vụ DNS
- t bind9 : #sudo apt-get install bind9 dnsutils
- Các file cu hình trong /etc/bind/
u khin
named.conf.options: file tùy chnh
named.conf.default-nh
- c cu hình DNS
kí tên min qun 2 file dành cho zone thun và zone nghch
Mô t ni dung ti file zone thun
Mô t ni dung tc
- n qun 2 file dành cho zone thuc: vi tên mic
t ta ch 192.168.1.11, vào file named.conf.local
#cd /etc/bind
#sudo nano named.conf.local
19
Trong cu hình này, zone thun s cha trong file /etc/bind/zones/TTM-c cha trong file
/etc/bind/zones/rev.TTM-info.db
- Mô t ni dung ti file zone thun: to file zone thun ti /etc/bind/zones/TTM-info.db, c
#sudo nano /etc/bind/zones/TTM-info.db
- Mô t ni dung ti file zone c: tc ti /etc/bind/zones/rev.TTM-info.db, c
20
#sudo nano /etc/bind/zones/rev.TTM-info.db
c. Cấu hình cần thiết cho server Kerberos
- t gói krb5-kdc và krb5-admin-server
#sudo apt-get install krb5-kdc krb5-admin-server
t xong, s có thông báo hi tên Realm mnh
- To Reaml mi bng lnh: #sudo krb5_newrealm , có yêu cu nhp master key cho database
21
- File cu hình ca KDC nm ti /etc/krb5kdc/kdc.conf . Ta thông tin v các realm, thông tin v
ticket i gian có giá tri, lo i nu cn.
- c qun tr bi ti p ch i dùng root trên KDC, gõ
lnh: #sudo kadmin.local , tt s lnh chsau:
i dùng: kadmin: addprinc [username]
i dùng: kadmin: delprinc [username]
Xem danh sách các principal: kadmin: listprincs
…
22
- n có cu hình nh, nu không h thng s không nhc KDC
trong quá trình ly vé chng thc.
- Sau khi to principal mi, có th kim tra bng câu lnh: #kinit [username]/[instance], h thng s yêu
cu nhp password ca principal. Sau khi nhp password, thông tin v TGT s c thu th
trong cache. Lnh kinit có nhiu tham s -l tùy chnh v thi hn ca vé. Ví d khi user
xin vé vi thi hn 30 phút, gõ lnh: kinit –l 30m
23
- Vi lnh klist ta s c thông tin v Ticket-Granting-Ticket (TGT) cho user
- Tin ích kdestroy xóa khóa xác thc trong cache ca h thng b 0 vào cache, sau
cache
Cu trúc : kdestroy [-q] [-c cache_name] [-4] [-5]
-q : chy lnh mà không phát ting báo hiu
-c <cache_name>: xóa cache vng dnh
-4: ch xóa vé (khóa) Kerberos phiên bn 4
-5: ch xóa vé (khóa) Kerberos phiên bn 5
Hình sau minh ha vic xóa khóa xác thc cho user qua vic xóa b nh cache
- Ngoài ra, còn có tin ích kpasswd a cho vii
password ca user
24
2.2. Cấu hình Client
- t các gói cn thi chng thc vi Kerberos Realm bng câu lnh
#sudo apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-config
- C
- trên client, có th xin vé chng thc vi kinit và xem thông tin vé vi klist
c chng thdatabase. N
user trong database, khi user VuNhat xin chng thc s nh
trong database.
25
III. Kết luận
p mt li li ích to ln trong v bo mt vi
i dùng. Do hn ch s i dùng có th c các cuc tn công
nghe lén trên mng. Hin nay, có nhiu mô hình trin khai c xác thc Kerberos
ca hc vi chng thc mnh cho các ng dng mng
phân tán; nó cho phép các thc th truyn thông trong mng chng thc ln nhau mà vm bo an toàn,
chng nghe lén hay tng (replay attack). Kerberos có th trin khai trên c môi
án này, tuy phn trin khai th nghim vn c s
ng rng s hoàn thi na phn thc nghim trong thi gian ti.
c cy Nguyễn Linh Giang, thi ý và có nhng dn c
th án này.
Hà nội, tháng 11 năm 2012