formatted \[ to [ and \] to ]

This commit is contained in:
christianbraeunlich 2022-02-05 19:55:53 +01:00
parent 2fc21159de
commit b426977b42
15 changed files with 87 additions and 87 deletions

View file

@ -27,8 +27,8 @@ To apply this pattern in Dynamics NAV, a table structure similar to Table 1261 S
Figure 1 describes the definition of a table which is already available in Dynamics NAV. This table can be used for storing sensitive data. As a minimum, the table only needs two fields:
1. The key is of type GUID (Globally Unique Identifier), which is a 128-bit value consisting of multiple groups of hexadecimal digits \[2\]. Each key needs to be unique and will be used for storing and retrieving the protected information.
2. The value (the actual data to be encapsulated) is of type BLOB (Binary Large OBject) \[3\], which contains the encrypted or un-encrypted data (for encryption, see the related [**Encryption**][anchor2] pattern).
1. The key is of type GUID (Globally Unique Identifier), which is a 128-bit value consisting of multiple groups of hexadecimal digits [2]. Each key needs to be unique and will be used for storing and retrieving the protected information.
2. The value (the actual data to be encapsulated) is of type BLOB (Binary Large OBject) [3], which contains the encrypted or un-encrypted data (for encryption, see the related [**Encryption**][anchor2] pattern).
[![Figure 1- Example definition, table used for Data Encapsulation][image1]][anchor3]
@ -56,7 +56,7 @@ _Figure 2 - Data access before and after **Sensitive** **Data** **Encapsulation.
* **Clarity:** when all sensitive data is encapsulated in one place, it is clear which is the information that needs to be protected.
* **Simplicity:** easier to protect just a limited number of known resources when they are grouped.
* **Homogeneity:** the same protection can be applied to all data, since it is stored in the same place.
* **Separation of concerns:** treat each section of the computer program differently, by separating it and clearly addressing its own requirements and limitations. \[1\]
* **Separation of concerns:** treat each section of the computer program differently, by separating it and clearly addressing its own requirements and limitations. [1]
* **Performance**: data protection techniques like **Access Control** and **Encryption** can now be applied only to the sensitive data (not to everything), which improves the performance of the system.
**Drawbacks:**
@ -67,29 +67,29 @@ _Figure 2 - Data access before and after **Sensitive** **Data** **Encapsulation.
**References**
\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns.
[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns.
\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary_large_object.
[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary_large_object.
\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\].
[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016].
\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. \[Accessed 31 07 2016\].
[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. [Accessed 31 07 2016].
\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. \[Accessed 29 7 2016\].
[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. [Accessed 29 7 2016].
\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\].
[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016].
\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. \[Accessed 02 08 2016\].
[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. [Accessed 02 08 2016].

View file

@ -110,29 +110,29 @@ In the end, Stan chooses a location for the encryption key on disk, in a standar
**References**
\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns.
[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns.
\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary_large_object.
[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary_large_object.
\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\].
[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016].
\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. \[Accessed 31 07 2016\].
[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. [Accessed 31 07 2016].
\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. \[Accessed 29 7 2016\].
[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. [Accessed 29 7 2016].
\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\].
[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016].
\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. \[Accessed 02 08 2016\].
[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. [Accessed 02 08 2016].

View file

@ -15,8 +15,8 @@ _By Bogdana Botez at Microsoft Development Center Copenhagen_
* **Code duplication:** if each entity attempts to write its own routines for data access, invariably this will bring duplication.
* **No knowledge reuse:** if a bug is found and fixed in one of the implementations, there is no guarantee that all the other implementations will be updated. For example
* **Double-Encryption**: lack of care or knowledge could lead a NAV developer to attempt to double-encrypt strings, which would render them unusable.
* **Multi-company configuration \[4\]**: in NAV, it is possible to store multiple companies on the same tenant \[5\] database. A developer who has not investigated such a configuration and its consequences on encryption, can attempt to encrypt data in (for example) a Setup Table \[6\] of only one company, which would make this table unusable from any unencrypted company (since the server will observe that encryption is enabled, and try to retrieve it as it were enabled for all companies and fails).
* **"Shotgun surgery" \[7\]:** one change in the data access technique (like a new requirement to validate the user's identity before viewing any protected data), calls for updates in every single implementation of data access, if multiple implementations exist. Hence, one change of requirement triggers multiple efforts to update the product.
* **Multi-company configuration [4]**: in NAV, it is possible to store multiple companies on the same tenant [5] database. A developer who has not investigated such a configuration and its consequences on encryption, can attempt to encrypt data in (for example) a Setup Table [6] of only one company, which would make this table unusable from any unencrypted company (since the server will observe that encryption is enabled, and try to retrieve it as it were enabled for all companies and fails).
* **"Shotgun surgery" [7]:** one change in the data access technique (like a new requirement to validate the user's identity before viewing any protected data), calls for updates in every single implementation of data access, if multiple implementations exist. Hence, one change of requirement triggers multiple efforts to update the product.
**Solution:** In Dynamics NAV the same library which offers [**Encryption**][anchor1], is also intended to be used as a **Single Point of Access**. Write code to create, read and remove sensitive data only through codeunit 1266 Encryption Management, and never directly.
@ -28,7 +28,7 @@ You can observe that, in panel 3, each usage needs to access separately the encr
_Figure 1- **Single Point of Access** pattern applied._
This shows how pattern application is an iterative process, where one step follows another. Refactoring \[8\] the code to apply one pattern, cleans and clarifies the code and in some cases, makes clear the possibility of further refactoring.
This shows how pattern application is an iterative process, where one step follows another. Refactoring [8] the code to apply one pattern, cleans and clarifies the code and in some cases, makes clear the possibility of further refactoring.
**Usage**: call the procedures available in codeunit 1266 Encryption Management to store and access sensitive data.
@ -46,29 +46,29 @@ This shows how pattern application is an iterative process, where one step follo
**References**
\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation\_of\_concerns.
[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation\_of\_concerns.
\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary\_large\_object.
[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary\_large\_object.
\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\].
[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016].
\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun\_surgery. \[Accessed 31 07 2016\].
[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun\_surgery. [Accessed 31 07 2016].
\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data\_masking\#Masking\_out. \[Accessed 29 7 2016\].
[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data\_masking\#Masking\_out. [Accessed 29 7 2016].
\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\].
[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016].
\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef\_sniffer.htm. \[Accessed 02 08 2016\].
[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef\_sniffer.htm. [Accessed 02 08 2016].

View file

@ -44,29 +44,29 @@ Mask the field in only a subset of pages. Open the pages where the field should
**References**
\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns.
[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns.
\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary_large_object.
[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary_large_object.
\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\].
[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016].
\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. \[Accessed 31 07 2016\].
[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. [Accessed 31 07 2016].
\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data_masking\#Masking_out. \[Accessed 29 7 2016\].
[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data_masking\#Masking_out. [Accessed 29 7 2016].
\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\].
[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016].
\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. \[Accessed 02 08 2016\].
[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. [Accessed 02 08 2016].

View file

@ -12,7 +12,7 @@ _By Bogdana Botez at Microsoft Development Center Copenhagen_
**Forces:**
* **Insecure communication:** When the user enters a password, if unprotected, a network sniffer \[12\] could catch and read it. A sniffer is either a software program or hardware device which examine network traffic. Years ago, sniffers were tools used exclusively by professional network engineers, but nowadays, they are also popular with Internet hackers and people just curious about networking. A public Wi-Fi network could easily be eavesdropped by an unwanted actor.
* **Insecure communication:** When the user enters a password, if unprotected, a network sniffer [12] could catch and read it. A sniffer is either a software program or hardware device which examine network traffic. Years ago, sniffers were tools used exclusively by professional network engineers, but nowadays, they are also popular with Internet hackers and people just curious about networking. A public Wi-Fi network could easily be eavesdropped by an unwanted actor.
By using data storage patterns like **Sensitive Data Encapsulation**, **Encryption, Single Point of Access** or **Azure Key Vault**, the sensitive data is preserved securely in the implementation of Dynamics NAV. But before it gets into a secure store, this data needs to be transmitted from the user, through a user interface, on a client-server connection and all the way to the database. Is the data safe while being transmitted?
@ -39,29 +39,29 @@ _Figure 1 - Data transmission before (http://...) and after SSL encryption (http
**References**
\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns.
[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns.
\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx.
\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary_large_object.
[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary_large_object.
\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2".
\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx.
\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\].
[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016].
\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. \[Accessed 31 07 2016\].
[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. [Accessed 31 07 2016].
\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\.
\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. \[Accessed 29 7 2016\].
[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. [Accessed 29 7 2016].
\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/.
\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\].
[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016].
\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. \[Accessed 02 08 2016\].
[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. [Accessed 02 08 2016].