Tải bản đầy đủ (.pdf) (26 trang)

Nghiên cứu xây dựng hệ thống VOICE OTP cho doanh nghiệp (tt)

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

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

Vũ Tuấn Anh

NGHIÊN CỨU XÂY DỰNG HỆ THỐNG VOICE OTP
CHO DOANH NGHIỆP

Chuyên ngành: Hệ thống thông tin
Mã số: 8480104

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI - 2018


2

Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. Nguyễn Trung Kiên

Phản biện 1: ……………………………………………………………………………

Phản biện 2: …………………………………………………………………………..

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính
Viễn thông
Vào lúc:


....... giờ ....... ngày ....... tháng ....... .. năm ...............

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông


GIỚI THIỆU CHUNG
Đề tài nghiên cứu gồm 4 chương:
Chương 1: Tổng quan về giải pháp xác thực One Time Password (OTP)
Khái quát về giải pháp xác thực OTP; Vai trò và sự cần thiết của giải pháp; Các phương
thức gửi/nhận mã OTP hiện nay; Các phương pháp kĩ thuật sinh mã; Ưu điểm nổi trội của
giải pháp.
Chương 2: Nghiên cứu phương thức xác thực Voice OTP và công nghệ nền tảng xây dựng
hệ thống
Phương thức xác thực Voice OTP; Ưu điểm của Voice OTP so với các phương thức khác;
Giao thức SIP.
Chương 3: Phân tích thiết kế hệ thống
Các yêu cầu đối với hệ thống; Mô hình kiến trúc hệ thống; Các chức năng của hệ thống; Cơ
sở dữ liệu; Sơ đồ usecase chức năng hệ thống; Cấu trúc bản tin giao tiếp giữa các thành
phần; Các công cụ, ngôn ngữ, môi trường để xây dựng hệ thống.
Chương 4: Thử nghiệm triển khai hệ thống
Mục đích thử nghiệm hệ thống; Mô hình triển khai thử nghiệm; Các bài thử nghiệm và kết
quả tiến hành thử nghiệm.


2

MỤC LỤC

GIỚI THIỆU CHUNG ........................................................................................................................... 1

MỤC LỤC .............................................................................................................................................. 2
Chương 1

TỔNG QUAN VỀ GIẢI PHÁP XÁC THỰC ONE TIME PASSWORD (OTP) .............. 4

1.1

Khái quát về giải pháp xác thực OTP ..................................................................................... 4

1.2

Sự cần thiết của giải pháp ....................................................................................................... 4

1.3

Các phương thức nhận mã OTP ............................................................................................. 5

1.3.1

Xác thực qua tin nhắn SMS ............................................................................................ 5

1.3.2

Các chương trình ứng dụng tạo mã OTP ........................................................................ 5

1.3.3

Qua thiết bị cứng (token) ................................................................................................ 5

1.3.4


Xác thực qua Voice Call Verification ............................................................................ 6

1.3.5

OTP matrix ..................................................................................................................... 6

1.4

Các phương pháp sinh mã OTP .............................................................................................. 6

1.4.1

Phương pháp dựa trên các thuật toán số học .................................................................. 6

1.4.2

Phương pháp dựa trên việc đồng bộ thời gian ................................................................ 7

1.4.3

Phương pháp dựa trên sự kiện ........................................................................................ 7

1.5

Ưu điểm của công nghệ OTP ................................................................................................. 7

Chương 2

NGHIÊN CỨU PHƯƠNG THỨC XÁC THỰC VOICE OTP VÀ CÔNG NGHỆ NỀN TẢNG


XÂY DỰNG HỆ THỐNG ..................................................................................................................... 8
2.1

Trình bày về giải pháp Voice OTP ......................................................................................... 8

2.2

Trình bày về giao thức SIP trong VoIP .................................................................................. 9

2.2.1

Giới thiệu về SIP ............................................................................................................ 9

2.2.2

Các thành phần trong mạng SIP ................................................................................... 10

2.2.3

Các bản tin SIP, mào đầu và đánh số............................................................................ 10

2.2.4

Phương thức hoạt động ................................................................................................. 10

2.2.5

Tính năng của SIP......................................................................................................... 11


2.2.6

Các giao thức của SIP ................................................................................................... 11

Chương 3

PHÂN TÍCH THIẾT KẾ HỆ THỐNG ............................................................................. 11

3.1

Đặt vấn đề ............................................................................................................................. 11


3
3.2

Mô hình kiến trúc hệ thống................................................................................................... 12

3.3

Mô tả chức năng ................................................................................................................... 12

3.4

Các thành phần dữ liệu chính của hệ thống OTP ................................................................. 14

3.5

Sơ đồ usecase các chức năng ................................................................................................ 14


3.6

API giao tiếp giữa hệ thống OTP và OVPS ......................................................................... 14

3.7

Cấu trúc phần mềm ............................................................................................................... 18

Chương 4

THỬ NGHIỆM TRIỂN KHAI HỆ THỐNG .................................................................... 18

4.1

Mục đích thử nghiệm............................................................................................................ 18

4.2

Mô hình triển khai thử nghiệm ............................................................................................. 19

4.3

Kịch bản thử nghiệm ............................................................................................................ 19

4.3.1

Thử nghiệm các chức năng quản lý .............................................................................. 19

4.3.2


Thử nghiệm các tính năng xác thực dành cho doanh nghiệp ........................................ 22

KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO ..................................................................... 23
TÀI LIỆU THAM KHẢO .................................................................................................................... 24


4

Chương 1 TỔNG QUAN VỀ GIẢI PHÁP XÁC THỰC
ONE TIME PASSWORD (OTP)
1.1 Khái quát về giải pháp xác thực OTP
One Time Password (OTP) là một dạng mật khẩu sử dụng một lần với một chuỗi số
hoặc một chuỗi kết hợp cả số với ký tự. Mã này có thể tồn tại trong một khoảng thời gian rất
ngắn trước khi vô tác dụng và được thay thế bằng một mã mới.
Lợi ích của OTP là nó chống được tấn công phát lại, nghĩa là nếu có một ai đó có thể
lấy được thông tin về OTP trong một phiên làm việc thì cũng không thể sử dụng nó để đăng
nhập vào lần kế tiếp.Với lợi thế như vậy, OTP được sử dụng khá phổ biến như là lớp bảo vệ
thứ hai cho các tài khoản ngân hàng điện tử, thanh toán trực tuyến, email hay mạng xã hội.
Khi muốn chuyển tiền hay thực hiện một giao dịch trực tuyến, ngoài tên tài khoản và mật
khẩu đăng nhập, người dùng còn phải thực hiện thao tác nhập đúng mã xác thực OTP để
hoàn tất.
Sau khi đã đăng ký dịch vụ, mỗi lần muốn đăng nhập (log in), hay thực hiện bất kì
thao tác sử dụng dịch vụ nào yêu cầu tính xác thực cao, người dùng sẽ được cung cấp một
mật khẩu tạo ra bởi đầu đọc và thẻ thông minh hay thiết bị tạo mật khẩu dạng cầm tay
(token) nhờ vào kết nối internet với máy chủ cung cấp dịch vụ OTP, hoặc cũng có thể thông
qua thẻ OTP được tạo sẵn hay điện thoại di động. Mật khẩu này sẽ tự mất hiệu lực sau khi
người dùng thực hiện tác vụ thành công hoặc sau một thời gian ngắn. Như vậy, nếu bị lộ
mật khẩu thì người có được mật khẩu đó cũng không thể dùng được, và do đó giải pháp
OTP có tính bảo mật cao.


1.2 Sự cần thiết của giải pháp
Sử dụng công nghệ OTP khiến cho việc truy cập bất hợp pháp đến những tài nguyên
được giới hạn, ví dụ như một tài khoản máy tính trở nên khó khăn hơn. Thông thường, mật
khẩu cố định có thể bị người dùng bất hợp pháp truy cập trong trường hợp họ có đủ thời
gian và số lần truy cập.
Ở các hệ thống xác thực một yếu tố sử dụng Username/Pasword, mật khẩu thường
được gửi từ client đến server dưới dạng plaintext nên “nó” dễ dàng bị đánh cắp, lạm dụng
và có thể gây thiệt hại cho người dùng và đe dọa đến an toàn của hệ thống.
Bên cạnh đó, các công nghệ xác thực nhiều lớp tiên tiến như phương pháp xác thực
bằng sinh trắc học lại có chi phí đầu tư lớn với hệ thống quét vân tay, nhận diện khuôn mặt,


5

quét võng mạc mắt đắt tiền hay các thiết bị vật lý (thẻ ngân hàng, usb,…)lại đòi hỏi người
dùng phải mang theo mọi lúc nên rất dễ xảy ra mất mát, hỏng hóc và bị trộm cắp nênviệc
sửa chữa, thay thế cũng rất tốn kém. Giải pháp OTP sẽ giúp khắc phục các vấn đề kể trên do
phương pháp này chủ yếu dựa trên điện thoại di động vốn đã phổ biến, người dùng sử dụng
điện thoại luôn mang theo mình mà không thấy “vướng” như các thiết bị bảo mật kể trên.

1.3 Các phương thức nhận mã OTP
1.3.1 Xác thực qua tin nhắn SMS
Đây là hình thức phổ biến nhất hiện nay, hệ thống sẽ gửi một tin nhắn SMS chứa
OTP tới số điện thoại mà người dùng đăng kí để xác nhận thao tác trên hệ thống là đúng
của người đó.
Tuy nhiên, tin nhắn SMS có thể bị foward hoặc chặn xem bởi bên thứ ba, đây
là một điểm yếu của giải pháp này, nhưng nhìn chung, SMS OTP vẫn được xem như
một phương thức khá tiện lợi và an toàn trong xác thực truy cập hệ thống và dịch vụ.

1.3.2 Các chương trình ứng dụng tạo mã OTP

Các chương trình ứng dụng tạo mã OTP như Google Authenticator, Microsoft
Authenticator, Authy,… Khi chọn sử dụng bằng cách này, người sử dụng sẽ được
cung cấp một mã vạchQR code để quét vào bằng điện thoại hoặc một đoạn văn bản
để nhập thủ công vào các chương trình đã nói ở trên, việc này nhằm để tạo mã OTP
tự động theo thời gian. Lưu ý khi sử dụng phương thức này, người dùng nên lưu lại
đoạn mã hay QR code này. Bởi vì nếu mất điện thoại hay cài lại máy, người dũng sẽ
mất hết những thông tin đã nhập vào để sinh mã OTP tránh trường hợp biết mật khẩu
nhưng không thể truy cập do không có mã OTP.
Ưu điểm của cách này là không lo việc bị chặn haytin nhắn SMS có thể bị
foward hoặc chặn xem bởi bên thứ ba.

1.3.3 Qua thiết bị cứng (token)
Thiết bị này thường được cung cấp, sử dụng trong lĩnh vực ngân hàng và được
cung cấp cho khách hàng. Thiết bị được gắn chip để tự sinh mã OTP liên tục tương
tự như các chương trình ứng dụng tạo mã OTP. Ưu điểm của thiết bị này là bảo mật,
tránh những rủi ro. Tuy nhiên người dùng phải bỏ tiền ra mua thiết bị và mang theo
mình. Nếu xảy ra mất hay hỏng hóc, người dùng sẽ phải tốn chi phí để thay thế. Mỗi
thiết bị chỉ dùng để sinh một mã OTP cho một dịch vụ. Ví dụ như một tài khoản ngân


6

hàng mà thôi, nếu người dùng sử dụng nhiều ngân hàng, số thiết bị mang theo sẽ tỉ lệ
thuận, do đó xét về mặt kinh tế thì phương án này khá tốn kém.

1.3.4 Xác thực qua Voice Call Verification
Voice OTP là dịch vụ gọi thoại để cung cấp mã OTP. Theo đó, hệ thống sẽ
thiết lập để tự động gọi đến số điện thoại người dùng đã đăng ký để cung cấp mã
OTP theo file ghi âm sẵn đã được cá nhân hóa kịch bản thoại.Giải pháp này có rất
nhiều ưu điểm như: hỗ trợ cả điện thoại bàn, tránh được các ứng dụng bên thứ ba đọc

thông tin như SMS OTP,...

1.3.5 OTP matrix
Với OTP matrix, người sử dụng được cấp một bảng ma trận gồm 64 ô số
(8x8) khác nhau và một số serial nhằm để kết hợp tạo mã OTP. Ưu điểm của phương
pháp này là không phụ thuộc vào tình trạng mạng viễn thông nên sử dụng được ở
nước ngoài và không bị lỗi thiết bị như OTP token. Tuy nhiên, phương thức này thì ít
ai sử dụng, vì khi sử dụng hết phải mua hoặc xin cấp tiếp.

1.4 Các phương pháp sinh mã OTP
1.4.1 Phương pháp dựa trên các thuật toán số học
Phương pháp này sinh OTP trên cơ sở các OTP đã sử dụng trước đó của người
dùng. Một ví dụ cho thuật toán này là thuật toán của Leslie Lamport – thuật toán sử
dụng các hàm một chiều f. Hệ thống OTP làm việc dựa trên một giá trị mầm khởi tạo
s để sinh mật khẩu lần đầu tiên. Mật khẩu OTP được sử dụng cho phiên làm việc đầu
tiên sẽ được tính như sau:

OTP1 = fN(s).

Trong đó fN(s) = f(fN-1(s)) – với N là số lần áp dụng hàm f lên giá trị mầm s.Khi đó
ta sẽ có lần lượt các mật khẩu OTP cho các phiên như ở bảng 1
Bảng 1: Các phiên sinh mã dựa trên thuật toán số học
Phiên 1

Phiên 2

Phiên 3

Phiên 4


OTP1 = fN(s)

OTP2 = fN-1(s)

OTP3 = fN-2(s)

OTP4= fN-3(s)

Nếu một kẻ tấn công nào đó có thể bắt được giá trị OTP của một phiên làm
việc nào đó thì hắn có thể dùng để đăng nhập vào hệ thống khi mà giá trị OTP này
còn hợp lệ, tuy nhiên khi OTP không còn hợp lệ nữa thì hắn không thể thực hiện việc


7

đăng nhập nữa và để lấy được giá trị OTP cho lần đăng nhập kế tiếp thì hắn sẽ phải
đối mặt với việc tính hàm f ngược. Do hàm f đã được chọn là hàm một chiều nên
việc này là cực kì khó để thực hiện. Nếu hàm f là một hàm băm mật mã thì việc tính
toán là cực kì khó khăn thậm chí là không thể.

1.4.2 Phương pháp dựa trên việc đồng bộ thời gian
Theo cơ chế này, người dùng sẽ được cấp một thiết bị sinh mã được gọi là
token. Bên trong token gồm có ba thành phần là: một mã seedcode, một đồng hồ đếm
thời gian, và một thuật toán mã hóa một chiều.
 Mã seedcode: là mã được nhà sản xuất cài đặt sẵn trong token. Mỗi token có
một mã seedcode khác nhau. Và mã seedcode này cũng được lưu lại trong hệ
thống của nhà cung cấp dịch vụ tương ứng với tên truy nhập của người dùng.
 Đồng hồ đếm thời gian: là đồng hồ của token, nó được đồng bộ với đồng hồ
của hệ thống trước khi giao cho người dùng. Mỗi khi người dùng bấm nút sinh
mã, token sẽ lấy biến thời gian của đồng hồ. Biến thời gian được lấy chi tiết

đến từng phút, hoặc 30 giây.
 Thuật toán mã hóa: sử dụng thuật toán băm SHA.

1.4.3 Phương pháp dựa trên sự kiện
Trong cơ chế này người dùng cũng được cấp một token như ở trên, nhưng
bên trong token sẽ có một bộ đếm sự kiện thay vì đồng hồ đếm thời gian. Sự kiện
được nhắc đến ở đây là sự kiện mà người dùng bấm nút sinh mã trên Token. Mỗi
token sẽ chứa một số mã hữu hạn, có thứ tự và không thay đổi. Số lượng các mã hữu
hạn đó được gọi là cửa sổ. Kích thước của cửa sổ này càng lớn thì độ bảo mật của
giải pháp càng cao. Để hiểu rõ hơn cơ chế ta sẽ xét một ví dụ. Trong ví dụ này, token
lấy kích thước cửa sổ là 10, tức là token chứa 10 mã cố định có thứ tự, như hình 4.
Ngoài ra còn một phương pháp khác là dùng một giao thức xác thực sửdụng
mật mã đối xứng. Phương pháp này có thể áp dụng theo tiêu chuẩn ISO/IEC 9798- 2:
Xác thực lẫn nhau dùng mật mã đối xứng. Mã khối đối xứng có thể dùng AES.
1.5 Ưu điểm của công nghệ OTP
 An toàn: Giải quyết tốt các vấn đề giả mạo, đánh cắp, Key logger. Đối với hai yếu tố
xác thực, thiết bị này có thể được kết hợp với một mã PIN hoặc mật khẩu.


8

 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 tất cả các nền tảng máy tính, và trình duyệt không
cần phần mềm cài đặt Client. Nhanh chóng và tích hợp dễ dàng vào bất kỳ ứng dụng
web nào (Windows, Linux, Mac, Internet Explorer, Firefox,...).
 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
bên mình.
 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ử...

Chương 2 NGHIÊN CỨU PHƯƠNG THỨC XÁC THỰC VOICE OTP
VÀ CÔNG NGHỆ NỀN TẢNG XÂY DỰNG HỆ THỐNG
2.1 Trình bày về giải pháp Voice OTP
Giải pháp Voice OTP ra đời góp phần mở rộng khả năng xác thực OTP, hỗ trợ gửi
mã OTP không chỉ qua mạng điện thoại di động mà còn qua mạng điện thoại cố định. Về cơ
bản, hệ thống này được xây dựng trên công nghệ VoIP, cho phép thực hiện cuộc gọi trên
nền Internet, từ đó giúp tiết kiệm chi phí, đáp ứng được số lượng lớn các giao dịch trên thực
tế.
Mặc dù, Voice OTP đã được khá nhiều nhà cung cấp dịch vụ trên thế giới sử dụng
cho hệ thống của mình, các tên tuổi nổi bật có thể kể đến là Google, Facebook, Microsoft,...
Nhưng tại Việt Nam, giải pháp này còn khá mới mẻ, chưa thực sự phổ biến, các ngân hàng,
các tổ chức tín dụng là những đơn vị thường xuyên sử dụng giải pháp xác thực OTP như:
Ngân hàng Á Châu, Vietcom Bank, DongA Bank, Techcombank… hiện đang gửi mã OTP
đến khách hàng của mình chủ yếu thông qua kênh SMS. Tuy nhiên, giải pháp này cũng có
những hạn chế của nó khi gần đây, liên tiếp các vụ lùm xùm xoay quanh vấn đề bảo mật
được truyền thông đưa tin, nhiều khách hàng bị rút tiền trong tài khoản mà không hề hay
biết cho đến khi kiểm tra số dư trong thẻ. Hacker có thể lấy được mã OTP của khách hàng
sử dụng SMS OTP chỉ với vài thủ thuật: đầu tiên, kẻ gian sẽ cài mã độc dưới một ứng dụng
hấp dẫn cho người dùng tải về, yêu cầu quyền được đọc/xóa tin nhắn. Tiếp đó, ứng dụng sẽ


9

đánh cắp dữ liệu của người dùng. Sau khi có được tài khoản đăng nhập, hacker sẽ thực hiện
chuyển tiền qua Internet Banking. Tất nhiên lúc này một SMS OTP sẽ được gửi về
smartphone của người dùng. Một lần nữa, ứng dụng kia sẽ đọc OTP và gửi lại cho hacker,

đồng thời xóa SMS OTP kia. Đây cũng là một lợi thế của Voice khi mà hacker không thể
đọc OTP từ cuộc gọi khi chúng không phải người nghe máy.

Hình 1: Mô hình tổng quan hệ thống Voice OTP
Nhìn chung, Voice OTP ra đời đã khắc phục được một số nhược điểm của các phương
thức gửi mã OTP cũ, nhưng vẫn mang đầy đủ ưu điểm nổi trội của giải pháp này.

2.2 Trình bày về giao thức SIP trong VoIP
2.2.1 Giới thiệu về SIP
SIP (Session Initiation Protcol ) là giao thức báo hiệu điều khiển lớp ứng dụng
được dùng để thiết lập, duy trì, kết thúc các phiên truyền thông đa phương tiện
(multimedia). Các phiên multimedia bao gồm thoại Internet, hội nghị, và các ứng
dụng tương tự có liên quan đến các phương tiện truyền đạt (media) như âm thanh,
hình ảnh, và dữ liệu.
SIP sử dụng các bản tin mời (INVITE) để thiết lập các phiên và để mang các
thông tin mô tả phiên truyền dẫn. SIP hỗ trợ các phiên đơn bá (unicast) và quảng bá
(multicast) tương ứng các cuộc gọi điểm tới điểm và cuộc gọi đa điểm.
SIP được sử dụng kết hợp với các chuẩn giao thức IETF khác như là SAP,
SDP và MGCP (MEGACO) để cung cấp một lĩnh vực rộng hơn cho các dịch vụ
VoIP. Nó bao gồm các yêu cầu được gởi đến từ người sử dụng SIP client đến SIP


10

server. Server xử lý các yêu cầu và đáp ứng đến client. Một thông điệp yêu cầu, cùng
với các thông điệp đáp ứng tạo nên sự thực thi SIP.

2.2.2 Các thành phần trong mạng SIP
SIP gồm hai thành phần lớn là SIP client (là thiết bị hỗ trợ giao thức SIP như
SIP phone), và SIP server (là thiết bị trong mạng xử lý các bản tin SIP). Trong SIP

server có các thành phần quan trọng như: User Agents,Proxy server, Redirect server,
Location server, Registrar server...

2.2.3 Các bản tin SIP, mào đầu và đánh số
 INVITE : bắt đầu thiết lập cuộc gọi bằng cách gửi bản tin mời đầu cuối khác
tham gia
 ACK : bản tin này khẳng định máy trạm đã nhận được bản tin trả lời bản tin
INVITE
 BYE : bắt đầu kết thúc cuộc gọi
 CANCEL : hủy yêu cầu nằm trong hàng đợi
 REGISTER : đầu cuối SIP sử dụng bản tin này để đăng ký với máy chủ đăng ký
 OPTION : sử dụng để xác định năng lực của máy chủ
 INFO : sử dụng để tải các thông tin như âm báo DTMF
 REQUEST: cho phép user agent và proxy có thể xác định người dùng, khởi tạo,
sữa đổi, hủy một phiên.
 RETURN: được gửi bởi user agent server hoặc SIP server để trả lời cho một bản
tin request trước đó.

2.2.4 Phương thức hoạt động
Hoạt động của Redirect Server được trình bày như sau:
Các bước như sau:
- Bước 1: Redirect server nhân được yêu cầu INVITE từ người gọi (Yêu cầu này có
thể đi từ một proxy server khác).
- Bước 2: Redirect server truy vấn server định vị địa chỉ của B.
- Bước 3: Server định vị trả lại địa chỉ của B cho Redirect server.
- Bước 4: Redirect server trả lại địa chỉ của B đến người gọi A. Nó không phát yêu
cầu INVITE như proxy server.


11


- Bước 5: User Agent bên A gửi lại bản tin ACK đến Redirect server để xác nhận
sự trao đổi thành công.
- Bước 6: Người gọi A gửi yêu cầu INVITE trực tiếp đến địa chỉ được
trả lại bởi Redirect server (đến B). Người bị gọi B đáp ứng với chỉ thị thành công
(200 OK), và người gọi đáp trả bản tin ACK xác nhận. Cuộc gọi được thiết lập.

2.2.5 Tính năng của SIP
 Định vị trí của người dùng.
 Định media cho phiên làm việc.
 Định sự sẵn sàng của người dùng để tham gia vào một phiên làm việc.
 Thiết lập cuộc gọi, chuyển cuộc gọi và kết thúc.

2.2.6 Các giao thức của SIP
- UDP (User Datagram Protocol): là giao thức tầng vận chuyển không có điều khiển
tắc nghẽn. Nó được dùng để vận chuyển bản tin SIP vì đơn giản và thích hợp với các
ứng dụng thời gian thực.
- TCP (Transmission Control Protocol): là giao thức ở tầng vận chuyển do có điều
khiển tắc nghẽn, hơn nữa có thể vận chuyển nhiều gói tin có kích thước bất kỳ.
- SDP (Session Description Protocol): được sử dụng để mô tả các thông số media cho
một cuộc gọi, các thông số này là các thông tin về băng thông, các chuẩn hóa audio,
video và một số thông tin khác.

Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Đặt vấn đề
Yêu cầu xây dựng giải pháp mở rộng khả năng xác thực OTP hiện nay (chủ yếu dùng
SMS) lên hỗ trợ Voice mà nhằm mục đích thông báo mã OTP qua mạng điện thoại cố định.
Hệ thống đảm bảo:
 Tương thích với báo hiệu SIP Trunk của hệ thống IMS của các nhà mạng.
 Thực hiện 50 cuộc gọi ra đồng thời.

 Có khả năng play các số từ 0..9 và các ký tự từ a..z.
 Có khả năng dự phòng.


12

3.2 Mô hình kiến trúc hệ thống

Hình 2: Mô hình kiến trúc
 Nguyên tắc hoạt động:
 Các doanh nghiệp đăng kí sử dụng dịch vụ sẽ được cung cấp tài khoản riêng, khi
người dùng cuối thực hiện chức năng đăng nhập hay giao dịch, hệ thống của doanh
nghiệp sẽ gửi thông tin về tài khoản được cấp, cũng như số điện thoại và đoạn mã
code đến hệ thống OTP.
 Khi nhận được yêu cầu, hệ thống OTP sẽ kiểm tra thông tin doanh nghiệp có hợp
lệ không từ cơ sở dữ liệu. Nếu hợp lệ, hệ thống sẽ thực hiện gửi mã và số điện
thoại đến một trong 2 OVPS để play Voice trên cơ chế phân tải. Nếu một trong 2
OVPS không hoạt động thì các yêu cầu sẽ gửi đến OVPS còn lại.
 Khi OVPS thực hiện cuộc gọi ra đến thuê bao và tùy theo kết quả sẽ trả về kết
quả.
 Nếu cuộc gọi thành công, khách hàng của doanh nghiệp sẽ nhập lại chuỗi mã vừa
được nghe để xác thực giao dịch trên hệ thống của doanh nghiệp.

3.3 Mô tả chức năng
Hệ thống OTP đóng vai trò chủ đạo, tiếp nhận và xử lý toàn bộ các yêu cầu trong toàn
hệ thống, phục vụ ba tác nhân chính: cán bộ kỹ thuật, quản trị hệ thống, và doanh nghiệp.
Hệ thống OTP có phần giao diện để thuận tiện cho việc theo dõi, thao tác, đảm bảo các chức
năng:
 Báo cáo định kỳ
 Báo cáo lưu lượng sử dụng hệ thống (số lượng tài khoản, doanh nghiệp sử dụng)



13

 Báo cáo tỉ lệ cuộc gọi thành công
 Báo cáo đột xuất
 Gửi mail cho kỹ thuật khi có sự cố hệ thống
 Gửi tin nhắn cho kỹ thuật khi có sự cố hệ thống
 Quản lý blacklist
 Thêm số vào blacklist
 Sửa số trong blacklist
 Xóa số trong blacklist
 Quản lý cấu hình OVPS
 Khai báo kết nối
 Thay đổi kết nối
 Hủy bỏ kết nối nối
 Quản trị tài khoản
 Khai báo tài khoản
 Thay đổi/ Xóa tài khoản
 Đăng nhập/ đăng xuất
 Quản lý cuộc gọi
 Xem thông tin cuộc gọi đang thực hiện
 Thống kê cuộc gọi đang thực hiện
 Thử cuộc gọi
 Quản trị thông báo OTP
 Điều chỉnh tốc độ play cho phù hợp
 Giới hạn số lần query/s
 Giới hạn số lần thực hiện cuộc gọi tới một số/1 đơn vị thời gian
 Giới hạn số lần thực hiện cuộc gọi từ một user kết nối/1 đơn vị thời gian
 Quản lý log

 Xem, lọc lịch sử cuộc gọi
 Xem, lọc lịch sử hoạt động của hệ thống
 Push báo cáo: khi cuộc gọi thực hiện xong, các báo cáo về cuộc gọi sẽ được tự động
đẩy về server của người sử dụng
 Khởi tạo cuộc gọi: yêu cầu play thông báo OTP
 Dừng cuộc gọi: Yêu cầu dừng thông báo OTP


14

 Kiểm tra trạng thái hiện tại của cuộc gọi

3.4 Các thành phần dữ liệu chính của hệ thống OTP

Hình 3: Cấu trúc cơ sở dữ liệu

3.5 Sơ đồ usecase các chức năng
3.6 API giao tiếp giữa hệ thống OTP và OVPS

Hình 4: Mô hình kiến trúc

3.6.1 URL
Hệ thống OTP gọi các dịch vụ trên OVPS thông qua URL:
http://IPAddress:8686/sipOTP/ws


15

3.6.2 Các bản tin trao đổi
3.6.2.1 Tạo cuộc gọi (makeCall)

Bản tin được thực hiện để yêu cầu SIPGW thực hiện cuộc gọi đến 1 thuê bao và play
file audio với mã code mong muốn.
Định dạng bản tin request:
<?xml version=”1.0”?>
<makeCall>
<user>test</user>
test@123</pwd>
<subscriber>84xxxx</subscriber>
<code>5ab8z</code>
</makeCall>
Định dạng bản tin response:
<?xml version=”1.0” encoding=”UTF-8”?>
<makeCallResponse>
<id>100230. 92546369</id>
<returncode>0</returncode>
<desc>Successfully received request</desc>
</makeCallResponse>

3.6.2.2 Tra cứu trạng thái cuộc gọi (callStatus)
Bản tin tra cứu thông tin hiện tại cuộc gọi.
Định dạng bản tin request:
<?xml version="1.0"?>
<callStatus>
<id>HHMMSS.MSISDN</id>
<user>test</user>
test@123</pwd>
</callStatus>
Định dạng bản tin response:
<?xml version="1.0" encoding="UTF-8"?>
<callStatusResponse>

<id>100230. 92546369</id>


16

<subscriber>84xxxx</subscriber>
<code>5ab8z</code>
<status>ANSWERING</status>
</callStatusResponse>

3.6.2.3 Ngắt cuộc gọi (dropCall)
Bản tin yêu cầu SIPGW thực hiện ngắt cuộc gọi đang diễn ra.
Định dạng bản tin request:
<?xml version="1.0"?>
<dropCall>
<id>HHMMSS.MSISDN</id>
<user>test</user>
test@123</pwd>
</dropCall>
Định dạng bản tin response:
<?xml version="1.0" encoding="UTF-8"?>
<dropCallResponse>
<id>100230. 92546369</id>
<returncode>0</returncode>
<desc>The call has been stopped successfully</desc>
</dropCallResponse>

3.6.2.4 Thông báo kết quả cuộc gọi (callNotification)
Bản tin thông báo kết quả cuộc gọi được SIPGW chủ động gửi sang Webservice của
hệ thống mở rộng nhằm thông về kết quả cuộc gọi ra và hệ thống mở rộng đã tạo ra

trước đó.
Để nhận được bản tin thông báo kết quả cuộc gọi, hệ thống mở rộng phải cung cấp
thông tin:
URL: http://IPorDomain/callNotification
User/Pwd: Hệ thống mở rộng cấp
Định dạng bản tin thông báo:
<?xml version="1.0"?>
<callNotification>
<id>100230. 92546369</id>


17

<user>test</user>
test@123</pwd>
<subscriber>84xxxx</subscriber>
<code>5ab8z</code>
<startTime>YYYY-MM-DD HH:MM:SS</startTime>
<finTime>YYYY-MM-DD HH:MM:SS</finTime>
<state>TERMINATED</state>
</callNotification>
Định dạng bản tin response:
<?xml version=”1.0” encoding=”UTF-8”?>
<callNotificationResponse>
<returncode>0</returncode>
<desc>Successfully received</desc>
</callNotificationResponse>

3.6.2.5 Cấu hình hệ thống
Bản tin yêu cầu SIPGW thực hiện thay đổi tham số cấu hình hệ thống.

Định dạng bản tin request:
<?xml version="1.0"?>
<confCall>
param_value</param>
<user>test</user>
test@123</pwd>
</confCall>
Ví dụ:
<?xml version="1.0"?>
<confCall>
2</param>
<user>test</user>
test@123</pwd>
</confCall>
Định dạng bản tin response:
<?xml version="1.0" encoding="UTF-8"?>


18

<confCallResponse>
<returncode>0</returncode>
<desc>Received successfully</desc>
</confCallResponse>

3.7 Cấu trúc phần mềm

Hình 5: Cấu trúc phần mềm hệ thống
Các công nghệ áp dụng:
-


Tool Development: MyEclipse Professional2014, UML
Applications: Angular JS, HTML 5, JSON, Java, C
Server: Apache Tomcat
DBMS: Oracle Db11g
Operating Systems: MS Windows Server 2012, CentOS7

Chương 4 THỬ NGHIỆM TRIỂN KHAI HỆ THỐNG
4.1 Mục đích thử nghiệm
Việc thử nghiệm hệ thống nhằm kiểm tra các tính năng hệ thống và hoạt động xác thực
xem có phù hợp với yêu cầu thiết kế ban đầu hay không.


19

4.2 Mô hình triển khai thử nghiệm

Hình 6: Mô hình kiến trúc triển khai
Trong khuôn khổ của luận văn, học viên sẽ xây dựng một hệ thống lab mô phỏng lại hệ
thống Voice OTP trong thực tế. Các thành phần của hệ thống bao gồm:
 1 máy tính chạyHĐH Windows server 2012 được cài chương trình đóng vai trò hệ
thống OTP server vàcơ sở dữ liệu của hệ thống cũng được đặt trên máy tính này.
 1 máy tính chạy trên CentOS 7 được cài chương trình đóng vai trò như OVPS
 1 máy tính cài phần mềm eyeBeam đóng vai trò như điện thoại của khách hàng

4.3 Kịch bản thử nghiệm
4.3.1 Thử nghiệm các chức năng quản lý
4.3.1.1 Chức năng đăng nhập
Các bước thực hiện


Kết quả mong muốn

Kết quả thực tế

- Bước 1: Vào trang url cho nhân viên quản - Hiển thị màn hình - Đạt
trị http://IPAddress:8080/ovps, sẽ thấy màn đăng nhập
hình đăng nhập, nhập thông tin Tài khoản
email đăng nhập và mật khẩu
- Bước 2: Sau khi nhập đúng thông tin để - Hiển thị màn hình - Đạt
đăng nhập, hệ thống sẽ chuyển sang màn trang chủ
hình trang chủ

4.3.1.2 Chức năng xem báo cáo định kì
Các bước thực hiện

Kết quả mong muốn

Kết quả thực tế

- Bước 1: Sau khi nhập thành công, hệ - Trên màn hình trang - Đạt


20

thống sẽ chuyển sang màn hình trang chủ chủ, hiển thị các giao
với các thông tin về lưu lượng sử dụng của diện

cho

thấy


các

hệ thống, tổng số cuộc gọi trong ngày, số thông số sử dụng hệ
cuộc gọi thành công,...

thống mặc định

4.3.1.3 Chức năng quản lý blacklist
Các bước thực hiện

Kết quả mong muốn

Kết quả thực tế

- Bước 1: Trên màn hình trang chủ, tab - Hiển thị bảng các số - Đạt
Black list mặc định sẽ hiển thị các số điện điện
thoại có trong danh sách đen.

thoại

trong

Blacklist

- Bước 2: (Test thêm số) Trên thanh tab - Hiển thị giao diện cho - Đạt
Black list, chọn nút Thêm số, sau đó điền phép thêm số

điện


đầy đủ thông tin số điện thoại muốn thêm thoại, sau khi thêm
vào danh sách đen, click Tiếp tục để xác thành công có thông
nhận

báo trên màn hình

- Bước 3:(Test xóa số) Trên danh sách các - Hiển thị dialog xác - Đạt
số điện thoại trong blacklist, chọn nút Xóa nhận xóa và thông báo
ở số điện thoại muốn loại ra khỏi blacklist. khi xóa thành công
Sau đó ấn nút Xóa để xác nhận
- Bước 4: (Test sửa thông tin) Trên danh - Hiển thị giao diện cho - Đạt
sách các số điện thoại trong blacklist, chọn phép nhập thông tin
nút Sửa thông tin ở số điện thoại muốn sửa, muốn sửa, thông báo
sau đó điền thông tin muốn sửa và ấn Cập khi sửa thành công
nhật

4.3.1.4 Chức năng quản lý kết nối
Các bước thực hiện

Kết quả mong muốn

Kết quả thực tế

- Bước 1: Trên màn hình trang chủ, tab - Hiển thị bảng các - Đạt
Quản lý kết nối mặc định sẽ hiển thị các thông số kết nối(IP,
thông số kết nối với module OVPS

port,...)

- Bước 2: (Test thay đổi kết nối) Trên thanh - Hiển thị các nút cho - Đạt

tab Quản lý kết, chọn nút Thiết lập, sau đó phép sửa thông số kết
chọn thông số muốn Thay đổi, và tiến hành nối, và cập nhật trên


21

sửa thông tin, sau đó ấn Cập nhật để thay màn hình khi sửa thành
đổi thông số

công

4.3.1.5 Chức năng quản lý tài khoản hệ thống
Các bước thực hiện

Kết quả mong muốn

Kết quả thực tế

- Bước 1: Trên màn hình trang chủ, chọn - Hiển thị danh sách - Đạt
mục Tài khoản hệ thống

các nhân viên trong hệ
thống(tên, vị trí, email,
điện thoại)

- Bước 2: (Test thêm nhân viên) Trên bảng - Hiển thị giao diện - Đạt
Danh sách nhân viên, chọn nút Thêm nhân nhập

thông


tin

tài

viên mới, điền đầy đủ thông tin tài khoản khoản muốn thêm và
muốn thêm

thông báo khi thêm
thành công

- Bước 3: (Test Sửa quyền nhân viên) Trên - Hiển thị dialog cho - Đạt
bảng Danh sách nhân viên, chọn nhân viên phép chọn các vị trí, và
muốn sửa quyền, sau đó chọn lựa chọn vị cập nhật cấp bậc vị trí
trí, và click Cập nhật

của

nhân

viên

khi

thành công
- Bước 4: (Test Xóa nhân viên) Trên bảng - Hiển thị dialog xác - Đạt
Danh sách nhân viên, chọn Xóa với nhân nhận xóa nhân viên, và
viên muốn xóa, và chọn xác nhận

cập nhật danh sách khi
xóa thành công


4.3.1.6 Chức năng quản lý tài khoản doanh nghiệp
Các bước thực hiện

Kết quả mong muốn

Kết quả thực tế

- Bước 1: Trên màn hình trang chủ, chọn - Hiển thị thông tin các - Đạt
mục Quản lý doanh nghiệp

doanh nghiệp, và các
tài khoản để sử dụng
API

cuộc

gọi

của

doanh nghiệp
- Bước 2: (Test thêm doanh nghiệp) Trên - Hiển thị giao diện - Đạt
bảng Danh sách các doanh nghiệp, chọn nút khai báo doanh nghiệp


22

Khai báo doanh nghiệp mới, điền đầy đủ mớivà thông báo khi
thông tin của doanh nghiệp mới và click nút thêm thành công

Tiếp tục
- Bước 3: (Test Thêm user sử dụng API cho - Hiển thị form cho - Đạt
doanh nghiệp) Trên bảng Danh sách user, phép

nhập

đầy

đủ

chọn Tạo user mới, điền đầy đủ thông tin, thông tin và thông báo
và ấn Tạo mới

khi thêm thành công

4.3.1.7 Chức năng quản lý cuộc gọi
Các bước thực hiện

Kết quả mong muốn

Kết quả thực tế

- Bước 1: Trên màn hình trang chủ sau khi - Hiển thị danh sách - Đạt
đăng nhập, sẽ mặc định hiển thị tab quản lý các cuộc gọi đang thực
cuộc gọi

hiện trên tab quản lý
cuộc gọivới các thông
tin trạng thái cuộc gọi,
tài khoản gọi cũng như

số điện thoại bị gọi,…

- Bước 2: (Test Dừng cuộc gọi)Trên giao - Hiển thị dialog xác - Đạt
diện của tab Quản lý cuộc gọi, click Dừng nhận dừng và ngắt kết
gọi đối với cuộc điện thoại muốn dừng

nối khi xác nhận

4.3.1.8 Chức năng quản lý log
Các bước thực hiện

Kết quả mong muốn

Kết quả thực tế

- Bước 1: Trên màn hình trang chủ, chọn - Hiển thị thông tin - Đạt
mục Quản lý log

toàn bộ log hệ thống và
log cuộc gọi đã thực
hiện trong ngày

- Bước 2: (Test lọc, tìm kiếm log) Trên - Hiển thị kết quả lọc - Đạt
bảng quản lý log cuộc gọi, hoặc log hệ chứa cụm từ khóa
thống, nhập từ khóa vào các trường thông
tin muốn tìm

4.3.2 Thử nghiệm các tính năng xác thực dành cho doanh nghiệp



Url gọi API: http://10.99.3.161:8686/sipOTP/ws


23

4.3.2.1 Tính năng tạo cuộc gọi từ OTP server
Các bước thực hiện

Kết quả mong muốn

Kết quả thực tế

- Bước 1: Để test tính năng này, chúng ta sẽ - Phần mềm mô phỏng - Đạt
sử dụng công cụ postman, để gửi bản tin điện

thoại

eyeBeam

<makeCall> đến hệ thống, theo cấu trúc nhận được cuộc gọi
bản tin đã định nghĩa trong chương 3, với
số điện thoại 102, và mã code 12345
- Bước 2: Trên giao diện eyeBeam, nhấn - Mã code được đọc - Đạt
nút nghe để kiểm tra mã code được voice trùng với mã code gửi
đi

play

4.3.2.2 Tính năng dừng cuộc gọi từ OTP server
Các bước thực hiện


Kết quả mong muốn

Kết quả thực tế

- Bước 1: Để test tính năng này, chúng ta - Cuộc gọi đang thực - Đạt
làm tương tự như trên, sẽ gửi bản tin hiện trên hệ thống sẽ bị
<dropCall>đến hệ thống, theo cấu trúc bản ngắt
tin gồm user, mật khẩu gọi cũng như ID của
cuộc gọi đang thực hiện

4.3.2.3 Tính năng tra cứu thông tin cuộc gọi
Các bước thực hiện

Kết quả mong muốn

Kết quả thực tế

- Bước 1: Để test tính năng này, chúng ta - Hệ thống sẽ trả về - Đạt
sẽ gửi bản tin <callStatus>đến hệ thống, thông tin trạng thái của
theo cấu trúc bản tin gồm user, mật khẩu cuộc gọi như (ringging,
gọi cũng như ID của cuộc gọi đang thực terminate, answering…)
hiện

KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO
Những kết quả đạt được của luận văn
- Trình bày đầy đủ cơ sở lýthuyết của giải pháp xác thực OTP như định nghĩa, vai trò,
điểm nổi trội của giải pháp, chỉ ra ưu nhược điểm của các phương thức gửi/nhận mã
đang được sử dụng, các phương pháp kỹ thuật sinh mã được dùng trong giải pháp.



×