1. Trang chủ
  2. » Thể loại khác

Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP

74 314 1

Đ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 74
Dung lượng 2,55 MB

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

Nội dung

MỞ ĐẦU Trong kĩ thuật bảo mật thông tin, mật khẩu password được sử dụng rộng rãi trong quá trình đăng nhập log-on để xác thực người dùng khi truy nhập vào các hệ thống máy tính và mạng,

Trang 1

LÊ THU HƯƠNG

NGHIÊN CỨU VẤN ĐỀ XÁC THỰC GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN SỬ DỤNG MẬT KHẨU DẠNG

OTP

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN, 2016

Trang 2

LÊ THU HƯƠNG

NGHIÊN CỨU VẤN ĐỀ XÁC THỰC GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN SỬ DỤNG MẬT KHẨU DẠNG

OTP

Chuyên ngành: Khoa học máy tính

Mã số: 60 48 01 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: TS VŨ VINH QUANG

THÁI NGUYÊN, 2016

Trang 3

LỜI CAM ĐOAN

Sau quá trình học tập tại Trường Đại học công nghệ thông tin & truyền thông, với những kiến thức lý thuyết và thực hành đã tích lũy được, với việc vận

dụng các kiến thức vào thực tế, em đã tự nghiên cứu các tài liệu, các công trình nghiên cứu, đồng thời có sự phân tích, tổng hợp, đúc kết và phát triển để hoàn thành luận văn thạc sĩ của mình

Em xin cam đoan luận văn này là công trình do bản thân em tự tìm hiểu,

nghiên cứu và hoàn thành dưới sự hướng dẫn của thầy giáo TS Vũ Vinh Quang

Thái Nguyên, tháng 12 năm 2016

Học viên

Lê Thu Hương

Trang 4

LỜI CẢM ƠN

Trong thời gian hai năm của chương trình đào tạo thạc sỹ, trong đó gần một nửa thời gian dành cho các môn học, thời gian còn lại dành cho việc lựa chọn đề tài, giáo viên hướng dẫn, tập trung vào nghiên cứu, viết, chỉnh sửa và hoàn thiện luận văn Với quỹ thời gian như vậy và với vị trí công việc đang phải đảm nhận, không riêng bản thân em mà hầu hết các sinh viên cao học muốn hoàn thành tốt luận văn của mình trước hết đều phải có sự sắp xếp thời gian hợp lý, có sự tập trung học tập

và nghiên cứu với tinh thần nghiêm túc, nỗ lực hết mình; tiếp đến cần có sự ủng hộ

về tinh thần, sự giúp đỡ về chuyên môn một trong những điều kiện không thể thiếu quyết định đến việc thành công của luận văn

Để hoàn thành được luận văn này trước tiên em xin gửi lời cảm ơn đến thầy

giáo hướng dẫn TS Vũ Vinh Quang, người đã có những định hướng cho em về nội

dung và hướng phát triển của đề tài, người đã có những đóng góp quý báu cho em

về những vấn đề chuyên môn của luận văn, giúp em tháo gỡ kịp thời những vướng mắc trong quá trình làm luận văn

Em cũng xin cám ơn các thầy cô giáo Trường Đại học Công nghệ thông tin

và Truyền thông đã có những ý kiến đóng góp bổ sung cho đề tài luận văn của em

Em xin hứa sẽ cố gắng hơn nữa, tự trau dồi bản thân, tích cực nâng cao năng lực chuyên môn của mình để sau khi hoàn thành luận văn này sẽ có hướng tập trung nghiên cứu sâu hơn, không ngừng hoàn thiện hơn nữa luận văn của mình để có những ứng dụng thực tiễn cao trong thực tế

Thái Nguyên, tháng 12 năm 2016

Học viên

Lê Thu Hương

Trang 5

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC CÁC CHỮ VIẾT TẮT vi

DANH MỤC HÌNH VẼ vii

MỞ ĐẦU 1

Chương 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ BẢO MẬT THÔNG TIN 3

1.1 Giới thiệu về an toàn và bảo mật thông tin 3

1.1.1 Các khái niệm cơ bản 3

1.1.2 Mục tiêu của an toàn bảo mật thông tin 3

1.1.3 Các chiến lược an toàn hệ thống 4

1.1.4 An toàn thông tin bằng mật mã 5

1.2 Một số hệ mã hóa thông dụng 8

1.2.1 Hệ mã RSA 8

1.2.2 Hệ mã Rabin 9

1.2.3 Hệ mã Elgamal 10

1.2.4 Hệ mã MHK (Merkle -Hellman Knapsack) 11

1.2.5 Hệ mật mã Rabin 12

1.2.6 Hệ mật mã McEliece 13

1.3 Giới thiệu về mật khẩu 15

1.3.1 Định nghĩa 15

1.3.2 Phương pháp xác thực 16

1.3.3 Độ an toàn 17

Chương 2 MỘT SỐ KHÁI NIỆM VỀ OTP CÁC PHƯƠNG PHÁP 26

2.1 Giới thiệu về OTP 26

2.1.1 Định nghĩa về OTP 26

2.1.2 Ưu điểm 26

2.1.3 Nhược điểm 27

2.2 Ứng dụng của OTP 27

2.2.1 Ứng dụng trong xác thực 27

2.2.2 Ứng dụng trong đăng nhập 28

Trang 6

2.3 Giới thiệu về hàm băm mật mã, các thuật toán 29

2.3.1 Giới thiệu 29

2.3.2 Cấu trúc, vai trò của hàm băm mật mã 29

2.3.3 Một số hàm băm mật mã thông dụng 36

2.3.4 Các ứng dụng cơ bản của hàm băm 37

2.4 Một số phương pháp sinh OTP 41

2.4.1 Phương pháp sinh theo thời gian 41

2.4.2 Phương pháp sinh theo thuật toán 42

2.4.3 Phương pháp sinh theo giải pháp S/KEY 44

2.4.4 Phương pháp sinh sử dụng HOTP 44

2.4.5 Phương pháp sinh sử dụng Security token 44

2.4.6 Phương pháp sinh bằng giao thức 44

2.5 Các phương pháp chuyển giao OTP 45

2.5.1 Chuyển giao OTP bằng giấy 45

2.5.2 Chuyển giao OTP bằng tin nhắn SMS 46

2.5.3 Tạo OTP sử dụng token 47

2.5.4 Tạo OTP sử dụng điện thoại di động 49

2.5.5 Chuyển giao OTP sử dụng gmail 51

Chương 3 XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG XÁC THỰC SỬ DỤNG OTP TRONG GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN 53

3.1 Đặt vấn đề 53

3.2 Mô hình sử dụng giao dịch trực tuyến của ngân hàng Eximbank 54

3.2.1 Giới thiệu Mobile OTP 55

3.2.1 Hướng dẫn sử dụng Mobile OTP 56

3.3 Kết quả xây dựng mô hình thực nghiệm 56

3.4 Cài đặt 56

3.5 Kết chương 56

KẾT LUẬN 57

TÀI LIỆU THAM KHẢO 58

PHỤ LỤC 59

Trang 7

DANH MỤC CÁC CHỮ VIẾT TẮT

DES Data Encrypt Standar RSA R.Rivest A.Shamir L.Adleman MHK Merkle -Hellman Knapsack SHA Secure Hash Algorithm

Trang 8

DANH MỤC HÌNH VẼ

Hình 1: Mã hoá với khoá mã và khoá giải giống nhau 6

Hình 2: Minh họa xác thực mật khẩu 15

Hình 3: Minh họa đăng nhập một lần 16

Hình 4: Mô hình đăng nhập duy nhất SSO 26

Hình 5: Cơ chế hoạt động của openSSO 30

Hình 6: Người dùng truy cập vào ứng dụng khi 32

Hình 7: Người dùng truy cập ứng dụng mà chưa 32

Hình 8: Sơ đồ phân loại hàm băm 34

Hình 9: Cấu trúc tổng quát của hàm băm 35

Hình 10: Mô hình sinh mã OTP theo thời gian 39

Hình 11: Thiết bị sinh OTP - OTP Token 40

Hình 12: Ứng dụng Mobile OTP - IOS 40

Hình 13: Ứng dụng Mobile OTP - Window Phone 8 42

Hình 14: Mô hình xác thực người dùng dựa trên giao thức 44

Hình 15: Thẻ mật khẩu OTP với mật khẩu in sẵn của VinaGame 45

Hình 16: Chuyển giao OTP bằng tin nhắn SMS 46

Hình 17: Minh họa thẻ EMV 48

Hình 18: Minh họa thiết bị E-Token 49

Hình 19: Mô hình kết nối SSL VPN đến Vigor2950 có điện thoại 49

Hình 20: Cài đặt phần mềm sinh OTP trên iPhone với Vigor2950 51

Hình 21: Mô hình nhận OTP qua gmail 53

Hình 22: Hướng dẫn cài đặt ứng dụng Mobile OTP 54

Hình 23: Hướng dẫn đăng nhập và kích hoạt dịch vụ 54

Hình 24: Hướng dẫn sử dụng Mobile OTP để xác thực giao dịch 55

Hình 25: Hướng dẫn chức năng đồng bộ OTP 55

Hình 26: Hướng dẫn cấp lại mật khẩu 56

Hình 27: Hướng dẫn đổi mật khẩu 56

Hình 28: Người dùng đăng nhập vào hệ thống 56

Hình 29: Người dùng nhập thông tin chuyển khoản 56

Hình 30: Người dùng chấp nhận chuyển khoản 56

Hình 31: Người dùng chuyển khoản thành công 56

Hình 32: Mô tả lịch sử giao dịch 56

Trang 9

MỞ ĐẦU

Trong kĩ thuật bảo mật thông tin, mật khẩu (password) được sử dụng rộng rãi trong quá trình đăng nhập (log-on) để xác thực người dùng khi truy nhập vào các hệ thống máy tính và mạng, các phần mềm ứng dụng trên máy tính cá nhân, máy chủ công ty và cả website của các tổ chức tài chính, ngân hàng Phương pháp phổ thông thường hay dùng nhất để xác thực người dùng chỉ là mật khẩu (tên đăng nhập username - password) Tuy nhiên, hầu hết các chuyên gia bảo mật đều đánh giá là việc sử dụng password không còn an toàn trước các thủ đoạn tấn công tinh vi hiện nay Mật khẩu có thể bị nghe lén, bị đánh cắp, hoặc bị phá mã Một trong những hướng nghiên cứu để tăng cường độ an toàn của hệ thống là mật khẩu sử dụng một

lần OTP (One Time Password) Đây là phương pháp được giới thiệu để tăng cường

độ an toàn trong quá trình xác thực người dùng, xác thực các giao dịch, đặc biệt là các giao dịch thanh toán trực tuyến trong các hệ thống ngân hàng đang được sử dụng phổ biến hiện nay

Đề tài "Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP" được lựa chọn với mục đích nghiên cứu sâu về mật khẩu sử

dụng một lần, các phương pháp sinh và tạo mật khẩu sử dụng một lần và ứng dụng trong việc xác thực các giao dịch ngân hàng, cài đặt thử nghiệm ứng dụng mật khẩu

sử dụng một lần để nâng cao an toàn cho xác thực các giao dịch ngân hàng trực

tuyến Mục đích của luận văn

Tìm hiểu nghiên cứu sâu về mật khẩu sử dụng một lần, các phương pháp sinh và tạo mật khẩu sử dụng một lần và ứng dụng trong xác thực giao dịch ngân hàng trực tuyến

Đối tượng và phạm vi nghiên cứu

Luận văn tìm hiểu nghiên cứu về lý thuyết mật mã, các thuật toán mã hóa cơ bản, lý thuyết về hàm băm và thuật toán mã hóa SHA-1, lý thuyết về OTP và vấn đề xác thực các giao dịch ngân hàng trực tuyến Xây dựng hệ thống xác thực các giao dịch ngân hàng bằng mật khẩu sử dụng 1 lần OTP trên ngôn ngữ Java

Cấu trúc của luận văn gồm có

Phần mở đầu: Nêu lý do chọn đề tài và hướng nghiên cứu chính

Chương 1: Các kiến thức cơ bản về lý thuyết bảo mật thông tin, một số thuật

toán mã hóa cơ bản, khái niệm về mật khẩu và ứng dụng

Trang 10

Chương 2: Giới thiệu tổng quan về mật khẩu OTP, các ứng dụng cơ bản, các

phương pháp sinh mật khẩu OTP, các phương pháp chuyển giao

Chương 3: Xây dựng chương trình ứng dụng xác thực trong giao dịch trực

tuyến tại các ngân hàng Việt Nam dựa trên mật khẩu OTP

Trang 11

Chương 1 MỘT SỐ KIẾN THỨC CƠ BẢN

VỀ BẢO MẬT THÔNG TIN

Nội dung chính của chương 1 sẽ giới thiệu các khái niệm cơ bản về lý thuyết

an toàn và bảo mật thông tin thông qua các hệ mật mã và mật khẩu, các kiến thức cơ bản này đã được tham khảo trong các tài liệu [1, 5, 6, 8]

1.1 Giới thiệu về an toàn và bảo mật thông tin

1.1.1 Các khái niệm cơ bản

Trong thời đại ngày nay, các phương thức truyền đạt thông tin ngày càng đa dạng và phát triển Với sự ra đời của máy tính và mạng máy tính, việc trao đổi thông tin đã trở nên dễ dàng hơn, nhanh chóng hơn, đa dạng hơn Nhưng kèm theo

đó là các nguy cơ xâm phạm thông tin cũng ngày càng tăng Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng được phát triển ứng dụng để nâng cao chất lượng

và lưu lượng truyền tin thì các quan niệm ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới Bảo vệ an toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu Các phương pháp bảo vệ an toàn thông tin

dữ liệu có thể được phân thành ba nhóm sau:

+ Bảo vệ an toàn thông tin bằng các biện pháp hành chính

+ Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng)

+ Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm)

Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp Môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ xâm nhập nhất đó là môi trường mạng và truyền tin Biện pháp hiệu quả nhất và kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán

1.1.2 Mục tiêu của an toàn bảo mật thông tin

Một hệ thống an toàn thông tin cần đảm bảo các yếu tố sau đây:

+ Tính bí mật (Confjdentialy): Đảm bảo dữ liệu được truyền đi một cách an

toàn và không thể bị lộ thông tin Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu

Trang 12

+ Tính xác thực (Authentication): Giúp cho người nhận dữ liệu xác định

được chắc chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận được

+ Tính toàn vẹn (Integrity): dữ liệu không bị thay đổi trong quá trình

truyền đi

+ Tính không thể chối bỏ (Non-repudation): Người gửi hay người nhận

không thể chối bỏ sau khi đã gửi hoặc nhận thông tin

1.1.3 Các chiến lược an toàn hệ thống

Để xây dựng một hệ thống an toàn thông tin, người ta thường sử dụng các chiến lược sau:

+ Giới hạn quyền hạn tối thiểu (Last Privilege):

Đây là chiến lược cơ bản nhất theo nguyên tắc này bất kỳ một đối tượng nào cũng chỉ có những quyền hạn nhất định đối với tài nguyên mạng, khi thâm nhập vào mạng đối tượng đó chỉ được sử dụng một số tài nguyên nhất định

+ Bảo vệ theo chiều sâu (Defence InDepth):

Xây dựng hệ thống bảo vệ theo chiều sau để đảm bảo nâng cao hệ số an toàn

+ Nút thắt (Choke Point):

Tạo ra một “cửa khẩu” hẹp và chỉ cho phép thông tin đi vào hệ thống bằng con đường duy nhất chính, từ đó xây dựng tổ chức một cơ cấu kiểm soát và điều khiển thông tin đi qua cửa này

+ Điểm nối yếu nhất (Weakest Link):

Cần phải gia cố các vị trí yếu điểm nhất của hệ thống Thông thường chúng

ta chỉ quan tâm đến người tấn công trên mạng hơn là kẻ tiếp cận hệ thống, do đó an toàn vật lý được coi là yếu điểm nhất trong hệ thống của chúng ta

+ Tính toàn cục:

Các hệ thống an toàn đòi hỏi phải có tính toàn cục của các hệ thống cục bộ Nếu có thể bẻ gãy một cơ chế an toàn thì chúng có thể thành công bằng cách tấn công hệ thống tự do của ai đó và sau đó tấn công hệ thống từ nội bộ bên trong

- Tính đa dạng bảo vệ:

Cần phải sử dụng nhiều biện pháp bảo vệ khác nhau cho hệ thống khác nhau, nếu không có người tấn công vào được một hệ thống thì chúng cũng dễ dàng tấn công vào các hệ thống khác

Trang 13

1.1.4 An toàn thông tin bằng mật mã

Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền tin bí mật Mật mã bao gồm: Lập mã và phá mã Lập mã bao gồm hai quá trình: mã hóa và giải mã

Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạng nhận thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quá trình này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện quá trình ngược lại, tức là biến đổi thông tin từ dạng không nhận thức được (dữ liệu đã được mã hoá) về dạng nhận thức được (dạng gốc), quá trình này được gọi là giải

mã Đây là một lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rãi trong môi trường mạng

+ Che dấu nội dung của văn bản rõ (PlainText) để đảm bảo sao cho chỉ người chủ hợp pháp của thông tin mới có quyền truy cập thông tin (Secrety), hay nói cách khác là chống truy nhập không đúng quyền hạn

+ Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ thống đến người nhận hợp pháp là xác thực (Authenticity)

+ Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tượng giả mạo, mạo danh để gửi thông tin trên mạng

Ưu điểm lớn nhất của bất kỳ hệ mật mã nào đó là có thể đánh giá được độ phức tạp tính toán phải giải quyết bài toán để có thể lấy được thông tin của dữ liệu

đã được mã hoá Tuy nhiên mỗi hệ mật mã có một số ưu và nhược điểm khác nhau, nhưng nhờ đánh giá được độ phức tạp tính toán mà ta có thể áp dụng các thuật toán

mã hoá khác nhau cho từng ứng dụng cụ thể tuỳ theo độ yêu cầu về độ an toàn

Các thành phần của một hệ mật mã:

Một hệ mật mã là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:

+ P: Là một tập hợp hữu hạn các bản rõ, nó được gọi là không gian bản rõ + C: Là tập hữu hạn các bản mã, nó được gọi là không gian bản mã Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên một phần tử

của P, với k  K

+ K: Là tập hữu hạn các khoá hay còn gọi là không gian khoá Đối với mỗi phần

tử k của K được gọi là một khoá Số lượng của không gian khoá phải đủ lớn để “kẻ địch” không có đủ thời gian để thử mọi khoá có thể (phương pháp vét cạn) Đối với

Trang 14

mỗi k  K có một quy tắc mã ek: PC và một quy tắc giải mã tương ứng dk D Mỗi

ek: P C và dk: CP là những hàm mà: Dk (ek(x))=x với mọi bản rõ x P

Hình 1: Mã hoá với khoá mã và khoá giải giống nhau

Để đánh giá một hệ mật mã người ta thường đánh giá thông qua các tiêu chí sau:

+ Độ an toàn: Một hệ mật được đưa vào sử dụng điều đầu tiên phải có độ an

toàn cao Ưu điểm của mật mã là có thể đánh giá được độ an toàn thông qua độ an toàn tính toán mà không cần phải cài đặt Một hệ mật được coi là an toàn nếu để phá

hệ mật mã này phải dùng n phép toán Mà để giải quyết n phép toán cần thời gian

vô cùng lớn, không thể chấp nhận được Một hệ mật mã được gọi là tốt thì nó cần phải đảm bảo các tiêu chuẩn sau:

- Chúng phải có phương pháp bảo vệ mà chỉ dựa trên sự bí mật của các khoá, công khai thuật toán

- Khi cho khoá công khai eK và bản rõ P thì chúng ta dễ dàng tính được

eK(P) = C Ngược lại khi cho dK và bản mã C thì dễ dàng tính được dK(M)=P Khi không biết dK thì không có khả năng để tìm được M từ C, nghĩa là khi cho hàm f: X Y thì việc tính y=f(x) với mọi x thuộc X là dễ còn việc tìm x khi biết y lại là vấn đề khó và nó được gọi là hàm một chiều

- Bản mã C không được có các đặc điểm gây chú ý, nghi ngờ

+ Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc

độ mã và giải mã Hệ mật tốt thì thời gian mã và giải mã nhanh

Trang 15

+ Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này được

truyền công khai hay truyền khóa bí mật Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các hệ mật có khóa công khai Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật mã

Có nhiều cách để phân loại hệ mật mã Dựa vào cách truyền khóa có thể phân các Hệ mật mã thành hai loại:

- Hệ mật mã đối xứng (hay còn gọi là mật mã khóa bí mật): là những hệ mật

mã dùng chung một khoá cả trong quá trình mã hoá dữ liệu và giải mã dữ liệu Do

đó khoá phải được giữ bí mật tuyệt đối

- Hệ mật mã bất đối xứng (hay còn gọi là mật mã khóa công khai) : Hay còn gọi là hệ mật mã công khai, các hệ mật mã này dùng một khoá để mã hoá sau đó dùng một khoá khác để giải mã, nghĩa là khoá để mã hoá và giải mã là khác nhau Các khoá này tạo nên từng cặp chuyển đổi ngược nhau và không có khoá nào có thể suy được từ khoá kia Khoá dùng để mã hoá có thể công khai nhưng khoá dùng để giải mã phải giữ bí mật

Ngoài ra nếu dựa vào thời gian đưa ra hệ mật mã ta còn có thể phân làm hai loại: Mật mã cổ điển (là hệ mật mã ra đời trước năm 1970) và mật mã hiện đại (ra đời sau năm 1970) Còn nếu dựa vào cách thức tiến hành mã thì hệ mật mã còn được chia làm hai loại là mã dòng (tiến hành mã từng khối dữ liệu, mỗi khối lại dựa vào các khóa khác nhau, các khóa này được sinh ra từ hàm sinh khóa, được gọi là dòng khóa) và mã khối (tiến hành mã từng khối dữ liệu với khóa như nhau)

1.2 Một số hệ mã hóa thông dụng

1.2.1 Hệ mã RSA

Hệ mật mã RSA ra đời năm 1976 bởi các tác giả R.Rivets, A.Shamir, và L.Adleman Sơ đồ mã hoá RSA là sơ đồ mã hoá khối, đoạn tin được mã hoá từng khối với mỗi khối có giá trị < n với n là số nguyên đủ lớn RSA là hệ mã dựa vào bài toán logarit rời rạc và bài toán phân tích một số nguyên thành tích các thừa số nguyên tố, là

hệ mã được sử dụng rộng rãi nhất Nó cung cấp cả sự bí mật và chữ ký điện tử, và tính bảo mật của nó là cơ sở cho độ khó trong vấn đề tìm thừa số nguyên tố

Thuật toán

Tạo khoá:

Mỗi thực thể tạo một khoá công khai và một khoá riêng tương ứng

Thực thể A cần làm công việc sau:

Trang 16

1 Tạo 2 số nguyên tố lớn p và q bất kỳ có cỡ xấp xỉ nhau

2 Tính n = p×q và Ф(n)= (p-1)(q-1)

3 Chọn 1 số nguyên e, 1<e< Ф(n) sao cho UCLN(e, Ф(n)) = 1

4 Sử dụng thuật toán Euclid mở rộng để tính d, 1<d< Ф(n) sao cho: e×d  1 (mod Ф(n))

5 Khoá công khai của A là (n, e), khoá riêng của A là d

Mã hoá: B mã hoá một văn bản gửi cho A

1 Nhận được khoá xác thực công khai của A là (n, e)

2 Trình bày văn bản như một số nguyên m thuộc [0, n-1]

Mỗi số nguyên tố lớn có thể được phát sinh bằng cách đầu tiên tạo ra một số ngẫu nhiên lớn, sau đó kiểm tra các số kế tiếp cho tới khi tìm được một số nguyên

tố Các bước tính p dựa vào thuật toán Euclid

Độ an toàn của thuật toán RSA dựa trên cơ sở những khó khăn của việc xác định các thừa số nguyên tố của một số lớn

1.2.2 Hệ mã Rabin

Đây là hệ mật có độ an toàn cao về mặt tính toán chống lại được cách tấn công bản rõ

Thuật toán

Trang 17

Tạo khoá: Mỗi thực thể tạo một khoá công khai và một khoá riêng tương ứng Mỗi thực thể A cần thực hiện các công việc sau:

1 Tạo hai số nguyên tố lớn p và q có cỡ xấp xỉ nhau

2 Tính n=p×q

3 Khoá công khai của A là n, khoá riêng của A là (p,q)

Mã hoá: B mã hoá văn bản m gửi cho A

1 Nhận được khoá công khai xác thực của A là n

2 Biểu diễn đoạn văn bản là một số nguyên trong miền: {0, 1, , n-1}

3 Tính c = m2 mod n

4 Gửi bản mã c cho A

Giải mã: Khôi phục bản rõ m từ c, cần phải dùng thuật toán tìm căn bậc hai

theo modulo n từ số nguyên tố p và q đã cho để tính ra 4 căn bậc hai m1, m2, m3 và

m4 của c theo modulo n Khi đó văn bản đã gửi là một trong các giá trị m1, m2, m3hoặc m4 A bằng cách này hay cách khác quyết định đâu là m

mở rộng này, và người nhận sẽ chọn đó là bản rõ mong đợi Nếu không có căn bậc 2 nào của c có phần mở rộng này thì người nhận từ chối Nếu phần mở rộng được sử dụng như đã nói ở trên, lược đồ Rabin không dễ bị tấn công bằng bản mã chọn trước

1.2.3 Hệ mã Elgamal

Hệ mã Elgamal xây dựng dựa trên bài toán logarit rời rạc là bài toán được dùng nhiều trong thủ tục mật mã

Thuật toán

Tạo khoá: Mỗi thực thể tạo một khoá công khai và một khoá riêng tương ứng

1 Tạo một số nguyên tố p và phần tử sinh  nhóm nhân Z*

P

2 Chọn một số nguyên a, 1  a  p-2, và tính a mod p

3 Khoá công khai của A là (p,  , a); khoá riêng là a

Trang 18

Mã hoá: B mã hoá văn bản m gửi cho A

1 Thu được khoá công khai của A (p,  , a)

2 Biểu diễn văn bản như một số nguyên m trong {0, 1, ,p-1}

3 Chọn ngẫu nhiên một số nguyên k, 1kp-2

4 Tính    k mod p và a k

m ( )

    mod p

5 Gửi bản mã c = ( , )   cho A

Giải mã: Khôi phục bản rõ m từ c bằng việc tính (    1 )  mod p

Chú ý: Một bất lợi của mã hoá Elgamal là sự mở rộng của văn bản, bản mã

có thể dài gấp 2 lần so với bản rõ Mã hoá Elgamal là một trong những lược đồ mã

hoá sử dụng sự ngẫu nhiên trong tiến trình mã hoá Những nguyên tắc cơ bản đằng sau kỹ thuật mã hoá ngẫu nhiên là sử dụng tính ngẫu nhiên để tăng thêm sự bảo mật

bằng mật mã của tiến trình mã hoá theo một trong các phương thức sau:

1 Tăng dần khoảng trống trong bản rõ một cách phù hợp

2 Ngăn ngừa hoặc làm suy giảm sự có hiệu lực của sự tấn công bản rõ chọn trước thông qua ánh xạ một - nhiều từ bản rõ đến bản mã

Tính bảo mật

Vấn đề bẻ khoá lược đồ mã hoá Elgamal, khôi phục m từ p,  , a,  , và 

tương đương với giải quyết vấn đề Diff-Hellman Trên thực tế, lược đồ mã hoá Elgamal được xem như sự thay đổi khoá Diff-Hellman để quyết định khoá ak , và

việc mã hoá văn bản bằng tính nhân với khoá đó Vì lý do này, tính bảo mật của lược đồ mã hoá Elgamal được gọi là cơ sở trong vấn đề logarithm rời rạc trong Z*

P

1.2.4 Hệ mã MHK (Merkle -Hellman Knapsack)

Sơ đồ mã khoá công khai ba lô dựa trên cơ sở của bài toán tập con, quan điểm cơ bản là chọn một trường hợp của bài toán tổng con mà dễ dàng tìm lời giải, sau đó che giấu nó như một trường hợp của bài toán tổng con tổng quát khó có hy vọng giải được Khoá được thiết lập ban đầu có thể dùng như khoá riêng, còn khoá được thiết lập sau khi biến đổi là khoá công khai Sơ đồ mã hoá MHK che giấu lời giải bằng phép nhân theo modulo và phép hoán vị

Định nghĩa một dãy siêu tăng là một dãy các số nguyên dương (b1,b2, , bn)

Trang 19

2 Chọn số nguyên ngẫu nhiên W 1WM-1 sao cho UCLN(W, M) = 1

3 Chọn một phép hoán vị ngẫu nhiên  của n số nguyên {1,2, ,n}

4 Tính ai = Wb(i) mod M với i = 1, 2, , n

5 Khoá công khai là (a1, a2, , an), khoá riêng là ( , M, W, (b1,b2, , bn))

Mã hoá: B mã hoá văn bản m gửi cho A

1 Thu được khoá công khai (a1, a2, , an) của A

2 Biểu diễn văn bản m như một chuỗi nhị phân có độ dài n, m=m1m2 mn

và sao cho các số nguyên b’i = U’ai mod M, 1  i  n từ dãy siêu tăng Dãy này có

thể được một đối thủ sử dụng thay thế vào dãy (b1, b2, , bn) để giải mã văn bản

1.2.5 Hệ mật mã Rabin

Đây là hệ mật mã dựa trên độ phức tạp của việc tính căn bậc hai theo hợp số Đây là hệ mật mã có độ an toàn về mặc tính toán chống lại được tấn công bản rõ lựa chọn và không có khả năng phân tích được n=pq Thuật toán được ứng dụng rất nhiều trong thực tế

Quá trình tạo khóa:

Để tạo ra khóa A cần phải thực hiện các thao tác sau:

1 Chọn 2 số nguyên tố ngẫu nhiên p và q, thỏa mãn điều kiện sau: pq

Trang 20

Quá trình giải mã:

Để giải mã bản mã c, A giải phương trình bậc hai sau:

)(mod0

2

n c

bM

Với M<n

Chúng ta chứng minh thuật toán này là một hệ mật, có nghĩa là quá trình giải

mã được thực hiện bởi A sẽ khôi phục lại bản rõ được mã hóa bới B

Giải phương trình bậc 2, chúng ta có nghiệm chung dạng:

)(mod

2

n c

bM

Có nghiệm trong *

n

Z Một trong các nghiệm của nó là số m, được gởi bởi

B Từ đây dẫn đến c phải là thặng dư bậc hai theo modulo n, hay là phần tử của nhóm QRn

1.2.6 Hệ mật mã McEliece

Hệ mật mã McEliece được đề xuất năm 1978, tác giả của nó là Robert McEliece Ý tưởng của bài toán này giống với ý tưởng của hệ mật mã Merkle-Hellman: Phép giải mã là trường hợp đặc biệt của bài toán NP đầy đủ

Gọi C[n,k] là mã tuyến tính, t là số bít bị sai khi truyền bản mã qua kênh nhiểu, các tham số này có liên quan với nhau bằng các hệ thức: m

n2 ,knmt

Để áp dụng trong thực tế hệ mật mã công khai McEliece đề nghị chọn 1024, t = 50

Hệ mật mã McEliece hình thành như sau:

A và B muốn truyền tin mật cho nhau bằng hệ mật mã McEliece Trước tiên

A phải hình thành khóa như sau:

Quá trình hình thành khóa:

Trang 21

1 A chọn mã tuyến tính C[n, k] có thể sửa được t lỗi Mã này phải có thuật toán giải mã hiệu quả

2 A tạo ra ma trận sinh G cấpkn cho mã C

y =(c’+e)P-1=(xSGP+e)P-1=xSG+e’

Ở đây e’ là véc tơ có trọng số là t A dùng thuật toán giải mã của mình để véc cạn các gía trị có thể của e’ và từ đó tìm xSG và từ đây chúng ta tính x dễ dàng bằng cách nhân với ma trận nghịch đảo

1.3 Giới thiệu về mật khẩu

1.3.1 Định nghĩa

Hiện nay, đăng nhập (log-on) là một khâu quan trọng trong đảm bảo an toàn cho hệ thống máy tính và mạng Thông thường, người dùng phải cung cấp một tên truy nhập (username) và mật khẩu (password) kèm theo để đăng nhập vào hệ thống Tên truy nhập là một tên do người dùng lựa chọn theo quy ước hệ thống đặt ra và phải duy nhất trong một hệ thống Trong khi tên truy nhập thường không cần giữ bí mật thì mật khẩu luôn cần giữ bí mật - chỉ người dùng biết mật khẩu của mình

Vậy mật khẩu là gì?

Trang 22

Mật khẩu là một hay nhiều từ mà người dùng phải biết để được cấp quyền

truy cập, là một dạng thông tin đặc biệt như chuỗi các ký tự, hình ảnh, dấu vân tay… dùng để xác thực, chứng minh tính chính xác một người khi đăng nhập vào một hệ thống, một dịch vụ hay một ứng dụng nào đó

1.3.2 Phương pháp xác thực

Để đảm bảo an toàn, mật khẩu cần được giữ bí mật và chỉ bản thân người dùng mới biết Mật khẩu thường được sử dụng trong một thời gian dài và trao đổi thường xuyên giữa máy khách (client) của người sử dụng với máy chủ (server)

Sau khi người dùng gõ mật khẩu của mình, bên phía client sẽ xác thực mật khẩu với server Nếu mật khẩu đúng server sẽ xác nhận và cấp quyền truy nhập tương ứng cho client và qua đó tới người dùng

Hình 2: Minh họa xác thực mật khẩu

Trên thực tế, một mật khẩu an toàn cần thỏa mãn các yêu cầu sau:

 Độ dài của mật khẩu phải từ 8 ký tự trở lên Khi độ dài mật khẩu đủ lớn, khả năng bị đoán hoặc tấn công vét cạn giảm đi;

Trang 23

 Mật khẩu không nên chứa các từ đơn giản, dễ đoán, như tên người thân, tên con vật yêu thích, hoặc ngày tháng năm sinh Các mật khẩu như vậy thường dễ dàng bị dò tìm thông qua tấn công dựa trên từ điển;

 Mật khẩu phải là tổ hợp của các chữ cái in hoa, in thường, chữ số và ký

tự đặc biệt (như các ký tự $ #, ) Khi số loại ký tự được sử dụng tăng lên, số tổ hợp mật khẩu có thể có trở lên rất lớn làm cho việc thực hiện tấn công vét cạn không khả thi

Kết luận

Trong chương 1, luận văn đã trình bày một số kiến thức cơ bản về an toàn và bảo mật thông tin, một số thuật toán mã hóa, khái niệm về mật khaur cvà ứng dụng trong bảo mật thông tin Các kiến thức này làm cơ sở để luận văn nghiên cứu về các nội dung quan trọng trong chương 2 và chương 3

Trang 24

Chương 2 MỘT SỐ KHÁI NIỆM VỀ OTP CÁC PHƯƠNG PHÁP XÁC LẬP

Nội dung chính của chương 2 tập chung giới thiệu về mật khẩu OTP, các phương pháp xác lập và các ứng dụng của OTP Đây chính là trọng tâm của luận văn Các kiến thức cơ bản trong chương 2 được tham khảo trong các tài liệu [2, 3, 4, 7]

2.1 Giới thiệu về OTP

2.1.1 Định nghĩa OTP

Mật khẩu sử dụng một lần hay còn gọi là OTP (One time password), là

mật khẩu chỉ được sử dụng một lần hoặc chỉ có giá trị trong một phiên làm việc OTP có thể được sử dụng một lần trong xác thực người dùng cho một phiên làm việc hoặc xác thực một giao dịch của người dùng OTP thường được sử dụng trong các giao dịch điện tử hoặc các hệ thống xác thực có độ bảo mật cao

Xuất hiện từ đầu thế kỉ 20 và còn có tên gọi khác là Vernam Cipher, OTP được mệnh danh là cái chén thánh của ngành mã hóa dữ liệu OTP là thuật toán duy nhất chứng minh được về lý thuyết là không thể phá được ngay cả với tài nguyên vô tận (tức là có thể chống lại kiểu tấn công brute-force) Để có thể đạt được mức độ bảo mật của OTP, tất cả những điều kiện sau phải được thỏa mãn:

- Độ dài của chìa khóa phải đúng bằng độ dài văn bản cần mã hóa

- Chìa khóa chỉ được dùng một lần

- Chìa khóa phải là một số thực sự ngẫu nhiên

2.1.2 Ưu điểm

OTP có nhiều ưu điểm so với mật khẩu truyền thống Cụ thể:

+ An toàn: Giải quyết tốt các vấn đề giả mạo, đánh cắp, Key logger Đối với phương pháp xác thực hai yếu tố, OTP có thể được kết hợp sử dụng với một mã PIN hoặc mật khẩu thông thường

+ Dễ dàng sử dụng: Việc nhận dạng và xác thực được thực hiện trong vài giây, tránh được nguy cơ bị lỗi khi gõ các mã OTP dài qua các mã từ một thiết bị chứng thực vào một máy tính (Ví dụ OTP Token sử dụng màn hình hiển thị) Nó hoạt động với tài nguyên và đăng nhập được trên hầu hết các nền tảng máy tính và trình duyệt không cần cài đặt phần mềm Client chuyên dụng

+ Linh hoạt: Người dùng dễ dàng sử dụng cho các máy tính khác nhau và dễ mang theo thiết bị sinh OTP bên mình

Trang 25

+ Mã nguồn mở: Sẵn sàng tích hợp với nhiều ứng dụng mã nguồn mở

Các giải pháp có thể ứng dụng OTP gồm: Web mail server, CRM (Hệ quản

lý khách hàng), ERP (Hoạch định nguồn lực doanh nghiệp), Hệ thống quản lý tài liệu, Thương mại điện tử

2.1.3 Nhược điểm

OTP sẽ mất an toàn khi chủ tài khoản bị mất thiết bị sinh OTP (OTP Token) hay người khác có thể xâm nhập vào hệ thống gửi/nhận tin nhắn SMS để biết được OTP mỗi khi khách hàng thực hiện giao dịch Ngoài ra, nếu như hệ thống mạng viễn thông bị chậm, quá tải hay vì lý do gì đó mà tin nhắn SMS gửi OTP đến chậm thì giao dịch dựa vào OTP chuyển giao qua SMS sẽ không thực hiện được

Hiện nay, do tiết kiệm chi phí đầu tư một số doanh nghiệp chỉ sử dụng hình thức xác thực qua tên định danh người dùng (username) và mật khẩu dùng một lần (OTP) chuyển giao đến người dùng qua tin nhắn SMS đến điện thoại di động Tên định danh người dùng dễ dàng bị lộ khi người dùng đăng nhập trên Internet, tham gia các hoạt động trên mạng xã hội hoặc diễn đàn…Còn OTP sẽ mất an toàn khi người dùng bị đánh cắp thẻ SIM điện thoại

2.2 Ứng dụng của OTP

2.2.1 Ứng dụng trong xác thực

Hiện nay, mật khẩu sử dụng một lần thường được sử dụng khá phổ biến trong lĩnh vực ngân hàng nhằm tăng tính bảo mật cho các giao dịch thanh toán như chuyển khoản, chuyển tiền,…Thông thường có hai hình thức xác thực giao dịch mà ngân hàng thường sử dụng, đó là:

+ Hệ thống sử dụng Token sinh OTP đồng bộ theo thời gian thực:

Hệ thống này sử dụng thời gian để đồng bộ việc sinh OTP giữa máy chủ và một thiết bị phần cứng được gọi là OTP Token (mỗi cá nhân sử dụng hệ thống sẽ được cấp một token cá nhân để sinh OTP theo thời gian thực)

Trang 26

nhằm xác thực người sử dụng khi người sử dụng truy cập vào một chuỗi các ứng dụng có liên kết trong môi trường phân tán Người dùng chỉ cần cung cấp thông tin đăng nhập một lần và có thể truy nhập vào nhiều ứng dụng khác nhau trong hệ thống phân tán Như các ứng dụng và các tài nguyên khác nhau hỗ trợ các cơ chế xác thực khác nhau, SSO phải chuyển đổi nội bộ và lưu trữ các thông tin ủy quyền khác nhau để so sánh với những gì đã được sử dụng để xác thực trong lần đầu

Hình 3: Minh họa đăng nhập một lần

+ Đối với người dùng:

- Làm giảm sự mệt mỏi của người dùng khi phải đăng nhập nhiều lần vào các dịch vụ khác nhau;

- Làm giảm thời gian nhập lại mật khẩu cho cùng 1 danh tính;

- Có thể hỗ trợ các chứng thực thông thường như Windows Credentials (ID/password);

- Bảo mật trên tất cả các cấp trong việc truy cập, thoát khỏi hệ thống mà không gây bất tiện cho người sử dụng;

- Hệ thống SSO cung cấp cho người dùng công cụ xác thực đăng nhập một lần Công cụ này xác thực người dùng đăng nhập vào mọi hệ thống có tích hợp giải pháp SSO, vì vậy, người dùng chỉ cần nhớ một cặp tên truy cập/mật khẩu duy nhất

+ Đối với nhà cung cấp dịch vụ, quản trị hệ thống:

- Người quản trị chỉ cần bảo mật và quản lý thông tin đăng ký của người dùng một lần, vì vậy có thể giảm dung lượng cơ sở dữ liệu và tránh được các xung

Trang 27

đột nảy sinh do phải xử lý mật khẩu của các hệ thống khác nhau, tăng khả năng mở rộng và triển khai các chiến lược bảo mật

- Người quản trị có thể thay đổi và cập nhật thông tin được bảo mật của người dùng khi cần thiết, một cách dễ dàng hơn so với việc thay đổi ở từng hệ thống riêng lẻ mà người dùng đó được phép truy cập Điều này rất hữu ích khi người dùng thay đổi vị trí của mình với các cấp độ bảo mật khác nhau

Những nhược điểm của SSO:

- Làm tăng các tác động tiêu cực trong trường hợp thông tin có sẵn cho người khác và được sử dụng sai Vì vậy khi xây dựng SSO cần tập trung tăng cường bảo vệ thông tin người dùng, do đó nên kết hợp các phương pháp xác thực mạnh, như thẻ thông minh hoặc password dùng một lần

- Yêu cầu về hệ thống xác thực rất quan trọng, chỉ cần hệ thống bị lỗi hoặc ko tiếp cận được với hệ thống, người dùng sẽ không truy cập được vào tất cả các dịch vụ trong hệ thống Cần đảm bảo việc truy cập được thực hiện mọi lúc và an toàn

Mặc dù có một số nhược điểm, nhưng giải pháp SSO vẫn đang được triển khai rộng rãi ở nhiều nước trên thế giới, trong nhiều hệ thống thông tin có nhu cầu xác thực và bảo mật Nó được đánh giá là một trong các giải pháp hiệu quả, tiện dụng và kinh tế khi triển khai trên diện rộng

Các hệ thống xác thực SSO đang được sử dụng rộng rãi là: CAS (Central Authentication Service), WebAuth RSA Single Sign On Manager, Open Single Sign - On (OpenSSO) hoạt động dựa trên Token, Java Open SSO (JOSSO)

+ Open SSO Enterprise

OpenSSO là một sản phẩm mã nguồn mở 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 Federation Manager và Sun System SAML v2 Java Plugin, kiểm soát truy nhập, đảm bảo an toàn các dịch vụ web và các dịch vụ định danh Web Khi truy cập vào những tài nguyên được bảo vệ của người dùng, yêu cầu truy cập cần được xác thực và phải

có đủ quyền truy cập Khi một người gửi yêu cầu để truy cập tài nguyên được bảo vệ, policy agent chặn yêu cầu này và kiểm tra Nếu OpenSSO token được tìm thấy không hợp lệ, policy agent sẽ yêu cầu máy chủ tiến hành xác thực và cấp phép

Trang 28

Hình 4: Mô hình đăng nhập duy nhất SSO

Policy agent là ứng dụng web với nhiệm vụ ngăn tất cả yêu cầu đến ứng dụng,

để kiểm tra xem người dùng đã xác thực hay chưa

Hình 5: Cơ chế hoạt động của openSSO

Cơ chế hoạt động của OpenSSO như sau:

Trang 29

- Từ trình duyệt, người dùng kết nối đến ứng dụng web

- Policy Agent sẽ kiểm tra token có tồn tại trong URL hay không Nếu token chưa tồn tại thì Policy Agent sẽ chuyển trình duyệt đến OpenSSO máy chủ

- OpenSSO máy chủ xác thực người dùng thông qua trang đăng nhập Người dùng nhập tên truy cập/mật khẩu để xác thực

- OpenSSO (tạo ra session cho người dùng và kích hoạt nó nếu xác thực thành công)

- OpenSSO gửi token cho trình duyệt (trình duyệt sẽ lưu token dưới dạng cookie) và Trình duyệt sẽ gửi token đến cho Agent

- Policy Agent sẽ lấy thông tin token gửi đến OpenSSO máy chủ để kiểm tra

- OpenSSO sẽ gửi thông tin đăng nhập (tên truy cập, mật khẩu) và thông tin vai trò đến Agent nếu kiểm tra token hợp lệ

- Policy Agent sẽ quyết định cho phép truy cập ứng dụng hay không và ghi thông tin session trên URL

+ Giải pháp Dịch vụ xác thực trung tâm CAS

CAS (Central Authenticate Service) là một giải pháp SSO mã nguồn mở được phát triển bởi đại học Yale, với các tính năng như sau:

- CAS hỗ trợ nhiều thư viện phía máy khách được viết bởi nhiều ngôn ngữ: PHP, Java, PL/SQL Nó lấy thông tin SSO thông qua cookie Cookie này sẽ bị hủy khi người dùng đăng xuất khỏi CAS hoặc đóng trình duyệt Cookie được sinh ra bởi CAS, còn được gọi là TGC (Ticket Granting Cookie) chứa một ID duy nhất

- CAS cung cấp nhiều trình quản lý xác thực (authenticate handler) khác nhau CAS xác thực nhiều loại thông tin người dùng như tên truy cập/mật khẩu, chứng chỉ khóa công khai X509, để xác thực những thông tin người dùng khác nhau này, CAS sử dụng những trình quản lý xác thực tương ứng

- CAS cung cấp tính năng “Remember me” Người phát triển có thể cấu hình tính năng này trong nhiều file cấu hình khác nhau và khi người dùng chọn

“Remember me” trên khung đăng nhập, thì thông tin đăng nhập sẽ được ghi nhớ với thời gian được cấu hình Khi người dùng mở trình duyệt thì CAS sẽ chuyển đến service URL tương ứng mà không cần hiển thị khung đăng nhập

Nguyên tắc hoạt động của CAS như sau:

Chứng thực người dùng với máy chủ CAS

- Người dùng nhập tên truy cập/mật khẩu vào khung đăng nhập Các thông tin này được truyền cho CAS máy chủ thông qua giao thức HTTPS

Trang 30

- Xác thực thành công, TGC được sinh ra và thêm vào trình duyệt dưới hình thức là cookie TGC này sẽ được sử dụng để đăng nhập với tất cả các ứng dụng

Hình 6: Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS máy chủ

Truy cập vào ứng dụng của người dùng

Trường hợp người dùng truy cập vào ứng dụng khi đã chứng thực với CAS máy chủ:

- Người dùng truy xuất ứng dụng thông qua trình duyệt

- Ứng dụng lấy TGC từ trình duyệt và chuyển nó cho CAS máy chủ thông qua giao thức HTTPS

- Nếu TGC này là hợp lệ, CAS máy chủ trả về một Service Ticket (ST) cho trình duyệt, trình duyệt truyền ST vừa nhận cho ứng dụng

- Ứng dụng sử dụng ST nhận được từ trình duyệt và sau đó chuyển nó cho CAS máy chủ

- CAS máy chủ sẽ trả về ID của người dùng cho ứng dụng, mục đích là để thông báo với ứng dụng là người dùng này đã được chứng thực bởi CAS máy chủ

- Ứng dụng đăng nhập cho người dùng và bắt đầu phục vụ người dùng Trường hợp người dùng truy cập vào ứng dụng mà chưa chứng thực với CAS máy chủ:

- Người dùng truy xuất ứng dụng thông qua trình duyệt Vì chưa nhận được TGC nên ứng dụng sẽ chuyển hướng người dùng cho CAS máy chủ

- Người dùng cung cấp tên truy cập/mật khẩu của mình thông qua khung đăng nhập để CAS xác thực Thông tin được truyền đi thông qua giao thức HTTPS

Trang 31

- Xác thực thành công, CAS máy chủ sẽ trả về cho trình duyệt đồng thời cả TGC và ST

- Trình duyệt sẽ giữ lại TGC để sử dụng cho các ứng dụng khác (nếu có) và truyền ST cho ứng dụng nêu trên

- Ứng dụng chuyển ST cho CAS máy chủ và nhận về ID của người dùng

- Ứng dụng đăng nhập cho người dùng và bắt đầu phục vụ người dùng

Hình 7: Người dùng truy cập ứng dụng mà chưa chứng thực với CAS

2.3 Giới thiệu về hàm băm mật mã, các thuật toán

2.3.1 Giới thiệu

Khái niệm

Hàm băm mật mã là hàm toán học chuyển đổi một thông điệp có độ dài bất kỳ thành một dãy bit có độ dài cố định (tùy thuộc vào thuật toán băm) Dãy bit này được gọi là thông điệp rút gọn (message digest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu Các hàm băm đóng vai trò cơ bản trong mật mã hiện đại

Mục tiêu của hàm băm (H) tạo ra bản nhận dạng (fingerprit) cho một tập tin, thông điệp hay một khối dữ liệu truyền đi nhằm đảm bảo tính toàn vẹn

+ H có thể được áp dụng trên khối dữ liệu có độ dài tùy ý

+ H tạo đầu ra có độ dài cố định

Trang 32

+ H(x) tính toán đối với mọi x tương đối dễ dàng, tạo điều kiện cho việc cài đặt trên phần cứng lẫn phần mềm được thực hiện một cách dễ dàng

+ Với bất kì giá trị băm h, không thể tính được x để sao cho H(x)=h người ta gọi là hàm băm 1 chiều

+ Với bất kì giá trị x không thể tính được y khác x sao cho H(x)=H(y) Tính chất này được gọi là tính bền xung đột yếu (weak collision resistance)

+ Không thể tìm được 1 cặp (x, y) để H(x)=H(y) Tinh chất này được gọi là tính bền xung đột mạnh (strong collision resistance)

Phân loại hàm băm mật mã

Hình 8: Sơ đồ phân loại hàm băm

Hàm băm mật mã có khóa là hàm băm có dữ liệu đầu vào ngoài thông điệp

ra còn có thông điệp khác là một khóa bí mật, nếu không có khóa bí mật này thì không thể băm thông điệp đầu vào theo đúng yêu cầu Các hàm băm có khoá được

sử dụng để xác thực thông báo và thường được gọi là các thuật toán tạo mã xác thực thông báo (MAC)

Hàm băm không khóa là hàm băm có dữ liệu đầu vào chỉ là thông điệp, không chứa khóa Hàm băm không khóa có một số tính chất như sau:

 Tính khó va chạm

 Tính khó tính toán nghịch ảnh

 Khó tìm nghịch ảnh thứ hai

Hàm băm không khóa bao gồm các lớp con MDC Các MDC được sử dụng

để tạo ra ảnh đặc trưng của thông điệp, đảm bảo sự toàn vẹn của dữ liệu

2.3.2 Cấu trúc, vai trò của hàm băm mật mã

 Cấu trúc của hàm băm mật mã

Trang 33

Thành phần chính của một hàm băm là một hàm nén và các hàm biến đổi khác Hàm nén được thực thi nhiều lần để băm thông điệp ban đầu của hàm băm thành một chuỗi có chiều dài cố định Các hàm biến đổi khác (có thể có hoặc không) nhận vào chuỗi bít sau lần cuối cùng thực thi hàm nén và cho kết quả chính là mã băm cuối cùng của hàm băm

Hình 9: Cấu trúc tổng quát của hàm băm

Có rất nhiều thuật toán hàm băm cho đến nay sử dụng chung một cấu trúc cơ bản Cụ thể, một hàm băm thường gồm các bước như sau:

Bước 1: Phân chia thông điệp đầu vào chiều dài hữu hạn thành các khối thông điệp con liên tiếp có chiều dài cố định r (giả sử là m, m2, m3, … mk)

Bước 2: Do m có độ dài bất kỳ nên luôn có một bước thêm các bit phụ sao cho chiều dài chuỗi mới m’ chia hết cho r (trong các bit thêm thường thêm 64 bit để lưu lại chiều dài ban đầu của chuỗi trước khi chèn)

Bước 3: Đưa khối thông điệp con m1, m2, m3, , mk sẽ lần lượt đi qua một hàm nén f của hàm băm h(m)

Bước 4: Kết quả của khối thứ mi-1 sau khi đi qua hàm nén f sẽ là nguồn dữ liệu đầu vào cho bước thứ i tiếp theo

2.3.3 Một số hàm băm mật mã thông dụng

Hàm băm MD4

Hàm MD4 (Message Digest Algorithm 4): Là một hàm băm 128 bit được thiết

kế bởi Ronald Rivest vào năm 1990 Mục tiêu thiết kế của MD4 là để tìm được hai thông điệp có cùng mã băm thì cần khoảng 264 phép toán và để tìm được tiền ảnh của một mã băm thì cần khoảng 2128 phép toán Nhưng đến nay mục tiêu đó đã bị thất bại Xung đột của MD4 có thể tìm thấy với khoảng 220 phép toán

Hàm băm MD5

Trang 34

Được phát triển bởi Ron Rivest tại đại học MIT Hàm MD5 là một hàm băm

độ dài 128 bit Nó là hàm băm cải tiến của MD4 Đầu vào là những khối 512 bit, được chia cho 16 khối con 32 bit Đầu ra của thuật toán là một thiết lập của 4 khối

32 bit để tạo thành một hàm băm 128 bit duy nhất Giải thuật được thực hiện theo 5 bước như sau:

Bước 1: Nhồi dữ liệu

+ Nhồi thêm các bits sao cho dữ liệu có độ dài I=n*512 +448

+ Việc thực hiện nhồi dữ liệu ngay cả khi dữ liệu ban đầu có độ dài mong muốn tức là nếu dữ liệu có độ dài 448 thì cũng được nhồi thêm 512 để thu được độ dài 960 bits

+ Số lượng các bits nhồi thêm nằm trong khoảng từ 1 đến 512

+ Các bits được nhồi gồm bít 1 và các bits 0 theo sao

Bước 2: Thêm vào độ dài

+ Độ dài của khối dữ liệu ban đầu được biểu diễn dưới dạng nhị phân 64 bit

và được thêm vào cuối chuỗi nhị phân kết quả của bước 1

+ Nêó đội dài của khối dữ liệu >264, thì chỉ 64 bits thấp nhất được sử dụng nghĩa là giá trị thêm vào bằng K mod 264

+ Kết quả có được từ 2 bước đầu là một khối dữ liệu có độ dài là bội số của

512 Khối dữ liệu được biểu diễn

 Bằng một dãy L khối 512 bit Y0, Y1,…,YL-1

 Bằng một dãy N từ 32 bit M0, M1, …, MN-1

Bước 3: Khởi tạo bộ đệm MD (MD buffer)

+ Một bộ đệm 128 bit được dùng để lưu trữ các giá trị băm trung gian và kết quả Bộ đệm được biểu diễn bằng 4 thanh ghi 32 bit với các giá trị khởi thạo ở dạng little-endian (byte có trọng số nhỏ nhất trong từ nằm ở địa chỉ thấp nhất) như sau:

Trang 35

D=76 54 32 10

Bước 4: Xử lý các khối dữ liệu 512 bit

+ Trọng tâm của giải thuật là hàm nén (Compression function) gòm 4 vòng

xử lý, các vòng này có cấu trúc khác nhau nhưng sử dụng các hàm logic khác nhau

Bước 5: Xuất kết quả

Sau khi xử lý hết L khối 512 bit, đầu ra của lần xử lý thứ L là giá trị băm 128 bits

Giải thuật MD5 được tóm tắt như sau

+ CV0=IV

+ CVq+1=Sum32[CVq,RFI(Yq,RFH(Yq,RFG(Yq,RFF(Yq,CVq))))]

Trong đó

 IV là bộ đệm gồm 4 thanh ghi ABCD

 Yq là khối dữ liệu thứ q gồm 512 bits

 L là số khối 512 bit sau khi nhồi dữ liệu

 CVq là đầu ra của khối thứ q sau khi áp dụng hàm nén

 RFx là hàm luận lý sử dụng trong các vòng (F,G,H,I)

 MD là giá trị băm (message digest)

Trang 36

lại kết quả dài 224 bit), 256 ( trả lại kết quả dài 256 bit), 384 và

512 ( trả lại kết quả dài 512 bit) Bốn thuật giải sau thường được gọi chung là

SHA-2 Bảng dưới đây thể hiện các tính chất cơ bản của bốn thuật toán băm an toàn

+ Nhận xét về họ hàm băm SHA

 SHA là họ hàm băm được coi là an

toàn bởi:

+ Cho một giá trị băm nhất định được tạo

nên bởi một trong những thuật giải SHA,

việc tìm lại được đoạn dữ liệu gốc là

không khả thi

+ Việc tìm được hai đoạn dữ liệu nhất

định có cùng kết quả băm tạo ra bởi

một trong những thuật giải SHA là

không khả thi Bất cứ thay đổi nào trên

đoạn dữ liệu gốc, dù nhỏ, cũng sẽ tạo

nên một giá trị băm hoàn toàn khác với

xác suất rất cao.SHA - 1 được sử dụng

rộng rãi trong nhiều ứng dụngvà giao

thức an ninh khác nhau SHA - 1 được

coi là thuật giải thay thế cho MD5, một

thuật giải băm 128 bit khác

Hiện nay, SHA-1 không còn được coi

là an toàn bởi đầu năm 2005, ba nhà mật mã học người Trung Quốc đã phát triển thành công một thuật toán dùng để tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi SHA-1 Mặc dù chưa có ai làm được điều tương tự với SHA-2, nhưng

vì về thuật toán, SHA-2 không khác biệt mấy so với SHA-1 nên nhiều nhà khoa học đã bắt đầu phát triển một thuật toán khác tốt hơn SHA NIST cũng đã khởi đầu một cuộc thi phát triển thuật toán băm mới an toàn hơn SHA, giống như quy trình phát triển chuẩn mã hóa nâng cao AES

Trang 37

Thuật toán mã hóa SHA-1

 Giới thiệu chung:

SHA-1 là một thuật toán được sử dụng rộng rãi trong nhiều ứng dụng và giao thức an ninh khác nhau, bao gồm TLS và SSL, PGP, SSH, S/MIME và IPSec

SHA-1 được coi là giải thuật thay thế MD5 Ba thuật toán SHA có cấu trúc khác

nhau và được phân biệt là: SHA-0, SHA-1, và SHA-2 SHA-1 gần tương tự như

SHA-0, nhưng sửa chữa một lỗi trong các đặc tả kỹ thuật gốc của hàm băm SHA dẫn đến những điểm yếu quan trọng Các thuật toán SHA-0 đã không được sử dụng trong nhiều ứng dụng SHA-2 mặt khác có những điểm khác biệt quan trong so với hàm băm SHA-1 Việc phân loại các hàm băm SHA được đưa ra trong bảng sau đây:

Thuật toán

Kích thước đầu ra

Kích thước

Kích thước tin nhắn tối đa

Kích thước

từ

Xung quanh

Các va chạm tìm thấy?

DL Các SHA-1 cũng có thể sử dụng bất cứ khi nào nó là cần thiết để tạo ra 1 phiên bản đặc biệt của tin nhắn Hàm SHA-1 còn được sử dụng trên Wii của Nintendo để xác minh chữ ký thời gian khởi động

SHA-1 và SHA-2 là những thuật toán băm an toàn theo yêu cầu của pháp luật

để sử dụng trong một số ứng dụng của Chính Phủ Hoa Kỳ, bao gồm cả sử dụng trong các thuật toán mã hóa khác và các giao thức, để bảo vệ thông tin mật nhạy cảm

Ngày đăng: 25/06/2017, 17:28

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. D. M’Raihi, J. Rydell, S. Bajaj, S. Machani, D. Naccache, OATH Challenge- Response Algorithm, June 2011 Sách, tạp chí
Tiêu đề: OATH Challenge- Response Algorithm
[2]. D. M’Raihi, J. Rydell, S. Bajaj, S. Machani, D. Naccache, Time-Based One- Time Password Algorithm, May 2011 Sách, tạp chí
Tiêu đề: Time-Based One- Time Password Algorithm
[4]. One Time Password http://en.wikipedia.org/wiki/One-time_password, 9/2013 [5]. Challenge-Response Algorithmhttp://en.wikipedia.org/wiki/Challenge%E2%80%93response_authentication, 9/2013 Sách, tạp chí
Tiêu đề: One Time Password http://en.wikipedia.org/wiki/One-time_password", 9/2013 [5]. "Challenge-Response Algorithm
[6]. Dương Hoàng Anh, Nguyễn Việt Huy, Nguyễn Văn Tân, Phạm Minh Tú - Báo cáo nghiên cứu khoa học: Nghiên cứu về mật khẩu sử dụng một lần và ứng dụng, 12/2012 Sách, tạp chí
Tiêu đề: - Báo cáo nghiên cứu khoa học: Nghiên cứu về mật khẩu sử dụng một lần và ứng dụng
[7]. Phạm Tuấn Dũng - Luận văn: Nghiên cứu phương pháp bảo mật cho cơ chế đăng nhập một lần ứng dụng trong hệ phân tán, 2011 Sách, tạp chí
Tiêu đề: - Luận văn: Nghiên cứu phương pháp bảo mật cho cơ chế đăng nhập một lần ứng dụng trong hệ phân tán
[3]. Neil M. Haller, Bellcore, Morristown, New Jersey - THE S-KEY ONE-TIME PASSWORD SYSTEM, 2011 Khác
[8]. Vũ Vinh Quang, Nguyễn Đình Dũng, Nguyễn Hiền Trinh, Dương Thị Mai Thương, Giáo trình lý thuyết thông tin, Nhà xuất bản Khoa học Kĩ thuật, năm 2010 Khác

HÌNH ẢNH LIÊN QUAN

Hình 3: Minh họa đăng nhập một lần - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 3 Minh họa đăng nhập một lần (Trang 26)
Hình 4: Mô hình đăng nhập duy nhất SSO - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 4 Mô hình đăng nhập duy nhất SSO (Trang 28)
Hình 5: Cơ chế hoạt động của openSSO - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 5 Cơ chế hoạt động của openSSO (Trang 28)
Hình 6: Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS máy chủ - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 6 Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS máy chủ (Trang 30)
Hình 7: Người dùng truy cập ứng dụng mà chưa chứng thực với CAS - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 7 Người dùng truy cập ứng dụng mà chưa chứng thực với CAS (Trang 31)
Hình 10: Mô hình sinh mã OTP theo thời gian. - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 10 Mô hình sinh mã OTP theo thời gian (Trang 41)
Hình 13: Ứng dụng Mobile OTP - Window Phone 8 - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 13 Ứng dụng Mobile OTP - Window Phone 8 (Trang 47)
Hình 14: Mô hình xác thực người dùng dựa trên giao thức Thách thức - Trả lời - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 14 Mô hình xác thực người dùng dựa trên giao thức Thách thức - Trả lời (Trang 48)
Hình 18: Minh họa thiết bị E-Token  2.5.4. Tạo OTP sử dụng điện thoại di động - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 18 Minh họa thiết bị E-Token 2.5.4. Tạo OTP sử dụng điện thoại di động (Trang 52)
Hình 20: Cài đặt phần mềm sinh OTP trên iPhone với Vigor2950. - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 20 Cài đặt phần mềm sinh OTP trên iPhone với Vigor2950 (Trang 54)
Hình 21: Mô hình nhận OTP qua gmail - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 21 Mô hình nhận OTP qua gmail (Trang 56)
Hình 23: Hướng dẫn đăng nhập và kích hoạt dịch vụ - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 23 Hướng dẫn đăng nhập và kích hoạt dịch vụ (Trang 58)
Hình 24: Hướng dẫn sử dụng Mobile OTP để xác thực giao dịch trên Internet - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 24 Hướng dẫn sử dụng Mobile OTP để xác thực giao dịch trên Internet (Trang 59)
Hình 25: Hướng dẫn chức năng đồng bộ OTP trong một số trường hợp - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 25 Hướng dẫn chức năng đồng bộ OTP trong một số trường hợp (Trang 59)
Hình 32: Mô tả lịch sử giao dịch - Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP
Hình 32 Mô tả lịch sử giao dịch (Trang 64)

TỪ KHÓA LIÊN QUAN

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