ignore CRL during smart card logon (3rd party CA)

Posted on 2008-10-01
Last Modified: 2013-12-04

we're using smart cards (required) provided by a third party to logon to windows. Every now and then the CRL-retrieval fails which obviously is not good. Usually a new CRL is successfully retrieved prior to the old CRL expires but on two occasions it did not.
This meant that all users was locked out and only got a error message when they tried to logon to windows.

So, to minimize the impact if this should happen again I'd like to be able to ignore the expiration-date of a CRL.
if a CRL exists, check it
if it's old, ignore it and let the users in
Yes, I am aware that this is a security issue, but it is only during a very limited time that a potential hacker/disgruntled employee can use it.

Is it at all possible to ignore CRL-checking during windows logon?
Is it possible to have the granularity I want?

Question by:M031097
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
LVL 31

Expert Comment

ID: 22721774
Personally, I think a better solution would be to contact the CA provider, which I am assuming is a business partner's internal CA, and ask them to publish their CRL more often than what is set for the expiration period.
Normally the CRL will automatically publish itself at 90% of the lifespan, if memory serves.  What is normally done is to publish it at least at the halfway point.  By this I mean that if it publishes once per week, have it scripted to do so every 3 days, if once per day then script every 12 hours, etc.  This way there is plenty of overlap.
Sometimes they don't think of scripting copying the CRL from the windows\system32\certsrv\certenroll directory to the CRL distribution points automatically - this could easily be done in the same script.
If you want to be extra helpful to them, I have a generic script for doing so in this article you could send them:

This way you do not compromise your security for their shortcomings.  Bypassing this type of setting is really not a good idea if cert logon is required.
Note: if it is just a connection issue to  the CRL, the first time the client connects it will cache the CRL and a method to validate the cert offline.  This is done mainly for laptops.  The previous 10 user accounts that log in (using or not using certs) will be cached by default.

Author Comment

ID: 22722895
Thanks for your input.

Unfortunately it's not really what I'm after.
The CRLs are created as soon as a certificate is revoked.

So it's not really the CRL-generation that causes problem, it's during the times where
the retrieval from the third-party CA fails, regardless of reason.
And fails for the entire validity of course.

LVL 31

Expert Comment

ID: 22770773
I still hold true to my previous answer, but with this change put into it to make it real.

It sounds to me like there is an issue with how and/or how often they publish their CRLs.  Maybe not enough bandwidth, but probably more likely either issuing Base CRLs every revocation instead of Delta CRLs, or having a Base CRL that is just getting out of hand.

1) When certs are revoked either wait until the next CRL publication period, or create a Delta CRL as needed.
2) Adjust certificate lifetimes so that the CRL does not become overly populated (512 key - do not use, 1024 = 1 year, 2048 = 3 year max).
3) Base CRLs are only issued on predetermined schedule.  This should be every 1/2 CRL Publication Interval - e.g. weekly CRL should be pushed by automated batch script every 3 or 4 days.  This allows for clients to download the new CRL prior to need.
4) Consider extending the CRL publication Interval to reduce the need to check it, if it is being issued to oftten already.
5) Conider issuing the Base CRL more frequently if the Delta CRLs are getting unruly.
6) When issuing certs, consider adding more procedures to the vetting process to reduce revocations during the issuance stage.  If not already using certutil -dump to verify (or some other similar process) then that would be a good place to start to cut down on a number of issuance related issues.
7) Implement OCSP.  This is automatic with Vista/2008 and most current Linux distros.  WinXP/03 and earlier you can shop for 3rd party OCSP client software.  This would also require an OCSP server to be set up on the CA end - if this is a big enough place like DoD where htey are revoking certs frequently under legitimate pretenses, then they would likely already have this in place on their end.  Otherwise they might want to do this.  In a nutshell, OCSP sends info about the cert (about the cert - not you) to the OCSP responder which checks its database and send you back its reply saying if that single cert is good or not.  No more big giant CRL downloads, only tiny 16k OCSP responses.  The OCSP responder gets updated by CRL and is authorized by the CA.  In MS CAs this is best done when upgrading from 2003 to 2008 CA (and is one of many major reasons to do so).  Plus it cuts down on their bandwidth costs.  It technically can be done under 2003, but its a mess - do it when upgarding to 08, trust me.
8) Here is the big one - time to close out this CRL and start a new one - this is assuming that the CA isn't coming from a major non-commercial CA like DoD.  In other words, the CRL is too big, time to make it so that the old one can just be downloaded and left alone, and all new certs are issued so that they are checked against a new CRL.  This can be done a number of different ways:
7a) Issue a new CA cert for the issuing CA (can still keep the same CA keyset).  This is actually the suggested option in most cases.  The root CA should hopefully be a different server, so impact should be nominal.
7b) CRL partitioning or other alternate method of splitting up the CRL into chunks.
Put Machine Learning to Work--Protect Your Clients

Machine learning means Smarter Cybersecurity™ Solutions.
As technology continues to advance, managing and analyzing massive data sets just can’t be accomplished by humans alone. It requires huge amounts of memory and storage, as well as the high-speed power of the cloud.


Author Comment

ID: 22781474
Hi again,

I am sorry, I might have been unclear but you're missing the point.

In 99% of the time everything works fine.
It is not the CRL in itself that is the problem it is how Windows uses the CRL.
When you use a third-party CA you trust that CA... in every way... BUT, if
you cannot download the new CRL during the old CRLs validity (again, for
whatever reason), what will you do?

You do have many valid points, but the main problem is, that if you fail the 3rd
party CRL download....well what then?
LVL 31

Accepted Solution

Paranormastic earned 500 total points
ID: 22876082
Normally the answer would be to log in using username and password.  If it is set to force SC logon, then you wouldn't have much for options.

I'm not sure if this is supported pre-Vista, but you can try it out... backup your registry and system state first...  Again, I really don't think this is a good idea for a production environment, but...
LVL 31

Expert Comment

ID: 22876110
The main idea of getting them to publish the CRL by script instead of automatically is so that the clients do have the ability to download it early.  The CRL should not expire in less than a full day, even in secure environments.  Usually in normal environments once a week or month is plenty.  Then you push a script to cut a new CRL well before the old one expires, cutting down on latency issues (not to mention giving the CA admin time to recover in case of failure right before the CRL expires).

Author Comment

ID: 22876559

It seems that what I want to do is not possible.
A sort-of dynamic disabling of CRL-checking.

Any way, thanks for your input


Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is a guide to the following problem (not exclusive but here) on Windows: Users need our support and we supporters often use global administrative accounts to do this. Using these accounts safely is a real challenge. Any admin who takes se…
No security measures warrant 100% as a "silver bullet". The truth is we also cannot assume anything but a defensive and vigilance posture. Adopt no trust by default and reveal in assumption. Only assume anonymity or invisibility in the reverse. Safe…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
Suggested Courses

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question