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

giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos

83 948 3

Đ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 83
Dung lượng 1,83 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bên cạnh đó, các mạng xã hội tíchhợp các dịch vụ địa điểm và bản đồ số giúp cho chúng ta thông báo vị trí hiện tạiđến bạn bè, chia sẻ thông tin và đánh giá địa điểm… Việc phát triển và n

Trang 1

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Trang 2

HÀ NỘI 5-2011

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1 Thông tin về sinh viên

Họ và tên sinh viên: Nguyễn Quang Đức

Điện thoại liên lạc: 0904666787 Email: ducnq135@gmail.comLớp:Công nghệ phần mềm – K51 Hệ đào tạo: Đại học

Đồ án tốt nghiệp được thực hiện tại:Bộ môn Công nghệ phần mềm – Viện Công nghệ thông tin và truyền thông – Đại học Bách Khoa Hà Nội

Thời gian làm ĐATN: Từ ngày 27 / 02 / 2011 đến 27 / 05/ 2011

2 Mục đích nội dung của ĐATN

 Xây dựng giải pháp xác thực và bảo mật ứng dụng mô hình Kerberos cho mạng xã hội Áp dụng giải pháp vừa xây dựng vào mạng xã hội Foloyu

 Xây dựng Profile Engine cung cấp các dịch vụ cho mạng xã hội Foloyu

3 Các nhiệm vụ cụ thể của ĐATN

 Nghiên cứu lý thuyết về Kerberos

 Nghiên cứu lý thuyết về Web Service

 Xây dựng giải pháp áp dụng mô hình Kerberos để xác thực và bảo mật

 Xây dựng Profile Engine

 Áp dụng giải pháp sử dụng Kerberos và Profile Engine vào mạng xã hội Foloyu

Trang 3

4 Lời cam đoan của sinh viên

Tôi – Nguyễn Quang Đức - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của Tiến sĩ Nguyễn Khanh Văn

Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất

Hà Nội, ngày tháng năm

Giáo viên hướng dẫn

Tiến sĩ Nguyễn Khanh Văn

Trang 4

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Ngày nay, mạng xã hội đang phát triển rất nhanh chóng và có hàng triệu ngườitham gia.Việc thu hút được nhiều người tham gia như vậy khiến cho các nhà pháttriển không ngừng phát triển các các dịch vụ để cung cấp các chức năng cho mạng

xã hội Bên cạnh đó, việc có một số lượng lớn người tham gia như vậy khiến cho hộcũng phải quan tâm đến các vấn đề liên quan đến xác bảo mật trong mạng xã hội

Đề tài tốt nghiệp có tên “Giải pháp xác thực và bảo mật cho mạng xã hội ứng

dụng mô hình Kerberos” với mục đích tạo ra 1 cơ chế xác thực người dùng và

thiết lập một kênh truyền thông tin an toàn trong mạng xã hội

Qua tìm hiểu và nghiên cứu lý thuyết, tác giả nhận thấy rằng mô hình Kerberosđáp ứng được các yêu cầu về cơ chế xác thực và bảo mật kênh truyền đặt ra.Từ đó,tác giả sẽ xây dựng một giải pháp ứng dụng mô hình Kerberos và áp dụng nó vàomạng địa xã hội Foloyu Bên cạnh đó, để có thể triển khai và thử nghiệm giải phápmột cách hiệu quả, trong đồ án, tác giả cũng sẽ trình bày việc xây dựng ProfileEngine được triển khai dưới dạng Web Service.Profile Engine này vừa có chứcnăng cung cấp một số dịch vụ cho mạng xã hội, vừa cung cấp dịch vụ để thực hiệngiải pháp Kerberos

Trang 5

ABSTRACT OF THESIS

Nowadays, social network has been developing very rapidly and there aremillions of people joining this network Attracting a lot of people makes developersnever stop expanding their services to provide various functions and features fortheir social network.In addition, such a large number of people taking part in theirnetwork make them pay more attention to some security problems of socialnetwork

The title of my thesis is “A solution to authentication and secure protocol

for social network applying Kerberos” The goal of my thesis is building a

authentication mechanism and establishing a security protocol for exchangingmessage

Through studying and researching, I have identified that Kerberos is the bestsolution to meet the requirement of authentication mechanism and secure protocol.Based on Kerberos, I wil build a solution to the problem mentioned above and applythis solution to the geo-social network Foloyu Beside, in order to test and deploythe solution effectively, in this thesis, I will build a Profile Engine which isdeployed as Web Service.This Engine will provide some services for Foloyu andsome services for Kerberos-based solution

Trang 6

LỜI CẢM ƠN

Trước tiên em xin gửi lời cảm ơn chân thành sâu sắc đến các thầy cô giáo trong trường đại học Bách Khoa Hà nội nói

chung và các thầy cô giáo trong khoa Công nghệ Thông tin,

bộ môn Công nghệ phần mềm nói riêng đã tận tình giảng dạy,

truyền đạt cho em những kiến thức, kinh nghiệm quý báu

trong suốt năm năm học vừa qua

Em xin gửi lời cảm ơn đến thầy giáo Tiến sĩ Nguyễn Khanh Văn đã định hướng và tận tình giúp đỡ em rất nhiều

trong suốt quá trình làm đồ án tốt nghiệp Dưới sự hướng dẫn

của thầy, em đã tiếp thu được rất nhiều kiến thức, bao gồm

những kiến thức lý thuyết và những kinh nghiệm thực tế trong

quá trình tham gia dự án Foloyu Em xin được gửi tới Thầy

lòng biết ơn sâu sắc

Đồng thời em xin chân thành cảm ơn thầy Trịnh Tuấn Đạt đã cho em những lời khuyên quý báu cũng như các bạn

trong nhóm dự án Foloyu đã giúp đỡ mình rất nhiều trong quá

trình thực hiện đồ án

Hà Nội, ngày 27 tháng 05 năm 2011

Sinh viên : Nguyễn Quang Đức

Viện : Công nghệ Thông tin Và Truyền Thông

Đại học Bách Khoa Hà Nội

Trước tiên em xin gửi lời cảm ơn chân thành sâu sắc đến các thầy cô giáo trong trường đại học Bách Khoa Hà nội nói

chung và các thầy cô giáo trong khoa Công nghệ Thông tin,

bộ môn Công nghệ phần mềm nói riêng đã tận tình giảng dạy,

truyền đạt cho em những kiến thức, kinh nghiệm quý báu

trong suốt năm năm học vừa qua

Em xin gửi lời cảm ơn đến thầy giáo Tiến sĩ Nguyễn

Khanh Văn đã định hướng và tận tình giúp đỡ em rất nhiều

trong suốt quá trình làm đồ án tốt nghiệp Dưới sự hướng dẫn

của thầy, em đã tiếp thu được rất nhiều kiến thức, bao gồm

những kiến thức lý thuyết và những kinh nghiệm thực tế trong

quá trình tham gia dự án Foloyu Em xin được gửi tới Thầy

lòng biết ơn sâu sắc

Đồng thời em xin chân thành cảm ơn thầy Trịnh Tuấn

Đạt đã cho em những lời khuyên quý báu cũng như các bạn

trong nhóm dự án Foloyu đã giúp đỡ mình rất nhiều trong quá

trình thực hiện đồ án

Hà Nội, ngày 27 tháng 05 năm 2011

Trang 7

Mục lục

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 4

1.1.1 Khái niệm mạng xã hội 18

1.1.2 Kiến trúc căn bản của mạng xã hội 19

1.1.3 Dự án mạng địa xã hội Foloyu 20

1.2 Các vấn đề cần giải quyết 21

1.3 Định hướng giải quyết các vấn đề đặt ra 22

1.3.1 Giải pháp 22

a Cho bài toán bảo mật cho mạng xã hội 22

b Cho việc xây dựng các Engine cung cấp dịch vụ 23

1.3.2 Áp dụng giải pháp vào mạng xã hội Foloyu 23

a Kiến trúc mạng xã hội Foloyu 23

b Giải pháp áp dụng vào Foloyu: 24

CHƯƠNG 2: Cơ sở lý thuyết 25

2.1 Giao thức Kerberos 25

2.1.1 Khái niệm Kerberos 25

2.1.2 Các thành phần và thuật ngữ được dùng trong Kerberos: 26

a Realm 26

Trang 8

b Principal 26

c Ticket 26

d Mã hóa trong Kerberos: 27

e Trung tâm phân phối khóa (Key Distribution Center): 28

f Khóa phiên (Session Key) 29

g Authenticator29

i Credential cache 29

2.1.3 Mô tả giao thức Kerberos 29

2.2 Lý thuyết về Web Service 34

2.2.1 Định nghĩa Web Service 34

2.2.2 Ưu, nhược điểm của Web Service 34

2.2.3 Một số khái niệm cơ bản trong Webservice 35

a Simple Object Access Protocol (SOAP) 35

b Web Services Description Language (WSDL) 36

2.2.4 Các thành phần tham gia trong Web Service 38

2.2.5 Nguyên lý hoạt động của các thành phần tham gia web service 38Phần 2: Các kết quả đạt được 40

CHƯƠNG 3: Phân tích thiết kế hệ thống 40

3.1 Phân tích thiết kế cho bài toán bảo mật 40

3.1.1 Thiết kế kiến trúc của mạng Foloyu áp dụng Kerberos 40

3.1.2 Mô tả cấu trúc các thông điệp trong hệ thống 41

a Chú thích một số kí hiệu 41

b Authentication Server Request (AS_REQ) 41

c Authentication Server Reply (AS_REP) 42

d Ticket Granting Server Request (TGS_REQ) 43

e Ticket Granting Server Reply (TGS_REP) 44

f Application Request (AP_REQ) 45

g Application Reply (AP_REP) 45

3.2 Phân tích và thiết kế cho Profile Engine 47

Trang 9

3.2.1 Mô tả các chức năng yêu cầu ở phía Profile của người dùng 47

a Đặc tả Use Case Quản lý tài khoản người dùng 48

b Đặc tả Use Case quản lý thông tin cá nhân người dùng 49

c Đặc tả Use Case quản lý thiết lập riêng tư về thông tin 49

d Đặc tả Use Case quản lý bạn bè 50

3.2.2 Thiết kế cơ sở dữ liệu 51

a Database Diagram: 51

b Mô tả các bảng trong cơ sở dữ liệu 52

CHƯƠNG 4: Cài đặt, triển khai và thử nghiệm hệ thống 58

4.1 Cài đặt 58

4.1.1 Công cụ và công nghệ sử dụng 58

4.1.2 Tổng quan hoạt động của hệ thống Foloyu 58

4.1.3 Cài đặt cho bài toán bảo mật áp dụng Kerberos 59

4.1.4 Cài đặt Profile Engine 60

a Sơ đồ lớp 60

b Profile API 62

4.1.5 Cài đặt phía Foloyu Server 66

4.2 Triển khai và kết quả thử nghiệm hệ thống 68

4.2.1 Triển khai thử nghiệm hệ thống Foloyu 68

5.1 Đặc tả các Use Case của chứ năng Profile 76

5.1.1 Đặc tả Use Case Quản lý tài khoản người dùng 76

5.1.2 Đặc tả Use Case quản lý thông tin cá nhân người dùng 795.1.3 Đặc tả Use Case quản lý thiết lập riêng tư về thông tin 805.1.4 Đặc tả Use Case quản lý bạn bè 82

Trang 10

TÀI LIỆU THAM KHẢO 86

Trang 11

Danh mục các hình

Hình 1-1: Kiến trúc của mạng xã hội 19

Hình 1-2: Kiến trúc của Foloyu 21

Hình 1-3: Mô tả hoạt động của Kerberos 22

Hình 1-4: Kiến trúc mạng xã hội Foloyu 23

Hình 2-1: Chi tiết hoạt động giao thức Kerberos 30

Hình 2-2: Cấu trúc chung của SOAP 35

Hình 2-3: Mô tả End-point 37

Hình 2-4: Thành phần tham gia Web Service 38

Hình 3-1: Kiến trúc Foloyu áp dụng Kerberos 40

Hình 3-2: Message AS_REQ 42

Hình 3-3: Message AS_REP 43

Hình 3-4: Message TGS_REQ 43

Hình 3-5: Message TGS_REP 44

Hình 3-6: Message AP_REQ 45

Hình 3-7: Message AP_REP 46

Hình 3-8: Use Case tổng quát cho Profile 47

Hình 3-9: Use Case quản lý tài khoản người dùng 48

Hình 3-10: Use Case quản lý thông tin cá nhân người dùng 49

Hình 3-11: Use Case quản lý thiết lập riêng tư về thông tin 49

Hình 3-12: Use Case quản lý bạn bè 50

Hình 3-13: Database Diagram 51

Hình 4-1: Sơ đồ hoạt động của Foloyu 58

Hình 4-2: Các lớp cài đặt cho bài toán bảo mật 59

Hình 4-3: Sơ đồ lớp cài đặt cho Profile Engine 61

Hình 4-4: Sơ đồ các lớp cài đặt ở Foloyu Server 66

Hình 4-5: Sơ đồ hoạt hộng của Foloyu 69

Hình 4-6: Màn hình trang chủ phía Profile 70

Trang 12

Hình 4-7: Màn hình chức năng xem danh sách bạn bè 70

Hình 4-8: Màn hình chức năng xem danh sách yêu cầu kết bạn 71

Hình 4-9: Màn hình chức năng xem danh sách gợi ý kết bạn 71

Hình 4-10: Màn hình chức năng Edit Account 71

Hình 4-11: Màn hình chức năng Edit Privacy 72

Hình 5-1: Use Case quản lý tài khoản người dùng 76

Hình 5-2: Use Case quản lý thông tin cá nhân người dùng 79

Hình 5-3: Use Case quản lý thiết lập riêng tư về thông tin 80

Hình 5-4: Use Case quản lý bạn bè 82

Trang 13

Danh mục các bảng

Bảng 3-1: Mô tả bảng User 53

Bảng 3-2: Mô tả bảng Friend 53

Bảng 3-3: Mô tả bảng SuggestFriend 54

Bảng 3-4: Mô tả bảng ChallengeQuestion 54

Bảng 3-5: Mô tả bảng Answer 55

Bảng 3-6: Mô tả bảng PrivacyCategory 55

Bảng 3-7: Mô tả bảng UserPrivacyType 56

Bảng 3-8: Mô tả bảng UserPrivacySetting 56

Bảng 3-9: Mô tả bảng Principal 57

Bảng 4-1: Các hàm chức năng quản lý tài khoản người dùng 63

Bảng 4-2: Các hàm chức năng quản lý thông tin người dùng 64

Bảng 4-3: Các hàm cho chức năng thiết lập riêng tư về thông tin cá nhân 64

Bảng 4-4: Các hàm cho chức năng quản lý bạn bè 65

Bảng 4-5: Các hàm chức năng khác 66

Bảng 5-1: Đặc tả chức năng đăng kí 77

Bảng 5-2: Đặc tả chức năng đăng nhập 77

Bảng 5-3: Đặc tả chức năng đăng xuất 77

Bảng 5-4: Đặc tả chức năng thay đổi mật khẩu 77

Bảng 5-5: Đặc tả chức năng phục hồi mật khẩu 78

Bảng 5-6: Đặc tả chức năng kích hoạt/vô hiệu hóa tài khoản 78

Bảng 5-7: Đặc tả chức năng xem thông tin cá nhân của người khác 79

Bảng 5-8: Đặc tả chức năng chỉnh sửa thông tin người dùng 80

Bảng 5-9: Đặc tả chức năng xem thiết lập thông tin riêng tư 81

Bảng 5-10: Đặc tả chức năng Thay đổi thiết lập thông tin riêng tư 81

Bảng 5-11: Đặc tả chức năng gửi yêu cầu kết bạn 82

Bảng 5-12: Đặc tả chức năng xem yêu cầu kết bạn 83

Bảng 5-13: Đặc tả chức năng trả lời yêu cầu kết bạn 83

Trang 14

Bảng 5-14: Đặc tả chức năng gợi ý bạn bè 83

Bảng 5-15: Đặc tả chức năng xem danh sách gợi ý bạn bè 84

Bảng 5-16: Đặc tả chức năng gợi ý kết bạn 84

Bảng 5-17: Đặc tả chức năng xem danh sách bạn bè 84

Bảng 5-18: Đặc tả chức năng tìm kiếm bạn bè 85

Bảng 5-19: Đặc tả chức năng xóa bạn bè 85

Bảng 5-20: Đặc tả chức năng tìm kiếm người dùng 85

Trang 15

Danh mục từ viết tắt và thuật ngữ

2 AS Authentication Server – Server xác thực

3 TGS Ticket Granting Server – Server phân phối vé dịch

vụ

4 Sesion Key Khóa Phiên

5 Authenticator Phần xác thực

6 SOAP Simple Object Access Protocol – Giao thức truy

nhập đối tượng đơn giản

7 WSDL Web Service Definition Language - Ngôn ngữ đặc

tả Web Service

8 AES Advanced Encryption Standard – Thuật toán mã

hóa khối

9 MD5 Message Diggest Alorithm 5 – Hàm băm mật mã

với gí trị băm dài 128 bit

Trang 16

Phần mở đầu

Thập niên vừa qua chứng kiến sự phát triển và sự bùng nổ của mô hình mạng xãhội Mạng xã hội ra đời và ngày càng chiếm vai trò quan trọng Chúng đang tạo nênnhững giá trị lớn lao, làm thay đổi một cách căn bản cách giao tiếp, cách sống vàlàm việc của con người Các trang web mạng xã hội bắt đầu phát triển mạnh trongvài năm nay và hiện có hàng trăm trang web mạng xã hội trên thế giới Một sốmạng xã hội nổi tiếng và có nhiều thành viên tham gia là facebook, twitter,myspace… Nội dung và chức năng của mạng xã hội rất phong phú Nó cung cấpcho chúng ta rất nhiều dịch vụ khác nhau như giúp chúng ta kết nối bạn bè, chia sẻtin tức, hình ảnh, các video clip, chơi game Bên cạnh đó, các mạng xã hội tíchhợp các dịch vụ địa điểm và bản đồ số giúp cho chúng ta thông báo vị trí hiện tạiđến bạn bè, chia sẻ thông tin và đánh giá địa điểm…

Việc phát triển và ngày càng nâng cao, mở rộng các dịch vụ là mục tiêu của tất

cả các nhà phát triển mạng xã hội.Tuy nhiên, trong quá trình phát triển đó, chúng ta

có thể thấy một số vấn đề mà các nhà phát triển gặp phải.Thứ nhất, việc có rất nhiềumáy chủ dịch vụ cung cấp các dịch vụ khác nhau cho mạng xã hội làm cho việc xácthực người dùng trở nên phức tạp hơn.Mỗi một máy chủ trước khi cung cấp dịch vụcần phải xác thực người dùng đó có được sử dụng dịch vụ hay không Điều này vừagây bất tiện cho người sử dụng, vừa không tối ưu hóa hệ thống Do đó, cần một cơchế để người dùng chỉ phải đăng nhập một lần vào hệ thống và xác thực với mỗidịch vụ để có thể có quyền sử dụng các dịch vụ đó.Thứ hai, các mạng xã hội đều làcác dịch vụ hoạt động trên Internet.Các thông tin gửi đi và truyền về giữa phíangười dùng và các máy chủ dịch vụ có nguy cơ bị nghe lén, đánh cắp và thay đổi

Vì vậy, chúng ta cần một kênh truyền các thông tin này một cách bảo mật giữa cácmáy chủ dịch vụ và người dùng để có thể ngăn ngừa các nguy cơ trên

Qua phân tích ở phần trên, chúng ta có thể thấy có hai vấn đề của mạng xã hội.Vấn đề thứ nhất là cơ chế đăng nhập một lần xác thực để người dùng có thể sử dụngcác dịch vụ của mạng xã hội Vấn đề thứ hai chính là cần phải có một kênh truyềnthông tin bảo mật giữa người dùng và các máy chủ dịch vụ Trong đồ án này, em sẽtrình bày giải pháp áp dụng mô hình Kerberos để giải quyết hai vấn đề nêu trên.Sau

đó, giải pháp này sẽ được áp dụng vào dự án mạng địa xã hội Foloyu, một mạng xãhội với các chức năng liên quan đến vị trí và địa điểm Bên cạnh đó, để giải pháp cóthể được thử nghiệm và triển khai, tác giả cũng sẽ trình xây dựng một ProfileEngine đóng vai trò là một máy chủ cung cấp dịch vụ cho mạng xã hội Foloyu

Trang 17

Đồ án được thực hiện trong dự án mạng địa xã hội Foloyu cùng với một sốthành viên của lớp Công nghệ phần mềm K51 dưới sự hướng dẫn của Tiến sĩNguyễn Khanh Văn.

Bố cụ đồ án tốt nghiệp như sau:

 Phần mở đầu gồm có các nội dung sau:

o Tóm tắt các nhiệm vụ trong đồ án tốt nghiệp

o Môi trường thực hiện đồ án tốt nghiệp

o Nêu bố cục đồ án

 Phần 1: Đặt vấn đề và định hướng giải pháp

o Chương 1 – Tổng quan đề tài và định hướng giải quyết các vấn đề đặt ra: Mô

tả đề tài và các vấn đề cần giải quyết trong đề tài cũng như định hướng đểgiải quyết các vấn đề đó

o Chương 2 – Cơ sở lý thuyết: Chương này sẽ trình bày về 2 cơ sở lý thuyếtchính để giải quyết vấn đề trong đồ án.Đó là giao thức Kerberos và WebService

 Phần 2: Các kết quả đạt được

o Chương 3: Phân tích và thiết kế hệ thống: Chương này sẽ trình bày về việcphân tích và thiết kế cho bài toán bảo mật cho Foloyu và cho việc xây dựngProfile Engine

o Chương 4: Cài đặt, triển khai và thử nghiệm hệ thống

 Phần kết luận: Đánh giá về kết quả thực hiện đồ án, phân tích những thuận lợi,khó khăn khi thực hiện đồ án, định hướng phát triển đồ án trong tương lai

 Chương 5: Phần phụ lục

Trang 18

Phần 1: Đặt vấn đề và định hướng giải pháp

CHƯƠNG 1: Tổng quan đề tài và định hướng giải pháp

Nội của chương này sẽ trình bày các vấn đề sau:

o Tổng quan về mạng xã hội và các vấn đề của mạng xã hội

o Các vấn đề cần phải giải quyết

o Định hướng giải quyết các vấn đề đặt ra

Phần này chúng ta sẽ tìm hiểu mạng xã hội là gì, kiến trúc của mạng xã hội

và các vấn đề của nó Đồng thời, chúng ta cũng sẽ tìm hiểu về mạng xã hội Foloyu, một mạng xã hội mà các giải pháp trình bày trong đồ án sẽ được áp dụng vào

1.1.1 Khái niệm mạng xã hội

Mạng xã hội (tiếng Anh: social network) là dịch vụ nối kết các thành viên

cùng sở thích trên Internet lại với nhau với nhiều mục đích khác nhau khôngphân biệt không gian và thời gian

Mạng xã hội đổi mới hoàn toàn cách cư dân mạng liên kết với nhau và trởthành một phần tất yếu của mỗi ngày cho hàng trăm triệu thành viên khắp thếgiới Mạng xã hội có những tính năng như chat, e-mail, phim ảnh, voice chat,chia sẻ file, blog và xã luận.Các dịch vụ này có nhiều phương cách để các thànhviên tìm kiếm bạn bè, đối tác: dựa theo group, theo thông tin cá nhân (như địachỉ e-mail hoặc screen name), hoặc dựa trên sở thích (như thể thao, phimảnh…), lĩnh vực quan tâm: kinh doanh, mua bán

Trang 19

1.1.2 Kiến trúc căn bản của mạng xã hội

Hình 1-1: Kiến trúc của mạng xã hội

Kiến trúc xã hội được mô tả trong hình 1-1 Kiến trúc của mạng xã hội baogồm tập hợp nhiều máy chủ đằng sau máy chủ chính Máy chủ chính có nhiệm

vụ nhận và hồi đáp một số yêu cầu từ phía client Các máy chủ dịch vụ sẽ cungcấp các chức năng và dịch vụ cho mạng xã hội Mỗi lần sử dụng các chức năngcủa mạng xã hội, người dùng phải kết nối với máy chủ cung cấp chức năng đó.Mỗi lần nhận lời gọi dịch vụ từ phía người sử dụng, các máy chủ dịch vụ phảixác thực xem người dùng đó có được quyền sử dụng dịch vụ hay không Cácmáy chủ dịch vụ thường hoạt động độc lập và tách biệt, thường không có sự liênkết chặt chẽ với nhau, do đó mà các thông tin đăng nhập và xác thực của ngườidùng đối với một máy chủ dịch vụ không thể dùng với các máy chủ khác Điềunày gây bất tiện cho người dùng khi phải nhập đi nhập lại thông tin xác thựccũng như không tối ưu hóa hiệu năng của hệ thống Do đó cần phải có một cơchế đăng nhập và xác thực tập trung mà tất cả các máy chủ dịch vụ đều tin tưởng

để người sử dụng có thể sử dụng được những dịch vụ mà mình mong muốn.Bên cạnh vấn đề xác thực người dùng, trong những lần người sử dụng kếtnối với các máy chủ dịch vụ, cần có một cơ chế bảo mật đường truyền để đảmbảo an toàn cho những thông điệp hay dữ liệu được truyền đi giữa người dùng

và máy chủ dịch vụ

Trang 20

1.1.3 Dự án mạng địa xã hội Foloyu

Mạng địa xã hội Foloyu là một mạng xã hội lấy địa điểm làm trung tâm đểkết nối mọi người với nhau Mạng địa xã hôi Foloyu ngoài các chức năng củamột mạng xã hội thông thường như kết bạn, cập nhật thông tin bạn bè, chia sẻ…còn có các chức năng liên quan đến vị trí của người dùng cũng như các địa điểmliên quan

Các chức năng chính của Foloyu gồm có:

 Liên quan đến khía cạnh xã hội:

o Đăng kí, tạo lập trang cá nhân

o Tìm kiếm, kết bạn

o Cập nhật, chia sẻ, bình luận, đánh dấu (tag) các thông tin, hình ảnh, sựkiện, bài viết với bạn bè

 Liên quan đến khía cạnh vị trí, địa điểm:

o Xác định địa điểm hiện tại của người dùng và chia sẻ vị trí của mình vớibạn bè

o Cho phép người dùng “check-in” vào một địa điểm

o Cho phép người dùng bình luận, đánh giá, đăng hình ảnh, video về địađiểm để tất cả người dùng trong hệ thống có thể tham khảo

o Tìn kiếm địa điểm dựa theo các tiêu chí của người dùng như tìm kiếmtheo khoảng cách hay theo mục đích

Hình 1-2 dưới đây là kiến trúc của mạng xã hội Foloyu:

Trang 21

Hình 1-2: Kiến trúc của Foloyu

Mạng xã hội Foloyu có Foloyu Server đóng vai trò trung tâm có nhiệm vụnhận các yêu cầu và hồi đáp lại các yêu cầu của người dùng Phía sau FoloyuServer sẽ là các Engine bao gồm Profile Engine, Feed Engine, Location Enginecung cấp các dịch vụ cho Foloyu Server để đáp ứng được các yêu cầu gửi đếncủa người dùng Ngoài ra, hệ thống còn sử dụng các dịch vụ của Google mapsserver để thực hiện một số chức năng liên quan đến địa điểm Chúng ta có thểthấy rằng kiến trúc của Foloyu tương tự như kiến trúc của mạng xã hội thôngthường, do đó nó cũng sẽ cần có những giải pháp về vấn đề xác thực người dùng

và bảo mật kênh truyền giữa người dùng và các máy chủ dịch vụ

Phần này, tác giả sẽ trình bày về giải pháp để giải quyết các vấn đề đặt ra trong đồ án đó là giải pháp bảo mật cho mạng xã hội cũng như giải pháp để xây dựng các Engine cung cấp dịch vụ Sau đó, tác giả sẽ trình bày về việc áp dụng các giải pháp này vào trong mạng xã hội Foloyu

1.3.1 Giải pháp

a. Cho bài toán bảo mật cho mạng xã hội

Để giải quyết các vấn đề về cơ chế xác thực và bảo mật kênh truyền nêu trên,giải pháp được đưa ra là áp dụng giao thức Kerberos vào hệ thống mạng xã hội

Trang 22

Hình 1-3: Mô tả hoạt động của Kerberos

Hình 1-3 mô tả tổng quan về cách hoạt động của Kerberos.Ở giao thứcKerberos, có một trung tâm tên là Key Distribution Center (KDC) bao gồm 2server: Authentication Server (AS) và Ticket Granting Server (TGS) và một cơ sở

dữ liệu Cơ sở dữ liệu chứa các thông tin về người dùng và các dịch vụ có trong hệthống AS sẽ có nhiệm vụ xác thực người dùng cho toàn bộ hệ thống Do đó sẽ giảiquyết được vấn đề đăng nhập một lần để người dùng có quyền xin vé để sử dụngcác dịch vụ trong hệ thống TGS sẽ có nhiệm vụ cung cấp các vé dịch vụ cho ngườidùng đã được xác thực Người sử dụng sẽ dùng các vé này để chứng thực với cácmáy chủ dịch vụ rằng mình có quyền sử dụng dịch vụ, do đó sẽ giải quyết được vấn

đề xác thực người dùng Bên cạnh đó, trong mỗi lần xin vé dịch vụ, TGS sẽ cungcấp một khóa phiên để người sử dụng cũng như các máy chủ dịch vụ dùng để mãhóa và giả mã các thông điệp trao đổi với nhau, do đó giải quyết được vấn đề bảomật kênh truyền

b. Cho việc xây dựng các Engine cung cấp dịch vụ

Các Engine cung cấp các dịch vụ cho mạng xã hội phải có tính độc lập, riêng biệt và không phụ thuộc vào nhau Bên cạnh đó, các engine cần phải có tính tái sử dụng cao, nghĩa là các engine không chỉ phục vụ cho một mạng xã hội nào đó mà còn có thể cung cấp dịch vụ cho các bên thứ ba khác nữa Những yêu cầu trong việcxây dựng các Engine đó chính là những ưu điểm nổi bật của Web Service Do đó, các Engine sẽ được triển khai thành các Web Service

Trang 23

1.3.2 Áp dụng giải pháp vào mạng xã hội Foloyu

a. Kiến trúc mạng xã hội Foloyu

Kiến trúc của mạng địa xã hội Foloyu được mô tả ở hình 1-4:

Hình 1-4: Kiến trúc mạng xã hội Foloyu

Mạng xã hội Foloyu có 1 server trung tâm là Foloyu Server có nhiệm vụ nhậncác yêu cầu và hồi đáp lại các yêu cầu của người dùng Phía sau Foloyu Server sẽ làcác Engine bao gồm Profile Engine, Feed Engine, Location Engine Các Engine này

sẽ cung cấp các dịch vụ cho Foloyu Server để Foloyu server đáp ứng được các yêucầu gửi đến của người dùng cũng như cung cấp các chức năng cho mạng Foloyu.Profile Engine cung cấp các dịch vụ như thiết lập trang cá nhân, quản lý và kết nốibạn bè, quản lý các thông tin cá nhân và tài khoản…Feed Engine cung cấp các dịch

vụ liên quan đến đăng các câu nói, bình luận, đăng hình ảnh, video…Cuối cùngLocation Engine cung cấp các dịch vụ liên quan đến địa điểm bao gồm xác định vịtrí người dùng,”check in” địa điểm, tìm kiếm địa điểm… Ngoài ra hệ thống có sửdụng các API của Google Map server cho 2 việc: thứ nhất là hiển thị bản đồ số; thứhai là thực hiện chỉ dẫn tìm đường đi giữa hai địa điểm Việc tìm chỉ dẫn thông quaGmaps API sẽ trả trực tiếp về cho phía client file KML và phía client sẽ tự thựchiện truy xuất thông tin để hiển thị trên Gmaps từ file KML này

b. Giải pháp áp dụng vào Foloyu:

Do kiến trúc của Foloyu là Foloyu Server đóng vai trò trung tâm nhận và hồiđáp lại các yêu cầu của người dùng nên Foloyu Server sẽ đóng vai trò là KeyDistribution Center (KDC) chứa cả Authentication Server và Ticket GrantingServer.Ở phía Engine, do Profile Engine có cơ sở dữ liệu chứa các thông tin liên

Trang 24

quan đến người dùng cũng như các dịch vụ có trong hệ thống nên ProfileEngine sẽcung cấp các dịch vụ cho Authentication Server để có thể xác thực được ngườidùng Người dùng sau khi đã đăng nhập thành công sẽ được Ticket Granting Servercấp vé sử dụng các dịch vụ có trong hệ thống mà mình muốn Người dùng sau khinhận vé sẽ sử dụng dich vụ đó.

Bên cạnh đó, các Engine như Profile Engine, Location Engine, Feed Engine sẽđược triển khai dưới dạng web service cung cấp các dịch vụ cho Foloyu Server đápứng các yêu cầu của người dùng và thực hiện các chức năng của mạng xã hộiFoloyu

CHƯƠNG 2: Cơ sở lý thuyết

Nội của chương này sẽ trình bày các vấn đề sau:

2.1.1 Khái niệm Kerberos

Kerberos cung cấp một dịch vụ an toàn, đăng nhập một lần, tin cậy và xác thựcđược lẫn nhau

 An toàn:

Trang 25

Kerberos an toàn bởi vì nó không bao giờ truyền password qua mạng dướidạng bình thường Kerberos sử dụng các vé (ticket), các thông điệp mã hóa cógiới hạn thời gian để chứng tỏ định danh của người dùng đến 1 server nào đó màkhông cần phải gửi password qua mạng hay caching password trên ổ cứng củangười dùng.

 Đăng nhập một lần (Single-Sign-on)

Single-sign-on có nghĩa là người dùng chỉ phải đăng nhập một lần để có thểtruy nhập vào tài nguyên và dịch vụ trên mạng Một khi người dùng đã xác thựcvới Kerberos ở đầu một phiên đăng nhập, định danh của người đấy sẽ đượctruyền đến các tài nguyên khác mà người dùng truy nhập đến

 Tin cậy (Trusted Third party):

Kerberos làm việc thông qua một server trung tâm mà tất cả các hệ thốngtrong mạng đều tin tưởng.Tất cả các yêu cầu xác thực đều được điều chuyểnthông qua server trung tâm này

 Xác thực lẫn nhau(Mutual Authentication)

Xác thực lẫn nhau đảm bảo rằng không chỉ xác thực người dùng mà còn xácthực cả server mà người dùng đang kết nối đến Xác thực lẫn nhau bảo vệ tính bảomật của các thông tin nhạy cảm bằng cách bảo đảm dịch vụ mà người dùng đangliên lạc là chính xác

2.1.2 Các thành phần và thuật ngữ được dùng trong Kerberos:

a. Realm

Realm để chỉ một domain quản trị xác thực Realm dùng để thiết lập giới hạn

mà trong đó một server xác thực có quyền được xác thực người dùng, host hayservice Sự xác thực không chỉ diễn ra giữa user và service trong cùng 1 realm

mà còn có thể giữa các realm với nhau

Tên của realm thường viết in hoa và phân biệt chữ hoa chữ thường

b. Principal

Tất cả các thực thể tồn tại trong hệ thống Kerberos bao gồm người dùng, máytính và các dịch vụ chạy trên các server đều có các principal gắn với các thực thể

đó Các principal này sẽ được lưu vào cơ sở dữ liệu của server xác thực

Một principal ở trong Kerberos 5 có dạng như sau:

component1/component2/ /componentN@REALM

Trang 26

 Đối với người dùng :username[/instance]@REALM Instance là tùy

chọn và dùng để chỉ ra kiểu user(như admin, location manager) Ví dụ:

để thiết lập khóa phiên để các bên tham gia có thể liên lạc với nhau an toàn.Thời gian sống của Ticket khoảng từ 8 đến 24 giờ Thời gian sống này đảmbảo sự tiện lợi của đăng nhập một lần và sự an toàn cho hệ thống

Một số trường chính trong ticket:

 Tên principal của người dùng có yêu cầu (thường chính là tên đăngnhập)

 Tên dịch vụ mà người dùng muốn sử dụng

 Thời gian có hiệu lực và thời gian hết hạn

 Thời gian sống tối đa của 1 ticket

 Một list các địa chỉ IP của các máy phía client mà ticket có thể được sửdụng

 Khóa phiên cho quá trình liên lạc giữa người dùng và server dịch vụ

d. Mã hóa trong Kerberos:

 Kiểu mã hóa:

Kerberos 4 chỉ sử dụng kiểu mã hóa DES 56 bit Tuy nhiên ở trongKerberos 5 không định ra một kiểu mã hóa nào cả mà tùy vào từngtrường hợp cài đặt Một số kiểu mã hóa được Kerberos 5 hỗ trợ như làRC4-HMAC, 3DES, AES128, AES256

 Khóa băm:

Trang 27

Password của người dùng và của các dịch vụ sẽ được băm bởi 1 hàm bămmột chiều có tên là string2key tạo thành khóa băm.

 Khái niệm salt:

Salt là một chuỗi được ghép vào password chưa được băm, chuỗi ghépnối sau đó sẽ được đưa vào hàm string2key để tạo nên khóabăm.Kerberos 5 sử dụng tên principal để làm salt

Ví dụ: Kpippo = string2key (Ppippo + "pippo@EXAMPLE.COM" )

Ppippo là khóa chưa được băm của user Kpippo là khóa đã được băm.Mục đích của Salt:

o Hai principal trong cùng 1 realm, cùng 1 password có thể có khóađược mã hóa khác nhau

o Một người dùng có 2 tài khoản ở 2 realm khác nhau có cùngpassword sẽ có khóa được mã hóa khác nhau

e. Trung tâm phân phối khóa (Key Distribution Center):

Trung tâm phân phối khóa (KDC) đóng một vai trò rất quan trọng trong hệ thống Kerberos KDC chứa 3 thành phần: cơ sở dữ liệu, Authentication Server

và Ticket Granting Server

 Cơ sở dữ liệu:

Cơ sở dữ liệu chứa các dữ liệu liên quan đến người dùng và các dịch vụ

có trong hệ thống.Mỗi một entry chứa các thông tin sau:

o Tên của principal mà entry liên kết đến

o Khóa đã được băm

Ngoài ra cón có thể chứa các thông tin sau:

o Thời gian tồn tại tối đa của một vé gắn với principal

o Thời gian tối đa một vé gắn với principal có thể được làm mới

o Các thuộc tính hay các cờ xác định trạng thái của vé

o Thời gian hết hạn của password

o Thời gian hết hạn của principal

 Authentication Server:

Trang 28

Authentication Server (AS) có nhiệm vụ cấp phát một Ticket GrantingTicket (TGT) đã được mã hóa bởi khóa bí mật của Ticket GrantingServer (TGS) cho người dùng khi người dùng đăng nhập vào hệthống Người dùng sau đó sẽ dùng TGT để gửi các yêu cầu đến TGS

để được cấp phát các vé dịch vụ

 Ticket Granting Server:

Ticket Granting Server (TGS) cấp phát các vé dịch vụ khi được yêucầu bởi người dùng TGS nhận 2 dữ liệu từ người dùng: 1 vé yêu cầubao gồm tên của principal đại diện cho dịch vụ mà người dùng muốnkết nối đến và TGT hợp lệ được cấp phát bởi Authentication Servercho người dùng

f. Khóa phiên (Session Key)

Khóa được tạo ra bởi KDC được chứa trong các ticket được cấp phát đượcgọi là khóa phiên Khóa phiên được dùng để thiết lập một kênh truyền bảo mậtgiữa người dùng và server dịch vụ bằng cách dùng khóa phiên mã hóa cácmessage trao đổi giữa người dùng và server dịch vụ

g. Authenticator

Ngay cả khi người dùng có ticket và chỉ có server dịch vụ có thể lấy ra đượcthông tin, điều đó cũng không đảm bảo tính xác thực của người dùng Một kẻmạo danh có thể lấy được ticket khi nó được gửi đến server dịch vụ và sau đó,đến một thời điểm thích hợp, kẻ mạo danh này lại gửi ticket này để có thể sửdụng dịch vụ.Để giải quyết vấn đề này, người ta áp dụng giải pháp sau: bêncạnh việc gửi yêu cầu bao gồm ticket, người dùng còn thêm 1 gói tin xác thựcauthenticator gồm có principal của người dùng và nhãn thời gian, mã hóa bởikhóa phiên.Sau khi nhận được gói tin yêu cầu, phía server dịch vụ sẽ giải mãticket và lấy ra khóa phiên, sau đó sẽ giải mã authenticator để có thể lấy ra đượcnhãn thời gian Nếu nhãn thời gian chênh lệch với thời gian server không quá 2phút, quá trình xác thực thành công

h. Replay Cache

Khả năng để kẻ giả mạo có thể đánh cắp cả ticket và authenticator và sửdụng trong khoảng thời gian 2 phút là có thể xảy ra Để giải quyết vấn đề này,người ta sử dụng Replay Cache Ở phía server dịch vụ, có 1 bộ nhớ lưu trữ tất cảcác authenticator trong khoảng thời gian 2 phút và sẽ từ chối các authenticatornếu chúng được lặp lại

Trang 29

i. Credential cache

Credential cache là nơi lưu trữ các ticket được cấp phát Những thông tin màcredential cache bao gồm: principal của người dùng, một tập các service ticket

mà người dùng nhận được trong một phiên đăng nhập

2.1.3 Mô tả giao thức Kerberos

Hình 2-5: Chi tiết hoạt động giao thức Kerberos

Dưới đây là mô tả một phiên hoạt động của trong giao thức Kerberos

Trong quá trình mô tả, chúng ta có một số kí hiệu cần chú ý như sau:

o AS = Máy chủ chứng thực (authentication server)

o TGS = Máy chủ cấp vé (ticket granting server)

o SS = Máy chủ dịch vụ (service server).

o A= (B,C): Gói tin A chứa 2 dữ liệu B và C

o A = B || C: Gói tin A có gồm có 2 gói tin B và C

o {D}K: Gói tin D được mã hóa bởi khóa K

Trang 30

Hoạt động của giao thức Kerberos có thể tóm tắt như sau: đầu tiên, người sửdụng chứng thực mình với máy chủ chứng thực AS, sau đó chứng minh với máychủ cấp vé TGS rằng mình đã được chứng thực để nhận vé sử dụng dịch vụ, cuốicùng chứng minh với máy chủ dịch vụ SS rằng mình đã được chấp thuận để sửdụng dịch vụ.

Bước 1: Người sử dụng nhập tên và mật khẩu tại máy tính của mình (máy

khách) Sau đó, phần mềm máy khách thực hiện hàm băm một chiều trên mậtkhẩu nhận được Kết quả sẽ được dùng làm khóa bí mật của người sử dụng

Bước 2: Phần mềm máy khách gửi một gói tin (không mật mã hóa) AS_REQ tới

máy chủ dịch vụ AS để yêu cầu dịch vụ Nội dung của gói tin là:

AS_REQ = (Principal Client , Principal Service , IP_list , Lifetime )

Trong đó:

o PrincipalClient là principal gắn với người dùng

o PrincipalService là principal gắn với service được yêu cầu vé (chính là TGS),thường là:krbtgt/REALM@REALM

o IP_list là một danh sách các địa chỉ IP nơi có thể sử dụng các ticket đượccấp phát này.IP_list có thể rỗng

o Lifetime là thời gian tồn tại được yêu cầu của ticket

Bước 3: AS kiểm tra PrincipalClient và PrincipalService có nằm trong cơ sở dữliệu của mình không Nếu có thì AS thực hiện công việc sau:

o Tạo ra khóa phiên giữa TGS và máy khách kí hiệu là SKTGS

o Tạo ra Ticket Granting Ticket (TGT bao gồm các dữ liệu sau:

TGT = (Principal Client , Principal Service , IP_list , Timestamp , Lifetime ,

SK TGS )

Trong đó:

+ PrincipalClient , PrincipalService, IP_list lấy ở AS_REQ

+ Timestamp: thời gian tạo vé (lấy theo thời gian của KDC)

+ Lifetime: thời gian sống của TGT

o Tạo ra gói tin AS_REP gửi cho máy khách với nội dung sau:

AS_REP = {Principal Service , Timestamp , Lifetime , SK TGS }K User || { TGT }K TGS

Trang 31

Trong đó: KUser là khóa bí mật của user, KTGS là khóa bí mật của TGS.

Bước 4: Khi nhận được gói tin AS_REP trên, phần mềm máy khách giải mã

một phần của gói tin để có khóa phiên với TGS bằng password của mình cònTGT được lưu trong credential cache của người dùng Tại thời điểm này,người dùng có thể lấy vé TGT để gửi đến TGS để xin vé dịch vụ

Bước 5: Khi yêu cầu vé dịch vụ, phần mềm bên phía người dùng phải làm các

công việc sau:

o Tạo ra phần xác thực authenticator (bao gồm định danh người sử dụng vàthời điểm yêu cầu), mật mã hóa với "Khóa phiên TGS/máy khách"

Authenticator = {Principal Client , Timestamp }SK TGS

o Tạo ra gói tin TGS_REQ bao gồm: principal của dịch vụ cần kết nối, thờigian tồn tại của vé mong muốn, phần xác thực và TGT được mã hóa bởikhóa của TGS

TGS_REQ = (Principal Service , Lifetime , Authenticator) || { TGT }K TGS

Bước 6: Khi nhận được gói tin TGS_REQ, TGS kiểm tra service được yêu

cầu có ở trong cơ sở dữ liệu của KDC hay không.Nếu tồn tại TGS sẽ mởTGT bằng khóa của nó và lấy được khóa phiên SKTGS,khóa này dùng để giải

mã phần xác thực authenticator Để có thể cấp phát được service ticket, cácđiều kiện sau phải thỏa mãn:

o Vé TGT chưa hết hạn

o PrincipalClient ở trong authenticator phải khớp với ở trong TGT

o Authenticator không có trong replay cache và chưa hết hạn

o Nếu IP_List không rỗng thì nó sẽ kiểm tra địa chỉ IP nguồn của gói tinTGS_REQ phải có trong IP_List

Tất cả các điều kiện trên thỏa mãn chứng tỏ rằng TGT thực sự thuộc vềngười dùng gửi yêu cầu này và do đó TGS bắt đầu tiến trình phản hồi lại nhưsau:

o Tạo ra khóa phiên giữa máy khách và máy chủ dịch vụ.Kí hiệu là SKService

o Tạo ra một service ticket có các nội dung sau: PrincipalClient lấy trongauthenticator, PrincipalService lấy trong AP_REQ, danh sách các địa chỉIP,thời gian tạo vé,thời gian sống của vé, khóa phiên với service server

Trang 32

T Service = (Principal Client , Principal Service , IP_list ,Timestamp , Lifetime ,

SK Service )

o TGS gửi lại máy khách gói tin TGS_REP với nội dung sau:

TGS_REP = {Principal Service , Timestamp , Lifetime , SK Service }SK TGS ||{

T Service }K Service

Trong đó: KService là khóa bí mật của server dịch vụ mà người dùng muốn

sử dụng

Bước 7: Khi nhận được gói tin TGS_REP, người dùng giải mã một phần

của gói tin bằng SKTGS lấy trong credential cache để có được khóa phiên

SKService và lưu trữ khóa này cùng với vé dịch vụ nhận được Đến lúc này,người dùng đã đủ thông tin để gửi yêu cầu đến máy chủ dịch vụ bằng cách:

o Tạo ra phần xác thực authenticator mới, bao gồm chỉ danh người sử dụng,thời điểm yêu cầu và được mật mã hóa với khóa phiên máy chủ dịch vụ/máy khách SKService

Authenticator = { Principal Client , Timestamp }SK Service

o Tạo ta gói tin AP_REQ gửi đến cho máy chủ dịch vụ với nội dung baogồm:phần xác thực authenticator và service ticket nhận được ởTGS_REP

AP_REQ = Authenticator || {T Service }K Service

Bước 8: Máy chủ dịch vụ SS giải mã service ticket bằng khóa bí mật của

mình để có được khóa phiên, khóa phiên này lại được dùng để mở phầnauthenticator Để xác định người dùng có quyền sử dụng dịch vụ, các điềukiện sau phải thỏa mãn:

o Service ticket chưa hết hạn

o PrincipalClient ở trong authenticator phải khớp với ở trong vé dịch vụ

o Authenticator không có trong replay cache và chưa hết hạn

o Nếu IP_List ở trong service ticket không rỗng thì nó sẽ kiểm tra địa chỉ

IP nguồn của gói tin AP_REQ phải có trong IP_List

Sau khi các điều kiện trên được thỏa mãn, SS sẽ gửi lại gói tin AP_REP vớinội dung: Thời điểm trong gói tin AP_REQ cộng thêm 1, mật mã hóa vớikhóa phiên máy chủ dịch vụ/máy khách SKService

AP_ REP = {Timestamp + 1} SK Service

Trang 33

Bước 9: Máy khách giải mã gói tin xác nhận và kiểm tra thời gian có được

cập nhật chính xác Nếu đúng thì người sử dụng có thể tin tưởng vào máychủ SS và bắt đầu gửi yêu cầu sử dụng dịch vụ

Bước 10: Máy chủ cung cấp dịch vụ cho người sử dụng thông qua kênh

truyền thiết lập bởi SKService

2.2.1 Định nghĩa Web Service

Theo định nghĩa của W3C (World Wide Web Consortium), dịch vụ Web làmột hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứngdụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sựgắn kết của nó được mô tả bằng XML

2.2.2 Ưu, nhược điểm của Web Service

o Nâng cao khả năng tái sử dụng

o Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phépcác tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web

o Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phầntrong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán

o Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thànhhoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thốngcủa các doanh nghiệp khác

 Nhược điểm:

o Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụWeb, giao diện không thay đổi, có thể lỗi nếu một máy khách khôngđược nâng cấp, thiếu các giao thức cho việc vận hành

o Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt

o Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật

Trang 34

2.2.3 Một số khái niệm cơ bản trong Webservice

a. Simple Object Access Protocol (SOAP)

SOAP là một giao thức đơn giản nhằm mục đích trao đổi thông tin trong môitrường ứng dụng phân tán SOAP dựa trên nền công nghệ XML và bao gồm 2 thànhphần:

 Một “bì thư” (envelope) để quản lý các thông tin mở rộng và mang tínhđiều khiển

 Một chuẩn mã hóa quy định cách thể hiện thông tin trong envelope.SOAP có thể được sử dụng kết hợp với các giao thức chuẩn khác như SMTP,HTTP/HTTPS, FTP… Tuy nhiên hiện nay chỉ mới có HTTP/HTTPS được xem nhưgiao thức chuẩn để trao đổi gói tin SOAP Việc sử dụng SOAP như một giao thứctrao đổi dữ liệu chuẩn khiến WebService có khả năng hoạt động trên nhiều môitrường lập trình khác nhau như Java, NET,…

Gói tin SOAP là một phương tiện giao tiếp một chiều từ nơi gửi đến nơi nhận.Gói tin SOAP được gửi bên trong một gói tin HTTP request hoặc gói tin HTTPresponse Cấu trúc chung của một gói tin SOAP được mô tả ở hình 2-2 dưới đây:

Hình 2-6: Cấu trúc chung của SOAP

 Protocol Header: Cho biết thông tin về các chuẩn giao thức được sử dụng

 SOAP Envelope: Phần Envelope là node gốc của gói tin SOAP dưới dạngtài liệu XML SOAP Envelope có 2 thành phần sau:

Trang 35

o SOAP Header: Phần Header thường là nơi được dùng để thêm cácthông tin bổ sung phục vụ cho mục đích riêng của chương trình Cácthông tin thường được thêm vào phần Header là authentication,authorization, quản lý transaction… Phần Header không bắt buộc phải

có trong mọi gói tin SOAP

o SOAP body: Phần Body chứa các thông tin về lời gọi hàm, ví dụ nhưtên hàm cần gọi, các tham số đầu vào, giá trị trả về … để phục vụ choviệc gọi hàm từ xa Ngoài ra còn có trường lỗi được dùng để gửi cácweb service exception

b. Web Services Description Language (WSDL)

Khi chúng ta đã xây dựng hoàn thành WebService cần phải cung cấp tài liệu mô

tả để các nhà phát triển client có thể sử dụng được WebService trên Tài liệu mô tảWebService cần mô tả được vị trí WebService, các hàm nó cung cấp, tham số kèmtheo…

Tài liệu WSDL là một tài liệu thỏa mãn các nhu cầu trên WSDL (WebServiceDefinition Language) là một ngôn ngữ dựa trên cú pháp XML dùng để định nghĩamột WebService Nói cách khác, một file WSDL như một người trung gian đứnggiữa WebService và ứng dụng WebService client Trong tài liệu WSDL, chúng ta sẽđịnh nghĩa các phương thức được WebService hỗ trợ, các kiểu dữ liệu được xửdụng trong các phương thức cùng các thông điệp đượ trao đổi giữa client và serverứng với mỗi phương thức Chúng ta chỉ phải định nghĩa các kiểu dữ liệu phức tạpnhư mảng, các lớp được khai báo thêm trong chương trình, mảng các lớp … còn cáckiểu dữ liệu cơ bản như int, string, float … đã được hỗ trợ sẵn Sau đó, chúng ta gộpchung các định nghĩa này kết hợp với các giao thức mạng bên dưới để hình thànhmột end-point

Trang 36

Hình 2-7: Mô tả End-point

Một endpoint interface (gọi tắt là một endpoint) gồm có nhiều ports, mỗi portquy định một cách liên lạc với WebService khác nhau ứng với mỗi giao thức bêndưới khác nhau Sự kết hợp của WebService với một giao thức mạng như thế đượcgọi là một binding, như trên hình 2-3 chúng ta thấy có 3 binding khác nhau Port 1

sử dụng SOAP/HTTP binding, Port 2 sử dụng SOAP/HTTPS binding, Port 3 sửdụng các dạng binding khác Như vậy ứng với WebService trên, ta có đến 3 phươngtiện khác nhau để triệu gọi các hàm Các hình thức binding thông dụng nhất hiệnnay vẫn là SOAP/HTTP POST và SOAP/HTTPS (hỗ trợ bảo mật thông qua SSL).Một tài liệu WSDL thực chất chỉ là một danh sách các định nghĩa Trong mộtfile WSDL, phần tử gốc được đặt tên là "definitions" Phần tử này chứa năm phần

tử con chính để định nghĩa WebService Thứ tự xuất hiện của các phần tử con này:

 Phần tử "types": định nghĩa các kiểu dữ liệu dùng để trao đổi giữa client

và server (chỉ định nghĩa các kiểu dữ liệu phức tạp như structure,class…)

 Phần tử "message": định nghĩa các thông điệp được trao đổi

 Phần tử "portType": định nghĩa một tập các chức năng WebService hỗtrợ

và thông điệp tương ứng đối với mỗi chức năng đó

 Phần tử "binding": Sau khi đã định nghĩa các port, ta cần chỉ rõ ràng buộcgiữa các ports này và các giao thức tầng dưới Phần tử binding sẽ đảmnhiệm chức năng này

 Phần tử "service": Có tác dụng gom các ports đã định nghĩa thành từngnhóm

2.2.4 Các thành phần tham gia trong Web Service

Hình 2-4 cho ta thấy các thành phần tham gia vào Web Service

Trang 37

Hình 2-8: Thành phần tham gia Web Service

 Bên đăng ký và lưu trữ dịch vụ(Service Registry): Chứa thông tin về các dịchvụ

 Bên cung cấp dịch vụ (Service Provider): Chính là phía tạo ra dịch vụ vàmuốn đưa dịch vụ đến xã hội Nhà cung cấp cần cung cấp các thông tin vềdịch vụ của mình và đăng ký tại bên lưu trữ dịch vụ (Service Registry)

 Bên sử dụng dịch vụ (Service Consumer): Chính là những đối tượng sử dụngcác dịch vụ được tạo ra và triển khai bởi phía nhà cung cấp Phía bên sử dụng

sẽ phải thực diện các giao dịch, thỏa thuận với phía nhà cung cấp để được sửdụng dịch vụ Bên sử dụng có thể tìm kiếm các thông tin về dịch vụ tại nơilưu trữ (Service Registry)

2.2.5 Nguyên lý hoạt động của các thành phần tham gia web service

 Bên cung cấp dịch vụ (Service Provider): Dùng Web ServicesDescription Language (WSDL) để mô tả dịch vụ mà mình có thể cungcấp cho Service Registry

 Bên đăng ký và lưu trữ dịch vụ (Service Registry): Lưu trữ thông tin vềcác service được cung cấp bởi các Service Provider Cung cấp chức năngtìm kiếm hỗ trợ Service Requester (Service Consumer) trong việc xácđịnh Service Provider phù hợp Thành phần chính của Service Broker làUniversal Discovery, Description, and Integration (UDDI) repositories

Trang 38

 Bên sử dụng dịch vụ (Service Consumer): Dùng WSDL để đặc tả nhu cầu

sử dụng (loại service, thời gian sử dụng, resource cần thiết, mức giá ) vàgửi cho Service Registry Bằng việc sử dụng UDDI và chức năng tìmkiếm của Service Registry, Service Consumer có thể tìm thấy ServiceProvider thích hợp Ngay sau đó, giữa Service Consumer và ServiceProvider thiết lập kênh giao tiếp sử dụng SOAP để thương lượng giá cả

và các yếu tố khác trong việc sử dụng service

Trang 39

Phần 2: Các kết quả đạt được

CHƯƠNG 3: Phân tích thiết kế hệ thống

Nội của chương này sẽ trình bày các vấn đề sau:

o Phân tích và thiết kế cho bài toán bảo mật cho mạng xã hội Foloyu

o Phân tích và thiết kế cho Profile Engine

3.1.1 Thiết kế kiến trúc của mạng Foloyu áp dụng Kerberos

Ta có sơ đồ kiến trúc mạng Foloyu áp dụng giao thức Kerberos được thể hiện ở hình 3-1 dưới đây:

Hình 3-9: Kiến trúc Foloyu áp dụng Kerberos

 Authentication Server (AS) và Ticket Granting Server (TGS) sẽ được đặt

ở Foloyu Server trong đó AS sẽ làm nhiệm vụ xác thực người dùng cònTGS sẽ làm nhiệm vụ cấp phát vé dịch vụ cho người dùng đã được chứngthực

Trang 40

 Profile Engine có cơ sở dữ liệu chứa thông tin về người dùng trong hệthống và các dịch vụ được cung cấp trong hệ thống Do đó, ProfileEngine sẽ cung cấp dịch vụ để AS có thể xác thực được người dùng.

 Các Engine như Profile, Location, Feed cung cấp các dịch vụ cho FoloyuServer khi có yêu cầu

 Ở phía client, các vé dịch vụ và các khóa phiên dùng để giải mã và mãhóa các thông điệp trong các phiên giao dịch với các máy chủ dịch vụ sẽđược lưu trong cookie bởi web browser.Thuật toán dùng để mã hóa vàgiải mã các thông điệp là thuật toán AES (Advanced EncryptionStandard), là một thuật toán mã hóa khối được chính phủ Hoa Kỳ ápdụng làm tiêu chuẩn mã hóa

 Ở phía Foloyu Server, các khóa phiên cũng như các khóa bí mật của cácmáy chủ dịch vụ sẽ được lưu trong bộ nhớ của Foloyu Server để có thểgiải mã và mã hóa các thông điệp

3.1.2 Mô tả cấu trúc các thông điệp trong hệ thống

Sau khi đã có một cái nhìn tổng quan về cách giao thức Kerberos xác thực vàthiết lập bảo mật kênh truyền, phần này chúng ta sẽ đi sâu hơn về việc mô tả cácthông điệp được trao đổi giữa Foloyu Server và phía client

a. Chú thích một số kí hiệu

Kí hiệu Mô tả

A= (B,C) Gói tin A chứa 2 dữ liệu B và C

A = B || C Gói tin A có gồm có 2 gói tin B và C

{D}K Gói tin D được mã hóa bởi khóa K

b. Authentication Server Request (AS_REQ)

 Tại màn hình đăng nhập vào hệ thống, người dùng sẽ gõ tên đăng nhập vàmật khẩu của mình vào Mật khẩu của người dùng sẽ được băm ra đểdùng làm khóa bí mật của người dùng Thuật toán băm được sử dụng làthuật toán băm MD5 với giá trị băm dài 128 bit

Ngày đăng: 22/11/2014, 08:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
8. Wiki, Mạng xã hội, http://vi.wikipedia.org/wiki/M%E1%BA%A1ng_x%C3%A3_h%E1%BB%99i, last visited May 2011 Link
1. Jason Garman, Kerberos: The Definitive Guide, O’Reilly, 2003 Khác
4. Richard Monson-Haefel, J2EE Web Services, Addison Wesley, 2003 Khác
5. Matt Bishop, Introduction to Computer Security, Prentice Hall, 2004 Khác
6. Danny Goodman, Javascript & DHTML Cookbook, O’Reilly, 2003 Khác
7. Marty Hall & Larry Brown, Core Servlet and Java Server Pages Volume I &II, 2 nd Edition, Prentice Hall, 2003 Khác
9. Cryptography and Network Security Principles and Practices, 4 th Edition Prentice Hall, 2005 Khác

HÌNH ẢNH LIÊN QUAN

HÌNH KERBEROS - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
HÌNH KERBEROS (Trang 1)
Hình 1-1: Kiến trúc của mạng xã hội - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 1 1: Kiến trúc của mạng xã hội (Trang 16)
Hình 1-3: Mô tả hoạt động của Kerberos - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 1 3: Mô tả hoạt động của Kerberos (Trang 19)
Hình 1-4: Kiến trúc mạng xã hội Foloyu - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 1 4: Kiến trúc mạng xã hội Foloyu (Trang 20)
Hình 2-5: Chi tiết hoạt động giao thức Kerberos - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 2 5: Chi tiết hoạt động giao thức Kerberos (Trang 26)
Hình 2-6: Cấu trúc chung của SOAP - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 2 6: Cấu trúc chung của SOAP (Trang 31)
Hình 2-7: Mô tả End-point - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 2 7: Mô tả End-point (Trang 33)
Hình 2-4 cho ta thấy các thành phần tham gia vào Web Service - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 2 4 cho ta thấy các thành phần tham gia vào Web Service (Trang 34)
Hình 3-9: Kiến trúc Foloyu áp dụng Kerberos - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 3 9: Kiến trúc Foloyu áp dụng Kerberos (Trang 36)
Hình 3-16: Use Case tổng quát cho Profile - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 3 16: Use Case tổng quát cho Profile (Trang 42)
Hình 3-17: Use Case quản lý tài khoản người dùng - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 3 17: Use Case quản lý tài khoản người dùng (Trang 43)
Hình 3-18: Use Case quản lý thông tin cá nhân người dùng - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 3 18: Use Case quản lý thông tin cá nhân người dùng (Trang 44)
Hình 3-20: Use Case quản lý bạn bè - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 3 20: Use Case quản lý bạn bè (Trang 45)
Hình 3-19: Use Case quản lý thiết lập riêng tư về thông tin - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 3 19: Use Case quản lý thiết lập riêng tư về thông tin (Trang 45)
Hình 3-21: Database Diagram b. Mô tả các bảng trong cơ sở dữ liệu - giải pháp xác thực và bảo mật cho mạng xã hội ứng dụng mô hình kerberos
Hình 3 21: Database Diagram b. Mô tả các bảng trong cơ sở dữ liệu (Trang 47)

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

🧩 Sản phẩm bạn có thể quan tâm

w