{"id":3946,"date":"2012-06-26T20:56:06","date_gmt":"2012-06-26T18:56:06","guid":{"rendered":"https:\/\/ingmarverheij.com\/?p=3946"},"modified":"2013-06-15T13:46:52","modified_gmt":"2013-06-15T11:46:52","slug":"citrix-receiversecurity-warning-demystified","status":"publish","type":"post","link":"https:\/\/ingmarverheij.com\/en\/citrix-receiversecurity-warning-demystified\/","title":{"rendered":"&ldquo;Citrix Receiver &ndash; Security Warning&rdquo; explained and demystified"},"content":{"rendered":"\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Citrix-Receiver-Security-Warning.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Citrix Receiver - Security Warning\" border=\"0\" alt=\"Citrix Receiver - Security Warning\" align=\"right\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Citrix-Receiver-Security-Warning_thumb.png\" width=\"154\" height=\"97\" \/><\/a>When you\u2019ve worked with a Citrix XenApp or XenDesktop environment you must be familiar with the Security Warning dialog. It prevents a remote machine (your hosted application or desktop) from accessing resources on the client device, a security boundary you want to protect when from unmanaged systems.<\/p>\n<p>But on managed systems you want to prevent this message, you don\u2019t want your users to be confronted with a message you tell them to accept (otherwise it won\u2019t work and they\u2019re to blame).<\/p>\n<p>In this article I\u2019ll explain why this message is displayed and how you can prevent it.<\/p>\n<p><!--more--><\/p>\n<h2>Resources types<\/h2>\n<p>A users can be confronted with a security warning dialog for different resources, this depends on the client used:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\" width=\"417\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"158\"><strong>Resource description<\/strong><\/td>\n<td valign=\"top\" width=\"127\"><strong>Client version &lt; 12.0<\/strong><\/td>\n<td valign=\"top\" width=\"130\"><strong>Client version &gt; 12.0<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"158\">Client drives<\/td>\n<td valign=\"top\" width=\"127\">X<\/td>\n<td valign=\"top\" width=\"130\">X<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"158\">Microphone and webcams<\/td>\n<td valign=\"top\" width=\"127\">X<\/td>\n<td valign=\"top\" width=\"130\">X (only audio)<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"158\">PDA devices<\/td>\n<td valign=\"top\" width=\"127\">X<\/td>\n<td valign=\"top\" width=\"130\">&#8211;<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"158\">USB and other devices<\/td>\n<td valign=\"top\" width=\"127\">X<\/td>\n<td valign=\"top\" width=\"130\">&#8211;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#160;<\/p>\n<h2>Client versions<\/h2>\n<p>\u201cBack in the old days\u201d, or when you\u2019re using Citrix Presentation Server 4.5 or older, a Citrix ICA Client is used with a version lower than 12.0.&#160; The security warning dialog can be configured with the <em>webica.ini<\/em> file in the users profile.<\/p>\n<p>The Citrix Receiver (version 12.0 and up) ignores the <em>webica.ini<\/em> file and is solely configured via the registry. A new feature with the name \u2018Client Selective Trust\u2019 was introduced to allow a more fine grained configuration that can be set via a group policy.<\/p>\n<p>&#160;<\/p>\n<h2>Before version 12.0<\/h2>\n<p>When you\u2019re using a Citrix ICA client before version 12.0 the user will be asked what access level should be allowed. The users can choose between three access levels:<\/p>\n<ul>\n<li>No Access <\/li>\n<li>Read Access <\/li>\n<li>Full Access <\/li>\n<\/ul>\n<p>Depending of the version used the following message will be displayed<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Client-File-Security-10.x.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Client File Security 10.x\" border=\"0\" alt=\"Client File Security 10.x\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Client-File-Security-10.x_thumb.png\" width=\"104\" height=\"133\" \/><\/a><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Client-File-Security-11.x.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Client File Security 11.x\" border=\"0\" alt=\"Client File Security 11.x\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Client-File-Security-11.x_thumb.png\" width=\"104\" height=\"135\" \/><\/a><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/ICA-Client-File-Security.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"ICA Client File Security\" border=\"0\" alt=\"ICA Client File Security\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/ICA-Client-File-Security_thumb.png\" width=\"104\" height=\"148\" \/><\/a><\/p>\n<h5>&#160;<\/h5>\n<h5>Preventing the message<\/h5>\n<p>This message can be prevented by placing a <em>webica.ini<\/em> file in the <strong>%SystemRoot%<\/strong> (version 10.0 or lower) or the <strong>%AppData%\\ICAClient<\/strong> directory (version 10.1 or higher).<\/p>\n<p>The file has the following content<\/p>\n<pre>[Access]\r\nGlobalSecurityAccess=403\r\n\r\n[AudioInput]\r\nGlobalSecurityAccess=803<\/pre>\n<p>Where the number represents an access level<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\" width=\"493\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"50\"><strong>Access<\/strong><\/td>\n<td valign=\"top\" width=\"175\">&#160;<\/td>\n<td valign=\"top\" width=\"69\"><strong>AudioInput<\/strong><\/td>\n<td valign=\"top\" width=\"197\">&#160;<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"50\">-1<\/td>\n<td valign=\"top\" width=\"175\">No security setting configured<\/td>\n<td valign=\"top\" width=\"69\">803<\/td>\n<td valign=\"top\" width=\"197\">No Access, never ask me again<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"50\">403<\/td>\n<td valign=\"top\" width=\"175\">No Access<\/td>\n<td valign=\"top\" width=\"69\">804<\/td>\n<td valign=\"top\" width=\"197\">Full Access, never ask me again<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"50\">403<\/td>\n<td valign=\"top\" width=\"175\">Read Access<\/td>\n<td valign=\"top\" width=\"69\">806<\/td>\n<td valign=\"top\" width=\"197\">Never prompt <strong>current<\/strong> application<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"50\">405<\/td>\n<td valign=\"top\" width=\"175\">Full Access<\/td>\n<td valign=\"top\" width=\"69\">807<\/td>\n<td valign=\"top\" width=\"197\">Never prompt <strong>any <\/strong>application<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"50\">&#160;<\/td>\n<td valign=\"top\" width=\"175\">&#160;<\/td>\n<td valign=\"top\" width=\"69\">808<\/td>\n<td valign=\"top\" width=\"197\">&#160;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#160;<\/p>\n<h2>Version 12.0 and up (Citrix Receiver)<\/h2>\n<p>From Citrix Online Plugin 12.0 and up, including the current Citrix Receiver 3.x, users are presented the following dialog:<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/File-Security-Citrix-Online-Plugin.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"File Security - Citrix Online Plugin\" border=\"0\" alt=\"File Security - Citrix Online Plugin\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/File-Security-Citrix-Online-Plugin_thumb.png\" width=\"154\" height=\"103\" \/><\/a><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Citrix-Receiver-Security-Warning1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Citrix Receiver - Security Warning\" border=\"0\" alt=\"Citrix Receiver - Security Warning\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Citrix-Receiver-Security-Warning_thumb1.png\" width=\"154\" height=\"97\" \/><\/a><\/p>\n<p>The content of the message depends on the resource that is accessed from the remote server.<\/p>\n<h4>&#160;<\/h4>\n<h5>GUID<\/h5>\n<p>For each target environment that is accessed a unique registry key is made in registry with the name <strong>HKCU\\SOFTWARE\\Citrix\\ICA Client\\Client Selective Trust\\{GUID}<\/strong>. It seems that the {GUID} is generated during runtime and (therefore) cannot be predicted. You can find what GUID belongs to what connection by reading the value <strong>HKCU\\SOFTWARE\\Citrix\\ICA Client\\Client Selective Trust\\{GUID}\\RegionName\\@.<\/strong>This value contains the name of the environment.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/RegionName.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"\" border=\"0\" alt=\"\" align=\"right\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/RegionName_thumb.png\" width=\"154\" height=\"77\" \/><\/a>If you connect via a webinterface \/ cloudgateway this key contains the URL (like lab.pepperbyte.com). When you connected directly to a published application \/ server via an ICA file the content will be something like <em>ica:\/\/172.31.50.132:1494<\/em>. <\/p>\n<p>  <br clear=\"all\" \/><\/p>\n<h5><\/h5>\n<h5>Preventing the message<\/h5>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Security-Permissions.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"\" border=\"0\" alt=\"\" align=\"right\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/Security-Permissions_thumb.png\" width=\"154\" height=\"77\" \/><\/a>The message van be configured per resource type, where each resource type is a subkey of <em>ICA Client\\Client Selective Trust\\{GUID}IcaAuthorizationDecision<\/em> (no \\ after the GUID!).<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\" width=\"588\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"166\"><strong>Resource type<\/strong><\/td>\n<td valign=\"top\" width=\"420\"><strong>Subkey<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"166\">Client drives<\/td>\n<td valign=\"top\" width=\"420\">FileSecurityPermission<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"166\">Microphones and webcams<\/td>\n<td valign=\"top\" width=\"420\">MicrophoneAndWebcamSecurityPermission<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"166\">PDA devices<\/td>\n<td valign=\"top\" width=\"420\">PdaSecurityPermission<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"166\">USB and other devices<\/td>\n<td valign=\"top\" width=\"420\">ScannerAndDigitalCameraSecurityPermission<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The access level can be set in the default (@) value where the number represents an access level<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\" width=\"206\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"45\"><strong>Value<\/strong><\/td>\n<td valign=\"top\" width=\"159\"><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"45\">0<\/td>\n<td valign=\"top\" width=\"159\">No access<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"45\">1<\/td>\n<td valign=\"top\" width=\"159\">Read access<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"45\">2<\/td>\n<td valign=\"top\" width=\"159\">Full access<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"45\">3<\/td>\n<td valign=\"top\" width=\"159\">Prompt the user for access<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The access level can be set per accessed environment (per GUID) or per region. By configuring the access level on the <strong>HKEY_LOCAL_MACHINE<\/strong> (HKLM) hive instead on the <strong>HKEY_CURRENT_USER<\/strong> (HKCU) hive the setting is inherited by all users. <\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/oidUserRestrictedSitesRegion.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"oidUserRestrictedSitesRegion\" border=\"0\" alt=\"oidUserRestrictedSitesRegion\" align=\"right\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2012\/06\/oidUserRestrictedSitesRegion_thumb.png\" width=\"154\" height=\"77\" \/><\/a>If you can to configure the access permission per region you need to change the value of <strong>IsIsmDeferalEnabled <\/strong>to true and set the access level per resource type.<\/p>\n<p>The regions that can be configured in HKLM match the regions that can be found (and configured) in Internet Explorer.<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\" width=\"400\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"200\"><strong>Zone<\/strong><\/td>\n<td valign=\"top\" width=\"200\"><strong>Subkey<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"200\">Internet<\/td>\n<td valign=\"top\" width=\"200\">oidInternetRegion<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"200\">Local Intranet<\/td>\n<td valign=\"top\" width=\"200\">oidIntranetRegion<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"200\">Trusted sites<\/td>\n<td valign=\"top\" width=\"200\">oidTrustedSitesRegion<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"200\">Restricted sites<\/td>\n<td valign=\"top\" width=\"200\">oidRestrictedSitesRegion<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Keep in mind that if you configure the settings on a x64 operating system the keys are stored in <em>HKLM\\SOFTWARE\\Wow6432Node\\Citrix\\ICA Client\\Client Selective Trust<\/em><strong>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you\u2019ve worked with a Citrix XenApp or XenDesktop environment you must be familiar with the Security Warning dialog. It prevents a remote machine (your hosted application or desktop) from accessing resources on the client device, a security boundary you want to protect when from unmanaged systems. But on managed systems you want to prevent [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[19,571],"tags":[667,468,492,467,469,41,668],"class_list":["post-3946","post","type-post","status-publish","format-standard","hentry","category-citrix","category-demystified-other","tag-citrix","tag-client","tag-demystified","tag-receiver","tag-security-warning","tag-xenapp","tag-xendesktop"],"_links":{"self":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/3946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/comments?post=3946"}],"version-history":[{"count":4,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/3946\/revisions"}],"predecessor-version":[{"id":5136,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/3946\/revisions\/5136"}],"wp:attachment":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/media?parent=3946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/categories?post=3946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/tags?post=3946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}