Last month's post of the open source packet decoder is just the first of a strong list of tools planned by the team that brings you the Technology Test Utility. The iCSO software engineering team is charted with making utilities and applications available to the public that accelerate and simplify the adoption and activation of Intel vPro technology.
We will be maintaining these tools and look forward to your feedback, suggestions, and participation in making these tools the best they can be for you and the marketplace. Our commitment is to post new versions of each tool at least every other month and of course post earlier if issues are found that render the tool less than useful.
The next tool we will be posting is a Pre-Installation Utility intended to speed the first user experience and automate as much as possible the initial setup of the Intel® AMT(tm) Setup and Configuration (aka SCS) environment in enterprise mode. Coupled with post setup wizards it will enable users to provision devices with minimal effort and time.
We look forward to hearing your feedback on our efforts.
Intel's iCSO Software Engineering Team
As a network administrator for a small local government agency, I have been tasked to deploy Intel's Active Management Technology (AMT) into our network environment. Having sold our IT management on the benefits of vPro technology and how it can revolutionize our system management capabilities, I am ready to move forward and get AMT installed . In addition, today I learned that we will begin receiving brand spanking new HP systems in January that will have the latest greatest vPro technology aboard. I've got a few months to become an AMT expert and be ready for the new systems. Life is good!
Where To Start
The first thing I did after learning about vPro and AMT was to visit the Intel vPro Expert Center web site. There I found a great variety of resources to help me with my deployment. This is a good site to get help and guidance. The only problem I have with the site is that there's no link to download the AMT docs or software. You'll want to get your hands on the Intel Active Management Technology Setup and Configuration Service (SCS) - Installation and User Manual. You can get this document as well as the software from http://softwarecommunity.intel.com/articles/eng/1025.htm. Since SCS is the foundation and support structure of everything that goes on in the AMT and vPro world, this was the most logical place to start.
In addition, since I plan on integrating SCS with my existing SMS 2003 infrastructure, I also downloaded the Intel Active Management Technology Add-on for Microsoft SMS 2003 - Installation and User's Guide. Getting this was a bit of a challenge so stay with me on this one. I had to navigate to another good link you'll want to keep and refer to, The Intel Management Developer Community. From here I searched for "SMS 2003" and found the link to the SMS 2003 Add-on document. For non-developers like me, this site can appear to be not exactly what we do everyday, but hang in there, this site has a lot of info too. Now I had the documents I needed. They created the basis on which I would start to plan and deploy AMT into my network.
Read, read, read
The first thing I did after printing the documents was to read them over several times so I could get the gist of just how all the pieces played together. Then I read them again. After the first pass, it all looked pretty daunting and difficult, but after reading many of the sections over, it all started to come together and make sense. Read. Read. Read.
Time to lay things out
Ok, now I had a pretty good idea of what everything did and why, it was time to make sure I had everything I needed to make the pieces work together. I began to try and lay out what I needed to have to make AMT work.
Servers - I need to decide where to install SCS. I had a recently rebuilt Windows 2003 R2 server available that also had SQL 2005 on it. Plenty of disk space and horsepower. This was good. We were using this server to host our Help Desk application and it didn't appear to be over taxed in any way. The hardware and base OS part was taken care of. The server happened to be in our central office which was also a benefit. Our office is put together in a spoke and wheel configuration with all outer offices connecting to the central office over fast network connections. This would be good when we start to provision systems from outer office locations.
Active Directory - SCS / AMT relies on and utilizes Active Directory quite a bit. Our Active Directory is at Windows 2003 R2 level so I'm good to go. Also, as a Domain Admin, I have the ability to make any changes necessary to Active Directory.
Security - AMT supports Transport Layer Security (TLS) for secure communications between AMT devices and management console applications. TLS is optional for AMT, however we wanted to make all our communications as secure as possible so we're going for a full TLS implementation. This requires certificates and fortunately we have a Microsoft Certificate Authority server in our network that will make things easy to manage.
Database - SCS stores all its information in a database. We're going to use the existing SQL 2005 database on the server we're going to install SCS on.
AMT Device Location - Where were the new systems coming into and who was handling them? In the past when new systems came in, our Help Desk techs were very efficient in imaging them and deploying them right out the door. I need to make sure that everyone in our Help Desk group was tuned into what we were trying to do. We'll need to have a meeting to discuss what's going to happen after they plug in a system to the network for the first time.
Now that I've gotten my infrastructure laid out, it's time to start installing software. Yeah!
Next time I'll detail the steps I took in actually installing SCS into my network. As always, any comments and suggestions are warmly welcomed.
Take a look at the latest resource article posted at http://communities.intel.com/docs/DOC-1210
Use the file to generate custom setup.bin files for AMT 2.1, AMT 2.5, and AMT 3.0 systems.
This is the third and final part of this series (at least for now). The previous two posts include
Basicsand
Common Intel SCS errors
BEFORE GOING ANY FURTHER - PLEASE READ AND ENSURE THE FOLLOWING
At this point, you have ensured the infrastructure is setup correctly and have attempted to troubleshoot the common Intel SCS errors as listed in the SCSconsole log file. Intel vPro systems are being recognized and listed in the SCSconsole. However, strange or unexpected behavior continues to occur - whether during provisioning, maintenance, or other activities. If Intel SCS has been included in a system management console or a provisioning script provider with whom you are working - AND - further debug analysis is needed, the following points may help. The debug log output may be one of the datapoints requested to replicate and remediate issues.
Before we go on - please note that these steps require modifications to the Microsoft Windows Registry on the system labeled as "ProvisionServer". That system will be running the AMTconfig service. Enabling the debug logging features will require root drive access and space to capture and store the log outputs. The logs will be stored at the root of C:
Ready to create an Intel SCS debug log?
SCS debug logging is off by default. If enabling for troubleshooting purposes, be sure to disable when done troubleshooting. The following steps will require a new registry key and string value to be added. Once these changes have been made - restart the AMTconfig service. At most, two log files will appear on the root of c: drive. The first is scs_win_server.log the second is scs_server.log. The second commonly appears only after errors have occurred.
Create the following registry key on the service's machine:
HKEY_LOCAL_MACHINE\SOFTWARE\INTEL\AMTConfServer\Log with string value "LogLevel"="V"
Click on the following image to view the entire image
Logging levels can be set to 'V' for verbose, 'W' for warnings and errors, 'E' for only errors.
Once the debug log capture is complete, remove the LogLevel entry from the registry and restart the AMTconfig service.
This concludes the three part Intel SCS troubleshooting. If the community is experiencing additional events or has additional questions - please comment\reply.
This is the second in a three part blog post. The first article
covers the Basicsand the final article discusses
creating an SCS debug log
Handling common Intel® SCS errors
With the SCS event log set to verbose mode, not only will successful provisioning events show but also warnings and errors if you are having difficulty in provisioning or configuring an Intel® vPro™ client. When a successful provisioning process occurs, you will see a sequence of Intel AMT properties being set followed by the statement "Commit Changes". Once this occurs, the target system is configured and ready to send\receive AMT webservice calls.
However, if this does not occur, refer to the following list of common errors with guidelines on how to interpret and resolve.
Error 102 - Intel AMT device is already provisioned - This indicates that the IntelAMT database has the target system identified as provisioned. If the target system was manually unprovisioned via the local MEBx, than manually delete\remove the entry from the provisioning console. From a provisioning security perspective, this error may also indicate an attempt to replay a provisioning sequence. The ProvisionServer with Intel® SCS running will reject additional requests if the system is already listed as Provisioned.
Error 103 - Request is already in the queue - This is really a status or awareness indicator. Provisioning and maintenance requests are queued within the IntelAMT database and processed by Intel® SCS servers. In larger implementations, multiple Intel® SCS servers can be configured to process requests within a single IntelAMT database queue. The queue includes immediate and delayed requests. Thus if a request is already delayed, this error will be generated. Similarly, if the request is being processed or handled by the poller, a competing request will generate this message.
Error 137 - Another process currently working on AMT - The target AMT device has a preceding request that has not completed. For example, if a partial un-provision request has not completed and a reprovision request is sent, this will generate the error. Reasons for the previously queued request not completing might including connectivity, difference of provisioning state, and so forth. If the error is persistent for a target AMT device\system and connectivity to the target system is available - try executing a management function if the system is in a configured state. (e.g. Remote inventory, remote power on\off, etc). If unsuccessful, the target system may be in an unsupported state. A manual process of partial unprovision may be required. Removing the assigned profile at the provisioning console should occur also.
Error 139 - Failed to update Kerberos Password with Kerberos Integration is disabled on server - Intel® SCS has the ability to integrate with Microsoft Active Directory for Kerberos based authentication. Check to ensure schema extensions have been applied and proper authentication to the Kerberos server (e.g. Microsoft Active Directory) is in place.
Error 407 - Batch exit code 0xfffff - This is a -1 return caused between a provisioning script and the SCS instance. Incomplete Intel® AMT profile, missing provisioning/configuration data, or other console configurations will likely cause this error. Check with the provider of the provisioning script - whether system management vendor or other. If the error is persistent afterwards, refer to the SCS debug log creation in the next article and contact support of the script provider.
Error 602 - Exception in clock sync worker - Clock synchronization is important in Kerberos environments, since the authentication process has a time stamp dependency. This error is benign in non-Kerberos authentication environments. It refers to a SOAP call failure - thus further environment and infrastructure investigation may be needed for future environmental considerations.
Error 913 - No rows found in get UuidMap - For provisioning to occur, the UUID and the FQDN of the target vPro system are mapped together. The provisioning script utilized may attempt to utilize WMI, reverse DNS, previously stored asset data or client agents to obtain this data. Check with the provisioning script provider.
Cannot contact back AMT with IP:xxx.xxx.xxx.xxx Exception - The recorded IP address from the hello packet sequence is not responding to requests. If the target system sends a new hello packet with an updated IP address, Intel SCS will update the queue entry. This error commonly occurs when the system has been connected, an IP address and DNS resolution have occurred, hello packet was sent, and then the system was disconnected from the network prior to the ProvisionServer response. A common scenario is pre-staging a system before sending to the intended location.
If the suggestions above are not helping, and a deeper investigation of Intel® SCS is needed - a debug log can be created. Please refer to part 3
This blog is divided into 3 sections - understanding the basics,
addressing common Intel SCS errors, and
how to generate an Intel SCS debug log.
If only solutions were perfect, errors resolved automatically, and tuning was never required nor needed. Then again, that's what many of us get paid to do and handle. The intent here is to focus on common Intel® vPro™ configuration and provisioning errors with Intel Setup and Configuration Services (SCS). More importantly, the article intent is to provide some insight on the correction needed or tasks to handle common errors.
The Basics
Deploying Intel® vPro™ enabled solutions presents many working parts. In a lab environment - these "always" work well. In a production environment, determining the cause of an error could be difficult. Generally speaking, to isolate the scenario take into consideration the management console, the vPro configuration services (e.g. Intel® SCS), the OEM firmware and drivers, and the infrastructure. The lab environment comes in handy to isolate components and aspects, especially when so many variables are present.
In stepping through each item, consider the following basic points:
OEM hardware and drivers - Check the update page for the latest BIOS and Firmware on the platform. The BIOS update will often include the Intel® AMT firmware. The drivers to be checked are mentioned Management Engine Interface (MEI), Local Management Service (LMS), Serial over LAN (SoL), and User Notification Service (UNS). NOTE: UNS applies to AMT 3.0 and higher versions.
Intel® SCS version - Don't know what version if running? Check the AMTconfig service properties or version listed in the SCSconsole. More on SCS and AMT versions
here. Version 3.2 is the latest. If running version 1.x, an update to version 3.x is recommended. Check first with preferred system management vendor on supported setups, upgrade paths, and so forth.
Infrastructure - Ensure a ProvisionServer DNS record exists for the target DNS domain, and that this pointer record resolves to the server running AMTconfig (e.g. Intel SCS). Ensure proper resolution of the DNS entry for the FQDN of ProvisionServer (e.g. ProvisionServer.company.com)
Verbose Logging for SCS events - Within the SCSconsole, access the Change the Log Level to "Verbose" mode. This will log all informational, warning, and error messages and events in the SCS log. This is good to see when a hello packet is received, when the ProvisionServer attempts to provision the target system, and so forth. When changing this setting, you may also want to decrease the log retention level to a few days or shorter timeframe than the default value. Depending on the number of systems managed or attempting to provision, setting the log level to "verbose" may rapidly grow the size of the IntelAMT database.
Well, it probably won’t work if you stick it there, but the
truth is that there are a lot of certificates used in AMT, and knowing where to
put those certificates and their private keys can save a lot of hair pulling
down the line.
<!--<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=ifgtevml+1">if gte vml 1>
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
]]>
<v:imagedata src="file:///C:\DOCUME1\gjbevan\LOCALS1\Temp\msohtmlclip1\01\clip_image001.emz"
o:title=""/>
endif><!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=if%21vml">if !vml</a>>!AMT Certs.jpg!<!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=endif">endif</a>><!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=ifgtemso9">if gte mso 9>
DrawAspect="Content" ObjectID="_1253102892">
Let’s start with the AMT system itself.
If the SCS profile calls for TLS to be enabled then a
private key and certificate are generated at the SCS and then installed on the
Amt device as part of the provisioning process. This certificate and key are
then used in future communications between the SCS and the AMT device and the
Management Console and the AMT device. I’m going to use the SMS Add-on as an
example of the management console because it uses gSOAP libraries which have
addition certificate storage requirements.
If the SCS profile calls for and 802.1x certificate then a
private key and certificate are generated at the SCS and installed on the AMT
device as part of the provisioning process. This certificate and key are used
to allow the AMT device to connect to an 802.1x protected network without the
host operating system being available.
The MTLS root certificate is used by the AMT device to
validate the mutual authentication certificate provided by the SCS or
management console after provisioning has completed. (Assuming of course that
the SCS profile used for provisioning configures MTLS). This certificate is
installed during the provisioning process. Note only the certificate is
installed – there is no private key installed for this certificate.
The remaining two certificates on the AMT device are used
for Remote Configuration. This feature is available in AMT 2.2, 2.6 and 3.0.
(Note that does not include 2.5).
Actually this is not a whole certificate. It’s just the
certificate thumbnail, referred to as a hash. The certificate hashes can come
from a couple of places:
<! <a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=if+%21supportLists">if !supportLists</a>>·<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=endif">endif</a>>The AMT systems come with default certificate
hashes from VeriSign, GoDaddy and Comodo.
<!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=if+%21supportLists">if !supportLists</a>>·
<!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=endif">endif</a>>Your OEM can place a certificate hash of your
choosing on to the AMT devices you buy as part of their manufacturing process.
E.g. if you have your own PKI and wish to use your own root certificate.
<! <a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=if+%21supportLists">if !supportLists</a>>·<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=endif">endif</a>> You can
manually enter the certificate hash into the MEBx screen.
The advantages and disadvantages of each of these methods
are best left for another discussion.
This certificate is used to validate the remote
configuration certificate provided to the AMT device by the SCS service that is
trying to provision the AMT device. The details of this validation are somewhat
complicated and also best left to another discussion.
Finally the remote
configuration processes requires the AMT device to generated its own self
signed (i.e. there is no certificate authority involved – and hence no trust
established) certificate to serve as a TLS/SSL certificate in place of the Pre
Shared Key (PSK) that was used to protect provision in earlier version of AMT.
Both the certificate and the key are generated locally on the AMT system.
Once we get to the server side, certificates become more
interesting as we have to know which Windows certificate store to put the
certificate and private key.
The SCS requires four certificates.
The SCS service runs as a web service within IIS.
Connections to the service can be carried out by the SCS console or by an ISV
supplied UI. To secure this traffic the SCS service requires that these web
services be protected by TLS/SSL. The SSL certificate is the same type used to
secure other web servers like amazon.com or eBay.
This certificate is installed in the Windows certificate
store of the service account used to run IIS. If you use the IIS “Server
Certificate” this is a two step process. First the IIS server generates the
private key and a certificate request. The private key is stored in the IIS
service account key store, and the request is stored in a text file. The
certificate request is then sent to the CA who issues the certificate. The
wizard then installs the certificate and matches it up with the private key.
<!--<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=ifgtevml+1">if gte vml 1>
type="#_x0000_t75" style='width:555pt;height:444pt' o:ole="">
]]>
<v:imagedata src="file:///C:\DOCUME1\gjbevan\LOCALS1\Temp\msohtmlclip1\01\clip_image003.emz"
o:title=""/>
endif><!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=if%21vml">if !vml</a>>!SCS Certs.jpg!<!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=endif">endif</a>><!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=ifgtemso9">if gte mso 9>
DrawAspect="Content" ObjectID="_1253102893">
The TLS root certificate is the root certificate from the
certificate chain that issued the TLS certificates to the AMT devices. This may
or may not be the same as your MTLS Root, depending on how you issue your
certs. This certificate is used to validate the TLS certificate provided by the
AMT device when the SCS connects to the device to perform some function after
initial provisioning. This could be re-provisioning or one of the maintenance
tasks that the SCS performs – like setting the AMT system time.
There is no private key associated with this certificate.
The certificate should be stored in the “Trusted Root Certification
Authorities” folder of the SCS service accounts certificate store.
This certificate is used by the SCS to authenticate itself
to the AMT devices. Both the certificate and the private key should be stored
in the SCS service accounts “Personal” certificate store. The root certificate
of the chain must be installed on the AMT device during provisioning to allow
this authentication mechanism to work correctly.
This is the most interesting of the three SCS service
certificates. This is because the certificate needs to be in two certificate
stores – but the private key only needs to be in one. The SCS service presents
this certificate to the AMT device to start remote provisioning. As this is a
mutually authenticated TLS session, the SCS service must have access to the
private key. So the certificate and private key should be installed in the SCS
service accounts certificate store.
To configure SCS for remote configuration, a utility called
“loadcert.exe” is run. This utility lists the certificates in the local
computer store and you select the one you want the SCS service to use for
remote configuration. The utility then make a registry entry containing the
thumbnail of the certificate. The SCS service looks at this registry entry and
then looks up the selected certificate in the SCS service account certificate
store. Because the loadcert.exe utility reads from the local computer store,
the remote configuration certificate needs to be installed in there. But,
because it is only read by the utility to extract the thumbnail, the private
key does not have to be installed in the local computer store.
Certificates for the SMS Add-on are complicated by the use
of the gSOAP libraries. GSOAP is a cross platform, open source web services
development toolkit. Because it is cross platform it does not (obviously) use
the windows certificate store. Instead it uses a file format called PEM (from
the Privacy Enhanced Mail system). PEM files store certificates and keys as
base-64 encoded strings. This makes them easy to manipulate (with things like
notepad) and portable between systems. The following discussion assumes a 3
level PKI hierarchy, with a root CA, policy CA and an issuing CA. If there is
sufficient interest I can talk about PKI hierarchies on a separate thread.
As the SMS is also a windows program, it also needs its
certificates in the windows store.
<!--<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=ifgtevml+1">if gte vml 1>
type="#_x0000_t75" style='width:566.25pt;height:407.25pt' o:ole="">
]]>
<v:imagedata src="file:///C:\DOCUME1\gjbevan\LOCALS1\Temp\msohtmlclip1\01\clip_image005.emz"
o:title=""/>
endif><!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=if%21vml">if !vml</a>>!SMS Certs.jpg!<!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=endif">endif</a>><!<a class="jive-link-adddocument" href="http://communities.intel.com/openport/community-document-picker.jspa?communityID=&subject=ifgtemso9">if gte mso 9>
DrawAspect="Content" ObjectID="_1253102894">
If the AMT profile the SCS calls for mutual TLS, then the
management console needs to supply an MTLSS certificate. This certificate, and
its private key, needs to be installed in SMS Add-on Service account
certificate store. This allows the SMS Add-on service to access the key for
operations such as power management. Because
the windows certificate store can “walk certificate chains”, only the MTLS cert
needs to be installed. Windows will work out where to get the rest of the chain
from on its own.
This is not true for the PEM file. In order for the gSOAP
library to have access to the certificate chain, all the chain entries must be
placed in the file (in the right order).
When a connection to the AMT device is made, it presents its
TLS certificate. In order for the Management console to trust the certificate,
the root certificate the issued the AMT certificate must be installed in the
“Trusted Root Certification Authorities” folder in the SMS Add-on’s certificate
store. . Because the windows certificate
store can “walk certificate chains”, only the TLS root cert needs to be installed.
Again, this is not true for the PEM file. In order for the
gSOAP library to have access to the certificate chain, all the chain entries
must be placed in the file (in the right order).
Traditionally speaking - if security is improved, manageability suffers. The reverse of this is true also - traditionally.
Intel vPro presents a different approach and perspective to this common understanding - consider some of the usage models and scenarios described at the follow link. http://www.intel.com/business/vpro/index.htm (see the "improve security" and "extend manageability" links on this page under Resources - lower right side)
The above links demonstrates and introduces the usage models and capabilities. But - what about ensuring the security of the platform. As commonly inquired - "Could vPro be used maliciously?". Considering that any tool of value - even the screwdriver sitting in a garage or a desk drawer - could be used maliciously, the question might be better phrased - "What are the built-in security features of Intel vPro?" The following is only a summary and overview - yet should provide some comfort in the platform. (BTW: Are you aware of all the security features in current environments, or would introducing vPro perhaps expose a long term policy or technological oversight? Just a thought.)
Internal security - Use of Intel digitally signed firmware. In some cases, the OEM will also require their digital signature for firmware updates. The non-volatile RAM (NVRAM) has strict security and access control. There is a small section referred to as "3rd party datastore" or 3PDS. Access to this area requires registration with Intel and granting of a token. Communications into the management engine occur through secure channels - whether from the operating system or from the network interface. Generally speaking - compromising the internal security would indicate there are bigger problems in the environment.
Enterprise setup and configurationsecurity - Enterprise mode setup and configuration is handled via either a pre-shared secret or certificate based authentication. (see related blog on the latter). The configuration uses secure handshakes, authentication, and so forth. Replay attacks are prevented. With the latest configuration service, option to require authentication or approval of systems to be provisioned\configured. Pre-shared keys are changed after configuration, and subsequently based on definable schedules. Minimal setup rights can be used to limit exposure of accounts to perform setup\configuration. Security audit logs and event logs monitor activities. The process also has dependencies on the enterprise DHCP, DNS, PKI\CA, and so forth. Generally speaking - if the enterprise setup and configuration service is compromised, there are bigger problems wtihin the environment (whether technological, social networking, policy\procedure, etc)
Operator Security - Roles, permissions, and AMT security realm access control come into play here. This effectively defines who is allowed to configure the "configuration services", who is allowed to authorize or change vPro configurations, and who is allowed to utilize functions on configured vPro systems. The "who" could be defined by a user, group, service, etc.In addition - use of Kerberos for user rights mgmt and so forth provides an integration into the Microsoft Active Directory. Thus a group of users can be defined withe various levels of access control and capability. Plus - all security related actions and configuration changes can be logged. Generally speaking - if an operator compromising vPro security, there are likely bigger problems in the environment (eg. policies, procedures, etc)
Communication Security - Once a system configured, transport layer security (TLS) or Mutual TLS can used to secure management traffic. User sessions can authenticated using a digest protocol or Kerberos.
Infrastructure Security - Since vPro effectively hasa separate management computer inside, this management engine can be configured for environments supporting wireless profiles (WPA or WPA2), VLAN, Network Access Control, 802.1x, etc.
Operational Client Security - On top of all the configuration security items is the end-user usage and capabilities. Items such as System Defense, Agent Presence, remote power management, and so forth.
This returns to the first question - Can manageability and security be raised together for client management?
Open to hear from the community on your thoughts - whether in agreement or disagreement.
This article provides an overview. If you have questions, comments, and so forth - please respond.
Overview of Remote Configuration
With the launch AMT 3.0 on the Weybridge platform (e.g. Intel® vPro™ platform launched Aug 27, 2007), Intel is introducing an additional mechanism for enterprise provisioning and configuration: Remote Configuration (RCFG) formerly known as Zero-Touch Configuration (ZTC). This process provides an alternative approach to the existing pre-shared key (e.g. TLS-PSK) configuration or provisioning - commonly referred to as USB one-touch.
Enterprise configuration of Intel® vProTM of provides a central configuration control of the management engine. For environments using small-medium business (SMB) configuration, RCFG is not applicable. RCFG applies only to enterprise mode of provisioning of configuration the management engine.
In the diagram below - Remote Configuration accomplishes the transition from Factory Default to Setup Mode.
RCFG allows an IT administrator using an RCFG-enabled setup and configuration application (SCA), such as Intel Setup and Configuration Service (SCS), to remotely initiate a secure and authenticated communication channel with the Intel® AMT device in order to perform setup and configuration of the device. RCFG is based on a Mutual Transport Layer Security (MTLS) handshake with an Intel® Client Setup Certificate on the provisioning server and a self-signed certificate on the Intel® vPro™ client system. The Intel® vPro™ client system has a series of certificate hashes which identify approved certificate authorities.
During the MTLS handshake, the SCA sends a certificate to the Intel AMT system - this certificate is used to authenticate the SCA to the Intel AMT system. An enterprise customer or environment must obtain this SSL Server certificate from a commercial Certificate Authority (CA), with certificate properties as defined below. The chain of trust of this certificate must include as its root one of the root certificates which are on the list of root certificate hashes in the firmware image of the Intel AMT system - i.e., it is a trusted CA. The default firmware image supplied by Intel contains a default of list certificate hashes which can be edited by the OEM. In essence, this is the same as noting trusted certificate authorities for internet browsers.
The certificate which the customer purchases must be marked as capable of Intel AMT configuration in one of the following two ways:
OID value in EKU field = 2.16.840.1.113741.1.2.3
OU value in Subject field = "Intel(R) Client Setup Certificate"
These requirements, along with additional processes mention below, will prevent an attacker from attaining a certificate from one a less secure server of the end customer and using it to configure Intel AMT systems.
RCFG will be first available on AMT 3.0, released Aug 2007. Backwards support on AMT 2.x platforms will include AMT 2.2 (Intel vPro platform released in 2006) and AMT 2.6 (Intel Centrino Pro platform release in 2007). It is best to confirm with your preferred OEM on their plans to support the respective Intel AMT releases.
What is TLS-PSK?
Before diving deeper into Remote Configuration, a base understanding or awareness of the current provisioning process might be helpful. TLS-PSK refers to Transport Layer Security Preshared Key. Essentially - a pre-shared secret (actually, a triplet pair) is shared between the Intel AMT client and the Setup and Configuration Application (SCA).
Since this article focuses on Remote Configuration - only an overview of the predecessor is provided
Keys are generated and stored in the database
Keys are transferred to a USB key
The USB key is inserted into the Intel vPro Clients, which load a pre-shared secret record at boot
The client boots, negotiates an IP address and requests the IP of "ProvisionServer"
The client sends a "hello" packet to the ProvisionServer. The packet includes the public portion of the pre-shared key along with client specific\unique information.
The ProvisionServer matches the public portion of the pre-shared key (e.g. Provisioning Identifier), and performs a handshake based on the private key (provisioning passphrase). Once the handshake and TLS session obtained - the configuration data is transferred as part of the Intel AMT profile.
What is Required for Remote Configuration?
DHCP is required, with option 15 enabled and configured. This will return the DNS suffix with the IP lease. The DNS suffix will be used in validating the configuration certificate.
An Intel® Client Setup Certificate must be obtained, and associated with the ProvisionServer. In multiple ProvisionServers due to different DNS domains, one certificate per each is needed. More on this certificate will be shared later in this article.
An OEM update package must be obtained for the Intel® AMT firmware, the Management Engine Interface (MEI) drive and Local Management Service (LMS) driver.
An OEM platform with certificate hashes embedded in the non-volatile RAM of the Intel® AMT management engine, or the ability to update per the previous item.
An updated ISV client agent must be obtained, which will support the Remote Configuration process to allow agent initiation.
Version 3.1 or higher of Intel® Setup and Configuration Service (SCS) is required within the ProvisionServer. For ISVs implementing their own Setup and Configuration Application (SCA) - recommend checking with them directly (Hint: A quick check of the AMTconfig service will reveal the version number of SCS.)
The base certificate hashes loaded on AMT client are listed below. Again - it may be best to confirm with your preferred OEM on what certificate hashes they have chosen to support, make active, and so forth. There is space for 20 certificate hashes, thus allowing custom hashes to be created - especially for environments which manage their own enterprise PKI. However, a full UnProvision of the client will restore the base certificate hashes along with setting all base certificate hashes to active.
AMT Version | VeriSign G1 | VeriSign G3 | GoDaddy | Comodo | Starfield |
AMT 2.2 | Yes | Yes | Yes | Yes | Yes |
AMT 2.6 | Yes | Yes | Yes | Yes | Yes |
AMT 3.0 | Yes | Yes | Yes | Yes | No |
The exact fingerprints of the certificates can be provided if needed. Post a comment at the end of the article.
How does Remote Configuration Work?
Two approaches are included in the design: Agent Initiated and Bare-metal (aka agent-less).
AMT 3.0 and beyond will support both.
AMT 2.2 and 2.6 will support only Agent Initiated.
The initial actions and communications occur during a preparation stage which is unique between the agent initiated and bare-metal approaches. The preparation phase ends with a hello packet sent to the ProvisionServer announcing the Intel® AMT client request for a remote configuration session. Next is an authentication stage between the ProvisionServer and the Intel® AMT client for the setup of a mutual transport layer security (MTLS) session. Once the MTLS session is established, a valid FQDN and UUID map is obtained, the configuration process commences and the assigned Intel® AMT profile is sent to the client.
The following subsections provide some additional detail on the preparations phases and the mutual authentication for Remote Configuration. The final phase of Intel® AMT profile assignment, although not shown in this article, is similar to the existing pre-shared key approach once the session is encrypted (see TLS-PSK section above). The MTLS session established for Remote Configuration is separate from TLS and MTLS sessions defined in the Intel® AMT profile and used for management traffic security.
Agent Initiated Preparation Phase
Targeted for all Intel® AMT platforms supporting Remote Configuration, this process is best used after the host operating system has been installed along with the ISV client management agent to support Remote Configuration. The steps below assume that existing Intel® AMT version is 2.0 or 2.1 for Intel® vProTM systems, or Intel® AMT version 2.5 for Intel® Centrino® Pro systems. This implies that no certificate hashes have been stored on the Intel® AMT client, and an upgrade is needed for the BIOS, firmware, drivers, and so forth
![]()
Per the numbering in the diagram above, the agent initiated preparation process is as follows:
The ISV client management suite sends an updated BIOS, Intel® AMT firmware, and Intel® AMT drivers (e.g. MEI, LMS), and the latest ISV client agent. All of these updates are in support of the Remote Configuration process. In addition, the Intel® AMT firmware could be updated out-of-band (supported with AMT 2.1 and higher). The Intel® AMT firmware update package places a set of certificate hashes into the non-volatile RAM (NVRAM). More on the certificate hashes is mentioned in the next section.
The ISV client agent will then query the BIOS and firmware to check the configuration mode, configuration state, and Intel® AMT version. It will obtain the system's UUID and AMT version, passing this information to the ProvisionServer via the management console.
The management console creates a One Time Password (OTP), which is sent to the client agent and subsequently to the NVRAM. The management console also send the OTP to the ProvisionServer (running Intel® SCS). Note: Only the agent initiated process creates an OTP.
The ISV client agent sends a command to the Intel® AMT management engine, via the Management Engine Interface (MEI), to open the network interface. Once the network interface is open, the management engine obtains an IP address and queries for the ProvisionServer. The interface is open for 6 hours and will close if provisioning does not complete. The process can be restarted by the ISV client agent if needed.
Once the ProvisionServer IP address is obtained from DNS, a hello packet is sent containing the UUID and a self signed certificate created via the local certificate hash.
Bare-metal (e.g. Agent-Less) Initiated Preparation Phase
Targeted for Intel® AMT 3.0 and higher systems, this preparation phase allows the provisioning process to start before a host operating system has been loaded or if the client management agent is not used (i.e. agent-less).
!http://communities.intel.com/openport/servlet/JiveServlet/downloadImage/38-10209-1032/BarePrep.png!
Per the numbering in the diagram above, the bare-metal preparation process is as follows:
When the system first boots, a self-signed certificate is created based on the existing certificate hashes loaded by the OEM at the time of manufacturing. Only one of the hashes will be set to active, in accordance to the matching Intel® Client Setup certificate within the ProvisionServer's local certificate store. (There is an assumption here that the OEM activates or the IT administrator activates the appropriate certificate hash.)
Intel® AMT obtains a DHCP IP lease which includes option 15 (DNS domain suffix), and queries DNS for ProvisionServer within that DNS domain (e.g. ProvisionServer.Loc1.com).
The hello packet is sent to the ProvisionServer with the Intel® AMT client's UUID and self-signed certificate included.
*_Authentication Phase_*
After completing one of the two paths for preparation, the authentication between ProvisionServer and the Intel® AMT client commences. For this process to complete, the ProvisionServer has a valid Intel® Client Setup Certificate local to the system and associated for the Remote Configuration process. The Intel® AMT client has received a DHCP IP lease with option 15 included (the DNS domain suffix). The Intel® AMT client has generated a self-signed certificate based on the active certificate hash within the local NVRAM store. The active certificate hash matches the fingerprint of the Intel® Client Setup Certificate - which will be validated during the process. If agent initiated, the Intel® AMT client, ProvisionServer, and management console all have a matching One Time Password (OTP).
!http://communities.intel.com/openport/servlet/JiveServlet/downloadImage/38-10209-1034/RCFGstep2.gif!
Per the numbering in the animated image above, the mutual authentication process of Remote Configuration is as follows:
The ProvisonServer requests the self-signed certificate of the Intel® AMT client.
The Intel® AMT management engine requests the Intel® Client Setup Certificate from the ProvisionServer. Based on the self-signed certificate form the client, the ProvisionServer generates TLS key 1 and encrypts this using the public key obtained from client's self-signed certificate. The encrypted TLS key 1, Intel® Client Setup Certificate, and PEM file are then sent to the management engine. The PEM file defines the chain of trust. (An enterprise security architect will also be familiar with how to create a PEM file.)
At this point, the Intel® AMT client does some validation. Extracts and stores Key 1. Using the PEM file and Intel® Client Setup certificate, the management engine extracts the root certificate, generates a certificate hash and validates to the local active certificate hash. NOTE: If the two hashes do not match, the process stops. Validates the OU assignment of the Intel® Client Setup certificate to the DNS suffix received via DHCP IP lease with option 15. For this reason, each ProvisionServer MUST have a unique Intel® Client Setup certificate (see next section). A wildcard certification (e.g. *.company.com) is supported (AMT version 2.6 and beyond)
If the previous validation steps complete successfully, the Intel® AMT management engine creates TLS key 2, encrypts with the public key of the Intel® Client Setup Certificate obtained from the ProvisionServer, and transmits.
With TLS key 1 and key 2 obtained by both the ProvisionServer and the Intel® AMT management engine, mutual authentication has occurred and an MTLS session is established.
At this point, the configuration process occurs where the FQDN and UUID are matched, the assigned Intel® AMT profile is sent to the management engine, and the changes are committed.
Conclusion
Remote Configuration adds to the existing Pre-shared key configuration, providing two main approaches to preparing and configuring the Intel® AMT management engine. Remote Configuration will be supported first on Intel® AMT 3.0 (codenamed Weybridge) systems, followed by firmware upgrades to support current Intel® vProTM and Centrino® Pro systems. These firmware upgrades are Intel® AMT versions 2.2 and 2.6 respectively, and it is best to confirm with you preferred OEM whether they plan to support.
In addition the firmware upgrades, the ISV client management agent will require an update to support the agent initiated process. Updates to the Intel® AMT drives will also be required - specifically the MEI and LMS drivers.
For systems already deployed, an update package from the OEM will be required to load the appropriate certificate hashes and\or to set one of the hashes to active. The active hash on the Intel® AMT client will be used to create a self-signed certificate used in the authentication process. Certificate hashes outside the base 5 can be added to the OEM system, with space for up to 20 total. However, a full UnProvision of the client will restore the base certificate hashes along with active\inactive indicators.
Using SSL Server authentication certificates, certificate hashes, Mutual TLS authentication and encryption, updated firmware and drivers, and other key components - Remote Configuration establishes a trusted relationship to securely transmit the provisioning data without physically touching the Intel® AMT client system. This secure session is separate from the TLS configuration and sessions of an enterprise provisioned Intel® AMT client, which is defined in the Intel® AMT profile.
Each release of the Intel®
AMTprovides a few additional features. The good news is that Altiris handles the abstraction and interface or capabilities in heterogeneous environments. However, for troubleshooting, deployment, product selection, and other decisions - it may help to provide a summary of features and capabilities within each generation of the platform.
Yet this raises some questions: What version of Intel® AMT is running on the client system? What features does the version support? What are the dependencies on the Intel® Setup and Configuration Service (SCS) for Altiris Out-of-Band provisioning?
All good questions - let's step through each.
Production Intel® AMT systems support either version 2.1 (for Intel® vProTM desktop systems) or 2.5 (for Intel® Centrino® Pro systems). First generation Intel® vProTM systems were codenamed Averill. First generation Intel® Centrino® Pro systems were codenamed Santa Rosa. Weybridge is the codename of the second generation Intel® vProTM desktop platform, and will start with Intel® AMT version 3.0.
If ever a question of what exact version of the MEBx (management engine
BIOSextension), the login screen will reveal the answer. This screen is typically access via Ctrl-P during the POST boot process. The picture below comes from an Intel® Centrino® Pro systems, running v2.15.15.0000 of the MEBx.
Click to view.
The table below provides a summary of Intel® AMT platform versions and support features. Remote configuration, formerly called Zero Touch Configuration, will be released in September timeframe for Averill and Santa Rosa systems. A future article will address this topic.
Details on Intel® AMT versions beyond that which is stated will be shown later. There is an Intel® AMT 1.0 version, yet not branded as Intel® vProTM. Details will not be shared.
A common question is raised of migration paths from one Intel® AMT family to the next. For example - will Averill systems be firmware upgradeable to Weybridge. No. However, the functionality will continue to grow and the capabilities will be integrated into the Altiris console. Thus a mixed environment is supported.
Will you find all these items supported in the current Altiris console for out-of-band manageability? No. This is due to the underlying configuration service and management that is needed, and is presently provided by Intel® SCS. This will be addressed more in the next section. If you happen to download and test the Early Access version of
OOB, RTSI, and RTCI
portals.altiris.com/eap, you will see the additional functionalities.
Does this mean that Santa Rosa systems will not work with the current production environment? In a wired mode, they will perform all of the functions of Averill systems. Some key questions and consideration - Notebooks are powered by AC (wall plug) or DC (battery). In addition, with the wireless network support management of profiles and configurations is needed.
Before continuing to the next sections on power policies and supported states for wired versus wireless environments, a quick review of what hardware asset data is collected might help. See this document for a refresher.
Adding Intel® AMT to notebooks presents some new possibilities and considerations. The tables below address some permutations of wired vs. wireless, running on AC or DC power, and whether the host system is healthy (e.g. system on and operating system running), sick (e.g. system on yet operating system failed or unavailable), or asleep (whether standby, hibernate, or off). The power states of Intel® are defined in a policy, with nomenclature that might confuse at first. (e.g. S0, S3, S5, and H0 power states). Review mention of power policies and states in .this article
In the case of Intel® Centrino® Pro systems, the power policy is even more extensive. Below is a screen shot of the MEBx menu for power policy. A similar list of options will appear in the Intel® AMT profile.
[this article|http://juice.altiris.com/files/u6338/power_state_policy.jpg]
Since Intel® AMT is on by default and consuming power, if powered by battery it may be better to turn the management engine off. This explains the "No" in the right column of the table below. What about the "No" for system isolation and agent presence is the system the host system is asleep and powered via AC? If the host system is off, what agent or virus outbreak is being prevented? That is why these states are not supported nor needed - they both require the host to be running (not necessarily the host operating system).
Wired mode also assumes the system is connected directly to the management network. If a remote site is connected to the main site via a VPN appliance, this is effectively a virtual extension of the managed network. However, if the target system requires a software agent running above the host operating system to support VPN, this is different and will be addressed in the next section.
Similar to the last table, the next view addresses Intel® AMT over wireless. The use cases are the same, as are AC or DC selections, and the state of the host system. The key difference is whether Intel® AMT has wireless access. The wired
NIC is on by default and built into the hardware. The wireless NIC actually requires the host system to be on.
Wireless allows mobility, including outside of the managed network. Does this remove the manageability and security of the Intel® AMT platform? If a VPN connection to the managed network requires a Layer 3 (L3) VPN (virtual private network) agent running on top of the host operating system, does out-of-band management still apply?
Technologically, the L3 VPN functionality could be embedded into the Intel® AMT management engine. However, do the variety or vendors and approaches, this presents a major validation and certificate challenge. Plus, the number of potential updates and patches would not be favorable. Therefore, if the system is connected via wireless (or wired) outside of the managed network, and using an L3 VPN agent to connect in - there are some consideration of supported functionality. This does not apply to situations where a VPN appliance is between the Intel® AMT system and the managed network - since that is effectively a virtual extension of the physical managed network.
Intel® AMT 2.5 supports wireless profiles. Thus if the Intel® AMT device is inside a managed environment, connecting via an 802.11 b/g/n network with defined SSID and configurations, the system can be managed out-of-band.
Note: 802.11i, 802.1x, and NAC are supported in the Intel® AMT profile for Centrino® Pro environments. More on this in a latter section
802.11n is draft version today. For best compatibility, use 802.11 b/g networks
With the perceived constraints of Intel® AMT over wireless, does out-of-band still apply? Yes.
If the device is within a managed network environment - whether wireless or wired - and has been configured (e.g. provisioned) correctly, the system is still manageable if the host is on. (e.g. healthy or sick). As mentioned in an earlier tech-tip, system data is still being collected at boot. Plus, if a network filter policy is pushed down to the Intel® AMT device - part of the System Isolation capability (formerly called Circuit Breaker), that policy remains in effect until removed.
If the system is on, yet the host operating system is not functional and the system is inside a managed network environment (whether wired or wireless) - the system is manageable.
The last item may raise some concern - if the system is wireless and host is asleep (S1 through S5 power state), why are all use cases not supported? Remember that the wireless network driver for Intel® AMT requires the host to be on (H0), whether or not the operating system is running. Only the wired NIC is powered in the asleep state - if a connection is available.
Within the Altiris OOB server install, a service labeled "AMTconfig" is running. The version number of this windows service refers to the Intel® SCS version number. The Altiris Out-of-Band management console (under Provisioning > Configuration Service Settings) will show additional options and capabilities with higher versions of Intel® SCS. Yet what is the relation and mapping of Intel® SCS to Intel® AMT?
The general concept is this: The major version number of Intel® SCS (again - check the AMTconfig service version number) indicates all versions of Intel® AMT supported at or below that number. Therefore, Intel® SCS 3.0 would support AMT 2.0 through 3.0 versions (i.e. Averill, Santa Rosa, and Weybridge). Of course, there are always expections to the rule. Intel® SCS version 1.x supports Intel® AMT 2.1 and below, and Remote Configuration will be supported with a version of Intel® SCS slightly above 3.0. (More on Remote Configuration in a near future article)
The opinions expressed on this site are mine alone and do not necessarily reflect the opinions or strategies of Intel Corporation or its worldwide subsidiaries.
I am sure you are all aware of the benefits of adopting the embedded manageability features in vPro. What has SCS got to do with that and why do we need SCS?
Can you buy a home theater, plug in the power and expect it to work with all your other media devices? Can you buy a wireless router, switch it on and expect a home network to work without configuring? No.
Similarly, in order to reap the benefits of the embedded manageability features in vPro, we need to set it up and configure it appropriately. Setup and Configuration services (SCS) provide the means to setup and configure vPro systems. Some of the abilities that SCS provides include
- Ability to integrate with identity management systems such as Active Directory
- Ability to request the CA for a certificate on behalf of the vPro system
- Ability to push wireless profiles on to the vPro system for wireless manageability
- Method to push configuration settings to a bulk of vPro systems
- Maintenance operations such as renewal of certificates, re-provisioning systems if hostname changes
Currently SCS is integrated as part of an ISV's management console. With vPro spanning across domains such as Asset management, Remote Support, Security, Patching and Compliance, are we looking at a single management console? If we have different management consoles for different domains, how do we ensure that the vPro systems are setup and configured once and all management consoles can operate with vPro? Who provisions, who maintains, who talks to who in order to make efficient use of vPro in a multi-management console eco system? In order to allow effective inter-operability between the management consoles, are we looking at a "unified provisioning application" for all the technologies that Intel supports on a vPro system?
Let me know your thoughts...