1
00:00:03,920 --> 00:00:06,615
En el módulo anterior,

2
00:00:06,615 --> 00:00:10,905
hemos visto acerca de la autenticación del usuario con mucho detalle.

3
00:00:10,905 --> 00:00:17,610
Hemos visto cómo el usuario envía sus credenciales a su servidor desde el lado del cliente,

4
00:00:17,610 --> 00:00:20,270
ya sea en el encabezado de

5
00:00:20,270 --> 00:00:24,870
su mensaje de solicitud o en el cuerpo del mensaje de solicitud y luego,

6
00:00:24,870 --> 00:00:26,460
cuando se autentican,

7
00:00:26,460 --> 00:00:31,680
entonces su cliente incluirá la cookie o el

8
00:00:31,680 --> 00:00:38,499
token en el encabezado del mensaje de solicitud que va del cliente al servidor.

9
00:00:38,499 --> 00:00:41,820
Estoy seguro de que algunos de ustedes estaban preocupados por

10
00:00:41,820 --> 00:00:47,010
el hecho de que nos estábamos comunicando en un canal inseguro,

11
00:00:47,010 --> 00:00:50,520
lo que significa que cualquiera sentado en el medio que pueda

12
00:00:50,520 --> 00:00:54,780
escuchar sus mensajes entre el cliente

13
00:00:54,780 --> 00:00:57,570
y el servidor sería fácilmente capaz de capturar

14
00:00:57,570 --> 00:01:03,195
las credenciales y luego hacerse pasar por el cliente genuino.

15
00:01:03,195 --> 00:01:04,815
Por supuesto, en ese punto,

16
00:01:04,815 --> 00:01:09,025
su énfasis estaba más en organizar la

17
00:01:09,025 --> 00:01:13,575
comunicación del cliente y el servidor con la autenticación del cliente en el lado del servidor.

18
00:01:13,575 --> 00:01:19,215
Pero cada vez que necesite usar

19
00:01:19,215 --> 00:01:21,945
la autenticación del usuario, primero, en forma de, por ejemplo,

20
00:01:21,945 --> 00:01:25,940
proporcionar las credenciales para autenticarse y, posteriormente,

21
00:01:25,940 --> 00:01:29,445
autenticarse mediante la inclusión de la cookie o

22
00:01:29,445 --> 00:01:33,840
el token en el encabezado del mensaje de solicitud,

23
00:01:33,840 --> 00:01:36,290
debe hacer esto a través de un canal seguro.

24
00:01:36,290 --> 00:01:39,890
Nunca debe comunicarse a través de un canal inseguro,

25
00:01:39,890 --> 00:01:44,160
lo que significa que no debe usar HTTP y luego incluir

26
00:01:44,160 --> 00:01:48,780
estas credenciales en el encabezado o el cuerpo de los mensajes de solicitud.

27
00:01:48,780 --> 00:01:56,455
En su lugar, debería utilizar una versión segura del protocolo HTTP o HTTPS.

28
00:01:56,455 --> 00:02:01,830
Vamos a hablar brevemente sobre HTTPS en esta conferencia.

29
00:02:01,830 --> 00:02:07,140
En el camino, les daré una introducción de cinco minutos a la criptografía y la seguridad.

30
00:02:07,140 --> 00:02:12,143
Obviamente, la criptografía y la seguridad es un tema muy importante por derecho propio.

31
00:02:12,143 --> 00:02:16,110
Solo voy a presentarte a lo esencial que necesitas

32
00:02:16,110 --> 00:02:21,820
entender para aprender cómo funciona HTTPS en realidad.

33
00:02:21,820 --> 00:02:29,430
Con este fondo, vamos a proceder a entender acerca de la criptografía y luego

34
00:02:29,430 --> 00:02:34,110
al protocolo HTTPS y cómo se configuraría un servidor para usar

35
00:02:34,110 --> 00:02:40,276
el protocolo HTTPS y luego el cliente para ponerse en contacto con el servidor usando el protocolo HTTPS,

36
00:02:40,276 --> 00:02:45,165
por lo tanto, la comunicación entre el cliente y el servidor puede ser se realiza de manera segura

37
00:02:45,165 --> 00:02:51,180
mediante el cifrado de los datos que se envían entre el cliente y el servidor.

38
00:02:51,180 --> 00:02:56,175
Cuando te aventuras en el campo de la criptografía y la seguridad,

39
00:02:56,175 --> 00:03:00,375
a menudo oirás a la gente hablar de la criptografía de claves simétricas.

40
00:03:00,375 --> 00:03:02,970
Ahora, ¿qué implica la criptografía?

41
00:03:02,970 --> 00:03:07,635
Si necesita enviar un mensaje a través de un canal a otro usuario,

42
00:03:07,635 --> 00:03:10,800
entonces querría poder cifrar el mensaje de

43
00:03:10,800 --> 00:03:14,310
tal manera que solo el receptor pueda

44
00:03:14,310 --> 00:03:16,570
descifrar el mensaje y obtener

45
00:03:16,570 --> 00:03:21,050
la información que está tratando de enviar al receptor.

46
00:03:21,050 --> 00:03:26,730
Así que tanto el remitente como el receptor deben entender en establecer entre

47
00:03:26,730 --> 00:03:32,930
los dos cómo este proceso de cifrado y cómo va a funcionar el descifrado.

48
00:03:32,930 --> 00:03:34,365
Para que esto funcione,

49
00:03:34,365 --> 00:03:41,265
cualquier cifrado y descifrado funciona basado en el intercambio de claves secretas.

50
00:03:41,265 --> 00:03:43,765
Por lo

51
00:03:43,765 --> 00:03:50,678
tanto, en la criptografía de claves simétricas, tanto el remitente como el receptor compartirán una clave secreta entre los dos sitios,

52
00:03:50,678 --> 00:03:55,165
y esta clave secreta es conocida solo por el remitente y el receptor.

53
00:03:55,165 --> 00:03:58,260
Entonces, cuando el remitente necesita enviar el mensaje,

54
00:03:58,260 --> 00:04:04,755
entonces el remitente cifrará este mensaje usando un algoritmo de criptografía,

55
00:04:04,755 --> 00:04:09,795
que usa la clave secreta como la otra entrada a este algoritmo.

56
00:04:09,795 --> 00:04:13,875
Y una vez que este mensaje se pasa a través de este algoritmo de criptografía,

57
00:04:13,875 --> 00:04:17,068
entonces se generará un mensaje cifrado.

58
00:04:17,068 --> 00:04:24,160
Ahora, este mensaje encriptado será enviado al canal a través del lado receptor.

59
00:04:24,160 --> 00:04:28,140
Si tiene un usuario malicioso de terceros

60
00:04:28,140 --> 00:04:32,450
sentado en el medio y escucha y captura este mensaje cifrado,

61
00:04:32,450 --> 00:04:34,740
le resultaría difícil descifrar

62
00:04:34,740 --> 00:04:38,580
este mensaje porque para descifrar un mensaje cifrado,

63
00:04:38,580 --> 00:04:40,645
todavía necesita la clave secreta.

64
00:04:40,645 --> 00:04:42,375
Ahora, en el lado receptor,

65
00:04:42,375 --> 00:04:44,856
cuando se recibe el mensaje cifrado,

66
00:04:44,856 --> 00:04:48,815
entonces el receptor se aplicará y un algoritmo de descifrado,

67
00:04:48,815 --> 00:04:50,715
que también toma como entrada,

68
00:04:50,715 --> 00:04:56,590
la misma clave secreta que se usó en el lado del remitente para cifrar el mensaje.

69
00:04:56,590 --> 00:05:00,585
Por lo tanto, al descifrar, el mensaje original será recuperado

70
00:05:00,585 --> 00:05:05,240
y puede ser procesado en el lado receptor.

71
00:05:05,240 --> 00:05:11,260
Ahora, si un tercero malicioso quiere descifrar este mensaje cifrado,

72
00:05:11,260 --> 00:05:14,280
se enfrentará a una batalla cuesta arriba porque

73
00:05:14,280 --> 00:05:18,240
el proceso de cifrado usando la clave secreta girará el mensaje y, a

74
00:05:18,240 --> 00:05:19,590
su vez, puede cifrar el mensaje.

75
00:05:19,590 --> 00:05:21,830
Sin poseer la clave

76
00:05:21,830 --> 00:05:26,760
secreta, será casi imposible descifrar el mensaje cifrado.

77
00:05:26,760 --> 00:05:30,200
Bueno, eso es estiramiento llegar un poco lejos.

78
00:05:30,200 --> 00:05:35,490
Sería excesivamente difícil descifrar el mensaje encriptado.

79
00:05:35,490 --> 00:05:39,210
Si usa técnicas de fuerza bruta, eventualmente,

80
00:05:39,210 --> 00:05:43,245
terminará descifrando el mensaje cifrado.

81
00:05:43,245 --> 00:05:48,880
Pero va a tomar tanto tiempo y requerir mucha potencia de cálculo.

82
00:05:48,880 --> 00:05:53,175
No valdrá la pena el esfuerzo para

83
00:05:53,175 --> 00:05:58,580
que el usuario malicioso de terceros intente decodificar el mensaje cifrado.

84
00:05:58,580 --> 00:06:01,770
Así que esencialmente estás haciendo que sea realmente difícil para alguien

85
00:06:01,770 --> 00:06:05,355
descifrar el mensaje si no poseen la clave secreta.

86
00:06:05,355 --> 00:06:09,480
Ahora, dado que la clave secreta es conocida sólo por el remitente y el receptor, las

87
00:06:09,480 --> 00:06:12,390
dos partes finales, el remitente y el receptor,

88
00:06:12,390 --> 00:06:16,335
pueden comunicarse con la seguridad de

89
00:06:16,335 --> 00:06:18,780
que en el mensaje cifrado desde

90
00:06:18,780 --> 00:06:22,240
el lado del remitente sólo puede ser descifrado por el lado receptor.

91
00:06:22,240 --> 00:06:25,485
Así es como funciona la criptografía de claves simétricas.

92
00:06:25,485 --> 00:06:30,330
El hecho de que tenga la misma clave secreta que se comparte entre

93
00:06:30,330 --> 00:06:32,400
el remitente y el receptor significa que

94
00:06:32,400 --> 00:06:35,420
la inclusión del proceso de descifrado utilizó la misma clave secreta,

95
00:06:35,420 --> 00:06:38,911
por lo tanto, criptografía de clave simétrica.

96
00:06:38,911 --> 00:06:41,395
Por supuesto, con la criptografía de clave simétrica,

97
00:06:41,395 --> 00:06:44,440
uno de los problemas es que tanto el remitente como

98
00:06:44,440 --> 00:06:48,805
el receptor necesitan tener acceso a la misma clave secreta.

99
00:06:48,805 --> 00:06:53,940
Ahora, si el remitente y el receptor se están comunicando a través de un canal inseguro,

100
00:06:53,940 --> 00:06:58,230
va a ser difícil para ambas partes llegar a un entendimiento

101
00:06:58,230 --> 00:07:03,510
sobre la misma clave secreta sin revelarla a otros.

102
00:07:03,510 --> 00:07:09,315
Así que aquí es donde otro algoritmo llamado criptografía de clave pública es muy útil.

103
00:07:09,315 --> 00:07:12,195
¿ Cómo funciona la criptografía de clave pública?

104
00:07:12,195 --> 00:07:14,610
Ahora, en criptografía de clave pública,

105
00:07:14,610 --> 00:07:17,595
la idea es que tienes dos claves diferentes.

106
00:07:17,595 --> 00:07:21,085
Tiene una clave pública y una clave privada.

107
00:07:21,085 --> 00:07:26,520
Ahora, la clave pública se puede distribuir ampliamente a cualquier persona que desee.

108
00:07:26,520 --> 00:07:29,335
Así que cuando alguien quiere enviarte un mensaje,

109
00:07:29,335 --> 00:07:34,350
va a usar tu clave pública para cifrar el mensaje.

110
00:07:34,350 --> 00:07:39,795
Por lo tanto, si un remitente aquí quiere enviar el mensaje al receptor,

111
00:07:39,795 --> 00:07:44,385
entonces el remitente usará la clave pública del receptor para

112
00:07:44,385 --> 00:07:50,240
cifrar el mensaje en el lado del remitente usando el algoritmo de cifrado.

113
00:07:50,240 --> 00:07:53,100
Ahora, una vez que el mensaje cifrado se envía a

114
00:07:53,100 --> 00:07:56,640
través del canal inseguro al lado

115
00:07:56,640 --> 00:07:59,625
del receptor, el receptor utilizará la clave privada

116
00:07:59,625 --> 00:08:03,210
que solo el receptor conoce para descifrar.

117
00:08:03,210 --> 00:08:06,645
Ahora, para que la criptografía de clave pública funcione como vimos,

118
00:08:06,645 --> 00:08:10,760
la clave pública se puede distribuir ampliamente sin ninguna preocupación.

119
00:08:10,760 --> 00:08:14,150
Pero dado que la clave privada solo es conocida por el lado

120
00:08:14,150 --> 00:08:19,325
del receptor, solo el receptor podrá descifrar el mensaje y, de

121
00:08:19,325 --> 00:08:23,070
nuevo, a un intruso de terceros que capte

122
00:08:23,070 --> 00:08:28,410
este mensaje cifrado le resultará excesivamente difícil descifrar el mensaje.

123
00:08:28,410 --> 00:08:29,670
Ahora, por supuesto, en la criptografía de clave

124
00:08:29,670 --> 00:08:33,385
pública, la clave pública y la privada son dos claves diferentes.

125
00:08:33,385 --> 00:08:36,900
Ahora, entonces su siguiente pregunta obvia sería por qué

126
00:08:36,900 --> 00:08:40,686
no simplemente usar criptografía de clave pública para el cifrado.

127
00:08:40,686 --> 00:08:44,445
El problema es que usar la criptografía de clave pública

128
00:08:44,445 --> 00:08:48,383
para el cifrado y el descifrado es un proceso costoso,

129
00:08:48,383 --> 00:08:54,890
por lo que no usamos la criptografía de clave pública para toda su comunicación.

130
00:08:54,890 --> 00:09:00,600
En cambio, la criptografía de clave pública se usará

131
00:09:00,600 --> 00:09:04,290
principalmente para que el remitente y el receptor

132
00:09:04,290 --> 00:09:08,270
acuerden la clave secreta común que ambos van a usar.

133
00:09:08,270 --> 00:09:12,210
Más adelante veremos cómo se

134
00:09:12,210 --> 00:09:16,380
puede utilizar la criptografía de clave pública para establecer la clave secreta común

135
00:09:16,380 --> 00:09:19,845
entre el remitente y el receptor y luego

136
00:09:19,845 --> 00:09:24,686
usar la criptografía de clave simétrica para una comunicación adicional.

137
00:09:24,686 --> 00:09:29,790
Un protocolo que utiliza este enfoque es la

138
00:09:29,790 --> 00:09:35,088
capa de sockets seguros y también los protocolos de seguridad de la capa de transporte,

139
00:09:35,088 --> 00:09:37,365
SSL y TLS en resumen.

140
00:09:37,365 --> 00:09:40,395
Muchas veces al leer documentación, es

141
00:09:40,395 --> 00:09:44,020
posible que escuche hablar de SSL y TLS.

142
00:09:44,020 --> 00:09:48,660
Estos protocolos criptográficos permiten una comunicación segura entre

143
00:09:48,660 --> 00:09:55,110
el remitente y el receptor a través de una red insegura como Internet.

144
00:09:55,110 --> 00:10:03,150
El remitente y el receptor se comunicarán a través de Internet utilizando mensajes cifrados,

145
00:10:03,150 --> 00:10:06,410
que solo el remitente y el receptor pueden descifrar.

146
00:10:06,410 --> 00:10:09,266
Y este enfoque, ya sea SSL o TLS,

147
00:10:09,266 --> 00:10:16,220
utiliza una combinación de criptografía de clave pública junto con criptografía de clave simétrica.

148
00:10:16,220 --> 00:10:18,905
Su proceso exacto de hacer esto,

149
00:10:18,905 --> 00:10:21,290
lo explicaré en la siguiente diapositiva.

150
00:10:21,290 --> 00:10:25,050
Además, usando SSL o TLS,

151
00:10:25,050 --> 00:10:27,415
estamos tratando de mantener dos cosas diferentes.

152
00:10:27,415 --> 00:10:29,940
En primer lugar, estamos tratando de mantener la privacidad de

153
00:10:29,940 --> 00:10:32,880
la comunicación entre el remitente y el receptor para que

154
00:10:32,880 --> 00:10:39,165
ningún tercero malintencionado pueda extraer el mensaje del mensaje cifrado.

155
00:10:39,165 --> 00:10:42,150
En segundo lugar, también estamos tratando de mantener la integridad,

156
00:10:42,150 --> 00:10:44,550
lo que significa que cuando el remitente envía un mensaje,

157
00:10:44,550 --> 00:10:50,025
el receptor podrá estar seguro de que el mensaje no ha sido manipulado.

158
00:10:50,025 --> 00:10:57,145
Así que tanto la seguridad como el mantenimiento de la integridad son muy importantes en este caso.

159
00:10:57,145 --> 00:11:01,110
Así que tanto la privacidad como la integridad tienen que ser mantenidas por

160
00:11:01,110 --> 00:11:04,200
este protocolo de comunicación seguro que construimos

161
00:11:04,200 --> 00:11:08,235
para el intercambio entre el remitente y el receptor.

162
00:11:08,235 --> 00:11:13,865
Vamos a hablar brevemente sobre cómo realmente funcionan SSL o TLS.

163
00:11:13,865 --> 00:11:22,585
Esto se hace a través de un proceso de apretón de manos que he ilustrado en este diagrama aquí.

164
00:11:22,585 --> 00:11:26,020
Cuando un cliente desea comunicarse con el servidor,

165
00:11:26,020 --> 00:11:28,920
el cliente envía un mensaje al servidor,

166
00:11:28,920 --> 00:11:34,405
especificando que el cliente desea comunicarse con el servidor de forma segura.

167
00:11:34,405 --> 00:11:40,068
En este punto, el servidor devolverá el certificado al cliente,

168
00:11:40,068 --> 00:11:42,105
que contiene una clave pública,

169
00:11:42,105 --> 00:11:43,800
que ha sido certificada por

170
00:11:43,800 --> 00:11:48,410
la entidad emisora de certificados como perteneciente a ese servidor en particular. De esta

171
00:11:48,410 --> 00:11:51,210
manera, cuando el cliente reciba

172
00:11:51,210 --> 00:11:56,325
esta clave pública más la certificación por parte de la entidad emisora de certificados,

173
00:11:56,325 --> 00:11:59,960
el cliente podrá verificar las credenciales del servidor.

174
00:11:59,960 --> 00:12:03,510
Por lo tanto, el cliente necesita establecer que realmente está hablando con el servidor,

175
00:12:03,510 --> 00:12:07,345
con el que tiene la intención de comunicarse.

176
00:12:07,345 --> 00:12:09,040
Entonces, en este punto,

177
00:12:09,040 --> 00:12:11,788
cuando el cliente verifica las credenciales del servidor,

178
00:12:11,788 --> 00:12:17,110
el cliente ahora tiene acceso a la clave pública del servidor.

179
00:12:17,110 --> 00:12:20,850
Una vez que el cliente se apodera de la clave pública del servidor,

180
00:12:20,850 --> 00:12:25,005
entonces el cliente generará lo que se denomina secreto pre-master.

181
00:12:25,005 --> 00:12:28,560
Este secreto pre-master es algo que tanto el cliente

182
00:12:28,560 --> 00:12:33,045
como el servidor usarán para generar lo que se denomina clave de sesión.

183
00:12:33,045 --> 00:12:36,870
Por lo tanto, el cliente genera un secreto pre-master,

184
00:12:36,870 --> 00:12:41,880
el cliente luego cifra ese secreto usando la clave pública del servidor

185
00:12:41,880 --> 00:12:44,880
y luego envía el secreto al servidor.

186
00:12:44,880 --> 00:12:48,735
Ahora, recuerde que una vez que el secreto se cifra usando la clave pública,

187
00:12:48,735 --> 00:12:51,690
nadie más que el servidor podrá

188
00:12:51,690 --> 00:12:55,110
extraer la información del mensaje cifrado.

189
00:12:55,110 --> 00:12:58,440
Por lo tanto, cuando el servidor recibe este mensaje cifrado,

190
00:12:58,440 --> 00:13:03,300
el servidor extrae el secreto pre-master de este mensaje.

191
00:13:03,300 --> 00:13:08,863
Ahora, tanto el cliente como el servidor poseen el mismo secreto pre-master.

192
00:13:08,863 --> 00:13:12,720
En este punto, tanto el cliente como el servidor usarán

193
00:13:12,720 --> 00:13:18,150
el mismo conjunto de pasos comenzando con el secreto del pre-maestro,

194
00:13:18,150 --> 00:13:20,902
y con el mismo conjunto de valores,

195
00:13:20,902 --> 00:13:24,230
que generará una clave llamada como clave de sesión.

196
00:13:24,230 --> 00:13:28,157
Ahora, cuando la clave de sesión se genera tanto en el lado de los clientes como en el lado del servidor,

197
00:13:28,157 --> 00:13:30,630
será exactamente la misma clave de sesión,

198
00:13:30,630 --> 00:13:36,565
porque ambas seguirán exactamente el mismo proceso para generar la clave de sesión.

199
00:13:36,565 --> 00:13:37,950
Entonces, en este punto,

200
00:13:37,950 --> 00:13:39,540
tanto el cliente como el servidor,

201
00:13:39,540 --> 00:13:44,670
ahora poseen una clave secreta que es la misma en ambos sitios.

202
00:13:44,670 --> 00:13:48,570
Por lo tanto, toda comunicación subsiguiente entre el servidor y el cliente,

203
00:13:48,570 --> 00:13:52,599
puede continuar utilizando cifrado simétrico.

204
00:13:52,599 --> 00:13:55,035
Por lo tanto, cuando el cliente necesita comunicarse con el servidor,

205
00:13:55,035 --> 00:13:59,640
el cliente cifrará los datos usando la clave de sesión secreta

206
00:13:59,640 --> 00:14:01,340
y luego enviará sus datos.

207
00:14:01,340 --> 00:14:05,100
Del mismo modo, cuando el servidor necesita comunicarse con el cliente,

208
00:14:05,100 --> 00:14:07,440
el servidor obviamente usará

209
00:14:07,440 --> 00:14:12,365
la misma clave de sesión para cifrar los datos y luego enviarlos al cliente.

210
00:14:12,365 --> 00:14:15,215
Ahora, dado que el cliente posee la misma clave de sesión,

211
00:14:15,215 --> 00:14:21,255
el cliente podrá descifrar el mensaje y extraer el mensaje no cifrado.

212
00:14:21,255 --> 00:14:23,453
Mediante este procedimiento,

213
00:14:23,453 --> 00:14:30,099
el cliente y el servidor han asegurado que la comunicación entre ellos sea privada.

214
00:14:30,099 --> 00:14:33,930
Además, nos las arreglamos para asegurarnos de que ningún tercero malintencionado pueda

215
00:14:33,930 --> 00:14:38,310
interceptar el mensaje y provocar cambios en el mensaje.

216
00:14:38,310 --> 00:14:41,125
Por lo tanto, la integridad del mensaje también se mantiene,

217
00:14:41,125 --> 00:14:43,260
y la privacidad de la comunicación entre

218
00:14:43,260 --> 00:14:46,108
el cliente y el servidor también se mantiene.

219
00:14:46,108 --> 00:14:50,970
Por lo tanto, toda esta discusión que les he presentado en las últimas diapositivas,

220
00:14:50,970 --> 00:14:52,635
es en pocas palabras,

221
00:14:52,635 --> 00:14:58,210
cómo la comunicación segura entre el cliente y el servidor se puede garantizar

222
00:14:58,210 --> 00:15:05,454
usando la criptografía de clave simétrica y la criptografía de clave pública.

223
00:15:05,454 --> 00:15:10,080
Ahora, obviamente, hay mucho más en esto de lo que he explicado aquí,

224
00:15:10,080 --> 00:15:14,490
pero esta comprensión de cómo funciona la criptografía es

225
00:15:14,490 --> 00:15:19,540
suficiente para que entiendas cómo funciona todo el proceso.

226
00:15:19,540 --> 00:15:22,860
Ahora, si usted está interesado en aprender más sobre esto,

227
00:15:22,860 --> 00:15:28,515
una buena fuente para aprender acerca de los Protocolos de Criptografía es un muy buen libro de

228
00:15:28,515 --> 00:15:34,800
Jim Crozon Keith Ross llamado Computer Networks.

229
00:15:34,800 --> 00:15:38,910
Este libro tiene un capítulo muy fácil de entender

230
00:15:38,910 --> 00:15:44,995
sobre criptografía y seguridad como se aplica a la comunicación de red.

231
00:15:44,995 --> 00:15:48,985
Ahora que hemos establecido el proceso

232
00:15:48,985 --> 00:15:54,440
para poder comunicarse de forma segura entre un cliente y un servidor,

233
00:15:54,440 --> 00:16:00,640
veamos cómo el propio Internet aprovecha esto,

234
00:16:00,640 --> 00:16:05,320
para la comunicación entre un cliente y el servidor usando HTTP.

235
00:16:05,320 --> 00:16:09,950
Ahora, aquí es donde el protocolo HTTPS entra en la imagen.

236
00:16:09,950 --> 00:16:13,915
Como usted ya entiende acerca de Internet,

237
00:16:13,915 --> 00:16:17,905
Internet es una arquitectura en capas,

238
00:16:17,905 --> 00:16:22,165
donde la IP y el TCP forman la red,

239
00:16:22,165 --> 00:16:27,490
y la capa de transporte que se ejecuta en la parte superior de la red subyacente.

240
00:16:27,490 --> 00:16:29,755
Ahora, encima de la capa de transporte,

241
00:16:29,755 --> 00:16:35,800
tiene la capa de socket seguro o el forro de seguridad de la capa de transporte como

242
00:16:35,800 --> 00:16:39,265
una capa delgada en la parte superior de TCP que

243
00:16:39,265 --> 00:16:43,095
garantiza una comunicación segura entre el cliente y el servidor.

244
00:16:43,095 --> 00:16:45,492
Y encima de esto HTTP puede ejecutarse.

245
00:16:45,492 --> 00:16:52,830
Por lo tanto, HTTP implica esencialmente HTTP más el uso de cifrado,

246
00:16:52,830 --> 00:16:56,073
descifrado soportado a través de SSL y TLS.

247
00:16:56,073 --> 00:17:00,150
Obviamente, incluso para el protocolo HTTPS,

248
00:17:00,150 --> 00:17:01,530
hay muchos más detalles.

249
00:17:01,530 --> 00:17:05,745
Pero desde la perspectiva de la implementación del lado del servidor,

250
00:17:05,745 --> 00:17:12,075
lo que hemos entendido aquí es suficiente para entender cómo

251
00:17:12,075 --> 00:17:19,120
configurar un servidor para utilizar la comunicación segura entre el cliente y el servidor.

252
00:17:19,120 --> 00:17:23,070
Ahora, por supuesto, la primera pregunta que se le ocurrirá es,

253
00:17:23,070 --> 00:17:25,800
que el servidor necesita una clave pública y una clave privada.

254
00:17:25,800 --> 00:17:27,360
Para una criptografía de clave pública,

255
00:17:27,360 --> 00:17:29,330
¿cómo genera esto el servidor?

256
00:17:29,330 --> 00:17:32,265
Si está ejecutando un servidor de producción real en

257
00:17:32,265 --> 00:17:36,792
su entorno y proporciona servicio para que los usuarios accedan a su servidor,

258
00:17:36,792 --> 00:17:40,525
entonces obviamente necesita pasar por el proceso de certificación.

259
00:17:40,525 --> 00:17:45,100
Aquí es donde se acercará a una entidad emisora de certificados, por ejemplo,

260
00:17:45,100 --> 00:17:48,915
corporaciones como VeriSign y Thawte Corporation

261
00:17:48,915 --> 00:17:53,630
que son Autoridades Públicas de Certificación.

262
00:17:53,630 --> 00:17:55,987
Hay algunos más en todo el mundo.

263
00:17:55,987 --> 00:17:58,160
Por lo tanto, se acercará a ellos,

264
00:17:58,160 --> 00:18:03,960
y estas Autoridades de Certificación entonces

265
00:18:03,960 --> 00:18:07,220
autenticarán sus credenciales, se asegurarán de que usted es quien afirma ser,

266
00:18:07,220 --> 00:18:09,285
y luego verificarán sus credenciales,

267
00:18:09,285 --> 00:18:10,680
y luego en ese punto,

268
00:18:10,680 --> 00:18:18,725
le emitirán una clave pública y una clave privada para su uso en el sitio del servidor.

269
00:18:18,725 --> 00:18:21,705
Por lo tanto, una vez que emitan la clave

270
00:18:21,705 --> 00:18:27,010
pública y la clave privada, la clave pública será certificada por la Autoridad de Certificación,

271
00:18:27,010 --> 00:18:30,540
y luego la clave pública también llevará,

272
00:18:30,540 --> 00:18:32,626
además, el certificado.

273
00:18:32,626 --> 00:18:38,165
Por lo tanto, este es el certificado que enviará al sitio del cliente.

274
00:18:38,165 --> 00:18:43,935
Dado que los clientes pueden establecer

275
00:18:43,935 --> 00:18:48,446
la autenticidad de estas Autoridades de Certificación,

276
00:18:48,446 --> 00:18:52,950
si mira cualquier navegador, notará que la mayoría de los navegadores tendrán

277
00:18:52,950 --> 00:18:58,115
los certificados de todas estas Autoridades de Certificación establecidas

278
00:18:58,115 --> 00:18:59,715
ya incorporados en ellos.

279
00:18:59,715 --> 00:19:03,685
Por lo tanto, podrán establecer sus credenciales,

280
00:19:03,685 --> 00:19:07,605
o mejor dicho, podrán establecer que la clave privada le pertenece,

281
00:19:07,605 --> 00:19:12,540
obteniendo su certificado y luego comprobando o verificando

282
00:19:12,540 --> 00:19:16,620
su certificado sabiendo que ha sido firmado por una

283
00:19:16,620 --> 00:19:20,955
de estas certificaciones establecidas Autoridades.

284
00:19:20,955 --> 00:19:26,370
Tras este proceso, el cliente podrá establecer su autenticidad.

285
00:19:26,370 --> 00:19:27,870
Ahora, en este curso,

286
00:19:27,870 --> 00:19:31,125
solo queremos entender cómo funciona cada HTTPS,

287
00:19:31,125 --> 00:19:34,050
y también queremos tener una forma sencilla de

288
00:19:34,050 --> 00:19:38,460
configurar el servidor con una clave pública y la clave privada.

289
00:19:38,460 --> 00:19:43,791
Dado que estamos haciendo esto como un ejercicio para entender HTTPS,

290
00:19:43,791 --> 00:19:48,690
podemos utilizar una herramienta llamada SSL abierta que ya está disponible en

291
00:19:48,690 --> 00:19:55,375
nuestros equipos para generar lo que se denomina certificado autofirmado.

292
00:19:55,375 --> 00:19:59,780
Las claves autofirmadas no son aceptables en el trabajo externo.

293
00:19:59,780 --> 00:20:03,705
Pero como sabemos que lo estamos usando solo para nuestros fines de prueba,

294
00:20:03,705 --> 00:20:06,300
podemos usar certificados autofirmados,

295
00:20:06,300 --> 00:20:08,685
simplemente para entender el proceso

296
00:20:08,685 --> 00:20:12,910
de comunicación segura entre el cliente y el servidor.

297
00:20:12,910 --> 00:20:15,405
Entonces, ¿cómo usamos SSL abierto?

298
00:20:15,405 --> 00:20:18,585
Hasta ahora usando SSL abierto puedes generar claves,

299
00:20:18,585 --> 00:20:22,680
usando tres comandos que te muestro aquí.

300
00:20:22,680 --> 00:20:26,475
Ejecuta estos tres comandos en esa secuencia,

301
00:20:26,475 --> 00:20:30,020
como se especifica aquí y que le ayudará a generar

302
00:20:30,020 --> 00:20:34,990
una clave privada y un certificado que puede poner a disposición desde

303
00:20:34,990 --> 00:20:38,910
el servidor HTTPS para que los clientes descarguen y

304
00:20:38,910 --> 00:20:44,555
así obtener su clave pública para una comunicación segura.

305
00:20:44,555 --> 00:20:48,510
Así que esta es la operación que vamos a hacer en nuestro ejercicio que sigue

306
00:20:48,510 --> 00:20:54,510
a esta conferencia para establecer y emitir el servicio DPS. Así que los tres pasos que hacemos es

307
00:20:54,510 --> 00:20:59,740
, primero, generaremos la clave privada usando el primer comando.

308
00:20:59,740 --> 00:21:07,980
Después de eso generaremos un cert.csr que luego será utilizado

309
00:21:07,980 --> 00:21:12,090
para generar un certificado que

310
00:21:12,090 --> 00:21:16,720
puede ser distribuido al lado del cliente por el tercer comando que se muestra allí.

311
00:21:16,720 --> 00:21:22,545
Por lo tanto, estos pasos le permitirán generar una clave privada y

312
00:21:22,545 --> 00:21:30,590
también un certificado correspondiente que se puede emitir al cliente.

313
00:21:30,590 --> 00:21:34,094
Una vez más, para enfatizar, si está ejecutando un servidor de producción,

314
00:21:34,094 --> 00:21:38,610
entonces necesita obtener una clave pública, un par de claves privadas,

315
00:21:38,610 --> 00:21:44,205
de una de las Autoridades de Certificación como VeriSign y Thawte Corporation.

316
00:21:44,205 --> 00:21:50,400
¿ Cómo funciona el nodo en sí mismo para ayudarnos a configurar el HTTPS?

317
00:21:50,400 --> 00:21:54,900
Ahora es aquí donde estoy revisando brevemente el código que

318
00:21:54,900 --> 00:22:00,357
usaremos en el ejercicio que sigue para configurar nuestros servidores. El

319
00:22:00,357 --> 00:22:07,910
nodo en sí tiene el HTTPS como un módulo central dentro del nodo.

320
00:22:07,910 --> 00:22:11,815
Por lo tanto, configuraremos HTTPS requiriendo este módulo central.

321
00:22:11,815 --> 00:22:15,410
También usaremos el módulo principal del sistema de archivos porque

322
00:22:15,410 --> 00:22:20,760
la clave privada y el certificado que generamos se almacenarán en nuestro lado del servidor,

323
00:22:20,760 --> 00:22:23,250
y serán requeridos por

324
00:22:23,250 --> 00:22:28,170
su aplicación express para configurar su servidor seguro.

325
00:22:28,170 --> 00:22:30,810
Así que aquí vamos a utilizar el sistema de archivos con

326
00:22:30,810 --> 00:22:36,135
el método ReadFileSync para leer en la clave privada

327
00:22:36,135 --> 00:22:40,440
y el certificado de los archivos que

328
00:22:40,440 --> 00:22:45,380
generamos utilizando los pasos que hemos visto en la ranura anterior.

329
00:22:45,380 --> 00:22:48,780
Por lo tanto, una vez que estos dos valores estén listos,

330
00:22:48,780 --> 00:22:54,930
se configuran las opciones para su servidor HTTPS y luego puede configurar

331
00:22:54,930 --> 00:23:02,225
su servidor seguro para proporcionar comunicación basada en HTTPS desde el sitio del servidor.

332
00:23:02,225 --> 00:23:07,680
Ahora que tiene una comprensión rápida de cómo funciona su HTTPS

333
00:23:07,680 --> 00:23:12,120
y cómo aprovecha el uso de criptografía de clave pública

334
00:23:12,120 --> 00:23:14,970
y criptografía de clave simétrica para

335
00:23:14,970 --> 00:23:18,545
garantizar una comunicación segura entre el cliente y el servidor.

336
00:23:18,545 --> 00:23:21,885
Pasemos al ejercicio para configurar realmente

337
00:23:21,885 --> 00:23:29,230
nuestro servidor express que hemos estado construyendo hasta ahora para usar el protocolo HTTPS.