COMMUNICATION SYSTEM
20170302624 · 2017-10-19
Assignee
Inventors
- Vilhelm Persson (Åled, SE)
- Lars-Åke Ekstrand (Halmstad, SE)
- Jonas Åkerlund (Halmstad, SE)
- Lars Dunemark (Falkenberg, SE)
- Jens Jakobsen (Halmstad, SE)
Cpc classification
H04L63/0471
ELECTRICITY
H04L63/107
ELECTRICITY
H04L63/06
ELECTRICITY
H04L12/4633
ELECTRICITY
H04L63/029
ELECTRICITY
H04L12/66
ELECTRICITY
International classification
Abstract
This invention relates to a method in a communication system comprising a gateway and a server. The method comprises: sending a request for establishment of a communication tunnel from the gateway to the server; transmitting a secret from the server to the gateway in response to receiving the request in the server; establishing a communication tunnel by connecting a tunnel client in the gateway to a tunnel server in the server using the received secret; receiving data from a device connected to the gateway and transmitting at least a portion of the data to the tunnel server via the communication tunnel.
Claims
1. A method in a communication system, said system comprising a gateway and a server, said method comprising: sending a request for establishment of a communication tunnel between the server and the gateway; transmitting a secret from the server to the gateway; establishing a communication tunnel by connecting a tunnel client in the gateway to a tunnel server in the server using the received secret; receiving data from a device connected to the gateway; and transmitting at least a portion of the data to the tunnel server via the communication tunnel.
2. The method according to claim 1, further comprising storing at least a portion of the received data in the gateway for subsequent transmission to the tunnel server.
3. The method according to claim 1, wherein the received data is encrypted in the gateway prior to transmission to the tunnel server.
4. The method according to claim 1, further comprising sending second data from the gateway to server, the second data comprising information related to the location of the gateway.
5. The method according to claim 4, further comprising transmitting the secret from the server on a condition that the location of the gateway corresponds to location data stored at the server.
6. The method according to claim 1, further comprising: receiving a signal at an input on the gateway; and disabling communication via the tunnel on a condition that the signal corresponds to a predetermined signature.
7. The method according to claim 1, further comprising providing a signal at an output on the gateway, said signal indicating if communication is established between the gateway and the server.
8. The method according to claim 1, further comprising: categorizing the data received from the device in the gateway in to at least a first and a second category based on the content of the received data; and transmitting the first category of data to the server without transmitting the second category of data.
9. A communication system comprising: a server configured to send a request for establishment of a communication tunnel between the server and a gateway; said server further configured to transmit a secret to the gateway, wherein said gateway comprises a tunnel client configured to establish a communication tunnel to a tunnel server in the server using the received secret; and said gateway is further configured to: receive data from a device connected to the gateway, and transmit at least a portion of the data to the tunnel server via the communication tunnel.
10. The communication system according to claim 9, wherein the gateway comprises a memory configured to store at least a portion of the received data for subsequent transmission to the tunnel server.
11. The communication system according to claim 9, wherein the gateway is configured to encrypt the received data prior to transmission to the tunnel server.
12. The communication system according to claim 9, wherein the gateway is configured to transmit second data related to the location of the gateway to the server.
13. The communication system according to claim 12, wherein the server is configured transmit the secret on a condition that the location of the gateway corresponds to location data stored at the server.
14. The communication system according to claim 9, wherein the gateway comprises an input, and the gateway is configured to: receive a signal at the input; and disable communication via the tunnel on a condition that the signal corresponds to a predetermined signature.
15. The communication system according to claim 9, wherein the gateway comprises an output, and the gateway is configured to provide a signal at the output indicating if communication is established between the gateway and the server.
16. The communication system according to claim 9 , wherein the gateway is configured to: categorize the data received from the device in to at least a first and a second category based on the content of the received data; and transmit the first category of data to the server without the second category of data.
17. A gateway device comprising a processor and memory, the processor configured to: receive a request for establishment of a communication tunnel between a server and the gateway; receive a secret to from the server; establish a communication tunnel with a tunnel server in the server using the received secret; and receive data from a device connected to the gateway; and transmit at least a portion of the data to the tunnel server via the communication tunnel.
18. The gateway device according to claim 17, wherein the processor is configured to: categorize the data received from the device in to at least a first and a second category based on the content of the received data; and transmit the first category of data to the server without the second category of data.
19. The gateway device according to claim 17, wherein memory is configured to store at least a portion of the received data for subsequent transmission to the tunnel server.
20. The gateway device according to claim 17, wherein the processor is configured to transmit second data related to the location of the gateway to the server.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0034] The above, as well as additional objects, features and advantages of the present invention, will be better understood through the following illustrative and non-limiting detailed description of preferred embodiments of the present invention, with reference to the appended drawings, where the same reference numerals will be used for similar elements, wherein:
[0035]
[0036]
[0037]
[0038]
[0039]
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0040]
[0041] A gateway 100 is arranged in a first local area network 110 e.g. at an industrial plant. The gateway 100 communicates with a PLC 120 for controlling an electrical device, such as a motor, switch, valve etc, and/or collecting data from e.g. a sensor as disclosed above. A first firewall 130 protects the first local area network at the plant from outside attacks and connects the first local area network 110 to a wide area network 140, such as the Internet.
[0042] In similarity to the above, a client 150 is arranged in a second local area network 160 which is connected to the Internet 140 via a second firewall 170.
[0043] A server 180 is also connected to the Internet 140 and communicates with the gateway 100, via the first firewall 130, and with the client 150, via the second firewall 170, As will be disclosed in more detail below, the server 180 comprises two functional blocks: an API tunnel 181 and one or more tunnel servers 182. The API Tunnel 181 is responsible for creating a communication tunnel from the gateway 110 to the client 150 using the one or more tunnel servers 182.
[0044]
[0045] After receiving the request 290 from the client 250, the API tunnel 281 instructs 292 the tunnel server 282 to prepare a tunnel and await subsequent tunnel connect requests from the client 250 and the gateway 200. The instruction 292 to prepare a tunnel includes the authorization and auditing data mentioned above necessary for establishing a tunnel between the client 250 and the gateway 200.
[0046] The API tunnel 251 also instructs 293 a tunnel launcher 201 in the gateway 200 to initiate 294 a tunnel client 202 in the gateway 200 to connect to the tunnel server 282. The instruction 293 to the tunnel launcher 201 also comprises a one-time secret the tunnel client 202 may use when connecting to the tunnel server 282.
[0047] After this setup both the client 250 and the gateway 200 are ready to connect 295, 296 to the tunnel server 282 using the one-time secrets. The connection 295, 296 to the tunnel server 282 is preferably done using web socket. By utilizing an HTTP-compatible handshake it is possible to tunnel through the firewalls 130 and 170 via the default HTTP and HTTPS ports (80 and 443). It is emphasized in this context that the initiation of the tunnel as disclosed above may be done by the gateway 200, wherein the request for establishment of a tunnel to the API tunnel is sent from the gateway 200.
[0048] With reference to
[0049] The device tool 351 is configured to connect 390 to a virtual connector created in the tunnel client 352. The virtual connector forwards 391 the connection from the tunnel client 352 to the tunnel server 382 using the web socket disclosed above.
[0050] The tunnel server 382 performs authorization of the tunnel client 352 and if allowed forwards 392 the connection to the tunnel client 302 in the gateway 300.
[0051] The tunnel client 302 in the gateway 300 performs the connection 393 to the PLC 320, wherein the device tool 351 gains access to the PLC 320.
[0052] In order to protect the communication in the channel 394 (indicated by the dashed line in
[0053] Additionally, the client 350 may need to connect to the PLC 320 for other reasons. In one scenario remote logging of data from devices connected to the PLC 320 may be desired. By this so-called remote management logging of data is done locally in a memory 303 at the gateway 300 and data is transmitted to the client 350 or a central server (not shown) periodically. This arrangement is beneficial in that no data are lost in case of loss of connection 394 between the gateway 300 and the client 350 (or server). The gateway 300 may also analyze the logged data and determine if the content of the data calls for specific actions. That is, the logged data can e.g. give an indication that the device connected to the PLC is not working properly, that a temperature measured by the device is too high etc., wherein the gateway may send a message to the server providing information about the anomaly.
[0054] In order to take advantage of both remote access and remote management, the gateway 300 may comprise a data inspection block 304 (either in form of dedicated hardware, such as a processor, FPGA, ASIC or the like, or in the form of software code portions that perform the inspection functionality when executed in a processor) which inspect the traffic in the gateway 300 in order to determine which traffic should be handled locally at the gateway 300 and which traffic should be sent through the VPN. To this end, the gateway 300 may inspect the traffic and handle industrial protocols (such as ModbusTCP, EthernetIP etc.) locally, thereby enabling local logging of data in the gateway 300. Alternatively, or additionally, this switch or combination between remote management and remote access may be performed by sending a message to the gateway 300 from the client 350 via the server 380 indicating in which mode the gateway 300 shall operate.
[0055]
[0056] The server 480 comprises a white list of gateway 100 or client 150 IP addresses 481 which are considered valid in the sense that calls or requests for establishing a tunnel from a gateway 100 or client 150 on the list as disclosed in relation to
[0057] To even further safeguard that only authorized gateways 100 and clients 150 are allowed to make requests for establishing tunnels, e.g. in a situation where a fraudulent party tries to gain access to the system by imitating a different IP or MAC address, the server 480 may comprise GPS data 483 associated with the gateways 100 and/or clients 150 that are connected to the server 480. It may be that not all gateways 100 and clients 150 in the system may be able to report their GPS data (e.g. due to the fact that they are installed inside an industrial plant where GPS reception is poor or absent). If so, the white list 481 in the server 480 preferably comprises indications for which gateways 100 and clients 150 no valid GPS data are available, such that extra security measures may be initiated should any suspicion about an outside attack be present. In this embodiment the gateways 100, clients 150 or both are arranged with a GPS receiver in order to determine its own position.
[0058] By this arrangement, any fraudulent person who tries to get access to the system by imitating the IP and/or MAC address of e.g. a gateway 100 needs to know the exact location of the gateway 100. Further, on installation of the gateway 100, its position may be stored in a memory protected by encryption with a password only known by the server. When a subsequent authentication of the gateway 100 needs to be performed, the encrypted GPS data may be transferred together with the actual GPS position and compared in the server 480. Access to the system will be denied should the GPS data on the white list 381, the encrypted GPS data and the actual GPS data differ. By this provision, no fraudulent person will be able to remove a gateway 100 from its installation location and try to connect to the server from another, unpermitted location.
[0059] When a person wants to log into the server 180 via the client 100 shown in
[0060] As an alternative to or in addition to the location-based access rules described above, other types of access rules 484 may be configured in the server 480. Access rules 484 may be configured to apply to all IP traffic, to a specific set of protocol definitions, or to all IP traffic except selected protocols, e.g. allowing public access from the Internet to a web interface in the server 480. In case the communication in the channel 394 is encrypted as disclosed above, the access rules are preferably handled in the gateway 300 and the client 350.
[0061] The server 480 may also comprise a functional block 485 arranged to make packet inspection of the IP traffic in the server 480. The packet inspection block 485 analyses the data passing through the server in order to e.g. determine what protocols are used for communication, the origin and destination of the data etc. By this measure the party responsible for the operation of the server 480 may detect any outside attacks originating from gateways 100 or clients 150 connected to the system, e.g. by identifying attempts to get unauthorized access from a gateway 100 to a client 150.
[0062] In case an encrypted channel has been established between the gateway 300 and the client 350 as disclosed in relation to
[0063] Alternatively, if the channel 394 between the gateway 300 and the client 350 constitutes a locked VPN (without the possibility to decrypt the channel 394 on the fly in the server 380), the server 380 may request the gateway 300 and client 350 to open up the VPN for inspection at some instances in order to determine which protocols that are used etc.
[0064] With reference back to
[0065] Since the security settings in the gateway 300 require extensive knowledge of the all security parameters needed, in an embodiment of the present invention different parameters are grouped together such that a technician, who has the task to configure the security at the gateway 300 may be presented with a limited number of security options shown on a screen connected to the gateway 300. These options may be in the form of a selectable list, such as “low security”, “medium security” and “high security”, or in the form of a graphical slider shown on the screen. The option “high security” may in this embodiment correspond to strong encryption of the channel, strong encryption of GPS data in the gateway 300, demand for digital certificates from the server 380 and the client 350 etc. By grouping different parameters together in this way, a reconfiguration of the security level at the gateway 300 will be easy to perform.
[0066]
[0067] The signal received at the input 501 may at its simplest be in the form of a digital high/low signal provided by a three-pole switch connected to the voltage feed and ground. A technician at the site where the gateway 500 is located may thus with simple means block all remote access to the gateway 500 e.g. during a planned maintenance session. Correspondingly, an authorized technician at the site may enable remote access to the gateway 500 after start-up of the gateway 500.
[0068] The signal may also be of a more complex structure, e.g. constituting a digital certificate stored on a USB stick or the like which is connected to the processing unit 503 via the input 501. This will provide the possibility to restrict which persons who are allowed to block or allow the remote access.
[0069] The processing unit 503 may comprise a timer 5030 which reacts to the reception of a valid signal on the input 501. When the processing unit 503 receives a valid signal at the input 501 as disclosed above, it starts the timer 5030 in order to enable or disable remote access for a predetermined time. Different users at the gateway 500, who may be identified by means of the signal provided on the input as disclosed above, may be authorized to enable/disable the remote access for different lengths of time.
[0070] The gateway 500 may be provided with an output 504 which is connected to the processing unit 503. The processing unit 503 is arranged to send a signal to the output 504 indicative of the status of the remote access to the gateway 500. That is, the output 504 may be read by other devices connected to the gateway 500 thereby providing them with information whether or not remote access is active. The output may also or additionally be connected to an indicator, such as a LED or lamp in order to give an indication to persons located in the vicinity of the gateway 500 that remote access is enabled or disabled.
[0071] In an embodiment may the white list 481 disclosed in relation to
[0072] Reference back to
[0073] In one embodiment the processing unit 503 shown in
[0074] In another embodiment the processing unit 503 may restrict the amount of data that is sent to/from the gateway 500. This may be useful when the gateway is connected to a network without a so-called flat rate pricing scheme.
[0075] In the above embodiments it is advantageous to use packet inspection 485 in order to determine what data is transmitted to/from the gateway 500. By this arrangement it is possible to allow critical data, such as firmware upgrades, alarms etc., to be received/transmitted while blocking low priority data such as reporting of non-critical process data. To this end the gateway 300, server 380 and client 350 are provided with a list of data types including their priority for transmission. If an encrypted channel as disclosed above is used for transmissions from the gateway 300 the packet inspection has to be performed in the gateway 300. This can be accomplished by implementing a packet inspection block in the gateway 300 (not shown), which is analogous in function to the packet inspection block 485 implemented in the server 380.
[0076] The invention has mainly been described above with reference to a few embodiments. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the invention, as defined by the appended patent claims.