SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
Integración de Latch en Mosquito MQTT Broker
1. 	 ¿Qué	es	MQTT?	
MQTT	(Message	Queuing	Telemetry	Transport)	es	un	protocolo	M2M	(machine-
to-machine)	ligero	de	mensajes	que	corre	sobre	el	protocolo	TCP/IP.	Aunque	se	
originó	en	el	seno	de	IBM,	desde	2013	es	gestionado	por	el	consorcio	sin	ánimo	
de	lucro	OASIS.	Su	versión	3.1.1	ha	sido	recogido	bajo	el	estándar	internacional	
ISO/IEC	20922:2016.	
	
MQTT	 está	 	 basado	 en	 la	 publicación/subscripción	 de	 mensajes.	 Este	
funcionamiento	requiere	el	uso	de	un	bróker	de	mensajes,	que	es	el	encargado	
de		la	distribución	de	los	mensajes	a	los	diferentes	clientes	basándose	en	el	tema	
(topic)	del	mismo.	Actualmente,	MQTT	es	el	protocolo	de	conectividad	para	los	
dispositivos	IoT	con	mayor	difusión.	
	
Los	 brokers	 exponen	 una	 interface	 de	 conexión	 TCP/IP,	 generalmente	 en	 el	
puerto	tcp	1883,	el	cual	ha	sido	registrado	por	el	IANA	para	el	protocolo	MQTT.	
	
Los	clientes	subscriptores,	se	conectan	a	ese	puerto	indicando	el	topic	al	que	se	
subscriben	y	permanecen	a	la	espera	de	que	el	broker	les	mande	los	mensajes.		
	
Los	 clientes	 publicadores,	 publican	 el	 mensaje	 con	 el	 topic	 que	 especifiquen,	
conectándose	al	broker	y	enviándole	el	mensaje.		
	
Tanto	los	clientes	publicadores	como	subscriptores	son	conocidos	como	agentes	
(publish	agent/subscribe	agent);	por	tanto,	un	agente	que	publica	puede	ser	un	
sensor	de	luz,	y	un	agente	que	subscribe	puede	ser	una	App	de	nuestro	móvil.	El	
bróker	revisará	el	topic	del	mensaje	y	lo	reenviará	hacia	los	agentes	subscritos	a	
él.
Integración de Latch en Mosquito MQTT Broker
Existen	diferentes	implementaciones	de	brokers	MQTT,	siendo	la	más	difundida	
“Mosquitto”,	gracias	a	su	licencia	Open	Source	(EPL/EDL).	
	
1.1	Jerarquías	Publish/Subscribe	
La	 técnica	 publish/subscribe	 que	 usa	 MQTT,	 utiliza	 jerarquías	 dentro	 de	 los	
topics.	 Las	 jerarquías	 quedan	 establecidas	 mediantes	 el	 carácter	 “/”.	 	 Así	
podemos	tener	el	topic:	casa/piso1/habitacion1.	Este	topic	generará	tres	ramas:	
casa,	casa/piso1,	casa/piso1/habitacion1.		
	
Los	 agentes	 que	 deseen	 recibir	 un	 mensaje	 publicado	 en	 este	 topic,	 podrían	
subscribirse	 a	 cualquiera	 de	 las	 tres	 ramas.	 Para	 poder	 recibir	 el	 mensaje	
estando	 subscrito	 a	 una	 de	 las	 dos	 primeras	 ramas,	 es	 necesario	 añadir	 el	
carácter	 reservado	 “#”,	 que	 actúa	 como	 comodín.	 De	 esta	 forma	 podemos	
publicar	un	mensaje:		
publish --topic "home/floor1/room2" --message "light on"
	
y	será	recibido	por	los	agentes:		
	 	
subscribe --topic "home/floor1/room2"
subscribe --topic "home/floor1/#"
	
pero	no	sería	recibido	por	el	agente:	
	
subscribe --topic "home/floor2/#"
	
	
2.	Seguridad	en	el	broker	MQTT	
	
El	protocolo	MQTT	dispone	de	unos	mecanismos	de	seguridad	muy	básicos	ya	
que	 su	 fundamento	 es	 ser	 ligero	 y	 poder	 ser	 implementado	 en	 cualquier
Integración de Latch en Mosquito MQTT Broker
dispositivo	IoT.	Por	esta	razón,	la	seguridad	descansa	sobre	las	protecciones	que	
puedan	existir	o	se	puedan	implementar	tanto	a	nivel	de	red	(uso	de	VPN	por	
ejemplo),	como	las	que	el	broker	pueda	aportar.	
	
El	 broker	 Mosquitto	 dispone	 de	 diferentes	 elementos	 de	 seguridad	 para	 el	
control	 en	 la	 publicación/subscripción	 de	 mensajes.	 Todo	 ellos	 son	 realizados	
mediante	el	uso	de	un	plugin	de	autorización/autenticación.	Cada	plugin	define	
sus	propios	controles	de	seguridad.	
	
El	plugin	de	autenticación	de	Mosquitto	(auth-plugin)	dispone	de	las	siguientes	
funcionalidades	de	seguridad	implentadas:	
2.1	Autenticación	Usuario/Password	
	
Este	es	el	control	más	simple	y	sencillo	de	configurar.	Cada	agente	que	publica	
puede	 usar	 la	 combinación	 usuario/password	 y	 el	 broker	 verificará	 sus	
credenciales.			
	
Para	un	"publish	agent",	esta	acción	se	realiza	en	cada	mensaje	publicado.	La	
misma	 configuración	 puede	 ser	 realizada	 en	 un	 "subscribe	agent",	 aunque	 en	
esta	 ocasión,	 el	 broker	 únicamente	 comprobará	 usuario/password	 cuando	 el	
agente	realiza	la	conexión	y	no	en	cada	mensaje	que	es	entregado	al	mismo.	
2.2	ACLs	-	Access	Control	Lists	
	
Con	 este	 mecanismo,	 se	 puede	 obtener	 un	 control	 total	 sobre	 las	 funciones	
publish/subscribe,	mediante	el	filtro	de	los	topics.	La	idea	primaria	de	un	ACL	es	
establecer	un	control	sobre	un	topic	determinado	o	las	ramas	que	de	él	puedan	
colgar	si	usamos	comodines.		
	
Las	ACLs	pueden	verse	como	un	conjunto	de	reglas;	cuando	un	topic	coincide	por	
su	filtro,	se	verifica	el	elemento	a	controlar	(por	ejemplo,	si	el	topic	fue	publicado	
por	un	agente	usando	un	usuario	específico)	y	una	vez	evaluado	el	control,	el	
broker	decide	si	descarta	el	mensaje	o	no.	
	
El	formato	de	una	entrada	de	una	ACL	es:	
	 	
<topic> <elemento de control>
	
Como	se	ha	comentado	anteriormente,	esta	configuración	es	específica	de	cada	
broker.		
	
Ejemplo	de	ACLs	usando	el	auth-plugin	de	Mosquitto:	
	
home/floor1/room1 john
home/floor2/# john, paul
	
Con	 este	 ejemplo,	 un	 agente	 usando	 el	 usuario	 paul,	 no	 podrá	 publicar	 ni	
subscribirse	 al	 topic	 home/floor1/room1,	 pero	 podrá	 hacerlo	 sobre	 cualquier	
topic	que	cuelgue	de	home/floor2	(incluido	ese	mismo	topic).
Integración de Latch en Mosquito MQTT Broker
3.	Plugin	de	Latch	para	Mosquitto	
	
El	 plugin	 de	 Latch	 para	 Mosquitto	 nos	 permite	 añadir,	 de	 una	 forma	 fácil,	 un	
segundo	 factor	 de	 autorización	 dentro	 del	 ecosistema	 de	 IoT,	 realizando	 la	
integración	 en	 la	 plataforma	 (MQTT	 Broker),	 en	 lugar	 de	 en	 los	 dispositivos,	
permitiendo	 liberar	 recursos	 de	 estos,	 maximizando	 la	 compatibilidad	 y	
escalabilidad.	
	
Se	 ha	 desarrollado	 en	 lenguaje	 Python	 sobre	 la	 base	 del	 auth-plugin	 de	
Mosquitto,	por	lo	que	permite	utilizar	tanto	ACLs	estándar,	como	autenticación	
usuario/password	con	Latch	como	2FA.	
	
	
El	plugin	de	Latch	opera	de	diferentes	formas:	
	
§ Sobre	las	operaciones	publish/subscribe,	permitiendo	2FA	al	publicar	un	
mensaje	o	al	conectar	un	subscriptor.	
	 	
§ Sobre	 los	 topics,	 permitiendo	 añadir	 un	 2FA	 de	 forma	 dinámica,		
mediante	la	utilización	de	Instancias	de	Latch.	
	
	
3.1	Emparejamiento	
	
Los	 usuarios	 del	 plugin	 que	 se	 emparejen,	 serán	 aquellos	 con	 capacidad	 de	
latchear	 las	 operaciones	 de	 publish/subscribe	 o	 un	 topic,	 dependiendo	 de	 la	
configuración	que	se	haya	realizado.
Integración de Latch en Mosquito MQTT Broker
Por	 cada	 "pairing"	 realizado,	 obtendremos	 un	 Account	 ID	 que	 será	 el	
identificador	 del	 usuario	 en	 Latch.	 Este	 valor,	 es	 guardo	 en	 el	 fichero	
latch.accounts.	Para	que	este	proceso	pueda	realizarse,	el	usuario	tiene	que	estar	
creado	previamente,	mediante	el	uso	de	tools/users_op.py	script.	
	
El	proceso	de	"pairing"	puede	realizarse	de	dos	formas	diferentes:	
	
§ Mediante	 el	 uso	 del	 script	 en	 python:	 tools/pair_op.py.	 Este	 script	 nos	
pedirá	el	nombre	del	usuario,	la	password	y	el	token	generado	por	Latch	
App.	
	
§ Activando	 la	 opción	 dynamic_pairing	 	 en	 el	 fichero	 de	 configuración	
latch.conf	y	realizando	la	publicación	por	parte	de	cualquier	agente	sobre	
el	 topic:		
	
	 LATCH/pairing=<token	provided>	
	
De	igual	forma,	se	puede	realizar	el	proceso	de	"unpairing":	
	
§ Mediante	el	uso	del	script	en	python:	tools/pair_op.py.		
	
§ Activando	 la	 opción	 de	 configuración	 dynamic_pairing		 en	 el	 fichero	 de	
configuración	latch.conf	y	realizando	la	publicación	por	parte	de	cualquier	
agente	 sobre	 el	 topic:		
	
	 LATCH/unpairing	
	
El	 topic	 LATCH/#	es	 un	 topic	 reservado	 por	 Latch	 plugin	 para	 la	 gestión	 de	
Latch.	 La	 publicación	 sobre	 este	 topic,	 tiene	 que	 ir	 acompañada	 de	 usario	 y	
password,	debido	a	que	el	plugin	realizará	automáticamente	el	pairing/unpairing	
con	el	usuario	indicado	en	el	publish.	El	contenido	del	mensaje	publicado	sobre	
el	topic	LATCH/#	es	descartado.	
	
3.2	Plugin	de	Latch	para	operaciones	publish/subscribe	
	
El	modo	más	sencillo	de	"latchear"	el	broker	MQTT,	es	mediante	las	operaciones	
publish	y	subscribe.	El	plugin	de	Latch	permite	controlar	ambas	operaciones	a	
nivel	de	broker,	haciendo	que	se	verifique	la	autorización	antes	de		publicar	o	
subscribir.		
	
Este	 proceso	 es	 independiente	 de	 los	 controles	 de	 seguridad	 que	 se	 hayan	
configurado	anteriormente	en	el	broker.	De	esta	forma,	por	ejemplo,	el	broker	
MQTT	 puede	 verificar	 el	 usuario/password	 primero,	 y	 luego	 usar	 Latch	 como	
segundo	factor	de	autorización	para	la	operación	que	se	haya	solicitado	(publish	
o	subscribe),	siempre	que	el	agente	esté	emparejado.	
	
Cuando	un	agente	emparejado	solicita	publicar	un	mensaje,	cada	publicación	se	
autorizará	con	Latch.
Integración de Latch en Mosquito MQTT Broker
	
Para	 los	 agentes	 emparejados	 que	 se	 subscriben,	 se	 verificará	 con	 Latch	 cada	
subscripción,	pero	una	vez	que	hayan	sido	autorizados,	no	se	vuelve	a	verificar	el	
estado	del	Latch.		
	
	
	
3.3	Plugin	de	Latch	para	los	topics	
	
Esta	es	la	característica	más	potente	del	plugin	de	Latch,	permitiendo	establecer	
un	 "latch"	 para	 cualquier	 topic	 de	 forma	 dinámica.	 De	 esta	 forma,	 cuando	 un	
agente	emparejado	publica	un	mensaje	en	un	topic	o	un	agente	emparejado	se	
subscribe	a	un	topic,	después	de	los	controles	de	seguridad	ya	definidos	en	el	
plugin,	 puede	 realizarse	 una	 segunda	 verificación	 contra	 Latch.	 En	 Latch,	 la	
correspondencia	a	un	topic	es	una	instancia.	
	
Cuando	 un	 agente	 emparejado	 publica	 un	 mensaje,	 cada	 uno	 de	 ellos,	 se	
autorizará	 con	 Latch.	 Para	 los	 agentes	 emparejados	 que	 se	 subscriben,	 se	
verificará	con	Latch	cada	vez	que	se	subscriban,	pero	una	vez	que	hayan	sido	
autorizados,	no	se	les	vuelve	a	verificar.		
	
	
	
El	plugin	de	Latch	permite	la	creación	de	estos	topic	"latcheables"	o	instancias,	
de	varias	formas:
Integración de Latch en Mosquito MQTT Broker
	
§ Mediante	el	uso	del	script	en	Python:	tools/instances_op.py	con	el	que	se	
pueden	crear	y	borrar	topics/instancias.		
	
§ Realizando	 la	 publicación	 por	 parte	 de	 un	 agente	 sobre	 el	 topic:		
	
	 LATCH/create_instance=<instance_name>		
	
El	 Plugin	 creará	 automáticamente	 la	 nueva	 instancia	 con	 el	 nombre	
indicado	 y	 asociada	 al	 usuario	 con	 el	 que	 se	 realice	 la	 publicación.	 El	
contenido	del	mensaje	publicado	sobre	este	topic	es	descartado.	
	
§ Dinámicamente,	 mediante	 la	 opción	 instance_mode=dynamic	 en	 el	
archivo	 de	 configuración	 latch.conf.	 Activando	 esta	 opción,	 por	 cada	
mensaje	publicado	se	creará	una	instancia	nueva,	si	no	existiera,	con	el	
nombre	 del	 topic	 usado	 y	 asociada	 al	 usuario	 con	 el	 que	 se	 realice	 la	
publicación.	 	
4.	Instalación	del	Plugin	de	Latch	
4.1	Ficheros	del	Plugin	
	
El	plugin	de	Latch	consta	de	los	siguientes	archivos:	
	
§ mosquitto_latch.py:	 	 plugin	de	Latch	para	Mosquitto	
§ mosquitto_latch_bag.py:		 librería	del	plugin	de	Latch	para	Mosquitto	
§ latch.conf:		 	 	 archivo	de	configuración	del	plugin	de	Latch.	
§ latch.instances:		 	 archivo	con	las	instancias	de	Latch.	
§ latch.accounts:		 	 archivo	con	los	accountID	de	Latch.	
§ mosquitto.acl:		 	 archivo	con	las	ACLs	.	
§ mosquitto.users:		 	 archivo	con	los	usuarios.		
§ tools/install.py:		 	 script	de	instalación	del	plugin.	
§ tools/instances_op.py:		 script	para	la	gestión	estática	de	instancias.	
§ tools/pair_op.py:		 	 script	para	la	gestión	estática	del	"pairing".	
§ tools/users_op.py:		 	 script	para	la	gestión	de	usuarios.	
	
4.2	Pre-instalación	
	
Antes	 de	 la	 instalación	 del	 Plugin,	 lo	 primero	 a	 realizar	 será	 la	 creación	 de	 la	
aplicación	 dentro	 del	 portal	 de	 Latch	 (https://latch.elevenpaths.com).	 La	
aplicación	puede	ser	creada	con	cualquier	nombre,	y	debe	tener	"2-Factor	OTP"	y	
"Lock	latches	after	request"	deshabilitados.	Una	vez	creada	la	aplicación,	hay	que	
tomar	 nota	 de	 los	 valores	 Application	 ID	 y	 Secret,	 que	 serán	 utilizados	
posteriormente	en	la	configuración	del	plugin.
Integración de Latch en Mosquito MQTT Broker
	
	
	
	
Con	el	proceso	anterior	finalizado,	hay	que	verificar	que	el	sistema	que	contiene	
nuestro	broker	MQTT	tiene	el	software	necesario	para	el	plugin	de	Latch.	Para	
ello,	las	siguientes	librerías	serán	necesarias:	
	
sudo apt-get install python-dev mosquitto-dev libmosquitto-dev
Además	 será	 necesario	 instalar	 una	 librería	 especial	 de	 Python:	 paho-mqtt.	
Puede	ser	instalada	con:		
	
pip install paho-mqtt
	
De	la	misma	forma,	el	plugin	de	Latch	necesita	un	plugin	de	Mosquitto	para	el	
desarrollo	 de	 plugins	 de	 seguridad	 en	 Python.	 Puede	 ser	 instalado	 desde	
https://github.com/oribit/mosquitto_pyauth	 siguiendo	 las	 instrucciones	 allí	
detalladas.
Integración de Latch en Mosquito MQTT Broker
	
4.3	Instalación	
	
Con	 los	 prerrequisitos	 satisfechos,	 el	 Plugin	 de	 Latch	 puede	 descargarse	 de	
https://github.com/oribit/latch-plugin	Por	favor,	descargar	este	repositorio	en	
el	directorio	que	se	quiere	usar	para	el	plugin.	
	
Un	 vez	 descargado	 el	 plugin	 ejecutaremos	 desde	 el	 directorio	 dónde	 se	 haya	
descargado,	python	./tools/install.py	que	procederá	a	la	verificación	e	instalación	
del	plugin	en	el	sistema.	Este	script	nos	solicitará	los	datos	de	Application	ID	y	
Secret	anteriormente	mencionados	y	los	guardará	dentro	del	fichero	latch.conf.	
	
El	 script	 de	 instalación	 realizará	 una	 verificación	 de	 los	 pre-requisitos,	 y	 a	
continuación	procederá	a	la	copia	de	los	archivos	del	Plugin	en	el	directorio	que	
se	haya	especificado.		
	
Los	 ficheros	 de	 configuración	 y	 scripts	 de	 utilidades	 (tools),	 se	 copiarán	 en	 el	
directorio:	/etc/mosquitto/plugin/latch.	El	proceso	de	instalación	posiblemente	
requerirá	 permisos	 root	 al	 ejecutarse	 (sudo),	 debido	 a	 que	 el	 fichero	 de	
configuración	de	Mosquitto	suele	pertenecer	a	root.		
	
Una	 vez	 finalizada	 la	 instalación,	 será	 necesario	 crear	 un	 usuario	 con	 el	 que	
poder	empezar	a	usar	Latch.	Esto	puedo	realizarse	mediante	el	script:	python	
./tools/users_op.py	 Con	 el	 usuario	 creado,	 se	 podrá	 realizar	 el	
"emparejamiento"	de	la	aplicación	tal	como	está	explicado	en	la	sección	3.1.	
4.4	Configuración	
	
Finalizada	la	instalación,	el	fichero	de	configuración	del	Plugin	estará	situado	en	
/etc/mosquitto/plugin/latch/latch.conf:
Integración de Latch en Mosquito MQTT Broker
	
	
Los	campos	app_id	y	secret_key	contendrán	los	datos	facilitados	en	el	script	de	
instalación.	 Los	 campos	 publish	 y	 subscribe	 contendrán	 los	 IDs	 creados	
automáticamente	durante	el	proceso	de	instalación.	
	
4.5	Ejecución		
	
La	 ejecución	 del	 Plugin	 se	 realiza	 de	 forma	 automática	 con	 la	 ejecución	 del	
broker	MQTT.	El	script	de	instalación	añadirá	las	siguientes	líneas	al	archivo	de	
configuración	de	Mosquitto:	
	
auth_plugin /usr/lib/mosquitto/auth_plugin_pyauth.so
auth_opt_pyauth_module mosquitto_latch
auth_opt_latch_conf latch.conf
	
Todos	 los	 mensajes	 generados	 por	 el	 plugin,	 son	 redireccionados	 a	 la	 salida	
estándar	que	se	haya	configurado	en	el	broker,	por	lo	que	si	se	ha	configurado	
una	salida	a	un	syslog	o	a	un	archivo,	los	mensajes	del	Plugin	serán	escritos	en	el	
mismo	lugar.	
	
Además	 del	 uso	 de	 la	 redirección	 estándar,	 el	 Plugin	 publica	 sobre	 el	 topic	
LATCH/status	cualquier	bloqueo	que	se	realice	por	estar	Latch	habilitado,	tanto	
a	nivel	global,	como	por	operación	(publish/subscribe)	o	por	topic.	A	este	topic	se	
puede	subscribir	cualquier	agente.

Contenu connexe

Tendances

Yup... WebRTC Still Sucks
Yup... WebRTC Still SucksYup... WebRTC Still Sucks
Yup... WebRTC Still SucksDan Jenkins
 
Tech Mer Product Booklet
Tech Mer Product BookletTech Mer Product Booklet
Tech Mer Product BookletYonit Goldberg
 
Siemens win cc manual win cc getting started
Siemens win cc manual win cc getting startedSiemens win cc manual win cc getting started
Siemens win cc manual win cc getting startedDien Ha The
 
File_Soal_17_160_29_1660796769.pptx
File_Soal_17_160_29_1660796769.pptxFile_Soal_17_160_29_1660796769.pptx
File_Soal_17_160_29_1660796769.pptxTeguhRiswanto2
 
76714_BT._MODUL_V__PELAKSANAAN__KONTRAK(1).pptx
76714_BT._MODUL_V__PELAKSANAAN__KONTRAK(1).pptx76714_BT._MODUL_V__PELAKSANAAN__KONTRAK(1).pptx
76714_BT._MODUL_V__PELAKSANAAN__KONTRAK(1).pptxrahmat430247
 
Constellium Neuf-Brisach (fr)
Constellium Neuf-Brisach (fr)Constellium Neuf-Brisach (fr)
Constellium Neuf-Brisach (fr)Constellium
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQMessaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQAll Things Open
 

Tendances (8)

Yup... WebRTC Still Sucks
Yup... WebRTC Still SucksYup... WebRTC Still Sucks
Yup... WebRTC Still Sucks
 
Tech Mer Product Booklet
Tech Mer Product BookletTech Mer Product Booklet
Tech Mer Product Booklet
 
Siemens win cc manual win cc getting started
Siemens win cc manual win cc getting startedSiemens win cc manual win cc getting started
Siemens win cc manual win cc getting started
 
File_Soal_17_160_29_1660796769.pptx
File_Soal_17_160_29_1660796769.pptxFile_Soal_17_160_29_1660796769.pptx
File_Soal_17_160_29_1660796769.pptx
 
76714_BT._MODUL_V__PELAKSANAAN__KONTRAK(1).pptx
76714_BT._MODUL_V__PELAKSANAAN__KONTRAK(1).pptx76714_BT._MODUL_V__PELAKSANAAN__KONTRAK(1).pptx
76714_BT._MODUL_V__PELAKSANAAN__KONTRAK(1).pptx
 
Constellium Neuf-Brisach (fr)
Constellium Neuf-Brisach (fr)Constellium Neuf-Brisach (fr)
Constellium Neuf-Brisach (fr)
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQMessaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
 
synchonization PTP
synchonization PTP synchonization PTP
synchonization PTP
 

Similaire à Manual de integración de Latch en Mosquito MQTT Broker

Similaire à Manual de integración de Latch en Mosquito MQTT Broker (20)

Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
 
Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos ii
 
Internet
InternetInternet
Internet
 
internet
internetinternet
internet
 
Internet
InternetInternet
Internet
 
Julia pilar manuela internet
Julia pilar manuela internetJulia pilar manuela internet
Julia pilar manuela internet
 
sockets
sockets sockets
sockets
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Terminologiasistemadeinformacion[1]
Terminologiasistemadeinformacion[1]Terminologiasistemadeinformacion[1]
Terminologiasistemadeinformacion[1]
 
IoT - INTERNET OF THINGS - PROTOCOLOS DE COMUNICACIÓN
IoT - INTERNET OF THINGS - PROTOCOLOS DE COMUNICACIÓNIoT - INTERNET OF THINGS - PROTOCOLOS DE COMUNICACIÓN
IoT - INTERNET OF THINGS - PROTOCOLOS DE COMUNICACIÓN
 
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
 
PROTOCOLOS de Comunicación Para la IoT
PROTOCOLOS de Comunicación Para la IoTPROTOCOLOS de Comunicación Para la IoT
PROTOCOLOS de Comunicación Para la IoT
 
Networking
NetworkingNetworking
Networking
 
Tecnologías Web 2.0 de doble uso (civil y militar)
Tecnologías Web 2.0 de doble uso (civil y militar)Tecnologías Web 2.0 de doble uso (civil y militar)
Tecnologías Web 2.0 de doble uso (civil y militar)
 
Red de redes internet
Red de redes internetRed de redes internet
Red de redes internet
 
Red de redes internet
Red de redes internetRed de redes internet
Red de redes internet
 
Protocolos de red
Protocolos de redProtocolos de red
Protocolos de red
 
Protocolos de red
Protocolos de redProtocolos de red
Protocolos de red
 
Computacion 1
Computacion 1Computacion 1
Computacion 1
 

Plus de Telefónica

Índice de libro "Historias Cortas sobre Fondo Azul" de Willy en 0xWord
Índice de libro "Historias Cortas sobre Fondo Azul" de Willy en 0xWordÍndice de libro "Historias Cortas sobre Fondo Azul" de Willy en 0xWord
Índice de libro "Historias Cortas sobre Fondo Azul" de Willy en 0xWordTelefónica
 
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...Telefónica
 
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWordÍndice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWordTelefónica
 
Índice del libro "Amazon Web Services: Hardening de Infraestructuras Cloud Co...
Índice del libro "Amazon Web Services: Hardening de Infraestructuras Cloud Co...Índice del libro "Amazon Web Services: Hardening de Infraestructuras Cloud Co...
Índice del libro "Amazon Web Services: Hardening de Infraestructuras Cloud Co...Telefónica
 
Índice del Libro "Ciberestafas: La historia de nunca acabar" (2ª Edición) de ...
Índice del Libro "Ciberestafas: La historia de nunca acabar" (2ª Edición) de ...Índice del Libro "Ciberestafas: La historia de nunca acabar" (2ª Edición) de ...
Índice del Libro "Ciberestafas: La historia de nunca acabar" (2ª Edición) de ...Telefónica
 
Índice del Libro "Storytelling para Emprendedores"
Índice del Libro "Storytelling para Emprendedores"Índice del Libro "Storytelling para Emprendedores"
Índice del Libro "Storytelling para Emprendedores"Telefónica
 
Digital Latches for Hacker & Developer
Digital Latches for Hacker & DeveloperDigital Latches for Hacker & Developer
Digital Latches for Hacker & DeveloperTelefónica
 
Índice del libro "Hardening de servidores GNU / Linux 5ª Edición (Gold Edition)"
Índice del libro "Hardening de servidores GNU / Linux 5ª Edición (Gold Edition)"Índice del libro "Hardening de servidores GNU / Linux 5ª Edición (Gold Edition)"
Índice del libro "Hardening de servidores GNU / Linux 5ª Edición (Gold Edition)"Telefónica
 
WhatsApp INT: OSINT en WhatsApp
WhatsApp INT: OSINT en WhatsAppWhatsApp INT: OSINT en WhatsApp
WhatsApp INT: OSINT en WhatsAppTelefónica
 
Índice del libro "De la Caverna al Metaverso" de 0xWord.com
Índice del libro "De la Caverna al Metaverso" de 0xWord.comÍndice del libro "De la Caverna al Metaverso" de 0xWord.com
Índice del libro "De la Caverna al Metaverso" de 0xWord.comTelefónica
 
20º Máster Universitario de Ciberseguridad UNIR
20º Máster Universitario de Ciberseguridad UNIR20º Máster Universitario de Ciberseguridad UNIR
20º Máster Universitario de Ciberseguridad UNIRTelefónica
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyTelefónica
 
Índice del libro "Ciberseguridad de tú a tú" de 0xWord
Índice del libro "Ciberseguridad de tú a tú"  de 0xWordÍndice del libro "Ciberseguridad de tú a tú"  de 0xWord
Índice del libro "Ciberseguridad de tú a tú" de 0xWordTelefónica
 
Índice del libro "Open Source INTelligence (OSINT): Investigar personas e Ide...
Índice del libro "Open Source INTelligence (OSINT): Investigar personas e Ide...Índice del libro "Open Source INTelligence (OSINT): Investigar personas e Ide...
Índice del libro "Open Source INTelligence (OSINT): Investigar personas e Ide...Telefónica
 
Índice del libro "Social Hunters" de 0xWord
Índice del libro "Social Hunters" de 0xWordÍndice del libro "Social Hunters" de 0xWord
Índice del libro "Social Hunters" de 0xWordTelefónica
 
Índice del libro "Kubernetes para profesionales: Desde cero al despliegue de ...
Índice del libro "Kubernetes para profesionales: Desde cero al despliegue de ...Índice del libro "Kubernetes para profesionales: Desde cero al despliegue de ...
Índice del libro "Kubernetes para profesionales: Desde cero al despliegue de ...Telefónica
 
Los retos sociales y éticos del Metaverso
Los retos sociales y éticos del MetaversoLos retos sociales y éticos del Metaverso
Los retos sociales y éticos del MetaversoTelefónica
 
Índice del Libro "Ciberestafas: La historia de nunca acabar" de 0xWord
Índice del Libro "Ciberestafas: La historia de nunca acabar" de 0xWordÍndice del Libro "Ciberestafas: La historia de nunca acabar" de 0xWord
Índice del Libro "Ciberestafas: La historia de nunca acabar" de 0xWordTelefónica
 
Índice del libro "Docker: SecDevOps" 2ª Edición de 0xWord
Índice del libro "Docker: SecDevOps" 2ª Edición de 0xWordÍndice del libro "Docker: SecDevOps" 2ª Edición de 0xWord
Índice del libro "Docker: SecDevOps" 2ª Edición de 0xWordTelefónica
 
Índice del libro "Malware moderno: Técnicas avanzadas y su influencia en la i...
Índice del libro "Malware moderno: Técnicas avanzadas y su influencia en la i...Índice del libro "Malware moderno: Técnicas avanzadas y su influencia en la i...
Índice del libro "Malware moderno: Técnicas avanzadas y su influencia en la i...Telefónica
 

Plus de Telefónica (20)

Índice de libro "Historias Cortas sobre Fondo Azul" de Willy en 0xWord
Índice de libro "Historias Cortas sobre Fondo Azul" de Willy en 0xWordÍndice de libro "Historias Cortas sobre Fondo Azul" de Willy en 0xWord
Índice de libro "Historias Cortas sobre Fondo Azul" de Willy en 0xWord
 
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
 
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWordÍndice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
 
Índice del libro "Amazon Web Services: Hardening de Infraestructuras Cloud Co...
Índice del libro "Amazon Web Services: Hardening de Infraestructuras Cloud Co...Índice del libro "Amazon Web Services: Hardening de Infraestructuras Cloud Co...
Índice del libro "Amazon Web Services: Hardening de Infraestructuras Cloud Co...
 
Índice del Libro "Ciberestafas: La historia de nunca acabar" (2ª Edición) de ...
Índice del Libro "Ciberestafas: La historia de nunca acabar" (2ª Edición) de ...Índice del Libro "Ciberestafas: La historia de nunca acabar" (2ª Edición) de ...
Índice del Libro "Ciberestafas: La historia de nunca acabar" (2ª Edición) de ...
 
Índice del Libro "Storytelling para Emprendedores"
Índice del Libro "Storytelling para Emprendedores"Índice del Libro "Storytelling para Emprendedores"
Índice del Libro "Storytelling para Emprendedores"
 
Digital Latches for Hacker & Developer
Digital Latches for Hacker & DeveloperDigital Latches for Hacker & Developer
Digital Latches for Hacker & Developer
 
Índice del libro "Hardening de servidores GNU / Linux 5ª Edición (Gold Edition)"
Índice del libro "Hardening de servidores GNU / Linux 5ª Edición (Gold Edition)"Índice del libro "Hardening de servidores GNU / Linux 5ª Edición (Gold Edition)"
Índice del libro "Hardening de servidores GNU / Linux 5ª Edición (Gold Edition)"
 
WhatsApp INT: OSINT en WhatsApp
WhatsApp INT: OSINT en WhatsAppWhatsApp INT: OSINT en WhatsApp
WhatsApp INT: OSINT en WhatsApp
 
Índice del libro "De la Caverna al Metaverso" de 0xWord.com
Índice del libro "De la Caverna al Metaverso" de 0xWord.comÍndice del libro "De la Caverna al Metaverso" de 0xWord.com
Índice del libro "De la Caverna al Metaverso" de 0xWord.com
 
20º Máster Universitario de Ciberseguridad UNIR
20º Máster Universitario de Ciberseguridad UNIR20º Máster Universitario de Ciberseguridad UNIR
20º Máster Universitario de Ciberseguridad UNIR
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
 
Índice del libro "Ciberseguridad de tú a tú" de 0xWord
Índice del libro "Ciberseguridad de tú a tú"  de 0xWordÍndice del libro "Ciberseguridad de tú a tú"  de 0xWord
Índice del libro "Ciberseguridad de tú a tú" de 0xWord
 
Índice del libro "Open Source INTelligence (OSINT): Investigar personas e Ide...
Índice del libro "Open Source INTelligence (OSINT): Investigar personas e Ide...Índice del libro "Open Source INTelligence (OSINT): Investigar personas e Ide...
Índice del libro "Open Source INTelligence (OSINT): Investigar personas e Ide...
 
Índice del libro "Social Hunters" de 0xWord
Índice del libro "Social Hunters" de 0xWordÍndice del libro "Social Hunters" de 0xWord
Índice del libro "Social Hunters" de 0xWord
 
Índice del libro "Kubernetes para profesionales: Desde cero al despliegue de ...
Índice del libro "Kubernetes para profesionales: Desde cero al despliegue de ...Índice del libro "Kubernetes para profesionales: Desde cero al despliegue de ...
Índice del libro "Kubernetes para profesionales: Desde cero al despliegue de ...
 
Los retos sociales y éticos del Metaverso
Los retos sociales y éticos del MetaversoLos retos sociales y éticos del Metaverso
Los retos sociales y éticos del Metaverso
 
Índice del Libro "Ciberestafas: La historia de nunca acabar" de 0xWord
Índice del Libro "Ciberestafas: La historia de nunca acabar" de 0xWordÍndice del Libro "Ciberestafas: La historia de nunca acabar" de 0xWord
Índice del Libro "Ciberestafas: La historia de nunca acabar" de 0xWord
 
Índice del libro "Docker: SecDevOps" 2ª Edición de 0xWord
Índice del libro "Docker: SecDevOps" 2ª Edición de 0xWordÍndice del libro "Docker: SecDevOps" 2ª Edición de 0xWord
Índice del libro "Docker: SecDevOps" 2ª Edición de 0xWord
 
Índice del libro "Malware moderno: Técnicas avanzadas y su influencia en la i...
Índice del libro "Malware moderno: Técnicas avanzadas y su influencia en la i...Índice del libro "Malware moderno: Técnicas avanzadas y su influencia en la i...
Índice del libro "Malware moderno: Técnicas avanzadas y su influencia en la i...
 

Dernier

Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 

Dernier (20)

Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 

Manual de integración de Latch en Mosquito MQTT Broker

  • 1. Integración de Latch en Mosquito MQTT Broker 1. ¿Qué es MQTT? MQTT (Message Queuing Telemetry Transport) es un protocolo M2M (machine- to-machine) ligero de mensajes que corre sobre el protocolo TCP/IP. Aunque se originó en el seno de IBM, desde 2013 es gestionado por el consorcio sin ánimo de lucro OASIS. Su versión 3.1.1 ha sido recogido bajo el estándar internacional ISO/IEC 20922:2016. MQTT está basado en la publicación/subscripción de mensajes. Este funcionamiento requiere el uso de un bróker de mensajes, que es el encargado de la distribución de los mensajes a los diferentes clientes basándose en el tema (topic) del mismo. Actualmente, MQTT es el protocolo de conectividad para los dispositivos IoT con mayor difusión. Los brokers exponen una interface de conexión TCP/IP, generalmente en el puerto tcp 1883, el cual ha sido registrado por el IANA para el protocolo MQTT. Los clientes subscriptores, se conectan a ese puerto indicando el topic al que se subscriben y permanecen a la espera de que el broker les mande los mensajes. Los clientes publicadores, publican el mensaje con el topic que especifiquen, conectándose al broker y enviándole el mensaje. Tanto los clientes publicadores como subscriptores son conocidos como agentes (publish agent/subscribe agent); por tanto, un agente que publica puede ser un sensor de luz, y un agente que subscribe puede ser una App de nuestro móvil. El bróker revisará el topic del mensaje y lo reenviará hacia los agentes subscritos a él.
  • 2. Integración de Latch en Mosquito MQTT Broker Existen diferentes implementaciones de brokers MQTT, siendo la más difundida “Mosquitto”, gracias a su licencia Open Source (EPL/EDL). 1.1 Jerarquías Publish/Subscribe La técnica publish/subscribe que usa MQTT, utiliza jerarquías dentro de los topics. Las jerarquías quedan establecidas mediantes el carácter “/”. Así podemos tener el topic: casa/piso1/habitacion1. Este topic generará tres ramas: casa, casa/piso1, casa/piso1/habitacion1. Los agentes que deseen recibir un mensaje publicado en este topic, podrían subscribirse a cualquiera de las tres ramas. Para poder recibir el mensaje estando subscrito a una de las dos primeras ramas, es necesario añadir el carácter reservado “#”, que actúa como comodín. De esta forma podemos publicar un mensaje: publish --topic "home/floor1/room2" --message "light on" y será recibido por los agentes: subscribe --topic "home/floor1/room2" subscribe --topic "home/floor1/#" pero no sería recibido por el agente: subscribe --topic "home/floor2/#" 2. Seguridad en el broker MQTT El protocolo MQTT dispone de unos mecanismos de seguridad muy básicos ya que su fundamento es ser ligero y poder ser implementado en cualquier
  • 3. Integración de Latch en Mosquito MQTT Broker dispositivo IoT. Por esta razón, la seguridad descansa sobre las protecciones que puedan existir o se puedan implementar tanto a nivel de red (uso de VPN por ejemplo), como las que el broker pueda aportar. El broker Mosquitto dispone de diferentes elementos de seguridad para el control en la publicación/subscripción de mensajes. Todo ellos son realizados mediante el uso de un plugin de autorización/autenticación. Cada plugin define sus propios controles de seguridad. El plugin de autenticación de Mosquitto (auth-plugin) dispone de las siguientes funcionalidades de seguridad implentadas: 2.1 Autenticación Usuario/Password Este es el control más simple y sencillo de configurar. Cada agente que publica puede usar la combinación usuario/password y el broker verificará sus credenciales. Para un "publish agent", esta acción se realiza en cada mensaje publicado. La misma configuración puede ser realizada en un "subscribe agent", aunque en esta ocasión, el broker únicamente comprobará usuario/password cuando el agente realiza la conexión y no en cada mensaje que es entregado al mismo. 2.2 ACLs - Access Control Lists Con este mecanismo, se puede obtener un control total sobre las funciones publish/subscribe, mediante el filtro de los topics. La idea primaria de un ACL es establecer un control sobre un topic determinado o las ramas que de él puedan colgar si usamos comodines. Las ACLs pueden verse como un conjunto de reglas; cuando un topic coincide por su filtro, se verifica el elemento a controlar (por ejemplo, si el topic fue publicado por un agente usando un usuario específico) y una vez evaluado el control, el broker decide si descarta el mensaje o no. El formato de una entrada de una ACL es: <topic> <elemento de control> Como se ha comentado anteriormente, esta configuración es específica de cada broker. Ejemplo de ACLs usando el auth-plugin de Mosquitto: home/floor1/room1 john home/floor2/# john, paul Con este ejemplo, un agente usando el usuario paul, no podrá publicar ni subscribirse al topic home/floor1/room1, pero podrá hacerlo sobre cualquier topic que cuelgue de home/floor2 (incluido ese mismo topic).
  • 4. Integración de Latch en Mosquito MQTT Broker 3. Plugin de Latch para Mosquitto El plugin de Latch para Mosquitto nos permite añadir, de una forma fácil, un segundo factor de autorización dentro del ecosistema de IoT, realizando la integración en la plataforma (MQTT Broker), en lugar de en los dispositivos, permitiendo liberar recursos de estos, maximizando la compatibilidad y escalabilidad. Se ha desarrollado en lenguaje Python sobre la base del auth-plugin de Mosquitto, por lo que permite utilizar tanto ACLs estándar, como autenticación usuario/password con Latch como 2FA. El plugin de Latch opera de diferentes formas: § Sobre las operaciones publish/subscribe, permitiendo 2FA al publicar un mensaje o al conectar un subscriptor. § Sobre los topics, permitiendo añadir un 2FA de forma dinámica, mediante la utilización de Instancias de Latch. 3.1 Emparejamiento Los usuarios del plugin que se emparejen, serán aquellos con capacidad de latchear las operaciones de publish/subscribe o un topic, dependiendo de la configuración que se haya realizado.
  • 5. Integración de Latch en Mosquito MQTT Broker Por cada "pairing" realizado, obtendremos un Account ID que será el identificador del usuario en Latch. Este valor, es guardo en el fichero latch.accounts. Para que este proceso pueda realizarse, el usuario tiene que estar creado previamente, mediante el uso de tools/users_op.py script. El proceso de "pairing" puede realizarse de dos formas diferentes: § Mediante el uso del script en python: tools/pair_op.py. Este script nos pedirá el nombre del usuario, la password y el token generado por Latch App. § Activando la opción dynamic_pairing en el fichero de configuración latch.conf y realizando la publicación por parte de cualquier agente sobre el topic: LATCH/pairing=<token provided> De igual forma, se puede realizar el proceso de "unpairing": § Mediante el uso del script en python: tools/pair_op.py. § Activando la opción de configuración dynamic_pairing en el fichero de configuración latch.conf y realizando la publicación por parte de cualquier agente sobre el topic: LATCH/unpairing El topic LATCH/# es un topic reservado por Latch plugin para la gestión de Latch. La publicación sobre este topic, tiene que ir acompañada de usario y password, debido a que el plugin realizará automáticamente el pairing/unpairing con el usuario indicado en el publish. El contenido del mensaje publicado sobre el topic LATCH/# es descartado. 3.2 Plugin de Latch para operaciones publish/subscribe El modo más sencillo de "latchear" el broker MQTT, es mediante las operaciones publish y subscribe. El plugin de Latch permite controlar ambas operaciones a nivel de broker, haciendo que se verifique la autorización antes de publicar o subscribir. Este proceso es independiente de los controles de seguridad que se hayan configurado anteriormente en el broker. De esta forma, por ejemplo, el broker MQTT puede verificar el usuario/password primero, y luego usar Latch como segundo factor de autorización para la operación que se haya solicitado (publish o subscribe), siempre que el agente esté emparejado. Cuando un agente emparejado solicita publicar un mensaje, cada publicación se autorizará con Latch.
  • 6. Integración de Latch en Mosquito MQTT Broker Para los agentes emparejados que se subscriben, se verificará con Latch cada subscripción, pero una vez que hayan sido autorizados, no se vuelve a verificar el estado del Latch. 3.3 Plugin de Latch para los topics Esta es la característica más potente del plugin de Latch, permitiendo establecer un "latch" para cualquier topic de forma dinámica. De esta forma, cuando un agente emparejado publica un mensaje en un topic o un agente emparejado se subscribe a un topic, después de los controles de seguridad ya definidos en el plugin, puede realizarse una segunda verificación contra Latch. En Latch, la correspondencia a un topic es una instancia. Cuando un agente emparejado publica un mensaje, cada uno de ellos, se autorizará con Latch. Para los agentes emparejados que se subscriben, se verificará con Latch cada vez que se subscriban, pero una vez que hayan sido autorizados, no se les vuelve a verificar. El plugin de Latch permite la creación de estos topic "latcheables" o instancias, de varias formas:
  • 7. Integración de Latch en Mosquito MQTT Broker § Mediante el uso del script en Python: tools/instances_op.py con el que se pueden crear y borrar topics/instancias. § Realizando la publicación por parte de un agente sobre el topic: LATCH/create_instance=<instance_name> El Plugin creará automáticamente la nueva instancia con el nombre indicado y asociada al usuario con el que se realice la publicación. El contenido del mensaje publicado sobre este topic es descartado. § Dinámicamente, mediante la opción instance_mode=dynamic en el archivo de configuración latch.conf. Activando esta opción, por cada mensaje publicado se creará una instancia nueva, si no existiera, con el nombre del topic usado y asociada al usuario con el que se realice la publicación. 4. Instalación del Plugin de Latch 4.1 Ficheros del Plugin El plugin de Latch consta de los siguientes archivos: § mosquitto_latch.py: plugin de Latch para Mosquitto § mosquitto_latch_bag.py: librería del plugin de Latch para Mosquitto § latch.conf: archivo de configuración del plugin de Latch. § latch.instances: archivo con las instancias de Latch. § latch.accounts: archivo con los accountID de Latch. § mosquitto.acl: archivo con las ACLs . § mosquitto.users: archivo con los usuarios. § tools/install.py: script de instalación del plugin. § tools/instances_op.py: script para la gestión estática de instancias. § tools/pair_op.py: script para la gestión estática del "pairing". § tools/users_op.py: script para la gestión de usuarios. 4.2 Pre-instalación Antes de la instalación del Plugin, lo primero a realizar será la creación de la aplicación dentro del portal de Latch (https://latch.elevenpaths.com). La aplicación puede ser creada con cualquier nombre, y debe tener "2-Factor OTP" y "Lock latches after request" deshabilitados. Una vez creada la aplicación, hay que tomar nota de los valores Application ID y Secret, que serán utilizados posteriormente en la configuración del plugin.
  • 8. Integración de Latch en Mosquito MQTT Broker Con el proceso anterior finalizado, hay que verificar que el sistema que contiene nuestro broker MQTT tiene el software necesario para el plugin de Latch. Para ello, las siguientes librerías serán necesarias: sudo apt-get install python-dev mosquitto-dev libmosquitto-dev Además será necesario instalar una librería especial de Python: paho-mqtt. Puede ser instalada con: pip install paho-mqtt De la misma forma, el plugin de Latch necesita un plugin de Mosquitto para el desarrollo de plugins de seguridad en Python. Puede ser instalado desde https://github.com/oribit/mosquitto_pyauth siguiendo las instrucciones allí detalladas.
  • 9. Integración de Latch en Mosquito MQTT Broker 4.3 Instalación Con los prerrequisitos satisfechos, el Plugin de Latch puede descargarse de https://github.com/oribit/latch-plugin Por favor, descargar este repositorio en el directorio que se quiere usar para el plugin. Un vez descargado el plugin ejecutaremos desde el directorio dónde se haya descargado, python ./tools/install.py que procederá a la verificación e instalación del plugin en el sistema. Este script nos solicitará los datos de Application ID y Secret anteriormente mencionados y los guardará dentro del fichero latch.conf. El script de instalación realizará una verificación de los pre-requisitos, y a continuación procederá a la copia de los archivos del Plugin en el directorio que se haya especificado. Los ficheros de configuración y scripts de utilidades (tools), se copiarán en el directorio: /etc/mosquitto/plugin/latch. El proceso de instalación posiblemente requerirá permisos root al ejecutarse (sudo), debido a que el fichero de configuración de Mosquitto suele pertenecer a root. Una vez finalizada la instalación, será necesario crear un usuario con el que poder empezar a usar Latch. Esto puedo realizarse mediante el script: python ./tools/users_op.py Con el usuario creado, se podrá realizar el "emparejamiento" de la aplicación tal como está explicado en la sección 3.1. 4.4 Configuración Finalizada la instalación, el fichero de configuración del Plugin estará situado en /etc/mosquitto/plugin/latch/latch.conf:
  • 10. Integración de Latch en Mosquito MQTT Broker Los campos app_id y secret_key contendrán los datos facilitados en el script de instalación. Los campos publish y subscribe contendrán los IDs creados automáticamente durante el proceso de instalación. 4.5 Ejecución La ejecución del Plugin se realiza de forma automática con la ejecución del broker MQTT. El script de instalación añadirá las siguientes líneas al archivo de configuración de Mosquitto: auth_plugin /usr/lib/mosquitto/auth_plugin_pyauth.so auth_opt_pyauth_module mosquitto_latch auth_opt_latch_conf latch.conf Todos los mensajes generados por el plugin, son redireccionados a la salida estándar que se haya configurado en el broker, por lo que si se ha configurado una salida a un syslog o a un archivo, los mensajes del Plugin serán escritos en el mismo lugar. Además del uso de la redirección estándar, el Plugin publica sobre el topic LATCH/status cualquier bloqueo que se realice por estar Latch habilitado, tanto a nivel global, como por operación (publish/subscribe) o por topic. A este topic se puede subscribir cualquier agente.