1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

79 3,2K 30

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 79
Dung lượng 1,58 MB

Nội dung

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

Trang 1

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 2

DANH MỤC CÁC TỪ VIẾT TẮT

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 3

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 4

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 5

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

Trang 6

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 7

Chương III: Central Authentication Service

 Tổng quan chung về phần mềm CAS

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 8

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 9

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 10

 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 11

 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

 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

Trang 12

 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 13

 Đă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 14

 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 15

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 16

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 17

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 18

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 19

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 20

• 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 21

đ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 22

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 23

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

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 24

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 25

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

Trang 26

R: Bên nhậnAdr: Tên máyMsg: Thông điệp,tham sốNgay cả khi gửi thông điệp không sử dụng các kênh truyền SAML SSO sử dụng một kênh nhận dạng dạng cid được viết như chỉ số đại diện đầu mũi tên Trong thực hiện không có kênh truyền chỉ định cid sẽ là kênh đại diện tiếp nhận các kết nối mạng cơ bản Các kênh thông điệp được định nghĩa trong thông điệp đầu tiên được gửi Nó có thể thêm vào đầu vào cho các hoạt động gửi, thực tế tất

cả thông điệp được truyền qua cùng một kết nối

Khi SAML SSO không sử dụng giao thức xác thực trong các loại hình truyền thông điệp, giao thức sẽ không diện được mức an toàn và thấy kiểm tra thấy thiếu sự nhận dạng và các nhân tố đảm bảo an toàn do vậy không phù hợp

Các nhân tố đảm bảo bảo mật và toàn vẹn và chống chối bỏ:

• Bí mật: Ngoài người gửi ban đầu,chỉ có một bên có thể giải mã thông điệp msg Điều này thường được chỉ định bởi các ADR

• Toàn vẹn: Kiểm chứng được bên đọc được msg ở trạng thái nguyên vẹn chưa bị sửa chữa

2.3.3 Bảo mật kênh truyền

SAML SSO xác nhận thông tin người dùng lần hai sau lần người dùng đã được chứng thực Nó đảm bảo tính bí mật, toàn vẹn và xác thực hai bên Tất cả các thông tin được truyền qua một kênh an toàn Có thể thực hiện với SSL/TLS

có chứng chỉ xác thực hai bên người dùng và máy chủ:

S(snd _id) ⇒ cid R(rcv_id):adr-msgHai bên giao tiếp: Bên gửi S và bên nhận R trong đó S có đặc trưng snd_id và bên R có định danh rcv_id Tên máy tính được đặt trong lần đầu tiên gửi thông điệp và bỏ qua nó trong lần tiếp theo nếu cùng sử dụng kênh truyền cid Việc thiết lập kênh truyền giữa S và R sử dụng thông điệp msg để gửi nhận thông qua một kênh được thành lập:

 Xác thực hai bên: Hai bên gửi (S) và nhận(R) xác nhận mình với snd_id

và rcv_id, cả hai bên kiểm tra chứng chỉ tương ứng và chỉ tiến hành quá trình bắt tay nếu chứng chỉ hợp lệ

Trang 27

 Bí mật: Chỉ có S với định danh snd_id và người nhận R với rcv_id mới có thể đọc được nội dung thông điệp msg

 Toàn vẹn: Bên nhận R có thể xác minh nội dung thông điệp msg được gửi

từ từ S có định danh snd_id Nếu R nhận được thông điệp msg từ bên khác

S gửi đến nó sẽ trả về một thông báo lỗi

2.3.4 Theo dõi người sử dụng

Là một thành phần quan trọng trong giao thức SAML Single Sign On, trang web nguồn S không yêu cầu người dùng U đăng nhập lại nhưng phải xác thực U

tự động Toàn bộ quá trình tương tác trong suốt với người dùng được gọi là quá trình xác thực và theo dõi người dùng đăng nhập

Giả sử người dùng U đã đăng nhập trước đó và phiên đăng nhập của U chưa hết hạn, người dùng sử dụng trình duyệt B trở lại web nguồn S trong bước 1 của giao thức, website S có thể liên kết các trình duyệt vẫn còn đăng nhập hợp lệ Site S định danh người dùng U từ liên kết này Các thông tin đăng nhập được xây dựng:

a): S → cid B⇒U :Yêu cầu đăng nhập

b): U ⇒ B →cidB :Đăng nhập lU,S

c): S →cidB : Xác minh thông tin vi

Bước (a): Đăng nhập asite nguồn S được xác thực người dùng bằng một kênh truyền được định danh bởi các cid, trình duyệt B yêu cầu người dùng U đăng nhập

Bước (b): Trong bước này người dùng U đăng nhập thông tin của mình(lU,S) vào trình duyệt S Thông tin đăng nhập của người dùng có thể là user/password, trình duyệt B chuyển tiếp vào site nguồn S thông qua kênh định danh bởi cid Site nguồn S kiểm tra thông tin đăng nhập, sau khi quá trình đăng nhập hoàn thành site S gửi lại một xác minh đăng nhập thành công cho trình duyệt B Trình duyệt xem thông tin và xác định thông tin đăng nhập người dùng U

Người dùng có thể tiếp tục theo dõi các hoạt động mà không cần tương tác với giao diện người dùng:

Trang 28

d): S→cid’B yêu cầu vi

c): B→cid’S Kiểm chứng vi

Site nguồn S theo dõi người dùng và yêu cầu xác minh vi thông qua một kênh được định danh cid’ Trình duyệt B căn cứ vào các thông tin xác minh để đưa ra phản ứng với S Sau khi xác minh được các thông tin với trình duyệt người dùng, site nguồn chấp nhận các thông tin đăng nhập

2.4 Lược đồ giao thức

2.4.1 Liên hệ các trang web nguồn

Trong bước đầu tiên của giao thức trình duyệt B thiết lập quan hệ với site nguồn S

• a): B →bs_cidS :ist_host – GET <IST-URL>s? TARGET=target

<HTTP-Version>

• b) S: Kiểm tra các yêu cầu

• (a): Trình duyệt B kết nối với các trang web liên kết:Chuyển URL<IST-URL>s. của S B và S chuyển thông điệp với các thuộc tính bí mật, toàn vẹn như đã mô tả trước đó tới trang nguồn S

• (b): S phân tích, kiểm tra các yêu cầu và bắt đầu một phiên làm việc mới S cố gắng xác định các thông tin yêu cầu từ chuỗi thông tin truy vấn người dùng yêu cầu

Sự thiếu xác thực: Kết nối này không cung cấp xác thực một bên do đó trình duyệt B có thể không nhất thiết xác minh S bằng cách kiểm tra chứng chỉ của S

và xác nhận của nhà cung cấp chứng chỉ tin cậy Việc thiếu xác thực này có thể dẫn đến tấn công xen giữa (man-in-the-middle) việc truyền thông giữa trình duyệt và web nguồn (B↔A↔S) Kẻ tấn công xen giữa chỉ cần phá vỡ quá trình theo dõi người dùng ở bước tiếp theo là có thể thành công

Định dạng thông điệp: Thông điệp gửi tới S là một HTTP GET yêu cầu đường dẫn của <IST-URL>s nó chứa thông tin tài nguyên mà người dùng U muốn truy cập trên trang web đích D Các giao thức SAML SSO không quy định

cụ thể các yếu tố thêm vào các URL cũng như không ngăn cấm bao gồm các yếu

tố khác Giao thức đã không mô tả rõ cách đặt tên rõ ràng dẫn đến cản trở việc điều phối các thông điệp để sử dụng các module giao thức khác nhau

Trang 29

 Chuyển hướng đến trang web đích:

Sau khi xác nhận thành công người dùng U,trang nguồn S tạo ra nhiều kiến trúc SAML Nó chuyển hướng đến trình duyệt B tạo các URL <AR-URL>D của web đích D và với các thành phần của SAML

(a) S: Xác định các trang web đích tương ứng D đối với mục tiêu Bước 1 trong <AR-URL>D trong bảng kiến trúc gửi

(b) S: Tạo ra một hoặc nhiều kiến trúc SAML<SAMLart>i có chứa SourceIDS của nó

(c) S: Tạo ra một searchpart SAML SAM LSP

(d)S →bs cid B : <HTTP-Version> 302 <Reason Phrase> Location URL>D ? SAM Lsp

<AR-Trong bước (b), site nguồn nhận được URL <AR-URL>D Giao thức SAML Single Sign On không xác định thủ tục này Chúng ta giả định rằng nó tìm kiếm cho một URL có tên máy ngang bằng với nguồn đích Site nguồn này sinh ra một

số của SAML artifacts và lưu trữ nó các thông tin artifacts đã được ban hành tới site đích D Site đích cũng như site nguồn không có chứng chỉ hoặc định danh của D, nó có thể sử dụng tên máy site S hoặc tham chiếu của nó Ở bước này chúng ta trải qua cùng một vấn đề định dạng thông điệp ở bước 1 Hơn nữa, chúng ta không dựa vào xác thực thì tấn công man in the middle có thể xảy ra

2.4.2 Chuyển đến trang đích

Ở bước 3, trình duyệt B kết nối với D <AR-URL>D.

(a) B: Extracts the URL <AR-URL>D ? SAM Lsp

(b) B →bd cid D: ar host – GET <AR-URL>D ? SAM Lsp Version>

<HTTP-2.4.3 SAML Request

Trong bước 4 web đích D thiết lập một kênh an toàn để web nguồn S sử dụng các sourceID của các SAML artifacts nhận được để tìm ra tương ứng các SAML trả lời tương ứng cho các yêu cầu

(a) D: Kiểm tra artifact <SAMLart>i the SAM Lsp chứa SourceID

(b) D: Xem <SR-URL>S tương ứng với SourceID

Trang 30

(d) D(idD ) ⇒ds_cid S(idS ): sr_host – SAML yêu cầu <SR-URL>S chứa

artifacts<SAMLart>i

Trong bước 4a, site đích tạo ra một phiên để phân tích các URL yêu cầu Site đích này hủy bỏ chạy nếu yêu cầu không dành cho <AR-URL>D. Nếu D không thể phân tích cú pháp searchpart SAML, hoặc nếu yêu cầu không bao gồm SAML artifacts Site đích kiểm tra giá trị của artifacts<SAMLart>i trong searchpart Tất cả artifacts phải được định dạng,có id version hợp lệ, và không bao gồm các bản với SourceID Site đích D sử dụng SourceID để tìm kiếm <SR-URL>S của site S( bước 4b)

Bước 4d, site nguồn sẽ thiết lập kênh truyền bảo mật ds_cid tới site S với xác thực hai bên Nó gửi SAML request với received artifacts qua kênh truyền này

Đặc điểm kỹ thuật của trang web nguồn: Bước này của giao thức không xác định đầy đủ thông tin của site S SAML Single sign on chỉ trạng thái site D <SR-URL>S.Vì vậy chúng ta có thể giả định rằng D không biết định danh ids của S.Một yêu cầu sở hữu của SAML Artifact: Trong giao thức Sigle sign on, SAML artifacts chỉ được sử dụng một lần, nó được quy định ở bước 5, trong khi site D không lưu trữ artifacts received Vì vậy, nếu việc chuyển của SAML khác

D thì SAML đòi hỏi định danh của U idU

Nhiều dịch vụ trên một host: Một site nguồn S có thể chỉ cần xác minh với máy gửi ở bước 4 Nếu có nhiều dịch vụ trên web đích D, một số dịch vụ nhưng bảo mật kém được sử dụng mạo danh người dùng U để thao tác với các dịch vụ

có mức bảo mật cao hơn, ví dụ tại dịch vụ ngân hàng dịch vụ phân tích chứng khoán,thị trường chạy cùng với các dịch vụ nghiệp vụ của ngân hàng trên cùng một máy chủ và sử dụng SAML Single Sign On cho các dịch vụ Một mã độc được thực thi chuyển hướng từ phân tích thi trường sang sử dụng các quyền của người dùng U có quyền thực hiện các giao dịch điện tử ngân hàng(<AR-URL>DBank ,stock đến <AR-URL>DBank ,ebank)

2.4.4 SAML Response

Trong bước 5 site nguồn phân tích yêu cầu SAML và tạo ra phản hổi Nó gửi phản hồi trở lại thông qua kênh truyền với id ds_cid tạo ra ở bước 4

Trang 31

(a) S: Kiểm tra các đích

(b) S: Thực thi việc thực hiện một lần các artifact

(c) S: Xem hoặc tạo ra các xác nhận SAML tương ứng với các artifacts

<SAMLart>i

(d) S: Tạo các ID phản hồi

(e) S(idS ) →ds_cidD(idD ): Phản hồi SAML <SR-URL>S chứa các xác nhận về SSO hoặc mã lỗi ,đáp ứng tham chiếu các yêu cầu của bước 4 (f) D: Xác minh tính hợp lệ của các SAML

Trong bước 5a site nguồn S kiểm tra thông tin phản hồi lại từ các site yêu cầu thông tin, giao thức SAML SSO lưu thông tin các yêu cầu thông tin từ các site đích để site nguồn không xác định và không cấp yêu cầu đó cho các site đích yêu cầu khác Các site nguồn có thể chỉ lưu trữ tên máy hoặc <AR-URL> cho các yêu cầu Nó sẽ so sánh tên máy của site đích hoặc AR-URL trong bảng lưu trữ

mà nó đã phát hành để đưa ra các phản hồi Nếu trong bước 5b các thông tin phản hồi được tìm thấy site nguồn S sẽ đưa ra phản hồi với các tài nguyên được yêu cầu Đây là tài nguyên được yêu cầu một lần, mỗi lần yêu cầu sử dụng lại site nguồn sẽ xác nhận và gửi phản hồi sử dụng cho các lần tiếp theo Nếu thông tin yêu cầu không xác định tên máy đích, AR-URL site nguồn S sẽ phản hồi yêu cầu lại bước 4

2.4.5 Đáp ứng yêu cầu từ trình duyệt

Trong bước 6 web đích D đáp ứng các yêu cầu của trình duyệt B, nếu D xác định được các thông tin của người dùng U qua các bước trên nó sẽ cho phép truy cập các tài nguyên yêu cầu Nếu không nó sẽ trả về một thông báo lỗi

D→bd_cidB: thông điệp lỗiĐặc điểm kỹ thuật của bước này: Giao thức SAML SSO không xác định được đúng các thông tin yêu cầu nó sẽ bỏ qua các bước yêu cầu bảo mật cho kết nỗi này

2.5 Một số lỗ hổng có thể lợi dụng để thực hiện tấn công

2.5.1 Hijacking / Replay Attack

Một kẻ tấn công có thể cướp kết nối của SAML SSO sử dụng lại và chuyển

Trang 32

Điều kiện tiên quyết: Kẻ tấn công A có thể chặn các kết nối và có thể quan sát các kết nối từ trình duyệt B để thu được các URL<AR-URL >Dcủa bước 3 Ngoài ra phải hoàn toàn sở hữu thông điệp msg và không có ràng buộc toàn vẹn cho bên gửi phòng ngừa bị sử dụng phát lại.

Kẻ tấn công chặn kết nối từ bước 3 đến site đích D và sử dụng lại thông điệp

đã được mã hóa

• B → D: Chuyển đến <AR-URL>D

• Kẻ tấn công A: Chặn quá trình chuyển hướng từ B đến D và chấm dứt kết nối từ B đến D

• AB → D: Phát lại các thông tin chuyển cho D <AR-URL>D và mạo

danh trình duyệt B nó sử dụng một giao thức phụ để sửa đổi thông điệp mã hóa cho phép gửi trực tiếp Đích D không thể phân biệt được

B và A do thiếu xác thực

• D → S: SAML yêu cầu q cho SAML artifacts của thông điệp p

• S → D: SAML đưa ra phản ứng r với yêu cầu xác nhận

• D→ AB: Đáp ứng cho bước 3,D sẽ đáp ứng cho AB và cấp quyền truy cập tương tự trình duyệt B và người sử dụng U

Kết luận: Vì có tính toàn vẹn và bí mật ở bước 3 nên kẻ tấn công A không thể xem hoặc chỉnh sửa được tin nhắn p Nhưng đặc tính này không đủ mạnh đển chống lại tấn công phát lại Kẻ tấn công A đóng giả trình duyệt B gửi yêu cầu tới Site D

Do thiếu xác thực trong bước này và thiếu định danh trong chuyển hướng, D không phân biệt được bên B và AB Ngoài địa chỉ IP của các bên, thì quan điểm của D là như nhau trong giao tiếp với B và AB

Giải pháp: Site S có thể nhập địa chỉ IP của trình duyệt B như các chuỗi truy vấn trong khi chuyển hướng Site đích D sẽ kiểm tra địa chỉ IP của thông báo nhận được với địa chỉ IP của trình duyệt B Nếu kiểm tra thấy không trùng nhau

D sẽ không thực hiên các bước sau

2.5.2 Tấn công xen giữa (Man-in-the-Middle)

Giả mạo DNS là một kỹ thuật Man-in-the-Middle đượ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

Trang 33

đó Lúc này kẻ tấn công đóng vai trò là một proxy đứng giữa trình duyệt B và web nguồn S: B ↔A↔ S

Điều kiện tấn công: Cần giả mạo ARP cache thiết bị mục tiêu để định tuyến lại lưu lượng của nó qua host đang tấn công của mình, từ đó có thể chặn yêu cầu DNS và gửi đi gói dữ liệu giả mạo Mục đích của kịch bản này là lừa người dùng trong mạng mục tiêu truy cập vào website của kẻ tấn công thay vì website mà họ đang cố gắng truy cập

• AS: Đóng vai trò giả mạo nguồn web S <IST-URL>S đến trình duyệt B

<IST-URL>sB =<IST-URL>A

• B →As Kết thúc quá trình chuyển hướng Quá trình này không yêu cầu xác thực

• AB →S Kết thúc việc chuyển hướng từ trình duyệt giả mạo AB đến web

S A thực hiện đứng giữa B và S, vì hệ thống theo dõi người dùng của

S không chống lại được tấn công Man in the Middle nên A có thể chuyển tiếp được tất cả giao tiếp giữa B và S trong quá trình theo dõi người dùng

• AB →D Kết thúc quá trình chuyển hướng đến <AR-URL>D AB đóng

vai trò của B để chuyển hướng các AML artifacts và cho phép AB có quyền truy cập của người dùng U

• A→B: Chuyển hướng yêu cầu <IST-URL>S một người ban đầu sử dụng trình duyệt B giả định người dùng đã được xác thực với site S Khi đó không cần các tương tác ở bước 1,2, A lúc này có thể sử dụng giao thức của B để sử dụng một phiên kết nối với quyền người dùng

mà không bị thông báo thiết lập lại trạng thái của giao thức

Do các bên không yêu cầu chứng thực ở bước 1,2 nên trình duyệt B có thể không phân biệt <IST-URL >A của kẻ tấn công và <IST-URL>S của nguồn thật website

Các giải pháp: Xác thực một bên trong tất cả các bước của giao thức có thể ngăn chặn giả mạo site S, để website nguồn S theo dõi trình duyệt B được chỉ định trong giao thức SAML single sign on Được sử dụng trong các sản phẩm

Trang 34

2.5.3 HTTP Referrer Attack

Cuộc tấn công cho phép người dùng thu thập được các thông tin rò rỉ về SAML artifacts Nó sử dụng các referen TAG để không sử dụng các SAML artifacts

Điều kiện tấn công: Kẻ tấn công có thể khai thác các kênh truyền và chặn các kết nối Ngoài ra, để cho B là một trình duyệt đã đưa ra HTTP Referrer Tag theo mặc định

Kẻ tấn công làm gián đoạn sự kết nối trang web D và web site nguồn S để thu thập thông tin của SAML artifacts

2.5.4 Khai thác lỗ hổng của SSL/TSL

SOAP trên HTTP là một trong những thành phần quan trọng nhất các ràng buộc của giao thức SAML Single Sign On Nó sử dụng SSL 3.0 hoặc TLS 1.0 là kênh truyền thông cho các kết nối yêu cầu tính bí mật và tính toàn vẹn Khi liên kết này vượt quá các yêu cầu an ninh của các giao thức riêng của mình, các cuộc tấn công sẽ có nhiều khó khăn thực hiện Tấn công Hijacking / Replay Attack không còn thực hiện được

2.6 Bảng đánh giá các sản phẩm SSO (open source)

• Stanford WebAuth: Stanford , Oxford University

• Cosign: Michigan , Edinburgh University

Và còn nhiều tool khác như Pubcookie , KX.509, A-Select Ở đây trong

survey này sẽ giới thiệu về CAS , Stanford WebAuth, Cosign , nêu lên các ưu nhược điểm, và đánh giá thông qua 1 số các tiêu chí về các tool trên qua đó xem xét tool nào là thích hợp nhất cho hệ thống xác thực của trường đại học

2.6.2 CAS (Central Authentication Service)

 Open source được phát triển bời đại học Yale

 CAS server được viết bằng Java và chạy trên nền J2EE

Trang 35

 Dưa trên mô hình cookie-Based Model.

 Sử dụng giao thức Kerberos, việc authentication sẽ được dựa vào session

ID cookie ( hay là Ticket Granting ticket)

kế từ J2EE application server

Tính hiệu quả Tốt Code thì rõ ràng và có sử dụng

in-memory ticket cache

(Số lượng transaction

của application có thể

đáp ứng)

Tốt CAS thừa hưởng các đặc tính tốt về

Throughput từ J2EE application server

Total Cost of

Ownership

Tốt CAS có thể có mức chi phí cao dựa

vào sự triển khai của J2EE application server.Nhưng nhìn chung,chi phí cho CAS ở mức thấp

Khả năng mở rộng Tuyệt vời Khả năng mở rộng của CAS thì phụ

thuộc nhiều vào khả năng tạo nhóm mà J2EE application server cung cấp Dựa vào tải ,mà J2EE application server có thể triển khai thêm Servlets để có thể đáp ứng

Trang 36

Supportability(Mức độ

tích hợp ứng dụng có

thể được hỗ trợ)

Rất tốt Hầu hết J2EE application servers

cung cấp rất tốt các tool để giám sát các thánh phần của J2EE mà triển khai trên

nó Tiếc rằng các tool này ko được mờ rộng Application server cung cấp cơ chế logging tập trung

Ko có 1 trang dành cho người quản trị để có thể thấy logged-on users

Khả năng bảo trì Tốt Ứng dụng có thể dễ dàng được sửa

chữa vào bảo trì, Nhưng nó sẽ đòi hỏi phải triển khai trên tất cả các J2EE application server và cập nhật cho các client đang sử dụng trên Web servers

Bảng 2.1:CAS(Central Authentication service)

 Nhận xét về CAS :

 An toàn

 Hỗ trợ N-tier installations mà ko cần phải truyền password

 Việc thiết kế tốt Service ticket là một trong những điểm mạnh của CAS

 Hỗ trợ rất lớn về thư viên bên client như : Java, Perl, JSP, ASP, PHP, PL/SQL, Apache, PAM module

 Được rất nhiều trường đại học tin dùng

 Dễ bị tổn hại khi network và server bị lỗi

 Một trong những điểm bất lợi của CAS là CAS sử dụng Java Java có một điểm bất lợi về tốc độ đáp ứng là một trong những điều quan trọng của hệ thống

Nhưng vấn đề này có thể giải quyết bằng cách viết code tốt và triển khai được một kiến trúc tốt Nếu được như vậy thì tốc độ của hệ thống sẽ hiệu quả giống như những hệ thống được viết bằng các ngôn ngữ khác

Trang 37

2.6.3 Open source được phát triển bời đại học Stanford

Tiêu chí Mức độ Đánh giá

Tính mềm dẻo Hợp lý WebAuth đưa ra thiết kế kết nối chặt :

WebKDC xử lý mọi thứ Dù vậy, theo thiết

kế, WebKDC ko xử lý việc xác nhận các token (điều này được thực hiện bởi Web server trong khi giải mã các Token)

Tính hiệu quả Tốt Code WebAuth được viết bằng Perl, mà

Perl thì rất hiệu quả (mặc dù là ngôn ngữ dạng thông dịch) Một vấn đề lớn của Perl

là có khuynh hướng sử dụng nhiều bộ nhớ hơn 1 ứng dụng C tương đương

Độ đảm bảo khi

gặp lỗi

Rất tốt Perl cung cấp việc xử lý lỗi tốt và

WebAuth sử dụng khả năng này của PerlThroughput(Số

lượng transaction

của ứng dụng có

thể đáp ứng)

Rất tốt Bởi vì WebKDC không làm việc kiểm

định các token cho nên performance không

bị ảnh hưởng bởi việc token bị sai Và cũng bởi vị bản chất tự nhiên của WebKDC là không trạng thái, nên sẽ có throughput cao hơn.Duy chỉ có 1 điểu trở ngại lớn là sử dụng ngôn ngữ dạng thông dịch

Total Cost of

Ownership

Kém Chi phí triển khai cho WebAuth có lẽ

khá cao so với việc client hỗ trợ Mặc dù là chi phí dành cho WebAuth sẽ nhỏ nhưng chi phí dành cho Perl sẽ lớn hơn Java

Khả năng mở

rộng

Rất tốt Bởi vì WebKDC là không trạng thái (tất

cả trạng thái được lưu vào trong cookies trong browser), nên WebAuth thì có tính

mở rộng cao Multiple servers có thể được vận hành với WebKDC

Trang 38

Ko có 1 trang dành cho người quản trị

để có thể thấy logged-on users

Khả năng bảo

trì

Tốt Ứng dụng có thể dễ dàng được sửa chữa

vào bảo trì, Nhưng nó sẽ đòi hỏi phải triển khai trên tất cả các J2EE application server

và cập nhật cho các client đang sử dụng trên Web servers

Bảng 2.2: Open source được phát triển bởi đại học Stanford

2.6.4 Cosign

Tiêu chí Mức độ Đánh giá

Tính mềm dẻo Rất tốt Nếu các thành phần của hệ thống được

phân bố 1 cách hợp lý, hệ thống sẽ có tính mềm dẻo Cosign đưa ra kết nối thấp , vì vậy , những mô hình có thể triển khai là rất phong phú và đa dạng Bởi vì CoSign server có khả năng sao lặp dữ liệu cho các server khác ,nên dữ có thể dẽ dáng được phân bố và làm tăng tính mềm dẻo và nâng cao throughput

Tính hiệu quả Tốt Tất cả những authentication cookie và

service cookie thì được lưu thành dạng file

ở trên đĩa Điều này tạo ra sự hiệu quả trong các trường hợp high-load

Độ đảm bảo khi

gặp lỗi

Tốt Một khi ừng dụng được chạy, Cosign

có khả năng xử lý lỗi 1 cách hợp lýThroughput(Số

lượng transaction

của application có

thể đáp ứng)

Rất tốt Đại học Michigan đang sử dụng

CoSign trên 3 máy dual 2.8Ghz với 4GB RAM và phục vụ xấp xỉ đăng ký 255000

ST và 180000 login request / ngày

Trang 39

Total Cost of

Ownership

Tốt CoSign có thể có mức chi phí cao về

việc triển khai và thay đổi code để phù hợp vời yêu cầu.Nhưng nhìn chung, chí phí cho Cosign là nhỏ

Khả năng mở rộng Rất tốt Tất cả authentication cookies và

service cookies thì được lưu dưới dạng file trên đã cứng Điều này ảnh hưởng nhiều đến khả năng mở rộng, như là có một số lượng tối đa các object mà hệ điều hành cho phép trong một thư mục

Có 1 quá trình lớn phục vụ cho việc nhân rộng các TGT và ST tới các dịch vụ cosignd khác đang chạy trên các host Mối quan hệ giữa CoSign CGI và cosignd /monster services không cần thiết phải là quan hệ 1 -1

Ko có 1 trang dành cho người quản trị

để có thể thấy logged-on users

Khả năng bảo trì Tốt Phần lõi cùa ứng dụng dễ dàng được

bảo trì

Bảo trì , sửa chữa client và các hàm API của client thì sẽ khó khăn hơn 1 chút bởi vì bản chất phân tán của chúng

Bảng 2.3: CosignThông qua tìm hiểu và xem xét thì ta thấy, mỗi giải pháp đều có điểm mạnh

và điểm yếu riêng CoSign là 1 giải pháp tốt cho việc hiện thực hệ thống single sign on, thế nhưng với tài liệu ít ỏi mà CoSign đưa ra việc hiện thực CoSign là rất khó khăn( hầu như không có hỗ trợ nào về tài liệu cho dù đây là 1 open

Ngày đăng: 25/11/2014, 09:58

HÌNH ẢNH LIÊN QUAN

Hình 1.2:Ứng dụng single sign on sử dụng OpenID - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 1.2 Ứng dụng single sign on sử dụng OpenID (Trang 12)
Hình 1.3: Single Sign On trên windows - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 1.3 Single Sign On trên windows (Trang 14)
Hình 2.1:Kiến trúc SSO cho ứng dụng Internet - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 2.1 Kiến trúc SSO cho ứng dụng Internet (Trang 16)
Hình 2.2: Kiến trúc SSO cho mạng nội bộ - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 2.2 Kiến trúc SSO cho mạng nội bộ (Trang 17)
Hình 2.3: Kiến trúc SSO cho nhiều miền - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 2.3 Kiến trúc SSO cho nhiều miền (Trang 18)
Hình 2.4: Kiến trúc SSO chéo - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 2.4 Kiến trúc SSO chéo (Trang 19)
Hình 2.5: Tấn công Session Hijacking - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 2.5 Tấn công Session Hijacking (Trang 22)
Hình 2.6: Tấn công Man in the Middle - 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 (Trang 23)
Hình 2.7: Giả mạo DNS - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 2.7 Giả mạo DNS (Trang 23)
Hình 2.8: SAML Single Sign On - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 2.8 SAML Single Sign On (Trang 25)
Bảng 2.1:CAS(Central Authentication service) - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Bảng 2.1 CAS(Central Authentication service) (Trang 36)
Bảng 2.2: Open source được phát triển bởi đại học Stanford - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Bảng 2.2 Open source được phát triển bởi đại học Stanford (Trang 38)
Bảng 2.3: Cosign Thông qua tìm hiểu và xem xét thì ta thấy, mỗi giải pháp đều có điểm mạnh  và điểm yếu riêng - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Bảng 2.3 Cosign Thông qua tìm hiểu và xem xét thì ta thấy, mỗi giải pháp đều có điểm mạnh và điểm yếu riêng (Trang 39)
Bảng 3.1: /SAMLValidate - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Bảng 3.1 /SAMLValidate (Trang 46)
Hình 3.1 : Đăng nhập CAS - 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 (Trang 49)
Hình 3.2 : Chứng thực một trình duyệt đển  máy chủ CAS - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.2 Chứng thực một trình duyệt đển máy chủ CAS (Trang 49)
Hình 3.4: Trình duyệt truyền ST cho ứng dụng - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.4 Trình duyệt truyền ST cho ứng dụng (Trang 50)
Hình 3.6 : Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.6 Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS (Trang 51)
Hình 3.5 : Ứng dụng truyền ST cho CAS - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.5 Ứng dụng truyền ST cho CAS (Trang 51)
Hình 3.8: CAS trả về cho trình duyệt đồng thời TGC và ST - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.8 CAS trả về cho trình duyệt đồng thời TGC và ST (Trang 52)
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 - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
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 (Trang 53)
Hình 3.11: Cơ chế Proxy - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.11 Cơ chế Proxy (Trang 54)
Hình 3.12: Thu hồi TMP của một  proxy CAS từ máy chủ CAS - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.12 Thu hồi TMP của một proxy CAS từ máy chủ CAS (Trang 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 - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
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 (Trang 57)
Hình 3.14: Sơ đồ CAS - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.14 Sơ đồ CAS (Trang 57)
Hình 3.15 : Login Flow - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.15 Login Flow (Trang 59)
Hình 3.16 : Proxy Flow - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.16 Proxy Flow (Trang 61)
Hình 3.18: Mô hình triển khai ứng dụng - tìm hiểu hệ thống đăng nhập một lần sso - single sign on
Hình 3.18 Mô hình triển khai ứng dụng (Trang 64)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w