¿Buscas alguna otra cosa?
Detalles del escenario:
- Se dispone de un parque grande de Contadores Eléctricos. Hasta hoy las lecturas de los contradores se realizan a través llamadas GSM de Datos (CSD) efectuadas a los módems los cuales están conectador a los Contadores Eléctricos por el puerto RS232. Se pretende pasar de GSM (CSD) a IP, y añadir un sistema de gestión remota de los módems (Device Manager) que permita la monitorización remota de los módems, así como poder realizar cambios de configuraciones remotas, actualización de firmware, gestión de certificados, etc.
- Se precisa una elevada seguridad. Tanto el canal de datos IP de la lectura del contador
(comunicación entre el módem y el Centro de Lectura) como el canal de control de monitorización del módem (es decir, la comunicación entre el módem y el Device Manager) debe realizarse mediante una comunicación IP con seguridad SSL/TLS y autenticación mútua. Para incrementar todavía más la seguridad, el módem NO debe tener ningún puerto TCP en escucha, es decir, todas las conexión TCP/IP deben ser realizadas DESDE el módem. Por ello cada vez que la Plataforma de Lectura necesite leer un contador, debe ejecutar un comando de API contra la Plataform Device Manager, indicando que quiere leer un determinado contador. El Device Manager enviará un comando al módem (a través del canal de comandos ya establecido con seguridad SSL/TLS) para que abra otro canal seguro de datos contra la Plataforma de Lectura - Actualmente la infraestructura de lectura de los Contadores Eléctricos se realiza mediante llamada de datos GSM (CSD). Por tanto, los nuevos módems deben ser también compatibles con este tipo de llamadas CSD hasta que la infraestructura migre a Comunicaciones IP. Aprovechando el reemplazo de módems, se pretende añadir una capa de seguridad adicional a las actuales llamadas de datos GSM (CSD), y es que los módems sólo deben aceptar llamadas CSD que se realicen desde números de teléfonos autorizados, esto es, desde los números de teléfono del Centro de Lectura de Contadores
Solución:
Fichero de configuración (master) config.txt:
Configuración | Observaciones |
COMM_baudrate: 9600 COMM_bitsperchar: 8 COMM_autorts: off COMM_autocts: off COMM_stopbits: 1 COMM_parity: none GPRS_apn: movistar.es GPRS_login: MOVISTAR GPRS_password: MOVISTAR GPRS_timeout: 0 GPRS_mode: 2g MTX_PIN: 0000 MTX_mode: none MTX_model: 199801422 MTX_ping: 35 MTX_pingIP: 8.8.8.8 MTX_ATLimited: off MTX_IDClient: [IMEI] MTX_temporalClientTimeout: 120 MTX_clientSSL: on SMS_allPhones: off SMS_sendIP: off SMS_ATEnabled: on SMS_ATResponse: on SMS_validPhone1: +34666123456 SMS_validPhone2: +34666123457 MQTT_enabled: on MQTT_server: ssl://broker.cervello.io:8883 MQTT_id: yku41420t957oh8t MQTT_login: jfj1usly8ijhh9hizfr453 MQTT_password: gthhdte67y3ttes33fgg MQTT_attopic1: [IMEI]/AT MQTT_atrtopic: [IMEI]/ATR MQTT_keepalive: 300 DNS_enabled: on DNS_mode: mqtt DNS_mqttTopic: [IMEI]/dns DNS_extended: off DNS_period: 600 CSD_enabled: on CSD_validPhone1: 666333444 CSD_validPhone2: 666444555 |
Serial port baud rate Number of bits No flow control No flow control 1 stop bit No parity APN GPRS provided by the GSM operator GPRS Login GPRS Password Modem is always GPRS connected GPRS connection server type Pin of the SIM GPRS connection server type Modem model Ping time to oversee connection Google IP (f.e.) to ping No AT commands limitations Identifying chain Socket closes if no traffic during x seconds TCP client socket Send SMS with commands from any phone Modem won’t respond to a missed call/SMS Commands can be sent to the MTX by SMS MTX responds with an SMS to a command SMS Authorized phone number 1 Authorized phone number 2 MQTT service enabled Broker IP/DNS specified, including identifying port Identifier Username Password MQTT topic to send AT commands Topic to send replies to commands to Connection keep alive (300 seconds) Status data sending activated MQTT sending mode Topic where status data are sent Extended data (E/S, ADCs…) are not sent One sending every 600 secs (5 mins.) CSD calls are enabled Authorized phone number 1 Authorized phone number 2 |
Detalles:
- La conexión IP entre el módem y el Device Manager es permanente y segura (SSL/TLS). Siempre está establecida y en cualquier momento es posible enviar un comando de acción (cambio de configuración, reset, etc) desde el Device Manager al módem
- La conexión entre el módem y la Plataforma de Lectura no es permanente. El procedimiento por parte de la Plataforma de Lectura para la lectura de un Contador de forma segura es:
- La Plataforma de Lectura ejecuta un comando de API (webservice) contra la Plataforma Device Manager, indicando el módem que se pretende leer (consultar documentación)
- La Plataforma Device Manager envía un comando al módem (a través de su canal de datos siempre establecido, con seguridad SSL/TLS) para que éste abra otra canal seguro (SSL/TLS) de comunicaciones en modo TCP Cliente contra la Plataforma de Lectura de Contadores. En este caso, en el comando API se indicará la IP y puerto TCP de conexión contra la plataforma. El comando que le envía la plataforma Device Manager al módem es: AT^MTXTUNNEL=TEMPORALCLIENT,IP,TCPPORT,TIMEOUT
Donde en el parámetro IP y TCPPORT se especifican la dirección IP puerto TCP de escucha de la plataforma de Lectura de Contadores, respectivamente. En TIMEOUT se especifica el tiempo (segundos) tras el cual debe cerrarse el socket en caso de no haber tráfico por el mismo. - El módem abre un socket SSL/TLS contra el ppuerto TCP e IP que le indica el comando
recibido de la Plataforma Device Manager. Se realiza autenticación mútua entre Plataforma de Lectura y módem mediante certificados digitales - Una vez establecido el socket seguro (SSL/TLS), el módem envía a través de dicho socket a la Plataforma de Lectura el valor de su parámetro de configuración MTX_IDClient, una cadena alfanumérica que permite a la Plataforma de Lectura identificar el módem que se ha conectado (en el caso que se pretendan leer varios contadores de forma simultánea)
Este socket permanecerá establecido hasta que sea cerrado por el lado de la Plataforma de Lectura o bien pasen “MTX_temporalClientTimeout” segundos sin tráfico en el mismo. - La plataforma puede iniciar la lectura del Contador a través de dicho socket como una
pasarela IP-RS232 transparente con seguridad SSL/TLS - Una vez finalizada la lectura del Contador, la Plataforma de Lectura cerrará el socket Para iniciar una nueva lectura del contador, se vuelve a iniciar el proceso indicado en 1.
- Debe ajustar los valores de los parámetros COMM_ ajustándolos a la configuración del puerto serie del dispositivo conectado
- Para las comunicaciones SSL, si necesita incorporar los certificados root de sus servidores, al final de este documento encontrará un Anexo con el procedimiento
- La seguridad en este modelo de comunicación es muy elevada, pues no hay ningún puerto TCP abierto (en escucha) en el módem, todas las comunicaciones son de tipo TCP cliente y securizadas mediante SSL/TLS
- En este escenario, además de las comunicaciones IP, se permite conectar con el Contador mediante llamada GSM de datos (CSD). Es por ello que en este escenario debe forzarse el módem para usar la red 2G (parámetro GPRS_mode: 2g). En caso de no necesitar llamada de datos GSM, puede cambiarse el parámetro de configuración GPRS_mode a un valor “auto”, de esa forma el módem utilizará la red 2g/3g según disponibilidad