Tải bản đầy đủ (.doc) (79 trang)

tìm hiểu hệ thống đăng nhập một lần sso - single sign on

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 79 trang )

ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

MỤC LỤC
MỤC LỤC 1
DANH MỤC CÁC TỪ VIẾT TẮT 2
LỜI NÓI ĐẦU 5
1.3. SSO trên các ứng dụng không trên nền tảng web 14
2.1.2. Kiến trúc SSO cho mạng nội bộ 17
2.2.2. Các kiểu tấn công vào hệ thống SSO 21
2.2.3. Tăng cường an toàn bằng các chính sách 23
2.4. Lược đồ giao thức 28
2.4.1. Liên hệ các trang web nguồn 28
2.4.2. Chuyển đến trang đích 29
2.4.3. SAML Request 29
2.4.4. SAML Response 30
2.4.5. Đáp ứng yêu cầu từ trình duyệt 31
2.5. Một số lỗ hổng có thể lợi dụng để thực hiện tấn công 31
2.5.1. Hijacking / Replay Attack 31
2.5.2. Tấn công xen giữa (Man-in-the-Middle) 32
2.5.3. HTTP Referrer Attack 34
2.5.4. Khai thác lỗ hổng của SSL/TSL 34
Bảng 2.1:CAS(Central Authentication service) 36
Bảng 2.2: Open source được phát triển bởi đại học Stanford 38
Bảng 2.3: Cosign 39
3.1 Khái niệm Center Authencation Service (CAS) 41
3.2.1. URI -/login đăng nhập 42
3.2.2. Các thông số 42
3.2.3. Các ví dụ về tham số đăng nhập 43
3.2.4. Chứng thực Username/Password 43
3.2.5. Chứng thực tin cậy 43
3.2.6. Phổ biến các thông số 43


3.2.7. Các thông số xác thực tên người dùng,mật khẩu 43
3.3. /Proxy 45
Bảng 3.1: /SAMLValidate 46
3.8. Xác thực trong CAS 62
Trang 1
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

DANH MỤC CÁC TỪ VIẾT TẮT
SSO Single Sign On
OpenSSO Open Single Sign On
LDAP Lightweight Directory Acess Protocol
CAS Central Athentication Service
URI Uniform Resource Identifier
URL Uniform Resource Locator
ESSO Enterprise Single Sign On
CRM Customer Relationship Management
Trang 2
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

DANH MỤC CÁC BẢNG
Bảng 2.1:CAS(Central Authentication service) 36
Bảng 2.2: Open source được phát triển bởi đại học Stanford 38
Bảng 2.3: Cosign 39
Bảng 3.1: /SAMLValidate 46
Trang 3
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Người dùng sử dụng Single Sign On 9
Hình 1.2:Ứng dụng single sign on sử dụng OpenID 12

Hình 1.3: Single Sign On trên windows 14
Hình 2.1:Kiến trúc SSO cho ứng dụng Internet 16
Hình 2.2: Kiến trúc SSO cho mạng nội bộ 17
Hình 2.3: Kiến trúc SSO cho nhiều miền 18
Hình 2.4: Kiến trúc SSO chéo 19
Hình 2.5: Tấn công Session Hijacking 22
Hình 2.6: Tấn công Man in the Middle 23
Hình 2.7: Giả mạo DNS 23
Hình 2.8: SAML Single Sign On 25
Trang 4
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

Hình 3.1 : Đăng nhập CAS 49
Hình 3.2 : Chứng thực một trình duyệt đển máy chủ CAS 49
Hình 3.3 : Truy cập vào ứng dụng 50
Hình 3.4: Trình duyệt truyền ST cho ứng dụng 50
Hình 3.5 : Ứng dụng truyền ST cho CAS 51
Hình 3.6 : Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS 51
Hình 3.8: CAS trả về cho trình duyệt đồng thời TGC và ST 52
Hình 3.9 : Truyền ST cho ứng dụng 53
Hình 3.10:Người dùng truy cập vào ứng dụng mà chưa chứng thực với CAS
53
Hình 3.11: Cơ chế Proxy 54
Hình 3.12: Thu hồi TMP của một proxy CAS từ máy chủ CAS 56
Hình 3.13: Xác Nhận của PT người dùng CAS truy cập bởi một proxy CAS
57
Hình 3.14: Sơ đồ CAS 57
Hình 3.15 : Login Flow 59
Hình 3.16 : Proxy Flow 61
Hình 3.17 : Logout Flow 61

Hình 3.18: Mô hình triển khai ứng dụng 64
LỜI NÓI ĐẦU
Ngày nay, với sự phát triển nhảy vọt của khoa học công nghệ nói chung của
ngành tin học nói riêng, với những tính năng ưu việt, sự tiện dụng và được ứng
dụng rộng rãi, tin học ngày nay là một phần không thể thiếu được của nhiều
ngành trong cuộc sống xây dựng và phát triển xã hội. Khi xã hội càng phát triển
Trang 5
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

con người càng cần đến sự quan tâm và chia sẻ thông tin. Chính điều này đã tạo
cơ hội cho mạng máy tính phát huy hết những tiện ích vốn có của mình.
Hiểu rõ được tầm quan trọng và những ưu điểm vượt trội của việc bảo mật,
trao đổi thông tin của hệ thống mạng máy tính mà số lượng các công ty, doanh
nghiệp thiết lập, sử dụng hệ thống mạng ngày càng nhiều. Từ những công ty có
quy mô nhỏ, vừa đến các doanh nghiệp, tập đoàn tầm cỡ, không nơi nào không
có sự xuất hiện của hệ thống mạng trong khâu quản lý công việc của nhân viên,
trong công tác quản lý, bảo mật và lưu trữ dữ liệu của công ty hay các thông báo,
thông tin giữa các cá nhân trong cùng một tổ chức.
Khi sử dụng càng nhiều các dịch vụ người dùng phải đối mặt với vấn đề khi
sử dụng các dịch vụ riêng biệt cần có một tài khoản và mật khẩu riêng, mỗi lần
sử dụng một dịch vụ khác nhau người dùng phải đăng nhập lại điều này dẫn đến
các nguy cơ mất an toàn trên mạng, người dùng dễ bị ăn cắp tài khoản hay quên
mật khẩu. Thấy được tầm quan trọng của vấn đề em đã tìm hiểu và nghiên cứu
đề tài :”Tìm hiểu Single Sign On”. Đề tài tập trung tìm hiểu và triển khai giải
pháp đăng nhập một lần giúp người sử dụng chỉ cần dùng một tài khoản và mật
khẩu đăng nhập một lần duy nhất có thể sử dụng được tất cả các ứng dụng tin
cậy.
Thấy được tầm quan trọng và ý nghĩa thực tiễn của đề tài, qua ba tháng tìm
hiểu nghiên cứu thực hiện đề tài. Em đã hoàn thành đề tài với những nội dung:
Tìm hiểu tổng quan về Single Sign On, độ an toàn hệ thống và triển khai sản

phẩm Central Authentication Service (CAS) ứng dụng vào thực tế.
Chương I: Tổng quan về Single Sign On
 Trình bài khái quát về Single Sign On.
 Ý nghĩa thực tiễn của Single Sign On.
Chương II: Các vấn đề an toàn của Single Sign On
 Tìm hiểu các kiến trúc Single Sign On
 Các lỗ hổng an ninh khi sử dụng Single Sign On.
 Giao thức SAML Single Sign On.
 Các phương pháp tấn công và giải pháp an toàn khi sử dụng SAML
Single Sign On.
Trang 6
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

Chương III: Central Authentication Service
 Tổng quan chung về phần mềm CAS.
 Giao thức CAS.
 Kiến trúc CAS.
 Triển khai ứng dụng.
Do nội dung đồ án rộng và bao gồm nhiều kiến thức mới, thời gian và kiến
thức còn hạn chế, việc nghiên cứu chủ yếu dựa trên tài liệu nước ngoài thuyết
nên chắc chắn đề tài không tránh khỏi những thiếu sót. Em rất mong nhận được
sự đóng góp ý kiến của thầy cô giáo và bạn bè.
Với lòng biết ơn sâu sắc, em xin chân thành cảm ơn Th.s Nguyễn Anh
Tuấn,Th.s Nguyễn Quốc Toàn các anh chị trong công ty Cổ phần phần mềm
Việt, các thầy cô giáo trong khoa An Toàn Thông Tin Học Viện Kỹ Thuật
Mật Mã đã nhiệt tình hướng dẫn giúp đỡ em hoàn thành đồ án này.
Cuối cùng tôi xin cảm ơn bạn bè, người thân đã luôn bên, kịp thời động viên
và giúp đỡ tôi trong thời gian vừa qua.
Em xin chân thành cảm ơn !
Hà Nội, Tháng 6 năm 2011

Sinh viên
Bùi Đăng Tân
Chương I
TỔNG QUAN VỀ SINGLE SIGN ON
1.1. Tìm hiểu Single Sign On
Trang 7
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

1.1.1. Tại sao Single Sign On?
Hệ thống CNTT ngày càng phát triển rộng khắp và ứng dụng vào tất cả các
lĩnh vực.Người sử dụng phải đối mặt với vấn đề ngày càng phức tạp là phải nhớ
nhiều tài khoản và mật khải để thực hiện công việc của họ.
Người dùng thường phải đăng nhập vào nhiều hệ thống, cần phải có một
lượng tương đương số lần đăng nhập, mỗi dịch vụ trong các hệ thống đó có thể
bao gồm tài khoản và mật khẩu khác nhau. Điều này dẫn đến người dùng phải
đối mặt với các vấn đề:
 Quên tài khoản: do sử dụng nhiều tài khoản và mật khẩu để đăng nhập các
ứng dụng.
 Dùng một tài khoản và mật khẩu cho các hệ thống dẫn đến nguy cơ mất an
toàn.
Sử dụng Single Sign On:
• Sử dụng nhiều phương pháp xác thực: Là cần thiết để nhập thông tin đăng
nhập của mình ngoài phương pháp nhập tài khoản và mật khẩu khi truy
cập vào mỗi ứng dụng.
• Đa phương diện: Tài khoản người dùng là duy nhất trong tổ chức này và
nó sẽ được mong muốn sử dụng nó truy cập vào tài nguyên máy tính từ
các tổ chức khác có thể được sử dụng cùng một tài khoản.(sử dụng tài
khoản yahoo, gmail, facebook …sử dụng OpenId).
• Quyền: Xác thực quyền hạn truy cập các tài nguyên của người dùng khi
truy cập các ứng dụng khác nhau.

• Xác thực tập trung: Trên một máy chủ duy nhất để xác thực tài khoản
người dùng thông qua giao thức đã được mã hóa.
• Trình duyệt sử dụng http chuyển hướng trình duyệt của người dùng giữa
các ứng dụng mà không cần đăng nhập tài khoản và mật khẩu.
1.1.2. Khái niệm
Single Sign On: Người sử dụng dùng tài khoản đăng nhập chỉ một lần và có
thể sử dụng nhiều ứng dụng trong cùng một tổ chức một cách liên tục mà không
cần phải nhập lại thông tin cho mỗi ứng dụng.
Trang 8
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

Hình 1.1: Người dùng sử dụng Single Sign On
Ví dụ: Người dùng sử dụng nhiều dịch vụ: Email,forum,web…khi chưa có
Single Sign On thì với mỗi dịch vụ ta phải nhập thông tin để xác thực.Khi một tổ
chức đã thống nhất sử dụng Single Sign On cho hệ thống của họ thì người dùng
chỉ phải đăng nhập một lần vào bất kì ứng dụng nào trong hệ thống thì khi dùng
các ứng dụng khác người dùng không phải đăng nhập lại.
1.1.3. Các khái niệm quan trọng của Single Sign On
 Xác thực: Quá trình xác minh danh tính của người dùng, làm cho chắc
chắn rằng người dùng là họ. Chúng ta có thể sử dụng các phương pháp xác thực
như: username, password, thẻ thông minh, hay dùng sinh trắc học…
 Ủy quyền: Là một quy trình nhằm xác minh rằng một người dùng biết
trước, có quyền lực để thao tác một quá trình hoạt động nào đó hay không.
 Giấy chứng nhận: Là các chi tiết được cung cấp bởi một người dùng trong
quá trình xác thực vào ứng dụng.
 Domain: Là sự nhận dạng vị trí của một máy tính trên mạng Internet nói
cách khác tên miền là tên của các mạng lưới, tên của các máy chủ trên mạng
Internet.
Trang 9
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On


 Bảo vệ dữ liệu: Dữ liệu của hệ thống không thể cho tất cả mọi người có
thể truy cập. Người dùng cần phải thông qua xác thực và ủy quyền trước khi truy
cập vào một nguồn tài nguyên bảo vệ.
 Cookie: Giao thức HTTP là một chuẩn giao thức không hỗ trợ lưu trạng
thái. Điều này có nghĩa là sau khi trình duyệt kết nối tới máy chủ và lấy xong dữ
liệu thông qua HTTP, máy chủ liền tắt ngay kết nối mà không buồn quan tâm tới
việc dữ liệu đó sẽ được xử lý, lưu trữ ra sao trên máy khách. Chính vì sự “vô
tình” này đã dẫn đến những tình huống phát sinh, chẳng hạn như trong một phiên
làm việc, làm thế nào để biết được người sử dụng đó vừa mới truy cập lên máy
chủ, hay người sử dụng đã lựa chọn những gì ở những lần truy cập trước đó? Để
giải quyết vấn đề này, các nhà phát triển ứng dụng Web đã phải khai sinh một
công cụ khác, gọi là cookie.
Cookie là một (hoặc một số) thông tin được những nhà thiết kế web ấn định
yêu cầu trình duyệt phải ghi lại ở đâu đó trên máy khách. Mỗi khi trình duyệt kết
nối tới máy chủ, các thông tin lưu trong cookie sẽ được gửi cùng lên máy chủ.
Nhờ những thông tin này, các nhà thiết kế web sẽ theo dõi được những hành vi
của người sử dụng thông qua cookie.
Trước đây rất nhiều người nhầm tưởng cookie là các đoạn mã độc hại, nhưng
thực tế thì không phải như vậy. Về bản chất, cookie chỉ là các bản ghi lưu trữ dữ
liệu chứ không hề có chứa bất kỳ một đoạn mã chương trình nào cả. Tuy nhiên,
nhiều nhà phát triển ứng dụng Web thiếu kinh nghiệm đã lựa chọn cookie để lưu
trữ những thông tin mang tính chất nhạy cảm (mật khẩu, số tài khoản cá nhân ).
Vì vậy chúng rất dễ bị các chương trình gián điệp chạy trên máy khách thu thập
và đem ra sử dụng một cách mờ ám, gây hại cho người dùng. Nếu bạn là người
lập trình Web chuyên nghiệp, hãy cẩn thận với những tình huống này.
Một cookie thường có những thông tin sau đây:
 Tên cookie (name): do người lập trình website thiết lập để phân biệt giữa
các cookie.
 Domain: xác định tên miền sẽ được sử dụng để gửi cookie đi.

 Đường dẫn: xác định đường dẫn ở trên Website
Trang 10
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

 Thời điểm hết hạn (expires): xác định thời điểm cookie sẽ bị hết hiệu lực
trên trình duyệt.
 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.
 Giá trị (value): xác định dữ liệu được lưu trong cookie. Giá trị này sẽ được
chuyển tới máy chủ có địa chỉ xác định trong đường dẫn hoặc tên miền.
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 4k.
Cookie có thể được sử dụng để lưu một số thông tin như: tài khoản (tên truy
cập và mật khẩu) của người sử dụng trên website, các thông tin lựa chọn giỏ
hàng (trên các website mua bán trực tuyến), các mục chọn hay những thông tin
khác do nhà thiết kế web chỉ định.
Sau khi có một cookie, nếu người dùng duyệt để một ứng dụng khác nhau đó
là một phần của Single Sign On, thông tin được lưu trong cookie sẽ được trình
duyệt sử dụng để trực tiếp đăng nhập vào ứng dụng khác, nếu người sử dụng
được phép truy nhập vào.
1.1.4. Ý nghĩa SSO
 Tránh việc nhớ nhiều thông tin đăng nhập (username & password) khi
dùng nhiều dịch vụ.
 Tiết kiệm thời gian khi tái lập lại mật khẩu cho một người dùng (identity
user).
 Bảo mật tất cả các cấp độ của việc thoát hay truy xuất vào hệ thống.
 Người phát triển ứng dụng không cần phải hiểu và thực hiện nhận dạng
bảo mật trong ứng dụng của họ.
1.2. Các loại Single Sign On
Hầu hết các sản phẩm SSO trên thế giới có thể được phân loại thành hai loại

dựa trên kiến trúc:
1.2.1. Trên web (Enterprise SSO)
SSO trên web được sử dụng dưới các dạng:
 Single Domain: Khi xác thực thành công vào domain.com, người dùng
đồng thời được xác thực vào các sub-domain.domain.com tồn tại.
Trang 11
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

 Multi Domain: khi xác thực thành công vào facebook.com, người dùng
đồng thời được xác thực vào example.com.
Các SSO được sử dụng phổ biến trên web hiện nay:
 OpenID: hệ thống đăng nhập một lần không có tính tập trung. Đối với
những trang web có sử dụng OpenID thì người sử dụng không cần phải nhớ các
thông tin về username và password cho riêng trang đó nữa. Thay vào đó họ chỉ
cần đăng ký trước 1 tài khoản OpenID tại một trong những nhà cung cấp
OpenID, hay thường gọi là i-broker. Do OpenID không mang tính tập trung nên
bất kỳ trang web nào cũng có thể sử dụng được OpenID như là một cách đăng
nhập cho người dùng. Các hệ thống lớn đang sử dụng là : yahoo, google,
facebook…
Hình 1.2:Ứng dụng single sign on sử dụng OpenID
 Open Single Sign-On (OpenSSO) hoạt đông dựa trên Token: Là một sản
phẩm open source của SUN. Nó là một sản phẩm đơn lẻ, kết hợp các tính năng
của Sun Java System. Access Manager, Sun Java System Fedearation Manager
và Sun System SAML v2 Java Plugin.
 Java Open Single Sign On ( JOSSO).
 Central Authenticate Service (CAS) hoạt đông dựa trên Ticket.
1.2.2. Đặc điểm của SSO trên web (Enterprise SSO)
Một WebSSO đúng nghĩa phải là một dịch vụ chứng thực tập trung đáp ứng
đồng thời các yêu cầu sau:
Trang 12

ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

 Đăng nhập một lần với một tài khoản duy nhất để chứng thực vào các ứng
dụng web khác nhau sử dụng dịch vụ WebSSO. Các ứng dụng web có thể chạy
trên nhiều domain khác nhau. Ví dụ: khi bạn đăng nhập vào hotmail.com thì bạn
sẽ không cần đăng nhập một lần nữa khi vào msn.com.
 Web SSO yêu cầu một hệ thống network ổn định và đảm bảo vận hành
xuyên suốt.
 Phải sử dụng SSL và các phương thức mã hóa bất đối xứng. Nếu một dịch
vụ chứng thực mà không dùng SSL cho các phiên chứng thực thì đều bị coi là
không an toàn. Và đây cũng là một mục tiêu quan trọng của một ứng dụng web
khi dùng dịch vụ chứng thực tập trung.
 Đăng xuất toàn bộ hệ thống SSO khi click vào button [Sign Out] hoặc tự
động SignOut khi tắt trình duyệt.
Trong SSO cũng như chứng thực thông thường, đều cần database để lưu trữ
thông tin người dùng. Còn SSO hoàn toàn không dùng database để lưu vết
session. SSO phải đảm nhiệm một nhiệm vụ rất lớn trong việc chứng thực toàn
bộ người dùng cho các ứng dụng web. Do vậy vấn đề bảo mật luôn đặt lên hàng
đầu, nếu SSO gặp một sự cố nào đó thì toàn bộ các partners (ứng dụng web dùng
SSO) sẽ không thể đăng nhập được.
1.2.3. Nguyên lí hoạt động của web SSO
 Bước 1 : Người dùng đăng nhập vào tài khoản tại url của dịch vụ SSO
Authentication Service.Sau khi đăng nhập thành công -> bước 2
 Bước 2 : Authentication Service sẽ thực hiện việc sinh ra Authentication
Token. Đây là một chuỗi chứa thông tin chứng thực (không chứa password) và
thông thường được mã hóa bằng DES hoặc RSA.
 Bước 3 : Authentication Token sẽ được truyền tải trên http (không mã hóa
SSL) giữa ứng dụng web (partner) và Authentication Service. Trên mỗi ứng
dụng web sẽ có một SSOAgent, có nhiệm vụ xử lý Authentication Token và
kiểm tra việc chứng thực. Trong quá trình này session cookie sẽ được tạo tại

trình duyệt của người dùng đăng nhập nếu SSOAgent kiểm tra Authentication
Token thành công.
Trang 13
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

 Bước 4 : [Sign Out]: Khi chứng thực tự động vào một partner,
Authentication Service sẽ lưu lại thông tin partner này, khi người dùng click
[Sign Out] thì dịch vụ xác thực sẽ lần lượt Sign Out (xóa toàn bộ session cookie
của ứng dụng sử dụng SSO).
1.3. SSO trên các ứng dụng không trên nền tảng web
Các doanh nghiệp trong những ngày này thường có Microsoft Windows ®
người sử dụng máy tính để bàn truy cập các ứng dụng doanh nghiệp đa dạng,
ứng dụng thường có yêu cầu an ninh khác nhau và phải đăng nhập cho các ứng
dụng khác nhau. SSO giữa Oracle Access Manager và IBM WebSphere
Application Server. Phổ biến nhất hiện nay là hệ thống của Microsoft sử dụng
cho windows, Microsoft Office SharePoint Server.
Hình 1.3: Single Sign On trên windows
Microsoft cung cấp một giải pháp xác thực cho phép người dùng Windows sử
dụng Microsoft Internet Explorer (IE) để truy cập tài nguyên trên Microsoft
Internet Information Server (IIS) mà không cần phải xác thực lại. Đơn đăng ký
giải pháp dựa trên cơ chế xác thực bản quyền Microsoft HTTP.
Người dùng đăng ký và nền tảng hỗ trợ: WebSEAL SPNEGO hỗ trợ cung
cấp đăng ký từ Internet Explorer chạy trên Windows máy trạm cấu hình vào
miền Active Directory để WebSEAL.
Single sign on trong SharePoint: Cung cấp lưu trữ và lập bản đồ của các
thông tin như tên tài khoản và mật khẩu để các ứng dụng dựa trên cổng thông tin
trang web có thể lấy thông tin từ các bên thứ ba ứng dụng và hệ thống back-end.
Ví dụ, Enterprise Resource Planning (ERP) và hệ thống quản lý quan hệ khách
hàng (CRM) .
Trang 14

ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

Kết chương I:
Nội dung của chương đã trình bày tổng quát các khái niệm quan trọng về
single sign on , các dạng SSO đang được sử dụng trên thế giới . Đăng nhập một
lần đang được các hãng công nghệ sử dụng rộng rãi trong các ứng dụng phần
mềm và đặc biệt trong các dịch vụ ứng dụng web. Bên cạnh tính thuận tiện, đơn
giản tiện lợi cho người dùng cũng có những nhược điểm về mặt an toàn. Chương
sau của đồ án sẽ trình bày rõ hơn về vấn đề an toàn của Single sign on.
Trang 15
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

Chương II
CÁC VẤN ĐỀ AN TOÀN CỦA SSO
2.1. Kiến trúc SSO
2.1.1. Kiến trúc SSO cho các ứng dụng Internet
Hình 2.1:Kiến trúc SSO cho ứng dụng Internet
Mô tả các vị trí thành phần khác nhau trong một đơn vị sử dụng các ứng dụng
SSO. Ứng dụng ra ngoài Internet phải đối mặt với rất nhiều cuộc tấn công và do
đó bảo vệ theo chiều sâu được sử như một nguyên tắc trong kiến trúc SSO để
bảo đảm an ninh tối đa cho các ứng dụng. Các web server và ứng dụng cho phép
Trang 16
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

truy cập vào Internet nên được đặt trong phân vùng riêng (DMZ). Các công cụ
truy cập, quản lý máy chủ và lưu trữ dữ liệu đặt trong mạng nội bộ.
Các giao tiếp giữa người dùng và máy chủ web có thể được bảo mật bằng
cách sử dụng SSL(Secure Socket Layer) tránh bị ăn cắp user đăng nhập và mật
khẩu được truyền đi dưới dạng văn bản rõ.
Sử dụng tường lửa chỉ cho phép các máy chủ ứng dụng giao tiếp với nhau tại

các cổng được chỉ định và từ chối tất cả các truy cập khác. Điều này làm giảm cơ
hội của chương trình độc hại như Trojan gửi các lưu lượng giả vào các máy chủ
ứng dụng từ mạng Internet.
Thường xuyên cập nhật các bản vá cho các máy chủ một cách sớm nhất ngay
khi các bản vá được phát hành.
Cập nhập các bản vá cho máy trạm trong mạng LAN, đặc biệt là nâng cấp
trình duyệt không cho phép các trình duyệt đã quá cũ trên máy trạm được truy
cập vào server. Điều này giúp ngăn chặn được kẻ tấn công lợi dụng các lỗ hổng
trình duyệt cũ để tấn công vào hệ thống.
2.1.2. Kiến trúc SSO cho mạng nội bộ
Hình 2.2: Kiến trúc SSO cho mạng nội bộ
Trang 17
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

Tương tự như kiến trúc SSO cho các ứng dụng ra Internet, nhưng tất cả các
thành phần của kiến trúc được đặt trong mạng nội bộ. Các giải pháp an toàn cho
kiến trúc internet được sử dụng theo chiều sâu.
 Kiến trúc SSO cho nhiều miền
Hình 2.3: Kiến trúc SSO cho nhiều miền
Sử dụng một miền chính và các miền phụ trợ, người dùng sẽ được xác thực
chung nhưng sẽ chỉ truy cập được đến tài nguyên mà các miền ấn định chính
sách riêng cho từng người dùng, nhóm người dùng cụ thể. Nếu người dùng truy
cập vào các dữ liệu không được phép thì sẽ diễn ra theo các bước:
• Người dùng sử dụng trình duyệt của mình để truy cập vào một
nguồn tài nguyên được bảo vệ bởi một chính sách truy cập trong các
miền phụ.
• Miền phụ gửi một phản ứng để người dùng trình duyệt để chuyển
hướng đến miền chính để xác thực.
• Truy cập miền chính qua thành phần xác thực người dùng, quyền
các truy cập để kiểm tra và cấp phép.

• Gửi thông tin xác thực và ủy quyền trở lại trình duyệt của người sử
dụng, sau khi nhận được thông tin từ các công cụ truy cập, cookie
được thiết lập trên trình duyệt của người dùng cho các tên miền
chính.
Trang 18
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

Khi người dùng nhấp vào nút đăng xuất trên một trang web trong miền phụ
các máy chủ web trong miền phụ sẽ hủy các cookie đặt cho người sử dụng và
chuyển hướng người dùng đến miền chính với các thông hủy cookie người dùng.
Các máy chủ web trong tên miền chính hủy các cookie của nó lưu cho người
sử dụng và người sử dụng thoát khỏi ứng dụng.
 Kiến trúc SSO chéo
Hình 2.4: Kiến trúc SSO chéo
Cũng được tổ chức như các SSO thông thường nhưng có thêm phần xác thực
giữa các hệ thống SSO với nhau. Các bước xác thực như sau:
• Người dùng truy cập một ứng dụng trên các trang web của ứng
dụng trên hệ thống SSO của mình.
• Người sử dụng được xác thực và ủy quyền để truy cập ứng dụng
và được thiết lập một cookie trên trình duyệt của người dùng.
• Người dùng sau đó nhấp chuột vào liên kết đưa người sử dụng
một ứng dụng duy trì trên một trang web đối tác (hệ thống SSO
khác)
• Các công cụ kết nối sử dụng cookie của trình duyệt người dùng để
đóng gói nó như là một SAML(Security Assertion Markup
Language khẳng định, các ký hiệu nó và sau đó chuyển hướng nó
vào thành phần kết nối trong mạng SSO đối tác.
Trang 19
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On


• Hệ thống kết nối bên SSO đối tác xác nhận SAML được gửi từ đối
tác SSO đã được tin cậy, sau đó kiểm tra và cấp phép cho phép
người dùng truy cập vào ứng dụng.
2.2. Các vấn đề an toàn với SSO
2.2.1. Lỗ hổng an ninh
Khi đề cập đến lỗ hổng bảo mật và rủi ro, mối quan tâm chủ yếu quan tâm
đến tính an toàn của hệ thống là các thuộc tính quan trọng của an toàn thông tin:
Tính bí mật, tính toàn vẹn, tính xác thực, tính sẵn sàng. Sự tồn tại của các lỗ
hổng cho thấy hệ thống có nguy cơ bị các hacker lợi dụng lỗ hổng này có thể
được khai thác các thông tin người dùng trong cuộc tấn công. Các cuộc tấn công
có tính chất khác nhau tùy thuộc vào mức độ nghiêm trọng của các lỗ hổng này
đang được khai thác.
 Các rủi ro
 Rủi ro mật khẩu yếu: Sử dụng mật khẩu là phương pháp xác thực được sử
dụng phổ biến nhất hiện nay. Một mật khẩu được sử dụng nhiều lần và không
được thay đổi trong thời gian dài để truy cập vào các ứng dụng. Một phương
pháp thông thường dùng để tấn công các mật khẩu yếu là đoán mật khẩu bằng
cách sử dụng phương pháp tấn công từ điển. Việc sử dụng mật khẩu có ý nghĩa
quan trọng khi cho phép người dùng đăng nhập vào các ứng dụng. Có thể khắc
phục bằng cách thiết lập các chính sách mật khẩu mạnh.
 Rủi ro của hình thức nhúng đăng nhập: Mô tả một kịch bản triển khai hợp
định danh nhà cung cấp mẫu đăng nhập được nhúng vào trong một trang trình
bày của một nhà cung cấp dịch vụ. Mặc dù người dùng có thể giống đăng nhập
bình thường nhưng trong quá trình đó thông tin của người dùng sẽ đưa trở lại
cho nhà cung cấp dịch vụ nhận dạng. Hình thức nhúng mang hiểm họa của việc
đào tạo người sử dụng làm điều sai trái.
 Rủi ro của việc triển khai ra mạng Internet: Nếu một người sử dụng sử
dụng một trình duyệt để đăng nhập tài khoản dịch vụ SSO ở sân bay, bỗng dưng
hệ thống bị treo làm người dùng không thể thoát ra được. Người dùng bỏ đi và
sau khi hệ thống máy tính hoạt động bình thường trở lại bất kì ai tiếp xúc vật lí

với máy tính đó có thể truy cập trái phép vào các thông tin của người dùng và
Trang 20
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

điều này càng đặc biệt nguy hiểm khi sử dụng cho các mục đích bất hợp pháp.
Có thể tránh nó bằng cách đặt thời gian kết thúc phiên đăng nhập.
 Rủi ro của mật mã yếu: Một trong những vấn đề gây nhiều tranh cãi nhất
trong việc đảm bảo an toàn các dịch vụ web là các máy tính hiện đang cài đặt
trình duyệt nhưng nhiều trình duyệt chỉ hỗ trợ mật mã 40-bit. Mật mã 40-bit
được coi là yếu và có thể bị tấn công. Điều này đặt ra một nguy cơ từ thông tin
liên lạc mã hóa của người sử dụng có thể dễ dàng thu thông tin không được mã
hóa.
2.2.2. Các kiểu tấn công vào hệ thống SSO
 Tràn bộ đệm
Một lỗi lập trình có thể gây ra một ngoại lệ truy nhập bộ nhớ máy tính và
chương trình bị kết thúc, hoặc khi người dùng có ý phá hoại, họ có thể lợi dụng
lỗi này để phá vỡ an ninh hệ thống. Các lỗi tràn bộ đệm có thể làm cho một tiến
trình đổ vỡ hoặc cho ra các kết quả sai. Các lỗi này có thể được kích hoạt bởi các
dữ liệu vào được thiết kế đặc biệt để thực thi các đoạn mã phá hoại hoặc để làm
cho chương trình hoạt động một cách không như mong đợi. Bằng cách đó, các
lỗi tràn bộ đệm gây ra nhiều lỗ hổng bảo mật (vulnerability) đối với phần mềm
và tạo cơ sở cho nhiều thủ thuật khai thác (exploit).
 Session Hijacking
Session Hijacking là quá trình chiếm lấy một session đang hoạt động, nhằm
mục đích vượt qua quá trình chứng thực truy cập bất hợp lệ vào thông tin hoặc
dịch vụ của một hệ thống máy tính
Khi một user thực hiện kết nối tới server qua quá trình xác thực, bằng cách
cung cấp ID người dùng và mật khẩu của mình. Sau khi người dùng xác thực, họ
có quyền truy cập đến máy chủ và hoạt động bình thường. Trong quá trình hoạt
động, người dùng không cần phải chứng thực lại. Kẻ tấn công lợi dụng điều này

để cướp session đang hoạt động của người dùng và làm cho người dùng không
kết nối được với hệ thống. Sau đó kẻ tấn công mạo danh người dùng bằng
session vừa cướp được, truy cập đến máy chủ mà không cần phải đăng nhập vào
hệ thống.
Trang 21
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

Khi cướp được session của người dùng, kẻ tấn công có thể vượt qua quá trình
chứng thực dùng, có thể ghi lại phiên làm việc và xem lại mọi thứ đã diễn ra. Đối
với cơ quan pháp lý, có thể dùng làm bằng chứng để truy tố, đối với kẻ tấn công,
có thể dùng thu thập thông tin như ID người dùng và mật khẩu. Điều này gây
nhiều nguy hại đến người dùng.
Vấn đề này càng đặc biệt nghiêm trọng với hệ thống SSO vì khi chiếm được
phiên kẻ tấn công có thể truy cập vào được các ứng dụng khác để khai thác thông
tin.
Hình 2.5: Tấn công Session Hijacking
 Man in the Middle
Hoạt động bằng cách thiết lập các kết nối đến máy tính nạn nhân và relay
các message giữa chúng. Trong trường hợp bị tấn công, nạn nhân cứ tin tưởng là
họ đang truyền thông một cách trực tiếp với nạn nhân kia, trong khi đó sự thực
thì các luồng truyền thông lại bị thông qua host của kẻ tấn công. Và kết quả là
các host này không chỉ có thể thông dịch dữ liệu nhạy cảm mà nó còn có thể gửi
xen vào cũng như thay đổi luồng dữ liệu để kiểm soát sâu hơn những nạn nhân
của nó.
Một số kiểu tấn công Man in the Middle hay được sử dụng : ARP Cache,
DNS Spoofing, chiếm quyền điều khiển (hijacking) HTTP session
Trang 22
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

Hình 2.6: Tấn công Man in the Middle

 Giả mạo DNS
Giả mạo DNS là một kỹ thuật MITM được sử dụng nhằm cung cấp thông tin
DNS sai cho một host để khi người dùng duyệt đến một địa chỉ nào đó.
Giả mạo DNS ID: Mỗi truy vấn DNS được gửi qua mạng đều có chứa một số
nhận dạng duy nhất, mục đích của số nhận dạng này là để phân biệt các truy vấn
và đáp trả chúng. Điều này có nghĩa rằng nếu một máy tính đang tấn công của
chúng ta có thể chặn một truy vấn DNS nào đó được gửi đi từ một thiết bị cụ thể,
thì tất cả những gì chúng ta cần thực hiện là tạo một gói giả mạo có chứa số nhận
dạng đó để gói dữ liệu đó được chấp nhận bởi mục tiêu.
Hình 2.7: Giả mạo DNS
2.2.3. Tăng cường an toàn bằng các chính sách
Các sản phẩm SSO có nhiều tính năng tăng cường tính bảo mật cho hạ tầng
của các đơn vị. Tuy nhiên các sản phẩm SSO không thể đảm bảo tất cả tính an
toàn cho một tổ chức nếu thực hiện không cẩn thận SSO còn làm xuất hiện thêm
Trang 23
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

các lỗ hổng bảo mật mới. Do vậy một hệ thống SSO cần được tăng cường bởi
các chính sách:
• Không để người sử dụng tránh cách quên mật khẩu bằng cách viết ra giấy
dán trên máy tính, lưu vào một file văn bản .
• Quản lí tập trung các thông tin ứng dụng được SSO trên một máy chủ
trung tâm.
• Thi hành các chính sách về mật khẩu như: Độ dài mật khẩu tối thiểu,
không đặt các mật khẩu phổ biến, không đặt là tên, ngày sinh, sử dụng kết
hợp cả chữ hoa chữ thường và các kí tự đặc biệt…
• Cơ chế phục hồi mật khẩu để phục hồi trong trường hợp người dùng quên
mật khẩu.
• Khóa phiên đăng nhập sau một số lần đăng nhập không thành công liên
tiếp.

• Thi hành chính sách đổi mật khẩu lần đầu truy nhập và sau một thời gian
sử dụng nhất định với các quản trị .
• Lưu giữ các mật khẩu đã được sử dụng và đảm bảo mật khẩu mới không
trùng với mật khẩu đã được sử dụng.
• Hết hạn mật khẩu sau một thời gian nhất định.
• Phiên làm việc kết thúc sau một thời gian không sử dụng ứng dụng liên
tục.
• Tăng cường hệ thống giám sát và báo cáo.
2.3. Tăng khả năng an toàn với giao thức SAML Single Sign On
2.3.1. Giới thiệu SAML
SAML là một tiêu chuẩn mã hóa xác nhận các thông điệp giao thức dạng
XML, sử dụng thẻ an toàn(security tokens) để xác nhận thông dựa trên các thông
tin chứa trong nó : Thông tin về người dùng, trung tâm xác thực và dịch vụ yêu
cầu, hỗ trợ việc xác thực trên web và được sử dụng là một tiêu chuẩn phổ biến
của đăng nhập một lần.
Trang 24
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On

SAML Single Sign On mô tả việc sử dụng thông điệp để thực hiện hoạt động
đăng nhập giữa ba bên: Người dùng U sử dụng một trình duyệt tiêu chuẩn B, một
web nguồn S và web đích D.
Hình 2.8: SAML Single Sign On
Giả sử người sử dụng U đã chứng thực đăng nhập với web site S, trình tự xác
nhận của giao thức SAML Single Sign On:
1. Người dùng truy cập vào web site D.
2. Do người dùng U đã xác nhận đăng nhập với S nên trình duyệt chuyển
hướng từ web site D về site nguồn S để xác nhận thông tin chứng thực.
3. Hoàn thành việc chuyển hướng xác nhận người dùng về site S.
4. Site S xác nhận việc chứng thực của người dung.
5. Chuyển hướng người dùng về site D cùng với một số thông tin dữ liệu xác

nhận cho D khẳng định việc xác thực U đã thực hiện và đang được lưu giữ.
2.3.2. Bí mật,Toàn vẹn
SAML Single Sign On giao thức truyền thông điệp đảm bảo tính toàn vẹn, bí
mật. Thông điệp được chuyển qua kênh truyền thông thường hoặc sử dụng
SSL/TLS, nhưng ở lớp này của giao thức dễ bị tấn công man-in-the-middle nên
SAML SSO sẽ loại bỏ kênh truyền thông thường vì mức an toàn thấp.
S


cid
R:adr-msg
S: Bên gửi
Trang 25

×