?
Solved

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

Posted on 2008-10-01
7
Medium Priority
?
2,342 Views
Last Modified: 2013-12-04
Hello,

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.
Basically:
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?

regards,
M
0
Comment
Question by:M031097
[X]
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
7 Comments
 
LVL 31

Expert Comment

by:Paranormastic
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:
http://www.experts-exchange.com/Microsoft/Windows_Security/Q_23813051.html

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.
0
 

Author Comment

by:M031097
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.

/M
0
 
LVL 31

Expert Comment

by:Paranormastic
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.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 

Author Comment

by:M031097
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?
0
 
LVL 31

Accepted Solution

by:
Paranormastic earned 1500 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...
http://technet.microsoft.com/en-us/library/cc721959.aspx
0
 
LVL 31

Expert Comment

by:Paranormastic
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).
0
 

Author Comment

by:M031097
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

Regards,
M
0

Featured Post

Enroll in September's Course of the Month

This month’s featured course covers 16 hours of training in installation, management, and deployment of VMware vSphere virtualization environments. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

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

In a recent article here at Experts Exchange (http://www.experts-exchange.com/articles/18880/PaperPort-14-in-Windows-10-A-First-Look.html), I discussed my nine-month sandbox testing of the Windows 10 Technical Preview, specifically with respect to r…
Our Group Policy work started with Small Business Server in 2000. Microsoft gave us an excellent OU and GPO model in subsequent SBS editions that utilized WMI filters, OU linking, and VBS scripts. These are some of experiences plus our spending a lo…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Suggested Courses

719 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