<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Cryptography, General Security, and Random IT Topics</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/cryptgenrandom/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/cryptgenrandom/feed.xml</link>
    <description>Security-minded IT Professional who know where there towel is!!!</description>
    <lastBuildDate>Wed, 17 Apr 2019 04:08:21 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Enterprise Certificate Pinning in Windows 10 Creators Update</title>
      <link>https://docs.microsoft.com/archive/blogs/cryptgenrandom/enterprise-certificate-pinning-in-windows-10-creators-update</link>
      <pubDate>Mon, 17 Apr 2017 17:58:54 GMT</pubDate>
      <dc:creator><![CDATA[Mike Stephens [MS]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/cryptgenrandom/?p=85</guid>
      <description><![CDATA[Now more than ever, organizations are becoming increasingly more concern with man-in-the-middle...]]></description>
      <content:encoded><![CDATA[Now more than ever, organizations are becoming increasingly more concern with man-in-the-middle attacks.  The Windows 10 Creators Update introduces Enterprise Certificate Pinning that enables IT Professionals to create their own key-pinning rules for their internal (enterprise) domain names.  With this technology, you can create and deploy pinning rules for your internal Active Directory domain names so secure http communicate to internal endpoints are blocked if there is a perceived man-in-the-middle attack.

To learn about the feature and how to deploy it. Check out

<a href="https://technet.microsoft.com/en-us/itpro/windows/keep-secure/enterprise-certificate-pinning">https://technet.microsoft.com/en-us/itpro/windows/keep-secure/enterprise-certificate-pinning</a>

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Null and Empty Discretionary Access Controls</title>
      <link>https://docs.microsoft.com/archive/blogs/cryptgenrandom/null-and-empty-discretionary-access-controls</link>
      <pubDate>Thu, 13 Apr 2017 22:09:33 GMT</pubDate>
      <dc:creator><![CDATA[Mike Stephens [MS]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/cryptgenrandom/?p=76</guid>
      <description><![CDATA[This is a past investigation I shared on another blog years ago.  Security descriptors seem like a...]]></description>
      <content:encoded><![CDATA[This is a past investigation I shared on another blog years ago.  Security descriptors seem like a simple concept; yet they can be quite confusing.  IT professionals learn about security descriptors differently from developers.  For a developers, its fairly straightforward-- they're only interested in the permission they need to perform an action.  Developers need not worry about effective permissions.  However, IT professionals need to be concerned about effective permissions because they need to ensure that the effective permissions result in the proper access for the all the right users.

Below, I discuss a rather esoteric scenario with access control that may not be widely known or understood.  Mainly because the ACL editor goes through great effort to prevent this scenario from occurring.  However, access control is accomplished by an API, so while the ACL editor tries to prevent the scenario, other applications can easily create it... If you think this is interesting, wait until I can figure out how to write about canonical access control entry ordering to where it doesn't have as many installments as Star Wars.
<h3><strong><span>Background</span></strong></h3>
Windows uses the concept of a security descriptor to allow or deny security principals (user or groups) access to specific resources. A security descriptor is a data structure that contains:
<ul>
 	<li>The memory location of a security identifier of a security principal that owns the objects.</li>
 	<li>The memory location of a security identifier of a group owner (for interoperability with POSIX subsystems).</li>
 	<li>The memory location of a discretionary access control list (DACL).</li>
 	<li>The memory location of a system access control list (SACL).</li>
</ul>
An access control list (ACL) is a list of memory locations to access control entries (ACEs). An ACE contains information such as
<ol>
 	<li>an action</li>
 	<li>is the action allowed or denied</li>
 	<li>and the security principal to which the allowed or denied action applies.</li>
</ol>
ACEs are mostly commonly referred to as permissions. Windows uses discretionary access control lists to prevent or allow actions against resources for a specific user and/or group. Windows uses system access control lists to audit actions performed against an object by a specific user or group.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/NullandEmptyDACLs_AFF7/image_2.png"><img width="459" height="411" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/NullandEmptyDACLs_AFF7/image_thumb.png" border="0" /></a>
<h3><strong><span>What is an empty DACL</span></strong></h3>
The DACL controls that type of access for a given action to a resource and who can perform that action. Windows allocates memory when creating a DACL. The security descriptor stores the memory location of the DACL. Windows uses the DACL memory location to identify where it should store the location of ACEs associated with the DACL. Therefore, the DACL exists but is empty and remains empty until an ACE is created and assigned to the DACL. This is an empty DACL.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/NullandEmptyDACLs_AFF7/image_4.png"><img width="463" height="415" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/NullandEmptyDACLs_AFF7/image_thumb_1.png" border="0" /></a>
<h3><strong><span>What is a null DACL</span></strong></h3>
A null DACL is often confused with an empty DACL; however, they're different. As mentioned earlier, the security descriptor contains the memory location of the DACL when a DACL is created. However, it is possible to create a security descriptor without the memory location of the DACL. The security descriptor is valid; however, the memory location of the DACL does not exist; it is null. This means that Windows did not create a DACL. This also means that it is not possible to add an access control entry to the DACL until the DACL is created and a valid memory location is provided in the security descriptor.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/NullandEmptyDACLs_AFF7/image_6.png"><img width="462" height="414" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/NullandEmptyDACLs_AFF7/image_thumb_2.png" border="0" /></a>
<h3><strong><span>How Windows handles null and empty DACLs</span></strong></h3>
Windows’ security defines two specific actions with regard to handling a null or empty DACL. These actions occur when Windows performs an access check. An access check occurs when a user attempts access to a resource and on the computer hosting the resource.

With a null DACL, Windows checks the access token created on the resource computer with the security descriptor protecting the resource. Windows grants full access to any requesting user, bypassing any further security checks. The resulting effects of a null DACL is similar to granting the Everyone group Full Control permissions.

An empty DACL provides the opposite effect of a null DACL. An empty DACL is similar to denying Full Control permissions to the Everyone group; effectively preventing anyone from accessing the resource. It’s important to understand that Windows only accommodates null or empty DACLs during the access check; not when the null or empty DACL is saved to the security descriptor.]]></content:encoded>
    </item>
    <item>
      <title>Hello world!</title>
      <link>https://docs.microsoft.com/archive/blogs/cryptgenrandom/hello-world</link>
      <pubDate>Sun, 26 Mar 2017 05:04:03 GMT</pubDate>
      <dc:creator><![CDATA[Mike Stephens [MS]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/cryptgenrandom/?p=1</guid>
      <description><![CDATA[It only seems fitting to begin anything in IT with the ever familiar "Hello world".   The birth and...]]></description>
      <content:encoded><![CDATA[It only seems fitting to begin anything in IT with the ever familiar "Hello world".   The birth and desire of CryptGenRandom was not to just "borrow" an old crypto API function for its name, but to provide a broad range of IT topics.  That said, most of the topics will focus on security (that is my job).  But I wanted the liberty to discuss other IT topics that can appeal to the readers who don't think xoring ones and zeros is super sexy cool.  Or, readers who want to run in the opposite directions because the content uses words like nonrepudiation or includes a discussion on reliable random sources of entropy.  While security is a serious topic, IT should be fun and entertaining.  So, in true geek fashion, I'll include a myriad of movie quotes, science fiction and movie quotes, and the occasional music lyric. While the primary audience for my random geeky thoughts and esoteric deep dives into security technology is IT Professionals, I'll dabble into some scripting, programming, and various under-the-hood diatribes... and anything else in which you are interested.

Until the next post--- peace!!!

Mike]]></content:encoded>
    </item>
    <item>
      <title>Deploying Legal Notices to domain computers using Group Policy</title>
      <link>https://docs.microsoft.com/archive/blogs/cryptgenrandom/deploying-legal-notices-to-domain-computers-using-group-policy</link>
      <pubDate>Fri, 08 Feb 2008 06:56:16 GMT</pubDate>
      <dc:creator><![CDATA[Mike Stephens [MS]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/cryptgenrandom/?p=95</guid>
      <description><![CDATA[Every so often, I’ll talk with a customer wanting to deploy a legal notice to their workstations...]]></description>
      <content:encoded><![CDATA[Every so often, I’ll talk with a customer wanting to deploy a legal notice to their workstations using Group Policy. Sounds simple, right? Well, it is actually a little tricky to make the legal notice work correctly. Here is a solution that I share with customers that want to do this and have it look right.

It’s a natural assumption to have this done through Group Policy. Every computer in the domain applies it—it makes the job easy. Searching the Microsoft Knowledgebase does yield a few results—here is one.

310430 How to configure Windows Server 2003 to display a message when users log on
<a href="https://support.microsoft.com/default.aspx?scid=kb;EN-US;310430">https://support.microsoft.com/default.aspx?scid=kb;EN-US;310430</a>

It seems there is a security policy setting that helps us accomplish this task. So, we follow the article and, Figure 1 shows the results.

<img id="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image002_2.jpg" />

<span>Figure 1- Configuring a legal caption in security policy</span>

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image004_2.jpg"><img width="22" height="22" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image004_thumb.jpg" border="0" /></a> Note:
<blockquote><em>These examples are from a computer running Windows Vista Service Pack 1 with Remote Server Administration Tools. However, you can use Windows Server 2003 or Windows XP with the Group Policy Management Console (GPMC) to accomplish these results.</em></blockquote>
Now, notice our Legal Notice on a Windows Vista SP1 computer and on Windows Server 2003 computer

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image006_2.jpg"><img width="426" height="320" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image006_thumb.jpg" border="0" /></a>

<span>Figure 2- Legal Notice on Windows Vista SP1</span>

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image008_2.jpg"><img width="428" height="322" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image008_thumb.jpg" border="0" /></a>

<span>Figure 3- Legal Notice on Windows Server 2003</span>

Where is the formatting? How quickly we go from pretty to… “not so pretty”. There’s no way we are going to let the legal department see this. We have to fix it. But first, let’s briefly explain why this is happening.

This problem originates from Windows NT 4; when we added Legal Notice Text to the operating system. At that time, it was a single string and did not support carriage returns. We made several attempts to change this behavior shortly after Windows 2000. Interestingly enough, those changes resulted in using a comma (,) as a delimiter for the carriage return. Kinda cool huh?…. Not! Eight years later, legal council craft very concise legal goo—which just might have a few commas included within the text. Then, administrators would have to enclose grammatical commas in quotation marks so Windows would not parse it as a carriage return. That didn’t work well. In Windows Server 2003, we changed the editor to accept a carriage return; now allowing you to format your text within the policy, as we did in the example. Well, that only solves the comma problem because there was not a change on Windows parses the strings. Windows now inserts the commas and quotes for you when it writes the policy setting. And, as you can see in our example; we started with two paragraphs or more and ended with a single blob of text in window. Lastly, this behavior has not changed with Windows Server 2008 or Windows Vista Service Pack 1. So—how do I format this text?

You need to use a script to have your legal notice text appear properly formatted. Figure 4 shows a script you can use in a <strong><em>computer startup script (not a user logon script)</em></strong>. The script writes the legal notice text to the policy registry key—just as if it were applied using the security policy settings. But, the script allows you to keep your formatting.

Here is the code for the script. Copy and paste this code into a text file. Be sure to save the text file with a .vbs extension or it will not run correctly. Each command should appear on its own line (no text wrapping) as some of the text in the example is wrapped for readability.
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td width="520" valign="top"><span>‘==========================================================================
‘
‘ VBScript Source File —
‘
‘ NAME: legal.vbs
‘
‘ AUTHOR: Mike Stephens , Microsoft Corporation
‘
‘ DATE: 11/26/2007
‘
‘ COMMENT: sample computer startup script to deploy legalcaption and legaltext
‘
‘ ========================================================================== </span><span>set wShell = CreateObject(“Wscript.Shell”)
</span><span>strLegalCaption = “Legal Notice” </span><span>Const POLICY_KEY = “HKLM\Software\Microsoft\Windows\CurrentVersion\policies\system\”
Const LEGAL_CAPTION_VALUENAME = “legalnoticecaption”
Const LEGAL_TEXT_VALUENAME = “legalnoticetext” </span>

<span>strLegalText = “” </span>

<span>strLegalText = strLegalText &amp; “The easiest way is to insert the entire paragraph on one
line, between the quotation marks.” &amp; vbcrlf &amp;vbcrlf </span>

<span>‘ Copy the line above and repeat for each paragraph in the legal notice.
‘ Remember it is best to limit your notice to two paragraph that contain no more than 4
‘ sentences. </span>

<span>wShell.RegWrite POLICY_KEY &amp; LEGAL_CAPTION_VALUENAME, strLegalCaption, “REG_SZ”
WShell.RegWrite POLICY_KEY &amp; LEGAL_TEXT_VALUENAME, strLegalText, “REG_SZ”</span></td>
</tr>
</tbody>
</table>
<span>Figure 4- Sample Vbscript code to write legal caption text</span>

You’ll want to modify the sample code from Figure 4 to include your legal notice. Let me explain the script and which part requires your modifications.
<h3>Line 1: set wShell = CreateObject(“Wscript.Shell”)</h3>
This line creates a Windows Scripting Host shell object. The script uses method (or function) from the shell object to write to the registry.
<h3>Line 2: strLegalCaption = “Legal Notice”</h3>
Line 2 creates a variable named <b>strLegalCaption</b> and assigns the text <b>Legal Notice</b> to the variable. This is the text Windows uses for the title of the legal notice dialog box, which appears when the user presses CTRL+ALT+DEL.
<h3>Line 3-5:</h3>
Const POLICY_KEY = “HKLM\Software\Microsoft\Windows\CurrentVersion\policies\system\”
Const LEGAL_CAPTION_VALUENAME = “legalnoticecaption”
Const LEGAL_TEXT_VALUENAME = “legalnoticetext”

These lines create what is called a constant. Constants mean just that- they remain constant—their values cannot change; unlike the values of a variable, which can change. Line 3 is representative of the registry key location to which the script writes. Line 4 holds the registry value name for the legal caption (title of the dialog box) while line 5 holds the value of the legal text (message in the dialog box). Constants work similarly to search and replace features found in text editors and word processors. When Windows runs the script, it looks at the constants declared in the script and then searches the remainder of the script for those words which are designated as constants. It then replaces the word with the assigned value. Then, Windows continues running the script.
<h3>Line 6: strLegalText = “”</h3>
Line 6 creates a variable named <b>strLegalText</b> and assigns and <i>empty string</i> to the variable. The is equivalent to a blank line (without a carriage return).
<h3>Line 7:</h3>
strLegalText = strLegalText &amp; “The easiest way is to insert the entire paragraph on one
line, between the quotation marks.” &amp; vbcrlf &amp; vbcrlf

This line is the important line. This line defines the text of your legal notice ( the text appearing in the dialog box). The registry value name <b>LegalNoticeText</b> is a single string value. Therefore, the script must concatenate your entire legal text notice into one line of text, to include carriage returns. The first part of line 7 shows <b>strLegalText = StrLegalText &amp;</b>. This command phrase handles concatenating your paragraphs into a single line of text; so we can write it into the single string registry value. The next phrase in the script is between the quotation marks. This represents the first paragraph of your legal notice. You’ll want to paste the entire paragraph between the quotation marks. The best way to do this is paste your paragraph into notepad ensuring that word wrap is off (click <b>Format</b> from the menu to ensure there is<b> not</b> a check next to <b>Word Wrap</b>). Position the cursor to the end of the first line. Use the delete key to move the text on the next to the current line. Be sure to keep your spaces. Follow this process until the entire paragraph is on one line (you’ll more than likely have to scroll to the right. Make sure you have an opening and closing quotation marks. It is likely your script will fail if the command is not on a single line.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image010_2.jpg"><img width="22" height="23" alt="clip_image010" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image010_thumb.jpg" border="0" /></a> Important
<blockquote><em>Quotation mark (“) represents the beginning and end of string when using Vbscript. Any alpha-numeric characters between the quotation marks, including spaces is included in the string—just like if you were typing a long file name as an argument for a command line application. Be certain your legal text does not include any quotation marks. If possible, you single quote marks (‘).</em></blockquote>
Copy and paste your original line 7 and repeat the above for each paragraph you want included in your legal text. Things to look for are:
<ul>
 	<li>Inserting quotation marks between the beginning and ending quotation marks.</li>
 	<li>The entire command is not on a single line</li>
 	<li>You keep the <b>&amp; vbcrlf &amp; vbcrlf</b> immediately after the ending quotation mark at the end of each line that represents a paragraph in your legal text.</li>
</ul>
My legal text notice in this example is three paragraphs with the last paragraph being a single sentence. Therefore, lines 7-9 will look similar for my example script (wrapped for readability—these are three separate commands on three separate lines).

<span>strLegalText = strLegalText &amp; ” Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen.” &amp; vbcrlf &amp; vbcrlf</span>

<span>strLegalText = strLegalText &amp; ” Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen.” &amp; vbcrlf &amp; vbcrlf</span>

<span>strLegalText = strLegalText &amp; ” Alle Menschen sind frei und gleich an Würde und Rechten geboren.” &amp; vbcrlf &amp; vbcrlf</span>
<h3>Line 8, 9 (Sample script in Figure 4)</h3>
<span>wShell.RegWrite POLICY_KEY &amp; LEGAL_CAPTION_VALUENAME, strLegalCaption, “REG_SZ”
WShell.RegWrite POLICY_KEY &amp; LEGAL_TEXT_VALUENAME, strLegalText, “REG_SZ”</span>

These two lines do all the work. Both lines use the Windows Scripting Host shell object to write to the registry of the local computer. This is accomplished using the <b>RegWrite</b> method. The first parameter to the RegWrite method is the full registry path (hive and value name). The second parameter is the value the script writes into the value name. The last parameter is the data type if the value name—in this case both value are strings, which are REG_SZ data types.

Line 8 uses the POLICY_KEY constant and the LEGAL_CAPTION_VALUENAME constant to build the path to which the scripts writes. StrLegalCaption is the variable we used to hold the value of the legal caption. Line 9 uses the POLICY_KEY constant and the LEGAL_TEXT_VALUENAME constant to build the path to which the script writes. StrLegalText is the variable we used to hold the value of the legal text.

Below is the example script created for contoso.com’s legal text notice, which is based on the sample script from Figure 4.
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td width="521" valign="top"><span>‘==========================================================================
‘
‘ VBScript Source File —
‘
‘ NAME: legal.vbs
‘
‘ AUTHOR: Mike Stephens , Microsoft Corporation
‘
‘ DATE: 11/26/2007
‘
‘ COMMENT: sample computer startup script to deploy legalcaption and legaltext
‘
‘ ========================================================================== </span><span>set wShell = CreateObject(“Wscript.Shell”)
</span><span>strLegalCaption = “Legal Notice” </span><span>Const POLICY_KEY = “HKLM\Software\Microsoft\Windows\CurrentVersion\policies\system\”
Const LEGAL_CAPTION_VALUENAME = “legalnoticecaption”
Const LEGAL_TEXT_VALUENAME = “legalnoticetext” </span>

<span>strLegalText = “” </span>

<span>strLegalText = strLegalText &amp; ” Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen.” &amp; vbcrlf &amp; vbcrlf </span>

strLegalText = strLegalText &amp; ” Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen.” &amp; vbcrlf &amp; vbcrlf

strLegalText = strLegalText &amp; ” Alle Menschen sind frei und gleich an Würde und Rechten geboren.” &amp; vbcrlf &amp; vbcrlf

<span>‘ Copy the line above and repeat for each paragraph in the legal notice.
‘ Remember it is best to limit your notice to two paragraph that contain no more than 4
‘ sentences. </span>

<span>wShell.RegWrite POLICY_KEY &amp; LEGAL_CAPTION_VALUENAME, strLegalCaption, “REG_SZ”
WShell.RegWrite POLICY_KEY &amp; LEGAL_TEXT_VALUENAME, strLegalText, “REG_SZ”</span></td>
</tr>
</tbody>
</table>
<span>Figure 5- Contoso.com’s legal notice script</span>

If you can, disable your existing Group Policy object that contains your legal text notice security policy settings. Now, create a new Group Policy object and assign this at the level appropriate for your environment. Configure this GPO with a computer startup script and include your script. Refresh Group Policy and then logoff your workstation. Press CTRL+ALT+DEL.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image012_2.jpg"><img width="514" height="386" alt="clip_image012" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/DeployingLegalNoticestodomaincomputersus_8E7C/clip_image012_thumb.jpg" border="0" /></a>

<span>Figure 6- Formatted legal notice</span>

ms

&nbsp;

<span style="font-size: 16px"><em><span style="text-align: left;color: #333333;line-height: 24px;text-indent: 0px;letter-spacing: normal;font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif;font-variant: normal;font-weight: 400;text-decoration: none;cursor: text;float: none;background-color: transparent">Originally posted to AskDS blog 02/08/2008</span></em></span>

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Security Policy Settings and User Account Control</title>
      <link>https://docs.microsoft.com/archive/blogs/cryptgenrandom/security-policy-settings-and-user-account-control</link>
      <pubDate>Thu, 31 Jan 2008 06:59:04 GMT</pubDate>
      <dc:creator><![CDATA[Mike Stephens [MS]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/cryptgenrandom/?p=105</guid>
      <description><![CDATA[User Account Control in Windows Server 2008 and Windows Vista requires all users run in a standard...]]></description>
      <content:encoded><![CDATA[User Account Control in Windows Server 2008 and Windows Vista requires all users run in a standard user mode; its purpose: to limit the user’s ability from changing critical operating system files or expose their computer and network to viruses and malware. Windows displays an authorization dialog box when a task requires administrative privileges, such as opening the Microsoft Management Console (MMC). You, the administrator, provide administrative credentials to “elevate” your privileges for the specific process (You can read more about User Account Control, on the Microsoft Windows Vista TechNet site <a href="https://www.microsoft.com/technet/windowsvista/security/uacppr.mspx">https://www.microsoft.com/technet/windowsvista/security/uacppr.mspx</a>). Windows Server 2008 and Windows Vista provide you with nine security policy settings to control how User Account Control behaves. You can locate these security policy settings in the Local Group Policy Editor under<b><i> Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options</i></b> or <b><i>Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options</i></b> when editing domain-based GPOs using GPMC included in Windows Server 2008 or when using Remote Server Administration Tool on Windows Vista Service Pack 1.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/SecurityPolicySettingsandUserAccountCont_ADA2/image_2.png"><img width="291" height="234" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/SecurityPolicySettingsandUserAccountCont_ADA2/image_thumb.png" border="0" /></a>
<span>Figure 1- UAC security policy parent node in a domain-based GPO.</span>

These security policy settings apply only to computers running Windows Server 2008 or Windows Vista RTM or later. These security policy settings can co-exist in GPOs applicable to clients earlier than Windows Vista. Operating systems other than Windows Server 2008 and Windows Vista ignore the settings.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/SecurityPolicySettingsandUserAccountCont_ADA2/image_4.png"><img width="469" height="233" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/SecurityPolicySettingsandUserAccountCont_ADA2/image_thumb_1.png" border="0" /></a>
<span>Figure 2- UAC Computer security policy settings</span>

Before I begin, I want to tell you about another feature with security policy settings. This valuable feature is a little hard to find. Each security policy setting has <i>“explain”</i> text similar to registry-based policy settings. Simply double-click on the security policy setting and then click on the <b>Explain</b> tab to view detailed information about the security policy setting; enabled and disabled behavior; and default values. Now, let us move on to the User Account Control policy settings.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/SecurityPolicySettingsandUserAccountCont_ADA2/clip_image006_2.jpg"><img width="284" height="338" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/askds/WindowsLiveWriter/SecurityPolicySettingsandUserAccountCont_ADA2/clip_image006_thumb.jpg" border="0" /></a>

<span>Figure 3 – Explain text in Security policy settings</span>

Windows Vista provides nine security policy settings to control the behavior of User Account Control. You can enable these security policy settings in Local Computer and Domain-based Group Policy objects. Each security policy setting starts with “<i>User Account Control</i>” and then the actual name of the policy settings. The Group Policy Object Editor lists security policy settings in alphabetical order, so just scroll to the end.

The first of these policies controls the Admin Approval Mode for the built-in administrators account. When enabled, the <b>Admin Approval mode is on for the built-in administrator account</b> causes Windows prompts the administrators for any operations requiring an elevation in privilege. The prompt gives the administrator the choice to <b>Permit</b> or <b>Deny</b> the request for elevation. When disabled, Admin Approval mode is off. The built-in administrator account runs all applications using full administrative privileges and does not prompt for elevation.

The next two security policy settings control the type of prompt for User Account Control uses. These security policy settings are <b>Behavior of the elevation prompt for administrators in Admin Approval Mode</b> and <b>Behavior of the elevation prompt for standard users</b>. <b>Behavior of the elevation prompt for administrators in Admin Approval Mode</b> security policy setting provides three choices
<ul>
 	<li><b>Prompt for Consent</b> –provides a dialog box asking you to either Permit or Deny the request for elevation.</li>
 	<li><b>Prompt for Credentials</b> –provides an authentication dialog box asking you to provide administrative credentials to permit the request for elevation.</li>
 	<li><b>Elevate without Prompting</b> –automatically permits the request for elevation without prompting the administrator.</li>
</ul>
The <b>Behavior of the elevation prompt for standard users</b> security policy setting provides two choices. <b>Prompt for Credentials</b> and <b>Automatically deny elevation requests</b> where Windows denies all requests for elevation and displays an Access Denied error message.

When enabled, the <b>Detect application installation and prompt for elevation</b> security policy setting causes Windows to detect heuristically for installation packages that require an elevation of privilege and triggers a User Account Control prompt for elevation. Disabling this security policy setting disables detection process.

Enabling the security policy setting <b>Only elevate executables that are signed and validated</b> enforces Windows Vista to validate the Public Key Infrastructure (PKI) certificate chain before permitting it to run. Disabling this security policy setting does not enforce validation of the PKI certificate chain.

The next security policy setting listed is, <b>Only elevate UIAccess applications that are installed in secure locations</b>. UIAccess applications are applications designed specifically to assist with user accessibility. These applications typically send information to other applications. The on-screen keyboard is an example of a UIAccess application. When enabled, Windows enforces UIAccess application to run from a secure location. These secure locations include:
<ul>
 	<li>…\Program Files\… including all sub folders.</li>
 	<li>…\Windows\System32\…</li>
 	<li>…\Program Files (x86)\… including all sub folders (64-bit versions).</li>
</ul>
Your desktop appearance changes when Windows Vista prompts you for elevation. Windows displays a gradient shade of gray over your existing desktop and then you see the prompt for elevation, in color. Actually, Windows switches your desktop to a secure desktop before prompting you for elevation. This describes the enabled behavior of the security policy setting <b>Switch to the secure desktop when prompting for elevation</b>. When disabled, Windows prompts for elevation on your existing desktop.

Some applications read or write registry information or files to locations that Windows protects from normal users. This usually requires the user to run the application as an administrator until an application upgrade becomes available. Windows Vista helps by providing virtualized file and registry writes to areas previously protected from normal users. This feature redirects writes destined for protected locations to locations where users have write access. The security policy setting <b>Virtualize file and registry write failures to per-user locations provides this behavior</b>, when enabled. When you disable this security policy setting, applications attempting to write in protected locations fail as with earlier versions of Windows.

The last security policy setting controlling User Account Control behavior is probably the most important one. <b>Run all users, including administrators, as standard users</b> is a security policy setting the affects all other User Account Control security policy settings. Enabling this policy turns on Admin Approval Mode and enables all other User Account Control polices to their default values. Disabling this policy turns off Admin Approval Mode and disables all related User Account Control security policy settings. Lastly, changing this security policy setting requires a reboot.

So, when you are evaluating your security policy during your Windows Server 2008 or Windows Vista deployment, look at the explain text for each security policy setting. Make sure you fully understand its impact before changing a security policy setting. Then, do not forget to include User Account Control policy settings in your security policy. These security policy settings can help you keep your computer, network, and data safe and secure.

&nbsp;

ms

Originally published on AskDS blog 01/31/2008]]></content:encoded>
    </item>
  </channel>
</rss>