Telit SSL-TLS User Guide r22
Telit SSL-TLS User Guide r22
User Guide
APPLICABILITY TABLE
PRODUCTS PLATFORM VERSION ID TECHNOLOGY
GL865 SERIES
GE865-QUAD
10
GE864 V2 SERIES
GL868-DUAL
GE910 SERIES 13 2G
GE910-QUAD V3
GE866-QUAD
16
GL865 V3 SERIES
GL868-DUAL V3
HE910 SERIES
UE910 SERIES
12 3G
UL865 SERIES
UE866 SERIES
LE866 SERIES
23
ME866A1 SERIES
LE910Cx SERIES 25
4G
ME910C1 SERIES
30
ML865C1 SERIES
ME310G1 SERIES
ME910G1 SERIES 37
ML865G1 SERIES
Contents
APPLICABILITY TABLE 2
AT COMMAND LIST 7
1. INTRODUCTION 8
Scope 8
Audience 8
Contact Information, Support 8
Symbol Conventions 9
2. PRELIMINARY INFORMATION 10
5. SSL CONFIGURATION 15
Enabling an SSL Channel, #SSLEN Command 15
SSL Security Configuration, #SSLSECCFG Command 15
5.2.1. 2G Modules (ID 10, 13, 16) 16
5.2.2. 3G Modules (ID 12), 4G Modules (ID 20, 23) 17
5.2.3. 4G Modules (ID 25) 19
5.2.4. 4G Modules (ID 30, 37) 20
Examples 21
5.3.1. #SSLEN in Modules Providing one SSL Socket 21
5.3.2. #SSLEN in Modules Providing Several SSL Sockets 24
Storing Security Data 27
Get the Root CA Certificate 29
SSL Communication Configuration, #SSLCFG Command 31
7. HTTPS CONNECTION 49
#SSLD Command Example 49
9. MQTT 56
Examples 56
9.1.1. MQTT client connection secured (ID 30, 37) 56
9.1.2. Connection with AWS server (ID 30) 59
9.1.3. Connection with AWS server (ID 37) 62
10. APPENDIX 66
Preinstalled Cipher Suites 66
10.1.1. 2G Modules (ID 10, 13, 16) 66
10.1.2. 3G Modules (ID 12) 67
10.1.3. 4G Modules (ID 20) 68
10.1.4. 4G Modules (ID 23) 69
10.1.5. 4G Modules (ID 25) 72
10.1.6. 4G Modules (ID 30) 73
10.1.7. 4G Modules (ID 37) 74
SSL Error Codes 76
12. GLOSSARY 81
AT COMMAND LIST
The following list, organized in alphabetical order, shows the AT commands covered in
this User Guide. The number next to each command indicates the page of the first AT
command occurrence.
1. INTRODUCTION
Scope
This document describes the set of the Telit AT commands regarding the SSL/TLS
protocols use.
Audience
The guide is intended for users that need to develop applications based on secure
connection channels. The reader is expected to have knowledge in wireless technology
as well as in SSL/TLS security protocols.
https://www.telit.com/contact-us/
Product information and technical documents are accessible 24/7 on our web site:
https://www.telit.com
Symbol Conventions
2. PRELIMINARY INFORMATION
Warning: This guide introduces the AT commands that handle SSL
sockets and provides examples that describe their use. The guide does
not contain examples for all the modules listed in the Applicability
Table, it contains examples relating to some modules to give a trace
to the reader about the use of the SSL commands.
AT+CGDCONT=<cid>,<PDP_type>,<APN>,···
Where:
<cid> PDP Context Identifier. Use the test command to know the <cid> range of
the used module.
<PDP_type> a string which specifies the type of Packet Data Protocol.
<APN> Access Point Name, a string containing the logical name used to select
GGSN or external packet data network. The ISP provides this parameter.
… other parameters.
Use the #SGACT command to activate the PDP.
AT#SGACT= <cid>,<stat>[,<userId>,<pwd>]
Where:
<cid> PDP Context Identifier. Use the test command to know the <cid> range of
the used module.
<stat> context status: 0 = deactivate the context, 1 = activate the context.
… optional parameters.
Example
Define PDP context.
AT+CGDCONT=1,"IP","Access_Point_Name",···
OK
Before activating a PDP context, it must be bound to a socket through the #SCFG
command.
OK
AT#SSLSECCFG2=<SSId>,<version>
[,<unused_A>[,<unused_B>[,<unused_C>[,<unused_D>]]]]
Where:
<SSId> Secure Socket ID. Use the AT#SSLSECCFG2=? test command to know the
<SSId> range of the module used.
<version> It selects the SSL/TLS protocol version.
Refer to:
• document [6] for command syntax and parameters values
• chapter 10.1.2 for supported protocols and preinstalled cipher suites
AT#SSLSECCFG2=<SSId>,<version>
[,<unused_A>[,<unused_B>[,<unused_C>[,<unused_D>]]]]
Where:
<SSId> Secure Socket ID. Use the AT#SSLSECCFG2=? test command to know the
<SSId> range of the module used.
<version> It selects the SSL/TLS protocol version.
AT#SSLSECCFG2=<SSId>,<version>[,<SNI>[,<unused_A>[,<unused_B> [,<unused_C>]]]]
Where:
<SSId> Secure Socket ID. Use the AT#SSLSECCFG2=? test command to know the
<SSId> range of the module used.
<version> It selects the SSL/TLS protocol version.
<SNI> enable/disable Server Name Indication
Refer to:
• document [11] for command syntax and parameters values
Where:
<SSId> Secure Socket ID. Use the AT#SSLSECCFG2=? test command to know the
<SSId> range of the module used.
<version> select SSL/TLS protocol version. For platform ID 30 only for FTPS.
<SNI> enable/disable Service Name Indication.
5. SSL CONFIGURATION
Before opening an SSL socket and exchange data with it, you must perform the following
steps.
AT#SSLEN= <SSId>,<Enable>
Where:
<SSId> Secure Socket ID. Use the AT#SSLEN=? test command to know the <SSId>
range of the used module.
<Enable> status: 0 = deactivate secure socket (default), 1 = activate secure socket.
Example
The #SSLEN command behavior depends on the number of the SSL sockets that the
module supports, and on the AT instance you are using to enter the command. See
chapters 5.3.1, 5.3.2.
If the remote server does not support one of the cipher suites provided by the module the
handshake fails.
The #SSLSECCFG command manages the cipher suites and the authentication modes as
shown in the following chapters.
AT#SSLSECCFG= <SSId>,<CipherSuite>,<auth_mode>
Where:
<SSId> must be set to 1. Only one secure socket is available.
<CipherSuite> setting the value to 0 (default), all the available cipher suites are
proposed to the remote server, see chapter 10.1.1. It is the
responsibility of the remote server to select one of them.
Setting a value other than zero (1÷6), the module proposes to the
remote server one of the following cipher suite:
1 = TLS_RSA_WITH_RC4_128_MD5
2 = TLS_RSA_WITH_RC4_128_SHA
3 = TLS_RSA_WITH_AES_256_CBC_SHA
4 = TLS_RSA_WITH_AES_128_CBC_SHA256
5 = TLS_RSA_WITH_AES_256_CBC_SHA256
6 = TLS_RSA_WITH_AES_128_GCM_SHA256
Refer to:
• document [1] for command syntax and parameters values
If you enable the unique SSL socket, identified by <SSId>=1, on an AT instance through
the #SSLEN command, other AT instances cannot use the <SSId>=1 socket. To use the
<SSId>=1 socket on another AT instance, you must disable the <SSId>=1 socket (enter
#SSLEN=1,0 on the AT instance used to enable <SSId>=1) and activate it on the new AT
instance. See chapter 5.3.1. To have information on AT instances refer to documents [4].
AT#SSLSECCFG= <SSId>,<CipherSuite>,<auth_mode>[,<cert_format>]
Where:
<SSId> Secure Socket ID. Use the AT#SSLSECCFG=? test command to know
the <SSId> range of the used module.
<CipherSuite> when 0 value is set, all the available cipher suites are proposed to
the remote server within TLS handshake (i.e.: client hello), see
chapter 10.1.2, 10.1.3 or 10.1.4 according to the module used. It is
responsibility of the remote server to select one of them.
Setting <CipherSuite> value different from zero (1÷5), only one cipher
suite is proposed:
1 = TLS_RSA_WITH_RC4_128_MD5
2 = TLS_RSA_WITH_RC4_128_SHA
3 = TLS_RSA_WITH_AES_128_CBC_SHA
4 = TLS_RSA_WITH_NULL_SHA
5 = TLS_RSA_WITH_AES_256_CBC_SHA
0 = DER format
1 = PEM format, default
Assume to use a module providing a set of SSL sockets. If you enable a SSL socket,
identified by <SSId>=x, on an AT instance through the #SSLEN command, other AT
instances cannot use the same <SSId>=x socket. To use the <SSId>=x socket on another
AT instance, you must disable the <SSId>=x socket (enter #SSLEN=x,0 on the AT instance
used to enable <SSId>=x) and activate it on the new AT instance. Different SSL sockets
can be enabled on different AT instances. See chapter 5.3.2. To have information on AT
instances refer to documents [5], [10], and [12] according to the module used.
Where:
<SSId> Secure Socket ID. Use the AT#SSLSECCFG=? test command to know
the <SSId> range of the used module.
<CipherSuite> when 0 value is set, all the available cipher suites are proposed to
the remote server within TLS handshake (i.e.: client hello), see
chapter 10.1.5. It is responsibility of the remote server to select one
of them.
Setting <CipherSuite> value different from zero, only one cipher suite
is proposed:
1 = TLS_RSA_WITH_3DES_EDE_CBC_SHA
2 = TLS_RSA_WITH_AES_128_CBC_SHA
3 = TLS_RSA_WITH_AES_128_CBC_SHA256
4 = TLS_RSA_WITH_AES_256_CBC_SHA
5 = TLS_RSA_WITH_AES_256_CBC_SHA256
6 = TLS_DHE_RSA_WITH_AES_128_CBC_SHA
7 = TLS_DHE_RSA_WITH_AES_256_CBC_SHA
8 = TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
9 = TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
10 = TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
Examples
AT+CMEE=2
OK
AT#SSLEN?
#SSLEN: 1,0
OK
AT#SSLEN=1,1
OK
AT#SSLEN?
#SSLEN: 1,1
OK
AT+CMEE=2
OK
AT#SSLEN?
#SSLEN: 1,1
OK
AT#SSLEN=1,0
+CME ERROR: Resource used by another instance
Use COM1
AT#SSLEN=1,0
OK
AT#SSLEN?
#SSLEN: 1,0
OK
Use COM4
AT#SSLEN?
#SSLEN: 1,0
OK
AT#SSLEN=1,1
OK
Use COM1
AT#SSLEN?
#SSLEN: 1,1
OK
AT#SSLEN=1,0
AT+CMEE=2
OK
Assume to start from this SSL sockets configuration.
AT#SSLEN?
#SSLEN: 1,0
#SSLEN: 2,0
#SSLEN: 3,0
#SSLEN: 4,0
#SSLEN: 5,0
#SSLEN: 6,0
OK
AT#SSLEN=1,1
OK
AT#SSLEN?
#SSLEN: 1,1
#SSLEN: 2,0
#SSLEN: 3,0
#SSLEN: 4,0
#SSLEN: 5,0
#SSLEN: 6,0
OK
Connect USB cable, and use COM25, instance 2 (Parser AT1)
AT+CMEE?
+CMEE: 0
OK
AT+CMEE=2
OK
AT#SSLEN?
#SSLEN: 1,1
#SSLEN: 2,0
#SSLEN: 3,0
#SSLEN: 4,0
#SSLEN: 5,0
#SSLEN: 6,0
OK
AT#SSLEN=1,0
+CME ERROR: Resource used by another instance
AT#SSLEN=2,1
OK
Use COM1
AT#SSLEN=1,0
OK
AT#SSLEN?
#SSLEN: 1,0
#SSLEN: 2,1
#SSLEN: 3,0
#SSLEN: 4,0
#SSLEN: 5,0
#SSLEN: 6,0
OK
AT#SSLEN=2,0
+CME ERROR: Resource used by another instance
AT#SSLEN=3,1
OK
AT#SSLEN=4,1
OK
AT#SSLEN?
#SSLEN: 1,0
#SSLEN: 2,1
#SSLEN: 3,1
#SSLEN: 4,1
#SSLEN: 5,0
#SSLEN: 6,0
OK
Use COM25
AT#SSLEN?
#SSLEN: 1,0
#SSLEN: 2,1
#SSLEN: 3,1
#SSLEN: 4,1
#SSLEN: 5,0
#SSLEN: 6,0
OK
AT#SSLEN=1,1
OK
AT#SSLEN?
#SSLEN: 1,1
#SSLEN: 2,1
#SSLEN: 3,1
#SSLEN: 4,1
#SSLEN: 5,0
#SSLEN: 6,0
OK
AT#SSLEN=4,0
+CME ERROR: Resource used by another instance
• CA Certificates
• Private Key
The maximum size of security data depends on the used module. If a remote server has
a certificate larger than the maximum size supported by the module, the authentication
fails.
Chapter 5.5 describes a procedure to get the root CA certificate to use in a connection to
an HTTPS server. See standards RFC 2459, and X509v3.
Server or Server/Client authentication is fulfilled only if you store the proper security data
(certificate(s) and/or private key) in the module’s NVM.
Use the following command to store, read, and delate security data.
Where:
<SSId> store identifier. Use the AT#SSLSECDATA=? test command to know the
<SSId> range provided by the used module.
<Action> action identifier. Use the AT#SSLSECDATA=? test command to know the
<Actions> range supported by the used module.
0 = delete security data from NVM
1 = store security data in NVM
2 = read security data from NVM
3 = store security data in RAM (supported by Platform ID 23)
<DataType> identifies the certificate/key to be stored, read or delete.
<Size> size of the stored security data. Use the AT#SSLSECDATA=? test command
to know the <Size> range provided by the used module.
After entering the #SSLSECDATA command, the ‘>’ prompt appears. There are two
security data downloading modes according to the used certificate format set through
the AT#SSLSECCFG command, see table below.
Certificates can be set only in PEM format Certificates can be in PEM or DER format
Table 2: PEM and DER Formats
Before downloading the certificate, you need to know the size of the certificate expressed
in bytes. Use the Property dialog box, shown above. When <size> bytes are downloaded,
the security data is stored, and an OK message is displayed. The DER format uses the
binary format; therefore, the reserved chars "backspace" and "escape" are not
interpreted as control characters, and the binary file includes them inside it. The data
security downloading can be done with the Telit AT Controller tool.
To obtain the root CA certificate you can use a browser, running on a PC, connected to
the desired HTTPS server.
During the handshake, the server sends a certificate chain, which is a list of certificates.
The chain begins with the certificate of the server, and each certificate in the chain is
signed by the entity identified by the next certificate in the chain. The server chain could
terminate with a root CA certificate, if root CA is not sent by server it must be present
locally on the client to solve the chain. The root CA certificate is always signed by the CA
itself. The signatures of all certificates in the chain must be verified until the root CA
certificate is reached.
Here is an example of solved certificate chain.
Where:
ServerCert is the server certificate at which the client wants to be connected
AuhorityCert1…N are certificates of intermediate authorities
RootCACert is the certificate of a global recognized Certificate Authority
In this example is used the browser Mozilla Firefox.
After being connected to the HTTPS server, click on the lock icon on the left side of the
page browser and the following dialog box appears.
The root CA certificate obtained from the procedure may be different from the one sent
by the server during the handshake. In this case, contact the server administrator to
obtain the root CA certificate to use.
If the root CA certificate has expired, the module (client) detects the certificate expiration
when it tries to perform the connection, and an error message is returned.
AT#SSLCFG=<SSId>,<cid>,<pktSz>,<maxTo>,<defTo>,<txTo>[,<sslSRingMode>
[,<noCarrierMode>]]
Where:
<SSId> Secure Socket ID. Use the AT#SSLCFG=? test command to know the <SSId>
range of the used module.
<cid> PDP Context Identifier. Use the AT#SSLCFG=? test command to know the
<cid> range of the used module.
<pktSz> size of the packet used by the SSL/TCP/IP stack for data sending in ONLINE
mode. The packet size can be changed according to the user’s application
standard message size. Small <pktSz> values introduce a higher
communication overhead.
<maxTo> socket inactivity timeout. In ONLINE mode, if there is no data exchange
within this timeout period the connection is closed. Increment it if a longer
idle time interval is required.
<defTo> timeout value used as default value by other SSL commands whenever their
timeout parameters are not set.
<txTo> time interval after which data is sent even if <pktSz> is not reached (only in
ONLINE mode). The parameter value must be tuned with user’s application
requirements. Small <txTo> values introduce a higher communication
overhead.
AT#SSLCFG=<SSId>,<cid>,<pktSz>,<maxTo>,<defTo>,<txTo>[,<sslSRingMode>
[,<noCarrierMode>[<skipHostMismatch]]]
Where:
<SSId> Secure Socket ID. Use the AT#SSLCFG=? test command to know the <SSId>
range of the used module.
<cid> PDP Context Identifier. Use the AT#SSLCFG=? test command to know the
<cid> range of the used module.
<pktSz> size of the packet used by the SSL/TCP/IP stack for data sending in ONLINE
mode. The packet size can be changed according to the user’s application
standard message size. Small <pktSz> values introduce a higher
communication overhead.
<maxTo> socket inactivity timeout. In ONLINE mode, if there is no data exchange
within this timeout period the connection is closed. Increment it if a longer
idle time interval is required.
<defTo> timeout value used as default value by other SSL commands whenever their
timeout parameters are not set.
<txTo> time interval after which data is sent even if <pktSz> is not reached (only in
ONLINE mode). The parameter value must be tuned with user’s application
requirements. Small <txTo> values introduce a higher communication
overhead.
AT#SSLCFG=<SSId>,<cid>,<pktSz>,<maxTo>,<defTo>,<txTo>[,<SSLSRingMode>
[,<noCarrierMode>[,<skipHostMismatch>[,<equalizeTx>]]]]
AT#SSLCFG=<SSId>,<cid>,<pktSz>,<maxTo>,<defTo>,<txTo>[,<SSLSRingMode>
[,<noCarrierMode>[,<skipHostMismatch>[,<equalizeTX> [,<connTo >[,<Unused1>]]]]]]
Examples
The next section describes examples concerning the AT commands introduced in the
previous chapters.
AT+CGMM
HE910
OK
AT+CMEE=2
OK
Use the AT#SSLEN=? test command to know the <SSId> range of the used HE910 module.
It provides only one Secure Socket.
AT#SSLEN=?
#SSLEN: (1),(0,1)
OK
AT#SSLSECCFG=1,0,0
OK
In this case, no security data is required to be stored in NVM, the module is ready for SSL
socket dial.
AT#SSLSECCFG=1,1,1
OK
Store the CA certificate of the remote server in PEM format.
AT#SSLSECDATA=1,1,1,<size>
> -----BEGIN CERTIFICATE-----<LF>
[…]
-----END CERTIFICATE-----<LF>
<ctrl>Z
OK
AT#SSLSECCFG=1,0,1,0
OK
Store the CA certificate of the remote server in DER format. When <size> bytes are
entered, and the CA Certificate is stored successfully, the OK message is displayed.
AT#SSLSECDATA=1,1,1,<size>
> …………………….
OK
Now, the module is ready for SSL socket dial.
AT#SSLSECCFG=1,0,1,1
OK
Store the CA certificate of the remote server in PEM format.
AT#SSLSECDATA=1,1,1,<size>
> -----BEGIN CERTIFICATE-----<LF>
[…]
-----END CERTIFICATE-----<LF>
<ctrl>Z
OK
AT#SSLSECDATA=1,1,0,<size>
> -----BEGIN CERTIFICATE-----<LF>
[…]
-----END CERTIFICATE-----<LF>
<ctrl>Z
OK
• ONLINE mode
• COMMAND mode
Use the following command to open an SSL socket.
AT#SSLD=<SSId>,<rPort>,<IPAddress>,<ClosureType>[,<connMode>[,<Timeout>]]
Where:
<SSId> Secure Socket ID. Use the test command to know the <SSId> range
of the used module.
<CLOSURETYPE> PARAMETER
Platform Version ID 0 1
SSL session id and keys are released, SSL session id and keys are saved, and a
therefore #SSLFASTD command cannot be new connection can be established
10, 13, 16 (2G)
used to recover the last SSL session without a complete handshake using
(default). #SSLFASTD command.
In ONLINE mode, it is not possible to enter AT commands on the used serial port or virtual
port, refer to documents [4] or [5] to have information about the serial/virtual ports.
However, it is possible to suspend the connection, without closing it, by sending the
escape sequence (+++). After that, the module returns the OK response and can parse
the AT commands again.
ONLINE mode can be restored at any time by sending the following command.
AT#SSLO=<SSId>
Where:
<SSId> Secure Socket ID. Use the test command to know the <SSId> range of the
used module.
After entering the #SSLO restore command, the CONNECT message appears, and SSL
communication can continue.
If the idle inactivity timeout expires (<maxTo>, see chapter 5.6) or the remote server
closes the connection, the NO CARRIER message is displayed.
If SSLSRING unsolicited message has been enabled by means of the #SSLCFG command
(<sslSRingMode> set to 1 or 2), any new incoming data will be notified.
At any moment, the user can switch to ONLINE mode by entering the #SSLO command
described in the previous chapter.
AT#SSLSEND=<SSId>[,<Timeout>]
Where:
<SSId> Secure Socket ID. Use the test command to know the <SSId> range of the
used module.
<Timeout> Timeout expressed in 100 msec unit. If it is omitted, the default timeout set
via AT#SSLCFG will be used (<defTo>, refer to chapter 5.6).
When the command is closed with a <CR>, the ‘>’ prompt appears. Now, you can enter
the data to be sent. To close the data block, enter <ctrl>Z, then the data are forwarded to
the remote server through the secure socket. Response: OK on success, ERROR on
failure.
AT#SSLSENDEXT=<SSId>, <bytestosend>[,<Timeout>]
Where:
<SSId> Secure Socket ID. Use the test command to know the <SSId> range
of the used module.
<bytestosend> Number of bytes to be sent. Use the test command to know the
<SSId> range of the used module.
When the command is closed with <CR>, the ‘>’ prompt appears. Now, you can enter the
data to be sent. When <bytestosend> bytes have been sent, operation is automatically
completed. Response: OK on success, ERROR on failure.
AT#SSLRECV=<SSId>,<MaxNumByte>[,<Timeout>]
Where:
<SSId> Secure Socket ID. Use the test command to know the <SSId> range
of the used module.
<MaxNumByte> Maximum number of bytes that will be read from socket. The
user can set it according to the expected amount of data.
#SSLRECV: <numBytesRead>
… received data ….
OK
Where:
<numBytesRead> number of bytes read (equal or less than <MaxNumBytes>).
#SSLRECV: 0
TIMEOUT
OK
The ERROR message appears on failure.
SSLSRING:<SSId>,<dataLen>,<data>
Where:
<SSId> Secure Socket ID. Use the test command to know the <SSId> range of the
used module.
<dataLen> Number of bytes presented in the current URC. Its maximum value within a
single unsolicited message is:
256 for 2G modules
1300 for 3G/4G modules
<data> bytes of data in ASCII format. The number of bytes is <dataLen>.
AT#SSLH=<SSId>,<ClosureType>
Where:
<SSId> Secure Socket ID. Use the test command to know the <SSId> range
of the used module.
<ClosureType> enable/disable the capability to restore the session later, using the
#SSLFASTD command, without repeating the handshake phase. See
chapters 6, and 6.3.
If the secure socket was opened in ONLINE mode, the user needs to send the escape
sequence (+++) before closing it with #SSLH command, unless the communication is
remotely closed, or the idle inactivity timeout expires (NO CARRIER message).
If the secure socket was opened in COMMAND mode, when the communication is
remotely closed, and all data has been retrieved (#SSLRECV), you can also close on the
client side and NO CARRIER message is displayed. At any moment, it is also possible to
close the secure socket on client side by means of #SSLH.
Examples
The next section describes examples concerning the AT commands introduced in the
previous chapters.
In this example, the secure socket is opened, connected to an SSL server having IP
123.124.125.126, and listening on port 443. After data exchange, the connection is
suspended (+++). The #SSLS command is entered to check the SSL status, and then the
ONLINE mode is restored using #SSLO command, and so on. At the end, the SSL socket
is closed.
OK
AT#SSLSEND=1 sending data
> Send this string to the SSL server!<ctrl>Z
OK
AT#SSLRECV=1,15 receiving data
#SSLRECV: 0
TIMEOUT the server has not sent a response within the
timeout.
OK
AT#SSLRECV=1,15
#SSLRECV: 15
Response of the received data
OK
AT#SSLRECV=1,15
#SSLRECV: 6
Server received data
OK
"Response of the Server" is the string sent by the server
In this example, the socket is opened, connected to an SSL server with IP 123.124.125.126,
and listening on port 443. After data exchange in ONLINE mode, the connection is
suspended and is entered the COMMAND mode. In this mode, the AT interface is active
and by means of the #SSLSEND, #SSLSENDEXT and #SSLRECV commands, it is possible
to continue receiving and sending data using the SSL socket still connected. At the end,
the SSL socket is closed.
Note: If the remote server closes the data communication after the
data is sent and there is no more data to retrieve, the communication
is also closed on the client side. NO CARRIER message is displayed,
and then no #SSLH is needed.
AT#SSLCFG=1,1,300,90,100,50,1
OK
AT#SSLCFG=1,1,300,90,100,50,2
OK
In this example, the socket is open, connected to an SSL server with IP 123.124.125.126,
and listening on port 443; in addition, suppose that the <ClosureType> parameter is set
to 1, see chapter 6. Data exchange is performed in ONLINE mode, and then the connection
is suspended and restored using the #SSLFASTD command. After a new data exchange,
the socket is permanently closed.
7. HTTPS CONNECTION
This example shows the configuration of the SSL socket in server authentication mode,
storing the root CA certificate, opening the socket, and starting data exchange.
Thereafter, the HTTPS server responds to the module and closes the socket.
If the <Enable> parameter is not set to 1, any attempt to set SSL security configuration
fails.
AT#SSLEN=1,1
OK
CONNECT
……
The module receives a response from the HTTPS server
……
NO CARRIER Server remote closure: some servers are configured to close the
socket after a single request.
To have information on HTTP GET command request refer to RFC 2616 standard.
If <Enable> parameter is not set to 1, any attempt to set SSL security configuration fails.
SSL encryption can be used only by one service at a time. Therefore, to use the SSL
encryption with HTTP protocol, it must be disabled for SSL and FTP services. To do this,
set to 0 the following parameters: <Enable> of the #SSLEN command, and <FTPSEn> of
the #FTPCFG command.
When the HTTP server answer is received, an URC is displayed on the terminal emulator.
• message integrity
• confidentiality
during a connection over an SSL/TLS secure socket, see standard [8].
The modules support the explicit mode described in the standard [8]. In this mode, the
FTPS client must explicitly request security from an FTPS server (implicit mode is a
deprecated). When the FTPS connection is opened towards an FTPS server, the FTP
command AUTH (refer to standards [8], [9]) is sent to the server to explicitly request a
secure FTP connection.
No TLS session reuse is performed when data connection is opened: two TLS sessions
are performed within an FTP session, one for control and one for data port. The Server
shall be configured so that TLS reuse is not required.
The same certificates saved through #SSLSECDATA command are used for both TLS
sessions, as strongly recommended by the standard [8].
OK
Check the current Multi-sockets/PDP contexts configuration (default).
AT#SCFG?
#SCFG: 1,1,300,90,600,50
#SCFG: 2,1,300,90,600,50
#SCFG: 3,1,300,90,600,50
#SCFG: 4,2,300,90,600,50
#SCFG: 5,2,300,90,600,50
#SCFG: 6,2,300,90,600,50
OK
Before activating a PDP context, it must be bound to a socket. Activate PDP Context
<cid>=1. The command returns the IP address assigned by the network.
AT#SGACT=1,1
#SGACT: 10.7.125.7
OK
If <Enable> parameter is not set to 1, any attempt to set SSL security configuration fails.
AT#SSLEN=1,1
OK
SSL encryption can be used only by one service at a time. Therefore, to use the SSL
encryption with FTP protocol, it must be disabled for SSL and HTTP services. To do this,
set to 0 the following parameters: <Enable> of the #SSLEN command, and <ssl_enabled>
of the #HTTPCFG command.
Disable the SSL encryption for SSL service: <Enable>=0
AT#SSLEN=1,0
OK
AT#FTPOPEN=<server:port>,<username>,<password>[,<mode>]
OK
Use the #FTPGET command to open a data connection and get the "file.txt" from the FTPS
server.
AT#FTPGET="file.txt"
CONNECT
Now, the data port is connected, and the TLS handshake is performed, FTP data
connection is secured through TLS protocol and the "file.txt" downloading is started.
…….
…….
…….
NO CARRIER
9. MQTT
MQTT is an OASIS standard lightweight, publish-subscribe network protocol for the
Internet of Things (IoT).
You can use #MQEN command that initializes MQTT client, #MQCFG command that
configures Broker URL and port and #MQCONN command that establishes the socket
and connects to the broker to open a connection.
You can initialize and connect up to two MQTT client instances simultaneously.
To get commands and parameters descriptions see documents [3] and [14] or [15]
according to the module used.
Examples
OK
AT+CGDCONT?
OK no PDP context are defined.
OK
AT+CGDCONT?
+CGDCONT: 1,"IP","Access_Point_Name","0.0.0.0",0,0
OK
Activate PDP context <cid>=1. The command returns the IP address assigned by the
network to the module.
AT#SGACT=1,1
#SGACT: 37.176.124.199
OK
AT#MQEN=1,1
OK
OK
Configure server URL, Port number and PDP cid initialized before. Also, enable SSL if
required. If SSL is to be enabled but ine instance of it already enable, this command will
give error.
Starting from this point, all #SSL commands can be used to provide TLS related
configurations. Also do note that SSL instance in the AT#SSL commands should be same
as the MQTT instance of the client.
Select the TLS version, authentication that you need. Client-server authentication is
enabled in this example.
AT#SSLSECCFG=1,0,2
OK
OK
AT#SSLSECDATA=1,1,0,<size>
AT#SSLSECDATA=1,1,2,<size>
AT#MQCFG2=1,60,1
OK
AT#MQTCFG=1,30
OK
Open the MQTT connection. Provide client id, username and password. If username and
password are not required enter empty strings
AT#MQCONN=1,"client_id","",""
OK
OK
AT#MQDISC=1
OK
OK
OK
AT#MQEN?
#MQEN: 1,0 Instance 1 is disabled.
#MQEN: 2,0
OK.
AT+CMEE=2
OK
AT+CGDCONT?
AT+CGDCONT=1,"IP", "Access_Point_Name"
OK
AT+CGDCONT?
+CGDCONT: 1,"IP","Access_Point_Name","0.0.0.0",0,0
OK
Activate PDP context <cid>=1. The command returns the IP address assigned by the
network to the module.
AT#SGACT=1,1
#SGACT: 37.176.124.199
OK
AT#MQEN=1,1
OK
Configure server URL, Port number and PDP cid initialized before. Also, enable SSL.
AT#MQCFG=1,"mqtt_broker_address",8883,1,1 the last field set equal to 1 is to
enable TLS over MQTT
OK
Starting from this point, all #SSL commands can be used to provide TLS related
configurations. Also do note that SSL instance in the AT#SSL commands should be same
as the MQTT instance of the client.
Select the TLS version, authentication that you need. Client-server authentication is
enabled in this example.
AT#SSLSECCFG=1,0,2
OK
AT#SSLSECDATA=1,1,1,<size>
AT#SSLSECDATA=1,1,0,<size>
OK
AT#SSLSECDATA=1,1,2,<size>
Charge RSA Private key here
OK
AT#SSLCFG=1,1,300,90,100,50,0,0,1,0
OK
OK
AT#MQCFG2=1,60,1
OK
AT#MQTCFG=1,30
OK
Open the MQTT connection. Provide client id, username and password. If username and
password are not required enter empty strings
AT#MQCONN=1,"client_id","",""
OK
OK.
OK
AT+CGDCONT?
AT+CGDCONT=1,"IP", "Access_Point_Name"
OK
AT+CGDCONT?
+CGDCONT: 1,"IP","Access_Point_Name","0.0.0.0",0,0
OK
Activate PDP context <cid>=1. The command returns the IP address assigned by the
network to the module.
AT#SGACT=1,1
#SGACT: 37.176.124.199
OK
OK
Configure server URL, Port number and PDP cid initialized before. Also, enable SSL.
OK
Starting from this point, all #SSL commands can be used to provide TLS related
configurations. Also do note that SSL instance in the AT#SSL commands should be same
as the MQTT instance of the client.
Select the TLS version, authentication that you need. Client-server authentication is
enabled in this example.
AT#SSLSECCFG=1,0,2
OK
AT#SSLSECDATA=1,1,1,<size>
Charge CA certificate here
OK
AT#SSLSECDATA=1,1,0,<size>
AT#SSLSECDATA=1,1,2,<size>
OK
OK
Enable SNI and select custom/preloaded certificate to be used. Here we are selecting
customer certificate 1 and preloaded certificate 1. If you want to use custom starfield
certificate, manage it using comman AT#SSLSECCA and configure the same.
AT#SSLSECCFG2=1,3,1,1,1
OK
AT#MQCFG2=1,60,1
OK
AT#MQTCFG=1,30
OK
Open the MQTT connection. Provide client id, username and password. If username and
password are not required enter empty strings
AT#MQCONN=1,"client_id","",""
OK
10. APPENDIX
PROTOCOLS
TLS_RSA_WITH_RC4_128_MD5 0, 1 ●
TLS_RSA_WITH_RC4_128_SHA 0, 2 ● ● ●
TLS_RSA_WITH_AES_256_CBC_SHA 0, 3 ● ● ●
TLS_RSA_WITH_AES_128_CBC_SHA256 0, 4 ●
TLS_RSA_WITH_AES_256_CBC_SHA256 0, 5 ●
TLS_RSA_WITH_AES_128_GCM_SHA256 0, 6 ●
PROTOCOLS
TLS_RSA_WITH_RC4_128_MD5 0, 1 ● ● ●
TLS_RSA_WITH_RC4_128_SHA 0, 2 ● ● ●
TLS_RSA_WITH_AES_128_CBC_SHA 0, 3 ● ● ●
TLS_RSA_WITH_NULL_SHA 4 + + + +
TLS_RSA_WITH_AES_256_CBC_SHA 0, 5 ● ● ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0 ●
TLS_RSA_WITH_AES_256_CBC_SHA256 0 ●
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_RSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_RSA_WITH_AES_128_CBC_SHA256 0 ●
(+): Generally, the cipher suite is supported by all protocols, but this may not be valid for
some SSL stack versions.
PROTOCOLS
TLS_RSA_WITH_RC4_128_MD5 0, 1 ● ● ● ●
TLS_RSA_WITH_RC4_128_SHA 0, 2 ● ● ● ●
TLS_RSA_WITH_AES_128_CBC_SHA 0, 3 ● ● ● ●
TLS_RSA_WITH_NULL_SHA 4 + + + +
TLS_RSA_WITH_AES_256_CBC_SHA1 0, 5 ● ● ● ●
TLS_RSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_RSA_WITH_AES_256_CBC_SHA256 0 ●
TLS_RSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0 ●
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0 ●
(+): Generally, the cipher suite is supported by all protocols, but this may not be valid for
some SSL stack versions.
PROTOCOLS
<CipherSuites> SSL
CIPHER SUITES TLS v1.0 TLS v1.1 TLS v1.2
Chapter 5.2.2 v3.0
TLS_RSA_WITH_RC4_128_MD5 0, 1 ● ● ● ●
TLS_RSA_WITH_RC4_128_SHA 0, 2 ● ● ● ●
TLS_RSA_WITH_AES_128_CBC_SHA 0, 3 ● ● ● ●
TLS_RSA_WITH_NULL_SHA 4 + + + +
TLS_RSA_WITH_AES_256_CBC_SHA 0, 5 ● ● ● ●
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0 ●
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0 ●
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0 ●
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 0 ●
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 0 ● ● ● ●
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0 ● ● ● ●
TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0 ● ● ● ●
TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 0 ●
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 0 ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0 ●
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 0 ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_WITH_AES_256_CBC_SHA 0 ● ● ● ●
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0 ● ● ●
PROTOCOLS
<CipherSuites> SSL
CIPHER SUITES TLS v1.0 TLS v1.1 TLS v1.2
Chapter 5.2.2 v3.0
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 0 ● ●
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0 ●
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 0 ●
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 0 ●
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 0 ● ● ● ●
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0 ● ● ● ●
TLS_RSA_WITH_AES_256_GCM_SHA384 0 ●
TLS_RSA_WITH_AES_256_CBC_SHA256 0 ●
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA 0 ● ● ● ●
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 0 ● ● ● ●
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 0 ● ● ● ●
TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0 ● ● ● ●
TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0 ● ● ● ●
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA 0 ● ● ● ●
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 0 ● ● ● ●
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 0 ● ● ● ●
TLS_RSA_WITH_3DES_EDE_CBC_SHA 0 ● ● ● ●
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 0 ● ● ● ●
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0 ● ● ● ●
TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0 ● ● ● ●
TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 0 ●
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 0 ●
PROTOCOLS
<CipherSuites> SSL
CIPHER SUITES TLS v1.0 TLS v1.1 TLS v1.2
Chapter 5.2.2 v3.0
TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_WITH_AES_128_CBC_SHA 0 ● ● ● ●
TLS_DHE_RSA_WITH_SEED_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_WITH_SEED_CBC_SHA 0 ● ● ● ●
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0 ● ● ● ●
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 0 ● ● ● ●
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0 ● ● ● ●
TLS_RSA_WITH_AES_128_GCM_SHA256 0 ●
TLS_RSA_WITH_AES_128_CBC_SHA256 0 ●
TLS_RSA_WITH_SEED_CBC_SHA 0 ● ● ● ●
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA 0 ● ● ● ●
TLS_ECDHE_RSA_WITH_RC4_128_SHA 0 ● ● ● ●
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 0 ● ● ● ●
TLS_ECDH_RSA_WITH_RC4_128_SHA 0 ● ● ● ●
TLS_ECDH_ECDSA_WITH_RC4_128_SHA 0 ● ● ● ●
TLS_DHE_RSA_WITH_DES_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_WITH_DES_CBC_SHA 0 ● ● ● ●
TLS_RSA_WITH_DES_CBC_SHA 0 ● ● ● ●
TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 0 ● ● ● ●
TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 0 ● ● ● ●
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA 0 ● ● ● ●
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 0 ● ● ● ●
TLS_RSA_EXPORT_WITH_RC4_40_MD5 0 ● ● ● ●
TLS_EMPTY_RENEGOTIATION_INFO_SCSV 0 ● ● ● ●
(+): Generally, the cipher suite is supported by all protocols, but this may not be valid for
some SSL stack versions.
PROTOCOLS
TLS_RSA_WITH_3DES_EDE_CBC_SHA 0, 1 ● ● ●
TLS_RSA_WITH_AES_128_CBC_SHA 0, 2 ● ● ●
TLS_RSA_WITH_AES_128_CBC_SHA256 0, 3 ●
TLS_RSA_WITH_AES_256_CBC_SHA 0, 4 ● ● ●
TLS_RSA_WITH_AES_256_CBC_SHA256 0, 5 ●
TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0,6 ● ● ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0,7 ● ● ●
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0,8 ● ●
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0,9 ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0,10 ●
PROTOCOLS
<CipherSuites> TLS
CIPHER SUITES TLS v1.1 TLS v1.2 TLS v1.3
Chapter 5.2.4 v1.0
TLS_RSA_WITH_AES_128_CBC_SHA 0, 3 ● ● ●
TLS_RSA_WITH_AES_256_CBC_SHA 0, 5 ● ● ●
TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0, 7 ● ● ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0, 9 ● ● ●
TLS_RSA_WITH_AES_128_CBC_SHA256 0, 10 ●
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0, 11 ●
TLS_RSA_WITH_AES_256_CBC_SHA256 0, 12 ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0, 13 ●
TLS_AES_128_GCM_SHA256 (0x1301) +
TLS_AES_256_GCM_SHA384 (0x1302) +
TLS_CHACHA20_POLY1305_SHA256 (0x1303) +
Table 9: Cipher Suites 4G Modules (ID 30)
(+) TLS v 1.3 protocol will be supported by software version xx9 only for FTP service.
All other cipher suites, not inside gray area, can be set individually using only the hex
value shown in the Cipher Suite column between round brackets.
Protocols
TLS_RSA_WITH_AES_128_CBC_SHA (0x002F) 0, 3 ● ● ●
TLS_RSA_WITH_AES_256_CBC_SHA (0x0035) 0, 5 ● ● ●
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033) 0, 7 ● ● ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039) 0, 9 ● ● ●
TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003C) 0, 10 ●
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0, 11 ●
(0x0067)
TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003D) 0, 12 ●
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
0, 13 ●
(0x006B)
TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009C) ●
TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009D) ●
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
●
(0x009E)
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
●
(0x009F)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
● ● ●
(0xC009)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
● ● ●
(0xC00A)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
● ● ●
(0xC013)
Protocols
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
● ● ●
(0xC014)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
●
(0xC023)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
●
(0xC024)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
●
(0xC027)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
●
(0xC028)
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
●
(0xC02B)
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
●
(0xC02C)
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
●
(0xC02F)
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
●
(0xC030)
TLS_RSA_WITH_AES_128_CCM_8 (0xC0A0) ●
TLS_RSA_WITH_AES_256_CCM_8 (0xC0A1) ●
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA
●
256 (0xCCA8)
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_S
●
HA256(0xCCA9)
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
●
(0xCCAA)
TLS_AES_128_GCM_SHA256 (0x1301) +
TLS_AES_256_GCM_SHA384 (0x1302) +
TLS_CHACHA20_POLY1305_SHA256 (0x1303) +
Table 10: Cipher Suites 4G Modules (ID 37)
(+) TLS v 1.3 protocol will be supported from software version xx2.
11.1.1. Copyrights
This instruction manual and the Telit products described herein may include or describe
Telit copyrighted material, such as computer programs stored in semiconductor
memories or other media. The laws in Italy and in other countries reserve to Telit and its
licensors certain exclusive rights for copyrighted material, including the exclusive right
to copy, reproduce in any form, distribute and make derivative works of the copyrighted
material. Accordingly, any of Telit’s or its licensors’ copyrighted material contained
herein or described in this instruction manual, shall not be copied, reproduced,
distributed, merged or modified in any way without the express written permission of the
owner. Furthermore, the purchase of Telit products shall not be deemed to grant in any
way, neither directly nor by implication, or estoppel, any license.
computer programs, including – but not limited to - the exclusive right to copy or
reproduce in any form the copyrighted products. Accordingly, any copyrighted computer
programs contained in Telit’s products described in this instruction manual shall not be
copied (reverse engineered) or reproduced in any manner without the express written
permission of the copyright owner, being Telit or the Third-Party software supplier.
Furthermore, the purchase of Telit products shall not be deemed to grant either directly
or by implication, estoppel, or in any other way, any license under the copyrights, patents
or patent applications of Telit or other Third-Party supplied SW, except for the normal
non-exclusive, royalty free license to use arising by operation of law in the sale of a
product.
11.2.4. Trademarks
TELIT and the Stylized T-Logo are registered in the Trademark Office. All other product
or service names are property of their respective owners.
TELIT HEREBY DISCLAIMS ANY AND ALL WARRANTIES EXPRESSED OR IMPLIED FROM
ANY THIRD-PARTY REGARDING ANY SEPARATE FILES, ANY THIRD-PARTY MATERIALS
INCLUDED IN THE SOFTWARE, ANY THIRD-PARTY MATERIALS FROM WHICH THE
SOFTWARE IS DERIVED (COLLECTIVELY “OTHER CODES”), AND THE USE OF ANY OR ALL
OTHER CODES IN CONNECTION WITH THE SOFTWARE, INCLUDING (WITHOUT
LIMITATION) ANY WARRANTIES OF SATISFACTORY QUALITY OR FITNESS FOR A
PARTICULAR PURPOSE.
Safety Recommendations
Make sure the use of this product is allowed in your country and in the environment
required. The use of this product may be dangerous and has to be avoided in areas where:
Do not disassemble the product; any mark of tampering will compromise the warranty
validity. We recommend following the instructions of the hardware user guides for
correct wiring of the product. The product has to be supplied with a stabilized voltage
source and the wiring has to be conformed to the security and fire prevention regulations.
The product has to be handled with care, avoiding any contact with the pins because
electrostatic discharges may damage the product itself. Same cautions have to be taken
for the SIM, checking carefully the instruction for its use. Do not insert or remove the SIM
when the product is in power saving mode.
The system integrator is responsible for the functioning of the final product. Therefore,
the external components of the module, as well as any project or installation issue, have
to be handled with care. Any interference may cause the risk of disturbing the GSM
network or external devices or having an impact on the security system. Should there be
any doubt, please refer to the technical documentation and the regulations in force. Every
module has to be equipped with a proper antenna with specific characteristics. The
antenna has to be installed carefully in order to avoid any interference with other
electronic devices and has to guarantee a minimum distance from the body (20 cm). In
case this requirement cannot be satisfied, the system integrator has to assess the final
product against the SAR regulation.
The European Community provides some Directives for the electronic equipment
introduced on the market. All of the relevant information is available on the European
Community website:
https://ec.europa.eu/growth/sectors/electrical-engineering_en
12. GLOSSARY
CA Certification Authority
DER Distinguished Encoding Rules
FTPS File Transfer Protocol Secure
GGSN Gateway GPRS Support Node
GPRS General Packet Radio Service
HTTPS Hyper Text Transfer Protocol over Secure Socket Layer
ISP Internet Service Provider
NVM Non-Volatile Memory
PDP Packet Data Protocol
PEM Privacy Enhanced Mail
PKCS Public-Key Cryptography Standards
RSA Stands for the first letter of the names of the algorithm designers
SSL Secure Socket Layer
SUPL Secure User Plane Location
TLS Transport Layer Security
URC Unsolicited Result Code
19 2020-07-03 The table in chapter 9.1.7 has been updated, the following cipher
suites has been dropped out:
TLS_PSK_WITH_AES_128_GCM_SHA256,
TLS_PSK_WITH_AES_256_GCM_SHA384,
TLS_PSK_WITH_AES_128_CBC_SHA256,
TLS_PSK_WITH_AES_256_CBC_SHA384,
TLS_PSK_WITH_AES_128_CBC_SHA,
TLS_PSK_WITH_AES_256_CBC_SHA.
The #SSLSECCFG2 syntax in chapter 4.5 has been updated.
12 2017-06-15 The document is fully revised, and chapters are reorganized. A new
template is used.
Product series removed: GC864, GE864, GT86x, HE920, UE910 V2,
DE910, CE910, CL865
Product series added: UL865, LE910 V2, and LE866.
In the Applicability Table, has been added the Platform Version
Identifier (ID). It is used as reference in the document.
6 2013-09-13 In the Applicability Table have been added the following products:
GE910-GNSS/13.00.xx4, GL865-QUAD V3/16.00xx3, GE910-QUAD
V3/16.00.xx3, UE910/12.00.004
4 2013-03-15 Modified figures in chapter 3.3.1. Added note in chapter 3.3. Added
explanation for HE910:
new values 1 to 4 available of #SSLSECCFG param <cipher_suite>,
new value 0 available of #SSLSECCFG param <auth_mode>,
Updated Applicability Table: added GL865-DUAL V3, GL868-DUAL V3
and updated software versions.
2 2012-11-07 Added GE910 module and HE910 family modules. The document has
been updated according to the added modules.