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

Báo cáo thực tập nghiên cứu giải pháp truyền tải dữ liệu an toàn trong không gian mạng

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 (995.86 KB, 32 trang )

1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

NGHIÊN CỨU GIẢI PHÁP TRUYỀN TẢI DỮ LIỆU
AN TỒN TRONG KHƠNG GIAN MẠNG

Cơng ty thực tập

: TNHH HÀNH TINH

Người phụ trách

: LÊ DUY

Thực tập sinh

: NGUYỄN DƯƠNG HỒNG DUY

TP. Hồ Chí Minh, tháng 07 năm 2020

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


2

LỜI MỞ ĐẦU



Hiện nay, với sự phát triển vượt trội của công nghệ, công nghệ đã bao phủ mọi mặt của
đời sống, trở thành một thành phần thiết yếu và không thể thiếu đối với cuộc sống của con
người. Cùng với sự bùng nổ về số lượng của các thiết bị máy tính, đặc biệt là thơng tin và
truyền thơng đã góp một phần khơng nhỏ và tạo ra thời đại cơng nghệ 4.0. Qua đó địi hỏi của
con người về công nghệ ngày càng cao và yêu cầu sự sáng tạo, tiện dụng, sự mới lạ và phát triển
cái mới luôn được đẩy cao.
Đi kèm với sự bùng nổ thơng tin thì nhu cầu của việc giao tiếp thơng tin giữa con người
cũng ngày càng nhiều hơn. Do đó việc đảm bảo an tồn thơng tin trước các mối đe dọa đóng vai
trị ngày càng quan trọng và cấp thiết, đặc biệt là các thông tin mang giá trị và tính riêng tư cao.
Trong đó vấn đề bảo mật đường truyền đóng vai trị khơng thể thiếu trong hiện tại và tương lai.
Chính vì tiềm năng của lĩnh vực này em quyết định chọn chủ đề “Nghiên cứu giải pháp truyền
tải dữ liệu an tồn trong khơng gian mạng” để tìm hiểu và phát triển cho đợt thực tập lần này.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như
muốn được tham gia làm các ứng dụng trong một môi trường chuyên nghiệp, nên em đã quyết
định chọn tham gia thực tập trong một công ty làm về phần mềm để học hỏi và khai phá tri thức
và các kĩ năng cần thiết để trở thành một nhà phát triển phần mềm chun nghiệp. Vì vậy, em
quyết định chọn Cơng ty TNHH Hành Tinh - một môi trường lý tưởng, hiện đại, chuyên nghiệp
- là nơi sẽ giúp em thực hiện được dự định này.

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


3

LỜI CẢM ƠN

Đầu tiên, em xin gửi lời cảm ơn sâu sắc đến Trường Đại học Công nghệ Thông tin, Đại
học Quốc gia TP. Hồ Chí Minh đã tạo điều kiện cho em cơ hội tiếp cận, học hỏi và có những

kiến thức nền tảng về bộ mơn này.
Em cũng xin cảm ơn Công ty TNHH Hành Tinh đã cho em cơ hội được thực tập, trải
nghiệm thực tế, thông qua đó em có thể gặt hái được những kinh nghiệm, bài học quý giá và
trau dồi thêm những kỹ năng và hành trang cần thiết cho công việc sau này.
Đặc biệt cảm ơn anh Lê Duy, đã hướng dẫn, giúp đỡ cho em tận tình cả những khó khăn
trong cơng việc, đến những khó khăn việc làm quen với mơi trường mới; để có thể làm ra một
sản phẩm trong thời gian qua.
Cũng xin cảm ơn thầy cô trong khoa Cơng nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều
kiện em làm bài báo cáo này.
Vì kiến thức bản thân còn hạn chế cũng như là lần đầu tiên được va chạm và tiếp xúc với
việc áp dụng lý thuyết vào công việc thực tiễn nên bản thân cịn bỡ ngỡ, lúng túng và khơng
tránh khỏi những thiếu sót, mong q thầy (cơ) có thể đóng góp ý kiến để em có thể hồn thiện
hơn.
TP Hồ Chí Minh, ngày 28 tháng 07 năm 2020
Nguyễn Dương Hoàng Duy

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


4

NHẬN XÉT CỦA KHOA

.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


5

MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP...............................................................................................................7
1.1.

Giới thiệu công ty TNHH Hành Tinh............................................................................................................7

1.2.

Sản phẩm của công ty.................................................................................................................................7

CHƯƠNG 2: NỘI DUNG THỰC TẬP...............................................................................................................................8

2.1.

Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty...............................................................................8

2.2.

Nghiên cứu kỹ thuật....................................................................................................................................8

2.2.1.

Các công cụ làm việc.............................................................................................................................8

2.2.2.

Tìm hiểu kiến thức cơ bản của mạng máy tính...................................................................................8

a.

TCP.......................................................................................................................................9

b.

UDP.....................................................................................................................................10

c.

ICMP...................................................................................................................................10

2.2.3.


Tìm hiểu cơ chế phân giải tên miền của DNS....................................................................................11

a.

Cấu trúc tên miền................................................................................................................11

b.

DNS.....................................................................................................................................12

c.

Cơ chế phân giải tên miền của DNS...................................................................................13

2.2.4.

Nghiên cứu giải pháp bảo mật đường truyền dữ liệu trên internet.................................................15

a.

Mã hóa khóa đối xứng........................................................................................................15
i. Mã hóa khối - Mã hóa AES.................................................................................................15
ii.

Mã hóa dịng - Mã hóa RC4............................................................................................15

b.

Mã hóa khóa bất đối xứng – Mã hóa RSA..........................................................................16


c.

Hàm băm.............................................................................................................................17
i. MD5....................................................................................................................................17
ii.

SHA.................................................................................................................................17

d.

TLS......................................................................................................................................18

2.2.5.

Tìm hiểu giao thức HTTP/HTTPS........................................................................................................22

a.

HTTP...................................................................................................................................22

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


6
b.

HTTPS................................................................................................................................23

2.2.6.


Tìm hiểu Web service và các phương thức serialization...................................................................25

a.

Web service.........................................................................................................................25

b.

Serialization........................................................................................................................26
i. SOAP..................................................................................................................................26
ii.

RESTful...........................................................................................................................27

2.3.

Thực hiện project......................................................................................................................................28

2.4.

Lịch làm việc..............................................................................................................................................28

CHƯƠNG 3: CHI TIẾT VỀ PROJECT..............................................................................................................................30
3.1.

Giới thiệu ứng dụng..................................................................................................................................30

3.2.


Kết quả.......................................................................................................................................................30

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


7

CHƯƠNG 1: GIỚI THIỆU CƠNG TY THỰC TẬP
1.

Giới thiệu cơng ty TNHH Hành Tinh

Công ty TNHH Hành Tinh được thành lập từ năm 2008, hiện nay đã có hơn 200 nhân
viên, hoạt động chủ yếu trong lĩnh vực công nghệ thông tin.
Thông tin công ty:
- Tên công ty: Công ty TNHH Hành Tinh
- Số nhân viên: 200+ người
- Văn phòng: Centre Point Tower Building, Số 106 Nguyễn Văn Trỗi, Phường 8, Q.Phú
Nhuận, TP. Hồ Chí Minh
- Trụ sở làm việc: Nguyễn Văn Trỗi, Q. Phú Nhuận, TP. Hồ Chí Minh
- Điện thoại: (028) 38 475 576
2.

Sản phẩm của công ty

Công ty TNHH Hành Tinh chủ yếu phát triển các giải pháp, sản phẩm trong lĩnh vực
công nghệ thông tin và phục vụ cho mục tiêu lâu dài của công ty.

Phụ trách: Anh Lê Duy - Team Leader

Thực tập sinh: Nguyễn Dương Hoàng Duy


8

CHƯƠNG 2: NỘI DUNG THỰC TẬP
Đợt thực tập với chủ đề “NGHIÊN CỨU GIẢI PHÁP TRUYỀN TẢI DỮ LIỆU AN
TOÀN TRONG KHƠNG GIAN MẠNG” nhằm mục đích giúp sinh viên thực tập được đào tạo
toàn diện về kiến thức mạng máy tính và các giải pháp bảo mật, đồng thời rèn luyện những kỹ
năng mềm như làm việc nhóm, thuyết trình, giao tiếp. Tại cơng ty, sinh viên có cơ hội được học
tập, khám phá và làm việc trong một mơi trường phát triển phần mềm chun nghiệp.
3.

Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty

Thời gian: 1 ngày
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập và phát triển (như
đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty.
Nhận trang thiết bị phục vụ công việc, bao gồm: máy tính để bàn, máy ảo để chạy thử.
Ngồi ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thời
gian đi làm, các quy định cần phải tuân thủ, cách sử dụng các tài khoản trong công việc...
Kết quả: Hiểu thêm về công ty Hành Tinh, quá trình thành lập và phát triển của cơng ty.
Có thêm các kỹ năng về việc sử dụng các tài khoản trong cơng việc, làm việc có kế hoạch, có kỷ
luật, có trách nhiệm hơn.
4.

Nghiên cứu kỹ thuật

4.1.


Các cơng cụ làm việc

Thời gian: 1 ngày
Nội dung: Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc (bao gồm:
Visual Studio, Gitlab, Tortoise git, Jira, Total Commander...)
Trong thời gian này, các anh đã hướng dẫn thực tập sinh tìm hiểu về các cơng cụ sẽ giúp
ích cho trong cơng việc sau này. Một số phần mềm trong số đó như Visual Studio - IDE để phát
triển các phần mềm máy tính, Gitlab - hệ thống quản lý mã nguồn phía server, Tortoise git - sử
dụng quản lý mã nguồn với giao diện desktop, Jira – hệ thống hỗ trợ quản lý dự án, Total
Commander - trình duyệt file trực quan với nhiều tiện ích.
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả: Lập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các cơng cụ với
nhau.
4.2.

Tìm hiểu kiến thức cơ bản của mạng máy tính
Thời gian: 3 ngày
Nội dung: Tìm hiểu các kiến thức cơ bản của mạng máy tính.

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


9

a. TCP
TCP (Transmission Control Protocol) là một trong các giao thức cốt lõi của bộ giao thức
TCP/IP. Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối"
với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo

chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa
dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên
cùng một máy chủ.

Sơ đồ trạng thái của TCP - phiên bản đơn giản hóa
+

Bít 0 - 3

0

4-9

10 - 15

16 - 31

Source Port

Destination Port

32

Sequence Number

64

Acknowledgement Number

96

128

Data
Offset

Reserved
Checksum

Flags

Window
Urgent Pointer

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


10

160

Options (optional)

160/192+

Data
Cấu trúc header TCP

b. UDP
UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của giao thức

TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gửi những dữ liệu ngắn được gọi là
datagram tới máy khác. UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà TCP làm; các
gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà khơng có thơng báo. Tuy nhiên UDP
nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời
gian. Do bản chất khơng trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ
với số lượng lớn người yêu cầu.
+

Bits 0 - 15

16 - 31

0

Source Port

Destination Port

32

Length

Checksum

64

Data
Cấu trúc header UDP

c. ICMP

Internet Control Message Protocol (viết tắt là ICMP), là một giao thức của gói Internet
Protocol. Giao thức này được các thiết bị mạng như router dùng để gửi đi các thông báo lỗi chỉ
ra một dịch vụ có tồn tại hay khơng, hoặc một địa chỉ host hay router có tồn tại hay khơng.
ICMP cũng có thể được sử dụng để chuyển tiếp các thông điệp truy vấn. Giao thức này được
đánh số 1. ICMP khác với các giao thức vận chuyển như TCP và UDP ở chỗ nó khơng thường
được sử dụng để trao đổi dữ liệu giữa các hệ thống, cũng không thường xuyên được sử dụng bởi
các ứng dụng mạng của người dùng cuối (với ngoại lệ của một số công cụ chẩn đoán như ping
và traceroute).
Of Oct
fse
ts et

0

1

2

3

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


11

Oc
Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
tet
0


0 Type

4

32 Rest of Header

Code

Checksum

Cấu trúc header ICMP
Thực hiện
- Tham gia đầy đủ các buổi training của công ty.
- Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả:
4.3.

Hiểu được cơ bản cách thức hoạt động của mạng máy tính.
Phân biệt được 3 giao thức TCP, UDP và ICMP.

Tìm hiểu cơ chế phân giải tên miền của DNS
Thời gian: 3 ngày
Nội dung: Tìm hiểu cơ chế phân giải tên miền của DNS

a. Cấu trúc tên miền
Mục đích chính của tên miền là để cung cấp một hình thức đại diện, hay nói cách khác,
dùng những tên dễ nhận biết, thay cho những tài nguyên Internet mà đa số được đánh địa chỉ
bằng số. Cách nhìn trừu tượng này cho phép bất kỳ tài nguyên nào (ở đây là website) đều có thể
được di chuyển đến một địa chỉ vật lý khác trong cấu trúc liên kết địa chỉ mạng, có thể là tồn

cầu hoặc chỉ cục bộ trong một mạng internet, mà trên thực tế là đang làm thay đổi địa chỉ IP.
Việc dịch từ tên miền sang địa chỉ IP (và ngược lại) do hệ thống DNS trên toàn cầu thực hiện.
Mọi tên miền đều kết thúc bằng một tên miền cấp cao nhất (TLD), ln là một trong tên
có trong danh sách ngắn gồm các tên chung (từ ba ký tự trở lên), hoặc một mã lãnh thổ hai ký tự
dựa trên ISO-3166 (có một số ngoại lệ và các mã mới sẽ được dần dần thêm vào). Tên miền cấp
cao nhất đôi khi còn được gọi là tên miền cấp 1.

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


12

Trong phân cấp tên miền, phía dưới tên miền cấp cao nhất là tên miền cấp hai (SLD).
Đây là những tên đứng ngay bên trái.com,.net, và những tên miền cấp cao nhất khác. Ví dụ,
trong tên miền vi.wikipedia.org, wikipedia là tên miền cấp hai.
Tiếp đến là tên miền cấp ba, được viết ngay bên trái tên miền cấp hai. Có thể có tên miền
cấp bốn, cấp năm, v.v., khơng có giới hạn. Ví dụ về một tên miền hiện đang tồn tại với bốn cấp
tên miền là www.sos.state.oh.us. Cụm chữ www đừng đầu tên miền là một host name của máy
chủ World-Wide Web. Mỗi cấp được phân cách nhau bằng dấu chấm. 'sos' được cho là một tên
miền con của 'state.oh.us', và 'state' và tên miền con của 'oh.us', v.v. Nói chung, tên miền con là
những tên miền thấp hơn tên miền cha của nó. Một ví dụ về các cấp rất sâu của thứ tự tên miền
con là vùng DNS phân giải ngược IPv6, như,
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa, là tên miền phân giải DNS
đảo của địa chỉ IP của một giao diện loopback, hoặc tên localhost.

Hệ thống phân cấp của các nhãn trong một tên miền đầy đủ
b. DNS
Hệ thống phân giải tên miền (hay được viết tắt là DNS do tên tiếng Anh Domain Name
System) là một hệ thống cho phép thiết lập tương ứng giữa địa chỉ IP và tên miền trên Internet.

Không gian tên miền là một kiến trúc dạng cây (hình), có chứa nhiều nốt (node). Mỗi nốt
trên cây sẽ có một nhãn và có khơng hoặc nhiều resource record (RR), chúng giữ thông tin liên
quan tới tên miền. Nốt root khơng có nhãn.
Tên miền được tạo thành từ các nhãn và phân cách nhau bằng dấu chấm (.), ví dụ
example.com. Tên miền cịn được chia theo cấp độ như tên miền top level, tên miền cấp 1, cấp
2...

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


13

Tên miền được định nghĩa trong các RFC 1035, RFC 1123, và RFC 2181. Một tên miền
bao gồm một hoặc nhiều phần, gọi là các nhãn (label), chúng cách nhau bởi dấu chấm (.), ví dụ
example.com.
Hệ thống phân giải tên miền tính theo hướng từ phải sang trái. Ví dụ www.example.com
thì nhãn example là một tên miền con của tên miền com, và www là tên miền con của tên miền
example.com. Cây cấu trúc này có thể có tới 127 cấp.
Máy chủ tên miền chứa thông tin lưu trữ của Không gian tên miền. Hệ thống phân giải
tên miền được vận hành bởi hệ thống dữ liệu phân tán, dạng client-server. Các nốt của hệ dữ
liệu này là các máy chủ tên miền. Mỗi một tên miền sẽ có ít nhất một máy chủ DNS chứa thông
tin của tên miền đó. Các thơng tin của Máy chủ tên miền sẽ được lưu trữ trong các zone. Có hai
dạng NS là là primary và secondary.

Hệ thống phân tầng Không gian tên miền trên lớp Internet, tổ chức theo zone, phục vụ
bởi một name server
c. Cơ chế phân giải tên miền của DNS
Các máy chủ phân giải tên miền theo cơ chế từ cao xuống thấp.
Theo lý thuyết, các máy chủ tên miền có thẩm quyền đã đủ dùng để vận hành hệ thống

Internet. Tuy nhiên, nếu chỉ có máy chủ tên miền thẩm quyền, mỗi truy vấn DNS phải bắt đầu đi

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


14

từ root zone, và mỗi hệ thống người dùng phải vận hành một phần mềm để làm nhiệm vụ phân
giải. Để giảm lượng băng thông trên Internet, DNS cho phép các máy chủ DNS lưu Cache các
kết quả mà nó đã từng truy vấn.
Phần client của DNS gọi là DNS resolver.
-

Truy vấn non-recursive: DNS resolver client truy vấn DNS server để tìm record của
tên miền chưa trên server đó.

-

Truy vấn recursive

-

Truy vấn iterative

Một DNS recursor tham khảo 3 máy chủ khác để phân giải tên miền www.wikipedia.org sang
dạng IP

Trình tự phân giải DNS
Thực hiện

- Tham gia đầy đủ các buổi training của công ty.
- Làm các bài thực hành, kiểm tra về kiến thức đã học.

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


15

Kết quả:
4.4.

Hiểu được các khải niệm tên miền và DNS.
Hiểu được cơ chế phân giải tên miền.

Nghiên cứu giải pháp bảo mật đường truyền dữ liệu trên internet

Thời gian: 2 tuần.
Nội dung: Các kiến thức về một số thuật toán mã hóa, băm và các phương pháp truyền
tải dữ liệu an tồn.
a. Mã hóa khóa đối xứng
i.

Mã hóa khối - Mã hóa AES

Vào những năm 1990, nhận thấy nguy cơ của mã hóa DES là kích thước khóa ngắn, có
thể bị phá mã trong tương lai gần, Cục tiêu chuẩn quốc gia Hoa Kỳ đã kêu gọi xây dựng một
phương pháp mã hóa mới. Cuối cùng một thuật tốn có tên là Rijndael được chọn và đổi tên
thành Andvanced Encryption Standard hay AES. Có thể nói rằng mã hóa AES với khóa có kích
thước 256 bit là “an tồn mãi mãi” bất kể những tiến bộ trong ngành kỹ thuật máy tính.

Giống như DES, mã hóa AES là một mã khối gồm nhiều vịng. Khác với DES, mã hóa
AES khơng phải là một mã hóa Feistel. Thuật tốn AES khá phức tạp, ở đây chúng ta chỉ nêu ra
một số đặc điểm chính của AES:
- Cho phép lựa chọn kích thước khối mã hóa là 128, 192 hay 256 bit.
- Cho phép lựa chọn kích thước của khóa một cách độc lập với kích thước khối: là
128, 192 hay 256 bit.
- Số lượng vịng có thể thay đổi từ 10 đến 14 vịng tùy thuộc vào kích thước khóa.
Độ an toàn của AES làm cho AES được sử dụng ngày càng nhiều và trong tương lai sẽ
chiếm vai trò của DES và Triple DES.
ii.

Mã hóa dịng - Mã hóa RC4

RC4 được dùng trong giao thức SSL để bảo mật dữ liệu trong quá trình truyền dữ liệu
giữa Web Server và trình duyệt Web. Ngồi ra RC4 cịn được sử dụng trong mã hóa WEP của
mạng Wireless LAN.
RC4 có các đặc tính sau:
- Đơn vị mã hóa của RC4 là một byte 8 bit.
- Mảng S và T gồm 256 số nguyên 8 bit.
- Khóa K là một dãy gồm N số nguyên 8 bit với N có thể lấy giá trị từ 1 đến 256.
- Bộ sinh số mỗi lần sinh ra một byte để sử dụng trong phép XOR.
Hai giai đoạn của RC4 là:
- Giai đoạn khởi tạo:

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


16


-

Giai đoạn sinh số:

Quá trình sinh số của RC4 cũng sinh ra dãy số ngẫu nhiên, khó đốn trước, vì vậy RC4
đạt được mức độ an toàn cao theo tinh thần của mã hóa One-Time Pad. Mã hóa RC4 hồn toàn
được thực hiện trên các số nguyên một byte do đó tối ưu cho việc thiết lập bằng phần mềm và
tốc độ thực hiện nhanh hơn so với mã khối.
b. Mã hóa khóa bất đối xứng – Mã hóa RSA
Phương pháp RSA là một phương pháp mã hóa khóa cơng khai. RSA được xây dựng bởi
các tác giả Ron Rivest, Adi Shamir và Len Adleman tại học viện MIT vào năm 1977, và ngày
nay đang được sử dụng rộng rãi. Về mặt tổng quát RSA là một phương pháp mã hóa theo khối.
Trong đó bản rõ M và bản mã C là các số nguyên từ 0 đến 2 i với i số bit của khối. Kích thước
thường dùng của i là 1024 bit. RSA sử dụng hàm một chiều là vấn đề phân tích một số thành
thừa số nguyên tố.
Để thực hiện mã hóa và giải mã, RSA dùng phép lũy thừa modulo của lý thuyết số. Các
bước thực hiện như sau:
- Chọn hai số nguyên tố lớn p và q và tính N = pq. Cần chọn p và q sao cho
M < 2i-1 < N < 2i. Với i = 1024 thì N là một số nguyên dài khoảng 309 chữ số.
- Tính n = (p - 1)(q - 1).
- Tìm một số e sao cho e nguyên tố cùng nhau với n.
- Tìm một số d sao cho e.d ≡ 1 mod n (d là nghịch đảo của e trong phép modulo n).
- Hủy bỏ n, p và q. Chọn khóa cơng khai KU là cặp (e, N), khóa riêng KR là cặp (d, N).
- Việc mã hóa thực hiện theo cơng thức:
o Theo phương án 1, mã hóa bảo mật: C = E(M, KU) = Me mod N
Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


17


o Theo phương án 2, mã hóa chứng thực: C= E(M, KR) = Md mod N
- Việc giải mã thực hiện theo cơng thức:
o Theo phương án 1, mã hóa bảo mật: M = D(C, KR) = Cd mod N
o Theo phương án 2, mã hóa chứng thực: M = D(C, KU) = Ce mod N
Bản rõ M có kích thước i-1 bit, bản mã C có kích thước i bit.
c. Hàm băm
i.

MD5

MD5 được phát minh bởi Ron Rivest, người cũng đã tham gia xây dựng RSA. MD5, viết
tắt từ chữ “Message Digest”, được phát triển lên từ MD4 và trước đó là MD2, do MD2 và MD4
khơng cịn được xem là an tồn. Kích thước giá trị băm của MD5 là 128 bit, mà chúng ta coi
như là an tồn (theo nghĩa khơng tìm được 2 thơng điệp có cùng giá trị băm). Tuy nhiên vào
năm 1994 và 1998, một phương pháp tấn cơng MD5 đã được tìm thấy và một số thơng điệp có
cùng giá trị băm MD5 được chỉ ra (vi phạm tính chống trùng mạnh). Tuy vậy ngày nay MD5
vẫn còn được sử dụng phổ biến.
Sau đây chúng ta sẽ tìm hiểu hàm băm MD5 với kích thước giá trị băm là 128 bit, được
dùng để tính giá trị băm của thơng điệp có kích thước tối đa là 264 bit.
Sơ đồ tổng thể:

Sơ đồ tổng thể
ii.

SHA

Vì MD5 khơng cịn được xem là an tồn, nên người ta đã xây dựng thuật toán băm khác.
Một trong những thuật tốn đó là SHA-1 (Secure Hash Algorithm) mà đã được chính phủ Mỹ
chọn làm chuẩn quốc gia. SHA-1 có kích thước giá trị băm là 160 bit. Ngày nay cịn có ba phiên

bản khác của SHA là SHA-256, SHA-384, SHA-512 mà có kích thước giá trị băm tương ứng là
256, 384 và 512 bit.

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


18

Tương tự như mã hóa đối xứng, các hàm băm mạnh đều có hiệu ứng lan truyền
(avalanche effect). Chỉ cần thay đổi 1 bit trong thơng điệp đầu vào thì ½ các bit của giá trị băm
sẽ thay đổi theo. Điều này làm cho người phá hàm băm không thể thử sai theo kiểu chosenplainttext, nghĩa là không tồn tại cách tấn công nào khác được và buộc phải thử vét cạn 2 n/2
thông điệp khác nhau, mà chúng ta đã chứng minh là bất khả thi về mặt thời gian.
Sơ đồ tổng thể của SHA1 cũng giống như của MD5, chỉ có điểm khác là kích thước của
giá trị hash tại mỗi bước là 160 bit.

Sơ đồ tổng thể
d. TLS
TLS (Transport Layer Security) cùng với SSL (Secure Sockets Layer) là các giao thức
mật mã được thiết kế để cung cấp truyền thơng an tồn qua một mạng máy tính. Một số phiên
bản của các giao thức này được sử dụng rộng rãi trong các ứng dụng như trình duyệt Web, thư
điện tử, tin nhắn nhanh, và VoIP. Các trang web có thể sử dụng TLS để bảo mật tất cả thơng tin
liên lạc giữa máy chủ và trình duyệt web.
Các phiên bản của TLS/SSL:
Phiên bản

Năm phát hành

Trạng thái


SSL 1.0

Không phát hành

Không được sử dụng

SSL 2.0

1995

Ngừng sử dụng từ 2011

SSL 3.0

1996

Ngừng sử dụng từ 2015

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


19

TLS 1.0

1999

Ngừng sử dụng từ 2020


TLS 1.1

2006

Ngừng sử dụng từ 2020

TLS 1.2

2008

TLS 1.3

2018

Kết nối TLS là kết nối bảo mật vì mật mã đối xứng được sử dụng để mã hóa dữ liệu được
truyền. Các khóa cho mã hóa đối xứng này được tạo duy nhất cho mỗi kết nối và dựa trên một
khóa bí mật chung đã được trao đổi khi bắt đầu phiên. Máy chủ và máy khách trao đổi chi tiết
về thuật tốn mã hóa và khóa mật mã nào sẽ được sử dụng trước khi byte dữ liệu đầu tiên được
truyền đi. Việc trao đổi về khóa bí mật được chia sẻ trên kênh an tồn (để đảm bảo không thể bị
nghe trộm và không thể có được khóa mã, ngay cả khi kẻ tấn cơng đặt mình ở giữa kết nối) và
đáng tin cậy (khơng kẻ tấn cơng nào có thể sửa đổi thơng tin liên lạc trong q trình trao đổi mà
khơng bị phát hiện).
Danh tính của các bên giao tiếp có thể được xác thực bằng mật mã khóa cơng khai. Kết
nối đáng tin cậy vì mỗi tin nhắn được truyền đi bao gồm phần kiểm tra tính tồn vẹn của tin
nhắn để tránh mất dữ liệu hoặc thay đổi dữ liệu trong q trình truyền.
Ngồi các thuộc tính trên, cấu hình của TLS có thể cung cấp thêm các thuộc tính liên
quan đến quyền riêng tư như bảo mật chuyển tiếp, đảm bảo rằng mọi thông tin bị lộ trong tương
lai của khóa mã hóa khơng thể được sử dụng để giải mã mọi thông tin liên lạc TLS được ghi lại
trong q khứ.
Các thuật tốn kiểm tra tính tồn vẹn trong TLS:

Thuật toán
HMAC-MD5

SSL 2.0 SSL 3.0 TLS 1.0 TLS 1.1 TLS 1.2 TLS 1.3
Yes

Yes

Yes

Yes

Yes

Trạng thái

No

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


20

HMAC-SHA1

No

Yes


Yes

Yes

Yes

No

HMACSHA256/384

No

No

No

No

Yes

No

AEAD

No

No

No


No

Yes

Yes

GOST 28147-89
IMIT

No

No

Yes

Yes

Yes

GOST R 34.11-94

No

No

Yes

Yes

Yes


Được hỗ trợ
cho TLS 1.2 in
RFCs

Dùng cho mục
đích RFC tạm
thời

Giao thức TLS bao gồm hai lớp: bản ghi TLS và giao thức bắt tay TLS.
Cấu trúc bản ghi TLS:
+

Byte +0

Byte
0

Content type

Bytes
1..4

Byte +1

Byte +2

Legacy version
(Major)


Byte +3

Length

(Minor)

(bits 15..8)

Bytes
5..(m−1)

Protocol message(s)

Bytes

MAC (optional)

(bits 7..0)

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


21

m..(p−1)
Bytes
p..(q−1)

Padding (block ciphers only)


Cấu trúc gói tin bắt tay TLS:
+

Byte +0

Byte
0

22

Byte +1

Byte +2

Version

Byte +3

Length

Bytes
1..4
(Major)

(Minor)

(bits 15..8)

(bits 7..0)


Handshake message data length
Bytes
5..8

Message type
(bits 23..16)

Bytes
9..(n−1)

(bits 15..8)

(bits 7..0)

Handshake message data

Handshake message data length
Bytes
n..(n+3)

Message type
(bits 23..16)

Bytes

(bits 15..8)

(bits 7..0)


Handshake message data

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


22

(n+4)..
Thực hiện
- Tham gia đầy đủ các buổi training của công ty.
- Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả
- Phân biệt được các loại mã hóa khóa đối xứng và bất đối xứng, mã hóa khối và mã
hóa dịng
- Hiện thực được các thuật tốn mã hóa và băm.
- Hiểu được cơ chế của TLS.
4.5.

Tìm hiểu giao thức HTTP/HTTPS
Thời gian: 2 ngày.
Nội dung: Các kiến thức về HTTP/HTTPS.

a. HTTP
HTTP (HyperText Transfer Protocol - Giao thức truyền tải siêu văn bản) là một trong
năm giao thức chuẩn của mạng Internet, được dùng để liên hệ thông tin giữa Máy cung cấp dịch
vụ (Web server) và Máy sử dụng dịch vụ (Web client) trong mơ hình Client/Server dùng cho
World Wide Web – WWW. HTTP là một giao thức thuộc tầng ứng dụng, nằm trên cặp giao thức
tầng giao vận & tầng mạng là TCP/IP.
HTTP Request Method chỉ phương thức để được thực hiện trên nguồn được nhận diện

bởi Request-URI đã cung cấp. Các phương thức trong HTTP request:
-

GET: được sử dụng để lấy lại thông tin từ Server đã cung cấp bởi sử dụng một URI
đã cung cấp. Các yêu cầu sử dụng GET chỉ nhận dữ liệu và khơng có ảnh hưởng gì
tới dữ liệu.

-

HEAD: Tương tự như GET, nhưng nó truyền tải dịng trạng thái và khu vực Header.

-

POST: Một yêu cầu POST được sử dụng để gửi dữ liệu tới Server, ví dụ, thông tin
khách hàng, file tải lên, …, bởi sử dụng các mẫu HTML.

-

PUT: Thay đổi tất cả các đại diện hiện tại của nguồn mục tiêu với nội dung được tải
lên.

-

DELETE: Gỡ bỏ tất cả các đại diện hiện tại của nguồn mục tiêu bởi URI.

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


23


-

CONNECT: Thiết lập một tunnel tới Server được xác định bởi URI đã cung cấp.

-

OPTIONS: Miêu tả các chức năng giao tiếp cho nguồn mục tiêu.

-

TRACE: Trình bày một vịng lặp kiểm tra thông báo song song với path tới nguồn
mục tiêu.

Khi nhận và phiên dịch một HTTP Request, Server sẽ gửi tín hiệu phản hồi là một HTTP
Response bao gồm các thành phần sau:
-

Một dịng trạng thái (Status-Line)

-

Khơng hoặc nhiều hơn các trường Header (General|Response|Entity) được theo sau
CRLF

-

Một dòng trống chỉ dòng kết thúc của các trường Header

-


Một phần thân thông báo tùy ý

b. HTTPS
HTTPS, viết tắt của Hypertext Transfer Protocol Secure, là một giao thức kết hợp giữa
giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo
mật trên Internet. Giao thức HTTPS thường được dùng trong các giao dịch nhạy cảm cần tính
bảo mật cao.
Giao thức HTTPS sử dụng port 443, giúp đảm bảo các tính chất sau của thơng tin:
-

Confidentiality: sử dụng phương thức mã hóa (encryption) để đảm bảo rằng các thông
điệp được trao đổi giữa client và server không bị kẻ thứ ba đọc được.

-

Integrity: sử dụng phương thức hashing để cả người dùng (client) và máy chủ (server)
đều có thể tin tưởng rằng thơng điệp mà chúng nhận được có khơng bị mất mát hay
chỉnh sửa.

-

Authenticity: sử dụng chứng chỉ số (digital certificate) để giúp client có thể tin tưởng
rằng server/website mà họ đang truy cập thực sự là server/website mà họ mong muốn
vào, chứ không phải bị giả mạo.

Việc nhờ đến bên thứ 3 (thường là CA) để xác thực danh tính của website cộng thêm sự
chú ý của người dùng rằng website đó có sử dụng HTTPS và SSL certificate của nó cịn hiệu
lực sẽ giúp loại bỏ hồn tồn nguy cơ bị lừa đảo.


Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


24

Q trình giao tiếp giữa client và server thơng qua HTTPS:
-

Bước 1: Client gửi yêu cầu (request) cho một trang bảo mật (secure page) (có URL
bắt đầu với https://)

-

Bước 2: Server gửi lại cho client certificate của nó.

-

Bước 3: Client (trình duyệt web) tiến hành xác thực certificate này bằng cách kiểm
tra (verify) tính hợp lệ của chữ ký số của CA được kèm theo certificate.

Giả sử certificate đã được xác thực và còn hạn sử dụng hoặc client vẫn cố tình truy cập
mặc dù Web browser đã cảnh báo rằng không thể tin cậy được certificate này (do là dạng selfsigned SSL certificate hoặc certificate hết hiệu lực, thông tin trong certificate khơng đúng) thì
mới xảy ra bước 4 sau:
-

Bước 4: Client tự tạo ra ngẫu nhiên một symmetric encryption key (hay session key),
rồi sử dụng public key (lấy trong certificate) để mã hóa session key này và gửi về cho
server.


-

Bước 5: Server sử dụng private key (tương ứng với public key trong certificate ở
trên) để giải mã ra session key ở trên.

-

Bước 6: Sau đó, cả server và client đều sử dụng session key đó để mã hóa/giải mã các
thông điệp trong suốt phiên truyền thông.

Và tất nhiên, các session key sẽ được tạo ra ngẫu nhiên và khác nhau trong mỗi phiên
làm việc với server. Ngoài encryption thì cơ chế hashing sẽ được sử dụng để đảm bảo tính
Integrity cho các thơng điệp được trao đổi.
Thực hiện
- Tham gia đầy đủ các buổi training của công ty.
- Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả
- Hiểu được cơ bản 2 giao thức HTTP và HTTPS.
4.6.

Tìm hiểu Web service và các phương thức serialization
Thời gian: 3 ngày.
Nội dung: Tìm hiểu web service và serializations.

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


25


a. Web service
Web Service (WS) là một dịch vụ được cung cấp bởi một thiết bị điện tử cho một thiết bị
điện tử khác, liên lạc với nhau thông qua World Wide Web, hoặc một máy chủ chạy trên thiết bị
máy tính, lắng nghe các yêu cầu tại một cổng cụ thể qua mạng, phục vụ các tài liệu web
(HTML, JSON, XML, hình ảnh) và tạo các dịch vụ ứng dụng web, phục vụ giải quyết các vấn
đề tên miền cụ thể (WWW, Internet, HTTP).
Trong dịch vụ web, công nghệ web như HTTP được sử dụng để chuyển các định dạng
tệp có thể đọc được bằng máy như XML và JSON.

Kiến trúc web service
Trong thực tế, một dịch vụ web thường cung cấp giao diện dựa trên web hướng đối
tượng cho máy chủ cơ sở dữ liệu, được sử dụng ví dụ bởi một máy chủ web khác hoặc bởi một
ứng dụng di động, cung cấp giao diện người dùng cho người dùng cuối. Nhiều tổ chức cung cấp
dữ liệu trong các trang HTML được định dạng cũng sẽ cung cấp dữ liệu đó trên máy chủ của họ
dưới dạng XML hoặc JSON, thường thông qua dịch vụ Web để cho phép cung cấp. Một ứng
dụng khác được cung cấp cho người dùng cuối có thể là một ứng dụng hịa trộn, trong đó máy
chủ web sử dụng một số dịch vụ web tại các máy khác nhau và biên dịch nội dung vào một giao
diện người dùng.

Phụ trách: Anh Lê Duy - Team Leader
Thực tập sinh: Nguyễn Dương Hoàng Duy


×