1
00:00:03,920 --> 00:00:06,615
Trong mô-đun trước,

2
00:00:06,615 --> 00:00:10,905
chúng ta đã thấy về xác thực người dùng rất nhiều chi tiết.

3
00:00:10,905 --> 00:00:17,610
Chúng tôi đã thấy cách người dùng gửi thông tin đăng nhập của họ đến máy chủ của họ từ phía khách hàng

4
00:00:17,610 --> 00:00:20,270
trong tiêu đề của

5
00:00:20,270 --> 00:00:24,870
thông điệp yêu cầu của họ hoặc nội dung của thông điệp yêu cầu và sau đó,

6
00:00:24,870 --> 00:00:26,460
khi họ được xác thực,

7
00:00:26,460 --> 00:00:31,680
sau đó khách hàng của họ sẽ bao gồm cookie hoặc

8
00:00:31,680 --> 00:00:38,499
mã thông báo trong tiêu đề của thông điệp yêu cầu đi từ máy khách đến máy chủ.

9
00:00:38,499 --> 00:00:41,820
Tôi chắc

10
00:00:41,820 --> 00:00:47,010
rằng một vài người trong số các bạn đang phàn nàn về thực tế là chúng tôi đang giao tiếp trong một kênh không an toàn, có

11
00:00:47,010 --> 00:00:50,520
nghĩa là bất cứ ai ngồi ở giữa những người có thể

12
00:00:50,520 --> 00:00:54,780
nghe tin nhắn của họ đi giữa máy khách

13
00:00:54,780 --> 00:00:57,570
và máy chủ sẽ dễ dàng có thể nắm bắt

14
00:00:57,570 --> 00:01:03,195
các thông tin đăng nhập và sau đó mạo danh khách hàng chính hãng.

15
00:01:03,195 --> 00:01:04,815
Tất nhiên, tại thời điểm đó,

16
00:01:04,815 --> 00:01:09,025
sự nhấn mạnh của họ là nhiều hơn vào việc sắp xếp

17
00:01:09,025 --> 00:01:13,575
giao tiếp khách hàng và máy chủ với xác thực của khách hàng ở phía máy chủ.

18
00:01:13,575 --> 00:01:19,215
Nhưng bất cứ lúc nào bạn cần sử dụng xác thực người dùng

19
00:01:19,215 --> 00:01:21,945
, trước tiên, dưới hình thức, nói,

20
00:01:21,945 --> 00:01:25,940
cung cấp các thông tin đăng nhập để xác thực bản thân và sau đó,

21
00:01:25,940 --> 00:01:29,445
xác thực bản thân bằng cách bao gồm cookie hoặc

22
00:01:29,445 --> 00:01:33,840
mã thông báo trong tiêu đề của thông báo yêu cầu,

23
00:01:33,840 --> 00:01:36,290
bạn nên thực hiện điều này trên một kênh an toàn.

24
00:01:36,290 --> 00:01:39,890
Bạn không bao giờ nên giao tiếp qua một kênh không an toàn

25
00:01:39,890 --> 00:01:44,160
, có nghĩa là bạn không nên sử dụng HTTP và sau đó bao gồm

26
00:01:44,160 --> 00:01:48,780
các thông tin đăng nhập vào tiêu đề hoặc nội dung của thư yêu cầu.

27
00:01:48,780 --> 00:01:56,455
Thay vào đó, bạn nên sử dụng một phiên bản an toàn của giao thức HTTP hoặc HTTPS.

28
00:01:56,455 --> 00:02:01,830
Hãy nói ngắn gọn về HTTPS trong bài giảng này.

29
00:02:01,830 --> 00:02:07,140
Trên đường đi, tôi sẽ cung cấp cho bạn một giới thiệu năm phút về mật mã và bảo mật.

30
00:02:07,140 --> 00:02:12,143
Rõ ràng, mật mã và bảo mật là một chủ đề rất lớn trong quyền riêng của nó.

31
00:02:12,143 --> 00:02:16,110
Tôi sẽ giới thiệu các bạn về những yếu tố cần thiết mà bạn cần phải

32
00:02:16,110 --> 00:02:21,820
hiểu để tìm hiểu cách HTTPS thực sự hoạt động.

33
00:02:21,820 --> 00:02:29,430
Với nền tảng này, chúng ta hãy tiến hành hiểu về mật mã và sau đó vào

34
00:02:29,430 --> 00:02:34,110
giao thức HTTPS và cách bạn sẽ cấu hình một máy chủ để sử dụng

35
00:02:34,110 --> 00:02:40,276
giao thức HTTPS và sau đó máy khách liên hệ với máy chủ sử dụng giao thức HTTPS,

36
00:02:40,276 --> 00:02:45,165
do đó, giao tiếp giữa máy khách và máy chủ có thể được thực hiện một cách an toàn

37
00:02:45,165 --> 00:02:51,180
bằng cách mã hóa dữ liệu được gửi giữa máy khách và phía máy chủ.

38
00:02:51,180 --> 00:02:56,175
Khi bạn mạo hiểm vào lĩnh vực mật mã và bảo mật,

39
00:02:56,175 --> 00:03:00,375
bạn sẽ thường nghe mọi người nói về mật mã khóa đối xứng.

40
00:03:00,375 --> 00:03:02,970
Bây giờ, mật mã học liên quan đến điều gì?

41
00:03:02,970 --> 00:03:07,635
Nếu bạn cần gửi một tin nhắn qua một kênh cho người dùng khác,

42
00:03:07,635 --> 00:03:10,800
sau đó bạn sẽ muốn có thể mã hóa tin nhắn theo

43
00:03:10,800 --> 00:03:14,310
cách mà chỉ có người nhận mới có thể

44
00:03:14,310 --> 00:03:16,570
giải mã tin nhắn và có được

45
00:03:16,570 --> 00:03:21,050
thông tin mà bạn đang cố gắng gửi cho người nhận.

46
00:03:21,050 --> 00:03:26,730
Vì vậy, cả người gửi và người nhận nên hiểu về thiết lập giữa hai người trong số

47
00:03:26,730 --> 00:03:32,930
họ như thế nào quá trình mã hóa này và cách giải mã sẽ hoạt động.

48
00:03:32,930 --> 00:03:34,365
Để làm việc này,

49
00:03:34,365 --> 00:03:41,265
bất kỳ mã hóa và giải mã hoạt động dựa trên trao đổi các khóa bí mật.

50
00:03:41,265 --> 00:03:43,765
Vì vậy trong mật mã khóa đối xứng,

51
00:03:43,765 --> 00:03:50,678
cả người gửi và người nhận sẽ chia sẻ một khóa bí mật giữa hai trang web,

52
00:03:50,678 --> 00:03:55,165
và khóa bí mật này chỉ được biết đến với người gửi và bên nhận.

53
00:03:55,165 --> 00:03:58,260
Vì vậy khi người gửi cần gửi tin nhắn,

54
00:03:58,260 --> 00:04:04,755
thì người gửi sẽ mã hóa tin nhắn này bằng cách sử dụng thuật toán mật mã

55
00:04:04,755 --> 00:04:09,795
, sử dụng khóa bí mật làm đầu vào khác cho thuật toán này.

56
00:04:09,795 --> 00:04:13,875
Và một khi thông điệp này được truyền qua thuật toán mật mã này,

57
00:04:13,875 --> 00:04:17,068
thì một thông điệp được mã hóa sẽ được tạo ra.

58
00:04:17,068 --> 00:04:24,160
Bây giờ, tin nhắn được mã hóa này sẽ được gửi đến kênh qua phía bên nhận.

59
00:04:24,160 --> 00:04:28,140
Nếu bạn có một người dùng độc hại bên thứ ba

60
00:04:28,140 --> 00:04:32,450
ngồi ở giữa và lắng nghe và ghi lại thông điệp được mã hóa này,

61
00:04:32,450 --> 00:04:34,740
họ sẽ khó giải mã

62
00:04:34,740 --> 00:04:38,580
thông điệp này vì để giải mã thông điệp được mã hóa,

63
00:04:38,580 --> 00:04:40,645
bạn vẫn cần khóa bí mật.

64
00:04:40,645 --> 00:04:42,375
Bây giờ, ở phía người nhận,

65
00:04:42,375 --> 00:04:44,856
khi tin nhắn được mã hóa được nhận,

66
00:04:44,856 --> 00:04:48,815
thì người nhận sẽ áp dụng và một thuật toán giải mã

67
00:04:48,815 --> 00:04:50,715
, cũng lấy làm đầu vào,

68
00:04:50,715 --> 00:04:56,590
cùng một khóa bí mật đã được sử dụng ở phía người gửi để mã hóa tin nhắn.

69
00:04:56,590 --> 00:05:00,585
Vì vậy khi giải mã, thông điệp ban đầu sẽ được truy xuất

70
00:05:00,585 --> 00:05:05,240
và có thể được xử lý ở phía người nhận.

71
00:05:05,240 --> 00:05:11,260
Bây giờ, nếu một bên thứ ba độc hại muốn giải mã thông điệp

72
00:05:11,260 --> 00:05:14,280
được mã hóa này, họ sẽ phải đối mặt với một trận chiến khó khăn vì

73
00:05:14,280 --> 00:05:18,240
quá trình mã hóa bằng cách sử dụng khóa bí mật sẽ biến thông điệp và có thể

74
00:05:18,240 --> 00:05:19,590
, lần lượt mã hóa thông điệp.

75
00:05:19,590 --> 00:05:21,830
Nếu không sở hữu khóa bí mật,

76
00:05:21,830 --> 00:05:26,760
nó sẽ là bên cạnh không thể giải mã tin nhắn được mã hóa.

77
00:05:26,760 --> 00:05:30,200
Vâng, đó là kéo dài có được một chút xa.

78
00:05:30,200 --> 00:05:35,490
Sẽ rất khó khăn để giải mã tin nhắn được mã hóa.

79
00:05:35,490 --> 00:05:39,210
Nếu bạn sử dụng kỹ thuật brute force, sau đó cuối cùng,

80
00:05:39,210 --> 00:05:43,245
bạn sẽ kết thúc giải mã thông điệp được mã hóa.

81
00:05:43,245 --> 00:05:48,880
Nhưng nó sẽ mất rất nhiều thời gian và đòi hỏi rất nhiều sức mạnh tính toán.

82
00:05:48,880 --> 00:05:53,175
Nó sẽ không có giá trị nỗ lực cho

83
00:05:53,175 --> 00:05:58,580
người dùng độc hại của bên thứ ba để thử và giải mã tin nhắn được mã hóa.

84
00:05:58,580 --> 00:06:01,770
Vì vậy, cơ bản bạn đang làm cho nó thực sự khó khăn cho ai đó để

85
00:06:01,770 --> 00:06:05,355
giải mã thông điệp nếu họ không sở hữu khóa bí mật.

86
00:06:05,355 --> 00:06:09,480
Bây giờ, vì khóa bí mật chỉ được biết đến với người gửi và người nhận,

87
00:06:09,480 --> 00:06:12,390
hai bên kết thúc, người gửi và người nhận,

88
00:06:12,390 --> 00:06:16,335
có thể giao tiếp với sự đảm bảo

89
00:06:16,335 --> 00:06:18,780
rằng trong tin nhắn

90
00:06:18,780 --> 00:06:22,240
được mã hóa từ phía người gửi chỉ có thể được giải mã bởi phía người nhận.

91
00:06:22,240 --> 00:06:25,485
Vì vậy, đây là cách mã hóa khóa đối xứng hoạt động.

92
00:06:25,485 --> 00:06:30,330
Việc bạn có cùng một khóa bí mật được chia sẻ giữa

93
00:06:30,330 --> 00:06:32,400
người gửi và người nhận có nghĩa là

94
00:06:32,400 --> 00:06:35,420
việc bao gồm quá trình giải mã sử dụng cùng một khóa bí mật,

95
00:06:35,420 --> 00:06:38,911
do đó, mật mã khóa đối xứng.

96
00:06:38,911 --> 00:06:41,395
Tất nhiên, với mật mã khóa đối xứng,

97
00:06:41,395 --> 00:06:44,440
một trong những vấn đề là cả người gửi và người

98
00:06:44,440 --> 00:06:48,805
nhận cần phải có quyền truy cập vào cùng một khóa bí mật.

99
00:06:48,805 --> 00:06:53,940
Bây giờ, nếu người gửi và người nhận đang giao tiếp qua một kênh không an toàn,

100
00:06:53,940 --> 00:06:58,230
sẽ rất khó cho cả hai bên để tìm hiểu

101
00:06:58,230 --> 00:07:03,510
về cùng một khóa bí mật mà không tiết lộ nó cho người khác.

102
00:07:03,510 --> 00:07:09,315
Vì vậy, đây là nơi mà một thuật toán khác gọi là mật mã khóa công khai rất hữu ích.

103
00:07:09,315 --> 00:07:12,195
Mật mã khóa công khai hoạt động như thế nào?

104
00:07:12,195 --> 00:07:14,610
Bây giờ, trong mật mã khóa công khai,

105
00:07:14,610 --> 00:07:17,595
ý tưởng là bạn có hai khóa khác nhau.

106
00:07:17,595 --> 00:07:21,085
Bạn có một khóa công khai và một khóa riêng.

107
00:07:21,085 --> 00:07:26,520
Bây giờ, khóa công khai có thể được phân phối rộng rãi cho bất cứ ai mà bạn muốn.

108
00:07:26,520 --> 00:07:29,335
Vì vậy, khi ai đó muốn gửi tin nhắn cho bạn,

109
00:07:29,335 --> 00:07:34,350
họ sẽ sử dụng khóa công khai của bạn để mã hóa tin nhắn.

110
00:07:34,350 --> 00:07:39,795
Vì vậy nếu một người gửi ở đây muốn gửi tin nhắn đến người nhận,

111
00:07:39,795 --> 00:07:44,385
thì người gửi sẽ sử dụng khóa công khai ngoài người nhận để

112
00:07:44,385 --> 00:07:50,240
mã hóa tin nhắn ở phía người gửi bằng thuật toán mã hóa.

113
00:07:50,240 --> 00:07:53,100
Bây giờ, một khi tin nhắn được mã hóa được gửi

114
00:07:53,100 --> 00:07:56,640
qua kênh không an toàn đến phía người nhận,

115
00:07:56,640 --> 00:07:59,625
người nhận sau đó sẽ sử dụng khóa riêng

116
00:07:59,625 --> 00:08:03,210
mà chỉ người nhận mới biết được để giải mã.

117
00:08:03,210 --> 00:08:06,645
Bây giờ, để mật mã khóa công khai hoạt động như chúng ta đã thấy,

118
00:08:06,645 --> 00:08:10,760
khóa công khai có thể được phân phối rộng rãi mà không có bất kỳ mối quan tâm nào.

119
00:08:10,760 --> 00:08:14,150
Nhưng vì khóa riêng chỉ được biết đến với phía nhận,

120
00:08:14,150 --> 00:08:19,325
chỉ có người nhận mới có thể giải mã tin nhắn, và, một

121
00:08:19,325 --> 00:08:23,070
lần nữa, một kẻ xâm nhập bên thứ ba mà bắt được

122
00:08:23,070 --> 00:08:28,410
tin nhắn được mã hóa này sẽ thấy nó vô cùng khó khăn để giải mã tin nhắn.

123
00:08:28,410 --> 00:08:29,670
Bây giờ, tất nhiên trong mật mã khóa công khai, khóa

124
00:08:29,670 --> 00:08:33,385
công khai và khóa riêng là hai khóa khác nhau.

125
00:08:33,385 --> 00:08:36,900
Bây giờ, sau đó câu hỏi rõ ràng tiếp theo của bạn sẽ là tại sao

126
00:08:36,900 --> 00:08:40,686
không chỉ đơn giản là sử dụng mật mã khóa công khai để mã hóa.

127
00:08:40,686 --> 00:08:44,445
Vấn đề là việc sử dụng mật mã khóa công khai

128
00:08:44,445 --> 00:08:48,383
để mã hóa và giải mã là một quá trình tốn kém,

129
00:08:48,383 --> 00:08:54,890
và đó là lý do tại sao chúng ta không sử dụng mật mã khóa công khai cho toàn bộ giao tiếp của họ.

130
00:08:54,890 --> 00:09:00,600
Thay vào đó, mật mã khóa công khai sẽ được sử dụng

131
00:09:00,600 --> 00:09:04,290
chủ yếu cho người gửi và người nhận để đồng ý với

132
00:09:04,290 --> 00:09:08,270
khóa bí mật chung mà hai người sẽ sử dụng.

133
00:09:08,270 --> 00:09:12,210
Sau đó chúng ta sẽ xem cách mật mã khóa công khai

134
00:09:12,210 --> 00:09:16,380
có thể được sử dụng để thiết lập khóa bí mật chung

135
00:09:16,380 --> 00:09:19,845
giữa người gửi và người nhận và sau đó

136
00:09:19,845 --> 00:09:24,686
sử dụng mật mã khóa đối xứng để giao tiếp thêm.

137
00:09:24,686 --> 00:09:29,790
Một giao thức sử dụng cách tiếp cận này là Secure Sockets

138
00:09:29,790 --> 00:09:35,088
Layer và cũng là giao thức bảo mật Transport Layer,

139
00:09:35,088 --> 00:09:37,365
SSL và TLS trong ngắn hạn.

140
00:09:37,365 --> 00:09:40,395
Vì vậy, nhiều lần khi bạn đọc tài liệu,

141
00:09:40,395 --> 00:09:44,020
bạn có thể nghe về SSL và TLS.

142
00:09:44,020 --> 00:09:48,660
Các giao thức mật mã này cho phép giao tiếp an toàn giữa

143
00:09:48,660 --> 00:09:55,110
người gửi và người nhận qua một mạng không an toàn như Internet.

144
00:09:55,110 --> 00:10:03,150
Người gửi và người nhận sẽ giao tiếp qua Internet này bằng cách sử dụng

145
00:10:03,150 --> 00:10:06,410
các tin nhắn được mã hóa, mà chỉ người gửi và người nhận mới có thể giải mã được.

146
00:10:06,410 --> 00:10:09,266
Và cách tiếp cận này, hoặc là SSL hoặc TLS,

147
00:10:09,266 --> 00:10:16,220
sử dụng một sự kết hợp của mật mã khóa công khai cùng với mật mã khóa đối xứng.

148
00:10:16,220 --> 00:10:18,905
Quá trình chính xác của họ làm điều này,

149
00:10:18,905 --> 00:10:21,290
tôi sẽ giải thích trong slide tiếp theo.

150
00:10:21,290 --> 00:10:25,050
Ngoài ra, sử dụng SSL hoặc TLS,

151
00:10:25,050 --> 00:10:27,415
chúng tôi đang cố gắng duy trì hai thứ khác nhau.

152
00:10:27,415 --> 00:10:29,940
Trước tiên, chúng tôi đang cố gắng duy trì sự riêng tư của

153
00:10:29,940 --> 00:10:32,880
thông tin liên lạc giữa người gửi và người nhận để

154
00:10:32,880 --> 00:10:39,165
không có bên thứ ba độc hại nào có thể trích xuất tin nhắn từ tin nhắn được mã hóa.

155
00:10:39,165 --> 00:10:42,150
Thứ hai, chúng tôi cũng đang cố gắng để duy trì tính toàn vẹn,

156
00:10:42,150 --> 00:10:44,550
có nghĩa là khi người gửi gửi một tin nhắn, người

157
00:10:44,550 --> 00:10:50,025
nhận sẽ có thể yên tâm rằng tin nhắn đã không bị giả mạo.

158
00:10:50,025 --> 00:10:57,145
Vì vậy, cả an ninh và duy trì tính toàn vẹn là rất quan trọng trong trường hợp này.

159
00:10:57,145 --> 00:11:01,110
Vì vậy, cả quyền riêng tư và tính toàn vẹn phải được duy trì bởi

160
00:11:01,110 --> 00:11:04,200
giao thức truyền thông an toàn này mà chúng tôi xây dựng

161
00:11:04,200 --> 00:11:08,235
để trao đổi giữa người gửi và người nhận.

162
00:11:08,235 --> 00:11:13,865
Hãy nói ngắn gọn về cách SSL hoặc TLS thực sự hoạt động.

163
00:11:13,865 --> 00:11:22,585
Điều này được thực hiện thông qua một quá trình bắt tay mà tôi đã minh họa trong sơ đồ này ở đây.

164
00:11:22,585 --> 00:11:26,020
Khi một khách hàng muốn giao tiếp với máy chủ,

165
00:11:26,020 --> 00:11:28,920
khách hàng sẽ gửi một tin nhắn đến máy chủ,

166
00:11:28,920 --> 00:11:34,405
xác định rằng khách hàng muốn giao tiếp với máy chủ một cách an toàn.

167
00:11:34,405 --> 00:11:40,068
Tại thời điểm này, máy chủ sẽ gửi lại chứng chỉ cho khách hàng,

168
00:11:40,068 --> 00:11:42,105
trong đó có một khóa công khai,

169
00:11:42,105 --> 00:11:43,800
mà đã được chứng nhận bởi

170
00:11:43,800 --> 00:11:48,410
cơ quan chứng nhận là thuộc về máy chủ cụ thể đó.

171
00:11:48,410 --> 00:11:51,210
Vì vậy, theo cách đó, khi khách hàng nhận được

172
00:11:51,210 --> 00:11:56,325
khóa công cộng này cộng với chứng nhận của cơ quan chứng nhận,

173
00:11:56,325 --> 00:11:59,960
khách hàng sẽ có thể xác minh thông tin đăng nhập của máy chủ.

174
00:11:59,960 --> 00:12:03,510
Vì vậy, khách hàng cần phải thiết lập rằng nó thực sự đang nói chuyện với máy chủ,

175
00:12:03,510 --> 00:12:07,345
rằng nó đang có ý định giao tiếp với.

176
00:12:07,345 --> 00:12:09,040
Vì vậy, tại thời điểm này,

177
00:12:09,040 --> 00:12:11,788
khi khách hàng xác minh thông tin đăng nhập của máy chủ,

178
00:12:11,788 --> 00:12:17,110
khách hàng bây giờ có quyền truy cập vào khóa công khai của máy chủ.

179
00:12:17,110 --> 00:12:20,850
Một khi khách hàng được giữ khóa công khai của máy chủ,

180
00:12:20,850 --> 00:12:25,005
sau đó khách hàng sẽ tạo ra những gì được gọi là bí mật pre-master.

181
00:12:25,005 --> 00:12:28,560
Bí mật pre-master này là một cái gì đó mà cả máy khách và

182
00:12:28,560 --> 00:12:33,045
máy chủ sẽ sử dụng để tạo ra những gì được gọi là một khóa phiên.

183
00:12:33,045 --> 00:12:36,870
Vì vậy, khách hàng tạo ra một pre-master bí mật,

184
00:12:36,870 --> 00:12:41,880
khách hàng sau đó mã hóa bí mật đó bằng cách sử dụng khóa công khai của máy chủ,

185
00:12:41,880 --> 00:12:44,880
và sau đó gửi bí mật qua máy chủ.

186
00:12:44,880 --> 00:12:48,735
Bây giờ, hãy nhớ rằng một khi bí mật được mã hóa bằng cách sử dụng khóa công khai,

187
00:12:48,735 --> 00:12:51,690
không ai khác ngoài máy chủ sẽ có thể

188
00:12:51,690 --> 00:12:55,110
trích xuất thông tin từ tin nhắn được mã hóa.

189
00:12:55,110 --> 00:12:58,440
Vì vậy, khi máy chủ nhận được thông điệp được mã hóa này,

190
00:12:58,440 --> 00:13:03,300
máy chủ trích xuất bí mật pre-master từ thông điệp này.

191
00:13:03,300 --> 00:13:08,863
Bây giờ, cả máy khách và máy chủ đều có cùng một bí mật pre-master.

192
00:13:08,863 --> 00:13:12,720
Tại thời điểm này, cả máy khách và máy chủ sẽ sử dụng

193
00:13:12,720 --> 00:13:18,150
cùng một tập hợp các bước bắt đầu với bí mật của pre-master,

194
00:13:18,150 --> 00:13:20,902
và với cùng một tập hợp các giá trị,

195
00:13:20,902 --> 00:13:24,230
mà sẽ tạo ra một khóa gọi là khóa phiên.

196
00:13:24,230 --> 00:13:28,157
Bây giờ, khi khóa phiên được tạo ra cả ở phía khách hàng và phía máy chủ,

197
00:13:28,157 --> 00:13:30,630
nó sẽ là chính xác cùng một khóa phiên,

198
00:13:30,630 --> 00:13:36,565
bởi vì cả hai sẽ làm theo chính xác cùng một quá trình để tạo khóa phiên.

199
00:13:36,565 --> 00:13:37,950
Vì vậy, tại thời điểm này,

200
00:13:37,950 --> 00:13:39,540
cả khách hàng và máy chủ,

201
00:13:39,540 --> 00:13:44,670
bây giờ có một khóa bí mật giống nhau trên cả hai trang web.

202
00:13:44,670 --> 00:13:48,570
Vì vậy, tất cả các giao tiếp tiếp tiếp theo giữa máy chủ và máy khách,

203
00:13:48,570 --> 00:13:52,599
sau đó có thể tiến hành sử dụng mã hóa đối xứng.

204
00:13:52,599 --> 00:13:55,035
Vì vậy, khi khách hàng cần giao tiếp với máy chủ,

205
00:13:55,035 --> 00:13:59,640
khách hàng sẽ mã hóa dữ liệu bằng cách sử dụng khóa phiên bí mật,

206
00:13:59,640 --> 00:14:01,340
và sau đó gửi qua dữ liệu của họ.

207
00:14:01,340 --> 00:14:05,100
Tương tự như vậy, khi máy chủ cần giao tiếp với máy khách,

208
00:14:05,100 --> 00:14:07,440
máy chủ rõ ràng sẽ sử dụng

209
00:14:07,440 --> 00:14:12,365
cùng một khóa phiên để mã hóa dữ liệu và sau đó gửi nó qua cho máy khách.

210
00:14:12,365 --> 00:14:15,215
Bây giờ, kể từ khi khách hàng sở hữu cùng một khóa phiên,

211
00:14:15,215 --> 00:14:21,255
khách hàng sẽ có thể giải mã tin nhắn và giải nén tin nhắn không được mã hóa.

212
00:14:21,255 --> 00:14:23,453
Bằng cách sử dụng thủ tục này,

213
00:14:23,453 --> 00:14:30,099
khách hàng và máy chủ đã đảm bảo rằng giao tiếp giữa chúng là riêng tư.

214
00:14:30,099 --> 00:14:33,930
Ngoài ra, chúng tôi quản lý để đảm bảo rằng không có bên thứ ba độc hại nào có thể

215
00:14:33,930 --> 00:14:38,310
chặn tin nhắn và gây ra bất kỳ thay đổi nào đối với tin nhắn.

216
00:14:38,310 --> 00:14:41,125
Vì vậy, tính toàn vẹn của thông điệp cũng được duy trì,

217
00:14:41,125 --> 00:14:43,260
và sự riêng tư của giao tiếp

218
00:14:43,260 --> 00:14:46,108
giữa máy khách và máy chủ cũng được duy trì.

219
00:14:46,108 --> 00:14:50,970
Vì vậy, toàn bộ cuộc thảo luận mà tôi đã trình bày cho bạn

220
00:14:50,970 --> 00:14:52,635
trong vài slide cuối cùng, là tóm lại,

221
00:14:52,635 --> 00:14:58,210
cách giao tiếp an toàn giữa máy khách và máy chủ có thể được đảm bảo

222
00:14:58,210 --> 00:15:05,454
bằng cách sử dụng mật mã khóa đối xứng và mật mã khóa công khai.

223
00:15:05,454 --> 00:15:10,080
Bây giờ, rõ ràng, có rất nhiều điều hơn những gì tôi đã giải thích ở đây,

224
00:15:10,080 --> 00:15:14,490
nhưng sự hiểu biết về cách thức hoạt động của mật mã học là

225
00:15:14,490 --> 00:15:19,540
đủ để bạn hiểu được toàn bộ quá trình hoạt động như thế nào.

226
00:15:19,540 --> 00:15:22,860
Bây giờ, nếu bạn quan tâm đến việc tìm hiểu thêm về điều này,

227
00:15:22,860 --> 00:15:28,515
một nguồn tốt để tìm hiểu về Giao thức Mật mã là một cuốn sách rất hay của

228
00:15:28,515 --> 00:15:34,800
Jim Crozon Keith Ross gọi là Computer Networks.

229
00:15:34,800 --> 00:15:38,910
Cuốn sách này có một chương rất dễ hiểu

230
00:15:38,910 --> 00:15:44,995
về mật mã và bảo mật như áp dụng cho giao tiếp mạng.

231
00:15:44,995 --> 00:15:48,985
Bây giờ chúng ta đã thiết lập quá trình

232
00:15:48,985 --> 00:15:54,440
để có thể giao tiếp an toàn giữa một khách hàng và máy chủ, chúng

233
00:15:54,440 --> 00:16:00,640
ta hãy nhìn vào cách internet chính nó tận dụng điều này,

234
00:16:00,640 --> 00:16:05,320
để giao tiếp giữa một khách hàng và máy chủ sử dụng HTTP.

235
00:16:05,320 --> 00:16:09,950
Bây giờ, đây là nơi giao thức HTTPS xuất hiện trong bức tranh.

236
00:16:09,950 --> 00:16:13,915
Như bạn đã hiểu về internet,

237
00:16:13,915 --> 00:16:17,905
internet là một kiến trúc lớp,

238
00:16:17,905 --> 00:16:22,165
nơi mà IP và TCP tạo thành mạng,

239
00:16:22,165 --> 00:16:27,490
và lớp giao thông chạy trên đầu trang của mạng cơ bản.

240
00:16:27,490 --> 00:16:29,755
Bây giờ, trên đầu trang của lớp vận chuyển,

241
00:16:29,755 --> 00:16:35,800
bạn có lớp socket an toàn hoặc lớp bảo mật vận chuyển lớp lót như

242
00:16:35,800 --> 00:16:39,265
một lớp mỏng trên đầu trang của TCP

243
00:16:39,265 --> 00:16:43,095
đảm bảo giao tiếp an toàn giữa máy khách và máy chủ.

244
00:16:43,095 --> 00:16:45,492
Và trên đầu trang của nó HTTP có thể chạy.

245
00:16:45,492 --> 00:16:52,830
Vì vậy, HTTP về cơ bản liên quan đến HTTP cộng với việc sử dụng mã hóa,

246
00:16:52,830 --> 00:16:56,073
giải mã được hỗ trợ thông qua SSL và TLS.

247
00:16:56,073 --> 00:17:00,150
Rõ ràng, ngay cả đối với giao thức HTTPS,

248
00:17:00,150 --> 00:17:01,530
có rất nhiều chi tiết hơn.

249
00:17:01,530 --> 00:17:05,745
Nhưng từ quan điểm của việc thực hiện phía máy chủ,

250
00:17:05,745 --> 00:17:12,075
những gì chúng ta đã hiểu ở đây là đủ để chúng ta hiểu làm thế nào để

251
00:17:12,075 --> 00:17:19,120
cấu hình một máy chủ để sử dụng giao tiếp an toàn giữa máy khách và máy chủ.

252
00:17:19,120 --> 00:17:23,070
Bây giờ, tất nhiên câu hỏi đầu tiên mà sẽ đến với tâm trí của bạn là,

253
00:17:23,070 --> 00:17:25,800
rằng máy chủ cần một khóa công khai và một khóa riêng.

254
00:17:25,800 --> 00:17:27,360
Đối với một mật mã khóa công khai,

255
00:17:27,360 --> 00:17:29,330
làm thế nào để máy chủ tạo ra điều này?

256
00:17:29,330 --> 00:17:32,265
Nếu bạn đang chạy một máy chủ sản xuất thực sự trong

257
00:17:32,265 --> 00:17:36,792
môi trường của bạn và cung cấp dịch vụ cho người dùng để truy cập máy chủ của bạn,

258
00:17:36,792 --> 00:17:40,525
thì rõ ràng bạn cần phải trải qua quá trình chứng nhận.

259
00:17:40,525 --> 00:17:45,100
Đây là nơi bạn sẽ tiếp cận một cơ quan chứng nhận, ví dụ như các

260
00:17:45,100 --> 00:17:48,915
tập đoàn như VeriSign và Thawte Corporation

261
00:17:48,915 --> 00:17:53,630
là Cơ quan chứng nhận công cộng.

262
00:17:53,630 --> 00:17:55,987
Có một vài điều nữa trên thế giới.

263
00:17:55,987 --> 00:17:58,160
Vì vậy, bạn sẽ tiếp cận họ,

264
00:17:58,160 --> 00:18:03,960
và các cơ quan chứng nhận này sau đó sẽ xác thực thông tin đăng nhập của bạn,

265
00:18:03,960 --> 00:18:07,220
họ sẽ đảm bảo rằng bạn là người mà bạn tuyên bố là,

266
00:18:07,220 --> 00:18:09,285
và sau đó họ sẽ xác minh thông tin đăng nhập của bạn,

267
00:18:09,285 --> 00:18:10,680
và sau đó tại thời điểm đó,

268
00:18:10,680 --> 00:18:18,725
họ sẽ cấp cho bạn một khóa công khai và khóa riêng tư để sử dụng trên trang web máy chủ của bạn.

269
00:18:18,725 --> 00:18:21,705
Vì vậy, một khi họ phát hành khóa công khai và khóa riêng,

270
00:18:21,705 --> 00:18:27,010
khóa công khai sẽ được chứng nhận bởi Cơ quan chứng nhận,

271
00:18:27,010 --> 00:18:30,540
và sau đó khóa công khai cũng sẽ mang

272
00:18:30,540 --> 00:18:32,626
theo, ngoài ra, chứng chỉ.

273
00:18:32,626 --> 00:18:38,165
Vì vậy, đây là chứng chỉ mà bạn sẽ gửi đến trang web của khách hàng.

274
00:18:38,165 --> 00:18:43,935
Vì khách hàng có thể thiết lập

275
00:18:43,935 --> 00:18:48,446
tính xác thực của các cơ quan chứng nhận này,

276
00:18:48,446 --> 00:18:52,950
nếu bạn nhìn vào bất kỳ trình duyệt nào, bạn sẽ nhận thấy rằng hầu hết

277
00:18:52,950 --> 00:18:58,115
các trình duyệt sẽ có chứng chỉ cho tất cả các cơ quan chứng nhận được thiết lập

278
00:18:58,115 --> 00:18:59,715
đã được tích hợp vào chúng.

279
00:18:59,715 --> 00:19:03,685
Vì vậy, họ sẽ có thể thiết lập thông tin đăng nhập của bạn

280
00:19:03,685 --> 00:19:07,605
, hoặc đúng hơn, họ sẽ có thể thiết lập rằng khóa riêng thuộc về bạn,

281
00:19:07,605 --> 00:19:12,540
bằng cách lấy chứng chỉ của bạn và sau đó kiểm tra hoặc xác minh

282
00:19:12,540 --> 00:19:16,620
chứng chỉ

283
00:19:16,620 --> 00:19:20,955
của bạn biết rằng nó đã được ký bởi một trong những chứng nhận đã được thiết lập Các nhà chức trách.

284
00:19:20,955 --> 00:19:26,370
Sau quá trình này, khách hàng sẽ có thể thiết lập tính xác thực của bạn.

285
00:19:26,370 --> 00:19:27,870
Bây giờ, trong khóa học này,

286
00:19:27,870 --> 00:19:31,125
chúng tôi chỉ muốn hiểu cách thức hoạt động

287
00:19:31,125 --> 00:19:34,050
của mỗi HTTPS, và cũng muốn có một cách đơn giản để thiết

288
00:19:34,050 --> 00:19:38,460
lập máy chủ với một khóa công khai và khóa riêng.

289
00:19:38,460 --> 00:19:43,791
Vì chúng tôi đang làm điều này như là một bài tập để hiểu HTTPS,

290
00:19:43,791 --> 00:19:48,690
chúng tôi có thể sử dụng một công cụ gọi là SSL mở đã có sẵn trên

291
00:19:48,690 --> 00:19:55,375
máy tính của chúng tôi để tạo ra những gì được gọi là chứng chỉ tự ký.

292
00:19:55,375 --> 00:19:59,780
Các phím tự ký không được chấp nhận trong công việc bên ngoài.

293
00:19:59,780 --> 00:20:03,705
Nhưng vì chúng tôi biết rằng chúng tôi chỉ sử dụng nó cho mục đích thử nghiệm

294
00:20:08,685 --> 00:20:12,910
của chúng tôi, chúng tôi có thể sử dụng chứng chỉ tự ký, đơn giản để hiểu quá trình giao tiếp an toàn giữa máy khách và máy chủ.

295
00:20:12,910 --> 00:20:15,405
Vì vậy, làm thế nào để chúng ta sử dụng SSL mở?

296
00:20:15,405 --> 00:20:18,585
Cho đến nay bằng cách sử dụng SSL mở bạn có thể tạo Keys,

297
00:20:18,585 --> 00:20:22,680
sử dụng ba lệnh mà tôi cho bạn thấy ở đây.

298
00:20:22,680 --> 00:20:26,475
Bạn thực hiện ba lệnh này theo trình tự đó,

299
00:20:26,475 --> 00:20:30,020
như được chỉ định ở đây và điều đó sẽ giúp bạn tạo ra

300
00:20:30,020 --> 00:20:34,990
một khóa riêng tư và một chứng chỉ mà bạn có thể cung cấp từ

301
00:20:34,990 --> 00:20:38,910
máy chủ HTTPS của bạn cho khách hàng để tải về và

302
00:20:38,910 --> 00:20:44,555
do đó có được khóa công khai của bạn để giao tiếp an toàn.

303
00:20:44,555 --> 00:20:48,510
Vì vậy, đây là hoạt động chúng tôi sẽ làm trong bài tập của chúng tôi mà sau bài

304
00:20:48,510 --> 00:20:54,510
giảng này để thiết lập và phát hành dịch vụ DPS.Vì vậy, ba bước mà chúng tôi làm là,

305
00:20:54,510 --> 00:20:59,740
đầu tiên, chúng tôi sẽ tạo ra khóa riêng bằng cách sử dụng lệnh đầu tiên.

306
00:20:59,740 --> 00:21:07,980
Sau đó, sau đó chúng tôi sẽ tạo ra một cert.csr mà sau đó sẽ được sử dụng

307
00:21:07,980 --> 00:21:12,090
cho chúng tôi để tạo ra một chứng chỉ có

308
00:21:12,090 --> 00:21:16,720
thể được phân phối cho phía khách hàng bởi lệnh thứ ba được hiển thị ở đó.

309
00:21:16,720 --> 00:21:22,545
Vì vậy, các bước này sẽ cho phép bạn tạo ra một khóa riêng và

310
00:21:22,545 --> 00:21:30,590
cũng là một chứng chỉ tương ứng có thể được cấp cho khách hàng.

311
00:21:30,590 --> 00:21:34,094
Một lần nữa để nhấn mạnh, nếu bạn đang chạy một máy chủ sản xuất,

312
00:21:34,094 --> 00:21:38,610
sau đó bạn cần phải có được một khóa công khai, cặp khóa riêng,

313
00:21:38,610 --> 00:21:44,205
từ một trong các cơ quan cấp chứng nhận như VeriSign và tập đoàn Thawte.

314
00:21:44,205 --> 00:21:50,400
Làm thế nào để nút chính nó hoạt động trong việc giúp chúng tôi thiết lập HTTPS?

315
00:21:50,400 --> 00:21:54,900
Bây giờ đây là nơi tôi đang xem xét ngắn gọn các mã mà chúng tôi sẽ

316
00:21:54,900 --> 00:22:00,357
sử dụng trong bài tập sau để thiết lập các máy chủ của chúng tôi.

317
00:22:00,357 --> 00:22:07,910
Node chính nó có HTTPS như là một mô-đun lõi bên trong nút.

318
00:22:07,910 --> 00:22:11,815
Vì vậy, chúng tôi sẽ thiết lập HTTPS bằng cách yêu cầu mô-đun lõi này.

319
00:22:11,815 --> 00:22:15,410
Chúng tôi cũng sẽ sử dụng mô-đun lõi hệ thống tập tin vì

320
00:22:15,410 --> 00:22:20,760
khóa riêng và chứng chỉ mà chúng tôi tạo ra sẽ được lưu trữ ở phía máy chủ của chúng tôi,

321
00:22:20,760 --> 00:22:23,250
và chúng sẽ được yêu cầu bởi

322
00:22:23,250 --> 00:22:28,170
ứng dụng nhanh của bạn để thiết lập máy chủ an toàn của bạn.

323
00:22:28,170 --> 00:22:30,810
Vì vậy, ở đây chúng tôi sẽ sử dụng hệ thống tập tin với

324
00:22:30,810 --> 00:22:36,135
phương pháp ReadFileSync để đọc trong khóa riêng

325
00:22:36,135 --> 00:22:40,440
và chứng chỉ từ các tập tin mà chúng tôi

326
00:22:40,440 --> 00:22:45,380
tạo ra bằng cách sử dụng các bước mà chúng tôi đã thấy trong khe trước đó.

327
00:22:45,380 --> 00:22:48,780
Vì vậy, một khi hai giá trị này đã sẵn sàng,

328
00:22:48,780 --> 00:22:54,930
sau đó các tùy chọn cho máy chủ HTTPS của bạn được thiết lập và sau đó bạn có thể cấu hình

329
00:22:54,930 --> 00:23:02,225
máy chủ bảo mật của bạn để cung cấp giao tiếp dựa trên HTTPS từ trang web máy chủ.

330
00:23:02,225 --> 00:23:07,680
Bây giờ bạn đã hiểu nhanh về cách HTTPS hoạt động,

331
00:23:07,680 --> 00:23:12,120
và cách nó tận dụng việc sử dụng cả mật mã khóa công khai

332
00:23:12,120 --> 00:23:14,970
và mật mã khóa đối xứng để

333
00:23:14,970 --> 00:23:18,545
đảm bảo giao tiếp an toàn giữa máy khách và máy chủ.

334
00:23:18,545 --> 00:23:21,885
Hãy chuyển sang bài tập để thực sự cấu hình

335
00:23:21,885 --> 00:23:29,230
máy chủ nhanh của chúng tôi mà chúng tôi đã xây dựng cho đến nay để sử dụng giao thức HTTPS.