Skip to content

Commit a6bcff3

Browse files
Merge pull request #109141 from TimShererWithAquent/us1679050ax
Change SSL to TLS per 1679050
2 parents bbae25e + 3ba5ac6 commit a6bcff3

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

articles/security/develop/threat-modeling-tool-communication-security.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ ms.author: jegeib
2727
| **Dynamics CRM** | <ul><li>[Check service account privileges and check that the custom Services or ASP.NET Pages respect CRM's security](#priv-aspnet)</li></ul> |
2828
| **Azure Data Factory** | <ul><li>[Use Data management gateway while connecting On-premises SQL Server to Azure Data Factory](#sqlserver-factory)</li></ul> |
2929
| **Identity Server** | <ul><li>[Ensure that all traffic to Identity Server is over HTTPS connection](#identity-https)</li></ul> |
30-
| **Web Application** | <ul><li>[Verify X.509 certificates used to authenticate SSL, TLS, and DTLS connections](#x509-ssltls)</li><li>[Configure SSL certificate for custom domain in Azure App Service](#ssl-appservice)</li><li>[Force all traffic to Azure App Service over HTTPS connection](#appservice-https)</li><li>[Enable HTTP Strict Transport Security (HSTS)](#http-hsts)</li></ul> |
30+
| **Web Application** | <ul><li>[Verify X.509 certificates used to authenticate SSL, TLS, and DTLS connections](#x509-ssltls)</li><li>[Configure TLS/SSL certificate for custom domain in Azure App Service](#ssl-appservice)</li><li>[Force all traffic to Azure App Service over HTTPS connection](#appservice-https)</li><li>[Enable HTTP Strict Transport Security (HSTS)](#http-hsts)</li></ul> |
3131
| **Database** | <ul><li>[Ensure SQL server connection encryption and certificate validation](#sqlserver-validation)</li><li>[Force Encrypted communication to SQL server](#encrypted-sqlserver)</li></ul> |
3232
| **Azure Storage** | <ul><li>[Ensure that communication to Azure Storage is over HTTPS](#comm-storage)</li><li>[Validate MD5 hash after downloading blob if HTTPS cannot be enabled](#md5-https)</li><li>[Use SMB 3.0 compatible client to ensure in-transit data encryption to Azure File Shares](#smb-shares)</li></ul> |
3333
| **Mobile Client** | <ul><li>[Implement Certificate Pinning](#cert-pinning)</li></ul> |
3434
| **WCF** | <ul><li>[Enable HTTPS - Secure Transport channel](#https-transport)</li><li>[WCF: Set Message security Protection level to EncryptAndSign](#message-protection)</li><li>[WCF: Use a least-privileged account to run your WCF service](#least-account-wcf)</li></ul> |
3535
| **Web API** | <ul><li>[Force all traffic to Web APIs over HTTPS connection](#webapi-https)</li></ul> |
36-
| **Azure Cache for Redis** | <ul><li>[Ensure that communication to Azure Cache for Redis is over SSL](#redis-ssl)</li></ul> |
36+
| **Azure Cache for Redis** | <ul><li>[Ensure that communication to Azure Cache for Redis is over TLS](#redis-ssl)</li></ul> |
3737
| **IoT Field Gateway** | <ul><li>[Secure Device to Field Gateway communication](#device-field)</li></ul> |
3838
| **IoT Cloud Gateway** | <ul><li>[Secure Device to Cloud Gateway communication using SSL/TLS](#device-cloud)</li></ul> |
3939

@@ -79,7 +79,7 @@ ms.author: jegeib
7979
| **Applicable Technologies** | Generic |
8080
| **Attributes** | N/A |
8181
| **References** | [IdentityServer3 - Keys, Signatures and Cryptography](https://identityserver.github.io/Documentation/docsv2/configuration/crypto.html), [IdentityServer3 - Deployment](https://identityserver.github.io/Documentation/docsv2/advanced/deployment.html) |
82-
| **Steps** | By default, IdentityServer requires all incoming connections to come over HTTPS. It is absolutely mandatory that communication with IdentityServer is done over secured transports only. There are certain deployment scenarios like SSL offloading where this requirement can be relaxed. See the Identity Server deployment page in the references for more information. |
82+
| **Steps** | By default, IdentityServer requires all incoming connections to come over HTTPS. It is absolutely mandatory that communication with IdentityServer is done over secured transports only. There are certain deployment scenarios like TLS offloading where this requirement can be relaxed. See the Identity Server deployment page in the references for more information. |
8383

8484
## <a id="x509-ssltls"></a>Verify X.509 certificates used to authenticate SSL, TLS, and DTLS connections
8585

@@ -92,7 +92,7 @@ ms.author: jegeib
9292
| **References** | N/A |
9393
| **Steps** | <p>Applications that use SSL, TLS, or DTLS must fully verify the X.509 certificates of the entities they connect to. This includes verification of the certificates for:</p><ul><li>Domain name</li><li>Validity dates (both beginning and expiration dates)</li><li>Revocation status</li><li>Usage (for example, Server Authentication for servers, Client Authentication for clients)</li><li>Trust chain. Certificates must chain to a root certification authority (CA) that is trusted by the platform or explicitly configured by the administrator</li><li>Key length of certificate's public key must be >2048 bits</li><li>Hashing algorithm must be SHA256 and above |
9494

95-
## <a id="ssl-appservice"></a>Configure SSL certificate for custom domain in Azure App Service
95+
## <a id="ssl-appservice"></a>Configure TLS/SSL certificate for custom domain in Azure App Service
9696

9797
| Title | Details |
9898
| ----------------------- | ------------ |
@@ -101,7 +101,7 @@ ms.author: jegeib
101101
| **Applicable Technologies** | Generic |
102102
| **Attributes** | EnvironmentType - Azure |
103103
| **References** | [Enable HTTPS for an app in Azure App Service](../../app-service/configure-ssl-bindings.md) |
104-
| **Steps** | By default, Azure already enables HTTPS for every app with a wildcard certificate for the *.azurewebsites.net domain. However, like all wildcard domains, it is not as secure as using a custom domain with own certificate [Refer](https://casecurity.org/2014/02/26/pros-and-cons-of-single-domain-multi-domain-and-wildcard-certificates/). It is recommended to enable SSL for the custom domain which the deployed app will be accessed through|
104+
| **Steps** | By default, Azure already enables HTTPS for every app with a wildcard certificate for the *.azurewebsites.net domain. However, like all wildcard domains, it is not as secure as using a custom domain with own certificate [Refer](https://casecurity.org/2014/02/26/pros-and-cons-of-single-domain-multi-domain-and-wildcard-certificates/). It is recommended to enable TLS for the custom domain which the deployed app will be accessed through|
105105

106106
## <a id="appservice-https"></a>Force all traffic to Azure App Service over HTTPS connection
107107

@@ -156,7 +156,7 @@ This rule works by returning an HTTP status code of 301 (permanent redirect) whe
156156
| **Applicable Technologies** | SQL Azure |
157157
| **Attributes** | SQL Version - V12 |
158158
| **References** | [Best Practices on Writing Secure Connection Strings for SQL Database](https://social.technet.microsoft.com/wiki/contents/articles/2951.windows-azure-sql-database-connection-security.aspx#best) |
159-
| **Steps** | <p>All communications between SQL Database and a client application are encrypted using Secure Sockets Layer (SSL) at all times. SQL Database doesn't support unencrypted connections. To validate certificates with application code or tools, explicitly request an encrypted connection and do not trust the server certificates. If your application code or tools do not request an encrypted connection, they will still receive encrypted connections</p><p>However, they may not validate the server certificates and thus will be susceptible to "man in the middle" attacks. To validate certificates with ADO.NET application code, set `Encrypt=True` and `TrustServerCertificate=False` in the database connection string. To validate certificates via SQL Server Management Studio, open the Connect to Server dialog box. Click Encrypt connection on the Connection Properties tab</p>|
159+
| **Steps** | <p>All communications between SQL Database and a client application are encrypted using Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), at all times. SQL Database doesn't support unencrypted connections. To validate certificates with application code or tools, explicitly request an encrypted connection and do not trust the server certificates. If your application code or tools do not request an encrypted connection, they will still receive encrypted connections</p><p>However, they may not validate the server certificates and thus will be susceptible to "man in the middle" attacks. To validate certificates with ADO.NET application code, set `Encrypt=True` and `TrustServerCertificate=False` in the database connection string. To validate certificates via SQL Server Management Studio, open the Connect to Server dialog box. Click Encrypt connection on the Connection Properties tab</p>|
160160

161161
## <a id="encrypted-sqlserver"></a>Force Encrypted communication to SQL server
162162

@@ -167,7 +167,7 @@ This rule works by returning an HTTP status code of 301 (permanent redirect) whe
167167
| **Applicable Technologies** | OnPrem |
168168
| **Attributes** | SQL Version - MsSQL2016, SQL Version - MsSQL2012, SQL Version - MsSQL2014 |
169169
| **References** | [Enable Encrypted Connections to the Database Engine](https://msdn.microsoft.com/library/ms191192) |
170-
| **Steps** | Enabling SSL encryption increases the security of data transmitted across networks between instances of SQL Server and applications. |
170+
| **Steps** | Enabling TLS encryption increases the security of data transmitted across networks between instances of SQL Server and applications. |
171171

172172
## <a id="comm-storage"></a>Ensure that communication to Azure Storage is over HTTPS
173173

@@ -211,7 +211,7 @@ This rule works by returning an HTTP status code of 301 (permanent redirect) whe
211211
| **Applicable Technologies** | Generic, Windows Phone |
212212
| **Attributes** | N/A |
213213
| **References** | [Certificate and Public Key Pinning](https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning) |
214-
| **Steps** | <p>Certificate pinning defends against Man-In-The-Middle (MITM) attacks. Pinning is the process of associating a host with their expected X509 certificate or public key. Once a certificate or public key is known or seen for a host, the certificate or public key is associated or 'pinned' to the host. </p><p>Thus, when an adversary attempts to do SSL MITM attack, during SSL handshake the key from attacker's server will be different from the pinned certificate's key, and the request will be discarded, thus preventing MITM Certificate pinning can be achieved by implementing ServicePointManager's `ServerCertificateValidationCallback` delegate.</p>|
214+
| **Steps** | <p>Certificate pinning defends against Man-In-The-Middle (MITM) attacks. Pinning is the process of associating a host with their expected X509 certificate or public key. Once a certificate or public key is known or seen for a host, the certificate or public key is associated or 'pinned' to the host. </p><p>Thus, when an adversary attempts to do TLS MITM attack, during TLS handshake the key from attacker's server will be different from the pinned certificate's key, and the request will be discarded, thus preventing MITM Certificate pinning can be achieved by implementing ServicePointManager's `ServerCertificateValidationCallback` delegate.</p>|
215215

216216
### Example
217217
```csharp
@@ -342,7 +342,7 @@ string GetData(int value);
342342
| **Steps** | If an application has both an HTTPS and an HTTP binding, clients can still use HTTP to access the site. To prevent this, use an action filter to ensure that requests to protected APIs are always over HTTPS.|
343343

344344
### Example
345-
The following code shows a Web API authentication filter that checks for SSL:
345+
The following code shows a Web API authentication filter that checks for TLS:
346346
```csharp
347347
public class RequireHttpsAttribute : AuthorizationFilterAttribute
348348
{
@@ -362,7 +362,7 @@ public class RequireHttpsAttribute : AuthorizationFilterAttribute
362362
}
363363
}
364364
```
365-
Add this filter to any Web API actions that require SSL:
365+
Add this filter to any Web API actions that require TLS:
366366
```csharp
367367
public class ValuesController : ApiController
368368
{
@@ -371,16 +371,16 @@ public class ValuesController : ApiController
371371
}
372372
```
373373

374-
## <a id="redis-ssl"></a>Ensure that communication to Azure Cache for Redis is over SSL
374+
## <a id="redis-ssl"></a>Ensure that communication to Azure Cache for Redis is over TLS
375375

376376
| Title | Details |
377377
| ----------------------- | ------------ |
378378
| **Component** | Azure Cache for Redis |
379379
| **SDL Phase** | Build |
380380
| **Applicable Technologies** | Generic |
381381
| **Attributes** | N/A |
382-
| **References** | [Azure Redis SSL support](https://azure.microsoft.com/documentation/articles/cache-faq/#when-should-i-enable-the-non-ssl-port-for-connecting-to-redis) |
383-
| **Steps** | Redis server does not support SSL out of the box, but Azure Cache for Redis does. If you are connecting to Azure Cache for Redis and your client supports SSL, like StackExchange.Redis, then you should use SSL. By default non-SSL port is disabled for new Azure Cache for Redis instances. Ensure that the secure defaults are not changed unless there is a dependency on SSL support for redis clients. |
382+
| **References** | [Azure Redis TLS support](https://azure.microsoft.com/documentation/articles/cache-faq/#when-should-i-enable-the-non-ssl-port-for-connecting-to-redis) |
383+
| **Steps** | Redis server does not support TLS out of the box, but Azure Cache for Redis does. If you are connecting to Azure Cache for Redis and your client supports TLS, like StackExchange.Redis, then you should use TLS. By default non-TLS port is disabled for new Azure Cache for Redis instances. Ensure that the secure defaults are not changed unless there is a dependency on TLS support for redis clients. |
384384

385385
Please note that Redis is designed to be accessed by trusted clients inside trusted environments. This means that usually it is not a good idea to expose the Redis instance directly to the internet or, in general, to an environment where untrusted clients can directly access the Redis TCP port or UNIX socket.
386386

articles/security/develop/threat-modeling-tool-configuration-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ Example: var str="alert(1)"; eval(str);
9696
| **Applicable Technologies** | Generic |
9797
| **Attributes** | N/A |
9898
| **References** | N/A |
99-
| **Steps** | third-party JavaScripts should be referenced only from trusted sources. The reference endpoints should always be on SSL. |
99+
| **Steps** | third-party JavaScripts should be referenced only from trusted sources. The reference endpoints should always be on TLS. |
100100
101101
## <a id="ui-defenses"></a>Ensure that authenticated ASP.NET pages incorporate UI Redressing or click-jacking defenses
102102

articles/security/develop/threat-modeling-tool-session-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ All HTTP-based applications that use cookies should specify HttpOnly in the cook
218218
| **Applicable Technologies** | Web Forms |
219219
| **Attributes** | N/A |
220220
| **References** | [FormsAuthentication.RequireSSL Property](https://msdn.microsoft.com/library/system.web.security.formsauthentication.requiressl.aspx) |
221-
| **Steps** | The RequireSSL property value is set in the configuration file for an ASP.NET application by using the requireSSL attribute of the configuration element. You can specify in the Web.config file for your ASP.NET application whether SSL (Secure Sockets Layer) is required to return the forms-authentication cookie to the server by setting the requireSSL attribute.|
221+
| **Steps** | The RequireSSL property value is set in the configuration file for an ASP.NET application by using the requireSSL attribute of the configuration element. You can specify in the Web.config file for your ASP.NET application whether Transport Layer Security (TLS), previously known as SSL (Secure Sockets Layer), is required to return the forms-authentication cookie to the server by setting the requireSSL attribute.|
222222

223223
### Example
224224
The following code example sets the requireSSL attribute in the Web.config file.

0 commit comments

Comments
 (0)