IE Pinning, or Internet Explorer Pinning, refers to the now-obsolete technique of configuring Internet Explorer (IE) to exclusively use a specific, pre-approved certificate for authentication within a given context. This involved “pinning” the expected certificate’s public key to the application. Subsequent connections would only be accepted if the presented certificate matched the pinned key. This provided an extra layer of security against man-in-the-middle (MITM) attacks where a malicious actor intercepts communication and presents a forged certificate. Note that this refers to the application level pinning, not the browser’s built-in certificate pinning features.
IE Pinning was primarily employed to enhance the security of applications relying on HTTPS connections, especially those handling sensitive data. By limiting the accepted certificates to a single, trusted key, the risk of accepting fraudulent certificates during a MITM attack was significantly reduced. This was particularly crucial in environments with high security requirements or where the risk of such attacks was deemed elevated.
Benefits:
Drawbacks:
Given the deprecation of IE and its pinning mechanism, modern alternatives should be used. These include:
Note: IE and its associated pinning mechanisms are deprecated and no longer supported. The information below is provided for archival purposes only and should not be used for new development. Modern security practices should be employed instead.
ms-enable-pinned-sites
meta tagThe <meta name="ms-enable-pinned-sites" content="true">
tag within the <head>
section of an HTML page informed Internet Explorer that the site supported pinning. It was a prerequisite for using the pinning mechanism. However, this alone didn’t implement the pinning; it only signaled that the site was capable of being pinned. The actual pinning logic relied on other methods, typically involving the msApplication-config
XML file and potentially some Javascript.
msApplication-config
XML fileThe msApplication-config
XML file provided a configuration for Internet Explorer’s interaction with the website. This file, ideally located at the root of the website, could specify which certificates should be pinned to the site. However, the exact method of specifying the certificates within the XML file was not standardized, and relied on proprietary extensions. Implementation details varied based on the specific application and its deployment method. This method primarily targeted the application itself, not the browser’s settings.
Javascript’s role in IE Pinning was minimal for pinning itself. It wouldn’t directly pin certificates. Instead, Javascript might have been used for:
msApplication-config
file or a similar source).Illustrative (and outdated) Javascript snippet (This code is not functional in modern browsers):
// This is a highly simplified and illustrative example only. Actual implementation varied greatly.
function checkPinnedCertificate(certificateData) {
// In a real implementation, this would fetch and compare against the pinned certificate data.
const pinnedCertificate = { subject: "example.com", ... }; // Placeholder
if (certificateData.subject === pinnedCertificate.subject) {
// Certificate matches, proceed.
return true;
else {
} // Certificate mismatch, handle the error.
alert("Certificate mismatch!");
return false;
} }
Pinning events themselves weren’t directly exposed through a standardized Javascript API. Instead, the developer would have had to handle potential errors, such as certificate mismatches, using Javascript error handling techniques, often in conjunction with HTTP status codes returned by the server.
Common problems with IE Pinning (now largely irrelevant due to IE’s obsolescence):
msApplication-config
file or improper implementation of the pinning logic would render pinning ineffective.Again, it’s crucial to reiterate that IE and its pinning mechanism are deprecated. Modern security practices and standards should be employed instead for secure web application development. The above information serves only as historical context.
Note: IE and its pinning functionality are deprecated and no longer supported. The information below is for archival purposes only and should not be used for new development. Modern security and development practices should be followed.
When a site was pinned to the IE taskbar, it displayed a tile representing the site. Customizing this tile involved using specific metadata within the website’s code, typically within the HTML <head>
section or a related configuration file. While the exact methods were not standardized across all versions of IE, it often involved manipulating meta tags or using specialized XML files (similar to the msApplication-config
file discussed previously) to specify the tile’s icon and name. The specific tags and attributes used were not consistently documented and varied based on IE version.
Pinning itself didn’t directly address screen sizes. The appearance of the pinned tile would adapt to the available space on the taskbar, similar to other pinned applications. However, the website content displayed after the user clicked the tile would need to be responsive to handle different screen sizes and resolutions, a common practice for web development using CSS media queries and flexible layouts. This aspect is unrelated to the pinning mechanism itself.
IE Pinning, as a browser-centric security feature, had minimal interaction with Javascript frameworks. The core pinning logic was not framework-dependent. However, Javascript frameworks could have been used to perform tasks related to:
Note that these were ancillary uses; the actual pinning process didn’t integrate directly with the framework.
Testing and debugging IE Pinning involved a combination of:
msApplication-config
File: Verifying the correctness of the XML file, including the certificates specified and other configuration parameters.Again, it must be emphasized that these techniques are relevant only for the now-obsolete IE pinning and should not be used for current web development. Modern security and development approaches provide superior alternatives and should be adopted.
Note: IE and its pinning mechanism are deprecated and no longer supported. The information below is for archival purposes only and should not be used for new development. Modern security practices should be employed.
Malicious actors could potentially attempt to exploit IE Pinning in several ways:
msApplication-config
File: If a malicious actor gains access to a website’s server and modifies the msApplication-config
file to include a fraudulent certificate, they could perform a MITM attack, even with pinning enabled.Strong server-side security measures and secure coding practices were essential to mitigate these risks. Regular security audits were crucial to identify and patch vulnerabilities.
While IE Pinning enhanced security, it could indirectly impact user privacy if not implemented carefully. The pinning process itself didn’t directly collect user data. However, the application using pinning might collect user data during its operation. Any data collection must comply with relevant privacy regulations and user consent should be obtained whenever appropriate. The security mechanisms employed should not be used to compromise user privacy.
Given that IE Pinning is obsolete, these best practices are largely historical. However, the underlying principles remain relevant in the context of modern security practices:
Because IE Pinning is deprecated, these practices should be considered in the context of modern security mechanisms like HSTS, certificate transparency, and robust application-level certificate validation with current cryptographic libraries. These provide more robust and supported methods for securing web applications.
Note: IE and its pinning mechanism are deprecated and no longer supported. The information below is for archival purposes only and should not be used for new development. Modern deployment and maintenance practices should be used.
Deploying a site that utilized IE Pinning involved several steps:
msApplication-config
Deployment: Deploying the msApplication-config
XML file to the root of the website, containing the necessary pinning information.The deployment process needed to be carefully managed to avoid errors and ensure the correct certificates were used. Any mistakes could render the site inaccessible to users.
Updating a pinned site presented significant challenges. Changes to the pinned certificate required careful planning and coordination to avoid disruption. The process typically involved:
msApplication-config
: Modifying the msApplication-config
file to reflect the new certificate’s public key.msApplication-config
file and other website files.The update process required meticulous attention to detail. A failure to properly update the pinned certificate could render the site inaccessible to users.
Monitoring the performance of a pinned site involved standard web performance monitoring tools, but with a particular focus on the security aspects related to pinning:
Continuous monitoring was crucial to identify and resolve problems before they impacted a significant number of users.
User feedback was particularly important when dealing with a pinned site. Problems with pinning could lead to users being unable to access the site, resulting in frustrated users. A system for collecting and responding to user feedback was essential:
Effective communication and timely responses to user feedback were crucial for maintaining user satisfaction and the reputation of the site.
Again, it is crucial to remember that IE and its pinning mechanisms are obsolete. Modern security and web development best practices must be implemented for any new projects. The information above is solely for historical reference.
Note: IE and its pinning mechanism are deprecated and no longer supported. The information below is for archival purposes only and should not be used for new development. Modern security and development practices should be employed.
msApplication-config
: An XML file (now obsolete) used in Internet Explorer to configure various aspects of a website, including potentially pinning information.ms-enable-pinned-sites
: A meta tag (now obsolete) that indicated to Internet Explorer that a site supported pinning.(Note: Many resources related to IE Pinning are outdated and may not be reliable. Refer to modern security documentation instead.) There were no widely available standardized resources for IE Pinning. Information was often scattered across various blog posts, forums, and less formal documentation.
(Note: The following examples are highly simplified and illustrative only and will not function in modern browsers. They are for historical context only.)
Illustrative (and non-functional) Javascript snippet (for checking a certificate, not for actual pinning):
// This is a highly simplified and illustrative example only. Actual implementation varied greatly.
function checkPinnedCertificate(certificateData) {
// In a real implementation, this would fetch and compare against the pinned certificate data.
const pinnedCertificate = { subject: "example.com", ... }; // Placeholder
if (certificateData.subject === pinnedCertificate.subject) {
// Certificate matches, proceed.
return true;
else {
} // Certificate mismatch, handle the error.
alert("Certificate mismatch!");
return false;
} }
Illustrative (and non-functional) msApplication-config
snippet:
<!-- This is a highly simplified and illustrative example only. Actual implementation varied greatly. -->
<?xml version="1.0" encoding="UTF-8"?>
Application xmlns="http://schemas.microsoft.com/SMI/2005/Devices">
<Certificates>
<<!-- In a real implementation, certificate details would be specified here. The format was not standardized.-->
Certificates>
</Application> </
(Note: Many FAQs related to IE Pinning are now irrelevant due to IE’s obsolescence.)
Q: How do I pin a certificate to my website using IE Pinning? A: (Obsolete) This involved using the msApplication-config
XML file and potentially custom Javascript, but the exact implementation details varied greatly and depended on the specific application and context. This method is no longer supported. Use modern, supported security techniques instead.
Q: What happens if the pinned certificate expires? A: (Obsolete) The website would likely become inaccessible to users unless the pinned certificate was updated in a timely fashion. Modern solutions use more robust mechanisms for certificate renewal.
Q: What are the alternatives to IE Pinning? A: Modern alternatives include HPKP (although deprecated), HSTS, certificate transparency logs, and robust application-level certificate verification using current cryptographic libraries.
It is highly recommended to use modern security practices and avoid relying on the obsolete IE Pinning mechanism.