Đồ án môn xây dựng các ứng dụng phân tán cơ chế đăng nhập một lần - Pdf 13

1

I HC BÁCH KHOA HÀ NI
VIN CÔNG NGH THÔNG TIN VÀ TRUYN 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 thc hin : Phùng Vũ Nhật Duy
Lp Truyn Thông Mng  K53
ng dn : PSG.TS Nguyễn Linh Giang HÀ NI 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

phí.
 
 

1.3. Các mô hình Single Sign On
a. Mã đăng nhập một lần
p mt ln (One-time password token  OTP token) là mng thc mà
i mi li dùng s c cp mt password mi. Np
truyn thi dùng ch có mt password c nh và rt d tr thành nn nhân ca tn công nghe lén,
thì v có giá tr mt ln và s không tn ti lâu.
m duy nht c password rt phc tp và có th gây phin phc khi
i dùng thc hip.

b. Mô hình SAML
SAML (Security Assertion Markup Language) là gii pháp da trên ngôn ng XML (eXtensible
Markup Language) cho vii thông tin xác thc gia nhà cung cp dch v và doanh nghip. Khi
i dùng gi mt dch v hoc tài nguyên, nhà cung cp xác thc s cp chng thi dùng. Sau
p dch v s da vào thông tin chng th cung cp quyn truy cp dch v hay tài
i dùng.

c. Smart card
Mô hình Smart card (Th thông minh) s dng các thông tin chng thc cha trong th  xác thc
 s dng các loi th này cn phi có các thit b chuyên dng.

Th bo him y t ti Pháp
5

d. Kerberos
Kerberos là mt giao thc chng thc mc phát trin trong d án Athena ca hc vin công
ngh Massachusetts (MIT). Tên ca giao thc ly t tên cu Cerberus canh

instance và TTMK53.COM là realm.

c. Key Distribution Center (KDC)
Kerberos không xây dng các giao thc chng thc phc tp cho mi máy ch mà hong da trên
mt máy ch chng thc tp trung KDC (Key Distribution Center). i khóa, cung
cp khóa (vé) cho vic chng thi dùng và bo mt truyn thông bi khoá phiên trong vé. KDC gm 3
phn:
 Máy ch chng thc AS (Authentication Server) bit khoá mt ca tt c 
trên ms d liu tp trung.
 Máy ch cp khoá TGS (Ticket Granting Server) cung cp vé dch v i dùng truy
nhp vào các máy ch trên mng.
  d liu (Database) ca nó

d. Authentication Server (AS)
Khi 1 user (client) mun tham gia vào mt realm ca Kerberos thì thay vì user phi xác thc
vi AS. Khi nhn yêu cu tham gia h thng Kerberos ca user, AS kim tra nhân dnh ca ngi
yêu cu có nm trong c s d liu ca mình không. Nu có thì AS gi 2 gói tin sau ti ngi s
dng:
 Gói tin A: "Khóa phiên TGS/client" c mt mã hóa vi khóa bí mt ca ni s dng.
 Gói tin B: Ticket-Granting-Ticket (TGT)

e. Ticket-Granting-Ticket (TGT): c cp bi AS, bao gm ID máy client, a ch mng ca client, thi
hn cc mã hóa vi khóa bí mt ca TGS.

7 f. Ticket Granting Server (TGS)
TGS là b phn nhn vé chp thun TGT t user.TGS có nhim v kim tra các vé TGT có giá tr
không bng cách kic mã hóa bi key vi key ca TGT server Kerberos không.Nu

Truyn thông vn khu cp, nhm ly v d liu chng
th y v chng thc cho các máy ch khác mà không phi nhp li khoá bí
mt ca client. Khoá bí mt cc s dng cho c vic mã hoá và gii mã.

1. i dùng U p vào h thng, username và password vào máy client. Bng thu
máy client s chuyi mt khu thành khoá mt (secret key) ca i dùng U. Client gi yêu
cu xin cp TGT ti AS

2. AS s truy l d liu, ly khoá bí mt ca U, gii mã phn d liu tin chng thc, kim tra
có hp l không. Nu có, AS gi li dùng U:
 Gói tin A: Khóa phiên TGS/clientClient/TGS Session Key) c mã hóa vi khóa mt ca
ni s dng.
 Gói tin B: Ticket-Granting-Ticket (TGT): ID ca ch mng ca client, thi hn ca
vé và Khóa phiên TGS/client c mã hóa vi khóa bí mt ca TGS.

3. Khi máy client nhc hai gói tin A và B, nó s gii mã gói tin A vi khóa m
password ci dùng. Nu password ci dùng nhp vào client không trùng vi password trong
AS, mã mt ci dùng s  không th gic li, nu password trùng
kh i dùng s dùng khóa mt (secret key) c   gi        
. (máy client s không th gic mã hóa bi khóa mt ca 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 cu dch v, máy client s gi 2 gói tin ti Ticket Grant Server
 Gói tin C: Cha Ticket-Granting-Ticket (t gói tin B) và ID ca dch v yêu cu .
 Gói tin D: Authenticator (B d liu chng thc) c mã hoá bng Khóa phiên TGS/client, gm
ID i dùng và tem thi gian. Authenticator ch s dng mt ln và có hiu lc trong mt thi
gian ngn.

mt trong hai bên tham gia truyn thông.

11 2.3. Đánh giá ƣu nhƣợc điểm
a. Ƣu điểm
Theo c m: ci dùng, ca nhà qun tr, nhà phát trin h thng, kh a
Kerberos là:
 Tăng sự tiện dụng cho người dùng: i dùng không cn php nhiu ln khi s dng h
thn phi nh quá nhiu mt khu cho các dch v trong h thng. Tt c ch là
mt tài khon cho ht thy các dch v trong h thng.

 Hỗ trợ các nhà phát triển hệ thống: SSO cung cp mt framework chng thc chung cho các nhà
phát trin. Vì th h không cn phn chng thc khi xây dng h thng n
các yêu cu gn h thc chng thu này s làm cho các nhà phát trin hoàn toàn
yên tâm v an ninh ca h thc xây dc công vic nng nhc là xây dng an
toàn bo mt cho h thng mi.

 Làm đơn giản hoá công tác quản trị: Theo truyn thng, mi ng d d lii dùng
riêng phc v  chng thc lp ca nó, nên khi các h thng tham gia vào mng, s
i dùng s t nhanh làm quá ti công vétác qun tr. Vi SSO, mi h thng s
d d lii dùng tp trung vì th công tác qun tr c tp trung hoá, s ng
i dùng git nhiu.

 Tăng cường bảo mật: H th chng tho mt truyn thông
trên mng. Gim thiu s ln nhp mt kh an toàn cho h thng vì vi s
ng mt khu nhing ghi mt khu ra xung quanh, d  l.

b. Nhƣợc điểm

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

sau:

- Kích hot site1 va to : #sudo a2ensite site1
- Cu hình SSL cho site1: #sudo nano site1-ssl, ti tên mic cha localhost ging file
site1

18

- Khng li server: #sudo /etc/init.d/apache2 restart
- Vào chnh sa file host, gõ lnh : #sudo nano /etc/hosts

-  trình duya ch www.example.com , nu hin ra n
u hình thành công cho tên min 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 cu hình trong /etc/bind/
 u khin
 named.conf.options: file tùy chnh
 named.conf.default-nh
 
 
- c cu hình DNS
 kí tên min qun 2 file dành cho zone thun và zone nghch
 Mô t ni dung ti file zone thun
 Mô t ni dung tc
- n qun 2 file dành cho zone thuc: vi tên mic
t ta ch 192.168.1.11, vào file named.conf.local

- c qun tr bi ti p ch  i dùng root trên KDC, gõ
lnh: #sudo kadmin.local , tt s lnh chsau:
i dùng: kadmin: addprinc [username]
i dùng: kadmin: delprinc [username]
Xem danh sách các principal: kadmin: listprincs

22 - n có cu hình nh, nu không h thng s không nhc KDC
trong quá trình ly vé chng thc.

- Sau khi to principal mi, có th kim tra bng câu lnh: #kinit [username]/[instance], h thng s yêu
cu nhp password ca principal. Sau khi nhp password, thông tin v TGT s c thu th
trong cache. Lnh kinit có nhiu tham s -l tùy chnh v thi hn ca vé. Ví d khi user
xin vé vi thi hn 30 phút, gõ lnh: kinit –l 30m

23

- Vi lnh klist ta s c thông tin v Ticket-Granting-Ticket (TGT) cho user
- Tin ích kdestroy  xóa khóa xác thc trong cache ca h thng b 0 vào cache, sau
 cache
Cu trúc : kdestroy [-q] [-c cache_name] [-4] [-5]
 -q : chy lnh mà không phát ting báo hiu

 p mt li li ích to ln trong v bo mt vi
i dùng. Do hn ch s i dùng có th c các cuc tn công
nghe lén trên mng. Hin nay, có nhiu mô hình trin khai c xác thc Kerberos
ca hc vi chng thc mnh cho các ng dng mng
phân tán; nó cho phép các thc th truyn thông trong mng chng thc ln nhau mà vm bo an toàn,
chng nghe lén hay tng (replay attack). Kerberos có th trin khai trên c môi
  án này, tuy phn trin khai th nghim vn c s
ng rng s hoàn thi na phn thc nghim trong thi gian ti.
c cy Nguyễn Linh Giang, thi ý và có nhng dn c
th  án này.
Hà nội, tháng 11 năm 2012


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status