Slashdot Mirror


Does Your Company Use a PKI Solution?

punkrokk asks: "I am doing an Independent study of the feasibility of a Microsoft Certificate Services PKI in a distributed company. So far, it appears from my research that MS has the best supported implementation of a X.509 based PKI solution, for the Windows environment. While there are a few major weaknesses in a X.509 Public Key Infrastructure, one of which being Certificate Revocation Lists, using one is better than nothing. You do get a tangible security benefit, in addition to doing switch port authentication, and VPN quarantines. The problem is the cost of implementation is pretty steep, from the planning side. What do you guys do for dual factor authentication? Has anyone had Verisign sign their Certificate Authority? If you have implemented a MS Certificate Service infrastructure, I would appreciate your comments."

16 of 171 comments (clear)

  1. GeoTrust by daveschroeder · · Score: 4, Informative

    The University of Wisconsin - Madison has deployed a campuswide PKI solution based on GeoTrust.

    More information, with presentations and descriptions of our deployment:
    http://doit.wisc.edu/middleware/pki/

    UW/GeoTrust/EDUCAUSE joint press release:
    http://doit.wisc.edu/middleware/pki/geotrustuwpki. asp

    For more information about UW-Madison's PKI deployment, contact Nick Davis

  2. MS PKI by Anonymous Coward · · Score: 4, Informative

    We have been using MS' Certificate Services for a couple of years - primarily for WPA-RADIUS authentication. It has worked fine. You can set group policy to automatically request user and machine certificates so there isn't a lot of touches to the desktop. Only thing I haven't figured out is how to get our company's root CA to be a trusted root certificate within the WPA config.

  3. Security through obscurity by BadAnalogyGuy · · Score: 5, Funny

    If you're going to expose your encryption method using a public key, you're about as safe as a CTU agent travelling with Jack Bauer and Tony Almeida. In other words, just think of yourself as Ensign Johnson beaming down to the planet with Kirk and McCoy.

    Security is good, but only as good as the weakest link in the chain. If you have humans working for you, they are the weakest link. It's a lot like a car with a flat tire. You should change to the spare, but realistically, the spare is probably a small tire that isn't really designed to be run on for long distances and will cause you to lose control if you rely on it too much.

    1. Re:Security through obscurity by usafa87 · · Score: 5, Funny

      I was gonna argue with your analogies until I saw your userid. Turns out that's like lighting a fire under the bandwagon.

  4. I didn't notice that I there... by BeneathTheVeil · · Score: 4, Funny

    ...and misread it as "does your company use a PK solution?" ...yeah, I wish they would... some PKing around the office might not be a bad thing.

  5. other PKI options by Lord+Ender · · Score: 4, Informative

    Don't forget to look at OpenSSL (you'll have to write some scripts and use a RDBMS with this), Entrust, and RSA.

    Also, don't hardcode your CRL URL into your certificates. If that web server goes down, your entire PKI could break. It is better to leave revocation out of certificates and get all of your important PKI clients to use OSPF.

    For the root node of your PKI:
    Take a laptop, scratch off all networking-type thingks (modem jack, ethernet jack), generated your root CA key, use it to sign your intermediate CA certificates, then lock the laptop in a safe.

    --
    A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    1. Re:other PKI options by KagatoLNX · · Score: 4, Interesting
      Actually, I would recommend something obliquely related to the parent post. FWIW, I have implemented a few of these before, although our consulting firm is small enough that we individually manage GPG keys (and don't run Windows for our infrastructure...well, unless you could Halflife as infrastructure).

      Use the MS PKI software for the clients, but use OpenSSL to generate your certs. If you ever have to integrate with something old or ugly, MS generated certs can be a little weird (read, lots of things that only MS does). Note to bore you with the details, but see this document for the gory details of certificate interchange. It's really amazing it works at all.

      About MS, the document says:

      Microsoft Profile - This isn't a real profile, but the software is widespread enough and nonstandard enough that it constitutes a significant de facto profile.

      "No standard or clause in a standard has a divine right of existence." -- A Microsoft PKI architect explaining Microsoft's position on standards compliance.


      The document goes on to have an entire section on Microsoft bugs. Although, to be fair, I suspect a good many of them have been fixed and a good many still remain.

      So...save yourself the headache...when generating your certs, use OpenSSL with the scripts that come with it. It is quite possibly the least erratic implementation of a CA. Yes, this does make it much more complex to operate. However, so does the following very important recommendation.

      Like the parent post says, put it on a machine and lock it in a room (if you do a lot of business, a safe or vault would not be unwarranted). Make sure that any passwords (i.e. for encrypted root private keys) are written down in an envelope and stored in a different, highly secure location. The only thing more frustrating than bad PKI is good PKI when the person who knows the private key password was hit by a bus.
      --
      I think Mauve has the most RAM. --PHB (Dilbert Comic)
    2. Re:other PKI options by Zeinfeld · · Score: 4, Informative
      Also, don't hardcode your CRL URL into your certificates. If that web server goes down, your entire PKI could break. It is better to leave revocation out of certificates and get all of your important PKI clients to use OSPF.

      I suspect you mean OCSP here.

      OCSP is definitely the way to do revocation. The CRL concept comes from the days before there was a real Internet, Lauren Kohnfelder's Msc thesis in '79. In that context a CRL is the only way to make the scheme work.

      The problem with CRLs is that they are a bit like the old credit card blacklists that the cashiers used to have at department store checkouts. First there was a page of stolen card numbers, then a booklet, eventually it was going to be the size of a telephone book. Thats when the VeriPhone card verification machines appeared. An online check for every transaction.

      With OCSP there is a realtime certificate status check for each transaction. That means a certain commitment to infrastructure but there are providers who can outsource PKI infrastructure to five nines or better.

      Of course once you have a certificate status lookup per transaction you might as well move to a key centric PKI model similar to what Brian LaMachia did with PGP at MIT. Ultimately the PKI world is headed towards the XKMS style interaction which is simply a key centric PKI with a Web Service front end.

      There are ways to extend the CRL model, distribution points, delta CRLS, partitioned CRLs, Kocher style revocation trees. I have even suggested similar schemes myself in the past. Ultimately I don't find them very convincing.

      Whether you should go the homebrew route, implement an application or get an outsourced service really depends on what your resources are and what your needs are. The thing you have to be careful of is the fact that people cost money too.

      For the root node of your PKI: Take a laptop, scratch off all networking-type thingks (modem jack, ethernet jack), generated your root CA key, use it to sign your intermediate CA certificates, then lock the laptop in a safe.

      Just go buy a couple of decent FIPS certified hardware tokens from someone like n-cipher.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    3. Re:other PKI options by gregmac · · Score: 4, Informative

      I just implemented our company's PKI* with TinyCA. It's a handy little front-end to OpenSSL that generates certificates and signs requests, etc. We are a small business, and I have been looking for a program like this for a long time (I was actually about to write my own). My root is not signed, as the certificates are just installed on sites for internal use, but theres no reason it wouldn't work with signed roots.

      There is actually a knoppix-based live-cd distro called roCA that runs tinyCA that is designed to store the certificates on a USB thumb drive. The idea is that you lock up the CD and thumb drive. A bit easier than an entire laptop..

      * I'm not really sure this is an all-out "PKI" system in the "enterprise" sense of the word. As I'm not a security expert -- just an IT guy that needed an easy way to manage certificates -- I don't really understand the buzzword-laden PKI industry, that seems to have lots of companies that sell PKI management software without really explaining what exactly they do.

      --
      Speak before you think
  6. I am doing a 802.1x authication test lab now by notanic · · Score: 5, Interesting

    Hi, I am going through Microsoft's 'Step-by-Step Guide for Setting Up Secure Wireless Access in a Test Lab' now, and the solution does not seem very simple. To setup 802.1x you need: - Active Directory (usually, but you could use standalone IAS) - IAS service (MS's RADIUS server) - Access policy on IAS setup for 802.1x - Certificate server, with computer certificate issued to the IAS server - AP and wireless client that supports WPA Enterprise. - Patches on the client to give operating system support (e.g post sp2 patch to support WPA2). Then, when you configure the client, and connect it seems kind of clunky with popup's for entering credentials and others to verify certificates. Do third party solutions make it simpler, or just outsource the Certificate Services part?

  7. No by Threni · · Score: 4, Funny

    But I know if we were to implement some sort of security solution we'd go straight to Microsoft for a fairly priced product from a company with a proven track record of putting security first.

  8. CRLs and the future by Anonymous Coward · · Score: 5, Informative

    Dunno if this will get modded out of AC-land, but here goes:

    For the newbs, CRLs or Certificate Revocation Lists are nothing more than lists of which certs have been revoked. If you're going to deal in non-physical access tokens (as opposed to, say, metal keys and RFID badges) you're eventually going to want to deal with the eventuality that people's lifespans are generally longer than the amount of time that they have access to your stuff. PKI is excellent for mathematically proving that noone that can't factor huge primes can get your secrets just by looking at bits on the wire, but you can't really demand that your recently fired employees surrender their keys since they could very well have made copies in advance. Now that I think about it I suppose the same is true of keys, so consider CRLs the digital equivalent of changing locks.

    A CRL is a list of all they key IDs of keys that have been revoked. If you get terminated, you go on the list, and when you subsequently try to use your key, even though mathematically it works great, if you're on the CRL you get a 403 (or big guys with guns or whatever your model for Access Denied happens to be).

    CRLs are as dead end as it gets. Especially if you're working with a lot of end-devices or end-users, your CRL situation is going to get fantastically out of control very quickly. Picture, if you will, the DoD. How many people do you think had keys last year who aren't entitled to them now? Sure, the really old keys expire, but the new keys that were revoked all have to be downloaded *every time* a user makes a query, or else you risk race conditions of varying severity. (One could easily imagine the race to get home and log in over the VPN to copy the Secret Plans after being fired; the amount of time a user would need to do this is about the longest you'd want to go between CRL updates. If a CRL was many megabytes large and if the authenticating device got many hundreds of requests per second you might have a problem.

    OCSP , or Online Certificate Status Protocol, is a huge step in the right direction; instead of downloading the entire CRL to the authenticating device, the device instead makes a quick call to a OCSP responder, querying the status of the cert. The OCSP has a store of CRLs which it obtains from the CA/VA, and can create a signed response containing the status of the certificate: good or revoked (or, I suppose, unrecognized or otherwise munged). Now you only have to distribute CRLs to one/several devices, instead of every one in the infrastructure.

    Some groups (Corestreet, among others) have created distributed versions of OCSP which use precomputed proof lists in order to avoid the problem of distributing private keys to a network of distributed OCSP responders for use in signing OCSP responses. This D-OCSP is vastly more powerful and flexible than CRLs (and proportionally expensive).

    PKI is a pretty daunting challenge to implement correctly, and its even harder to make the other links in the chain nearly as strong as the crypto. Best of luck.

    vvj

  9. Red Hat Certificate System by steveparkinson · · Score: 5, Insightful

    Disclosure: I'm the Principal Engineer for Red Hat Certificate System. (Previously known as Netscape Certificate Management System).

    Our product is fairly widely deployed. For example, every single one of the 18+ million Certificates issued from the US Dept of Defense CAC (smartcard) deployment use our Certificate Authority. There are many other deployments within the Federal government also.

    In addition, someone mentioned Geotrust. Geotrust built their certificate issuance service on top our certificate authority, so of course I think very highly of them.

    Our product is an enterprise-class (meaning hugely scalable, and fault tolerant), full featured, mature product, written by engineers with many years experience in the PKI field.

    But, I would like to turn the question around - If you haven't deployed a PKI yet, what is stopping you?

    As an example, one of the deployment-blockers we found in the past few years was the poor integration PKI management systems (Certificate Authorities) had with Smartcard Management Systems. So, we engineered a smartcard management system, and bundled into the Certificate System at no extra cost.

    What applications would people like to see PKI-enabled that aren't already?

    And since I'm a Red Hat employee now, I am constantly thinking about integration with Red Hat Enterprise Linux and Fedora - so, what changes would you want to see happen?

  10. PKI? What PKI? by Anonymous Coward · · Score: 4, Interesting

    I do security work for a Fortune 100 company, and while we've got the usual SSL certs on some of our web servers, we haven't yet had a compelling business case that would justify the huge expense to do PKI right. Coupled with the belief that PKI done wrong is worse than not doing PKI at all, we've stuck with point solutions for our encryption needs thus far.

    I believe that we're moving forward with certs in the ActiveDirectory to facilitate EAP-TLS on our wireless, and that will probably go farther towards "universal" certificates for our end users, but since rolling out smart card readers to tens of thousands of users will be a significant investment, using certs for regular auth to the AD just isn't cost justified yet.

    In the mean time, we've got self-signed certs for signing internal applications, and use some commercial, GPG-like software for desktop/email encryption :-) SSH works quite well for shell access, although the onesie-twosie management of the RSA keys is a major bitch.

    In reality, I doubt that we'll ever go for a full-blown PKI done right. Every time we look at it, we figure out that the servers, admins, training, and physical security improvements will cost $6 million, and it won't really buy that much. For important authentication things, especially remote access, using those random-number tokens works really well, and doesn't have nearly the costs associated with them that PKI does.

  11. Taint anywhere NEAR that simple... by RedLeg · · Score: 4, Informative

    You seem to be asking several questions, or confusing several solutions, or both.

    If you're looking for port-level authentication on your networks, wired or wireless, then IEEE 802.1X is the answer.

    (dot)1X uses EAP (Extensible Authentication Protocol) Methods. MS gives you two big methods out of the box w/ the XP client: PEAP-MS-CHAPv2 (think: login/passwd) and EAP-TLS (think: digital certs), and provides the server level support in the form of certificate services, IAS (internet authentication server) and integration of both into the AD. Other methods are around, typically from other vendors (at additional cost). To impliment one not supported by MS out of the box, you need client-side and server side support.

    IF (BIG IF) you have an MS infrastructure, your client machine logins are probably hanging off the domain controller, and use one of the above methods, or, can easily (and transparently to your users) move to one.

    NOW, once either one is in place, implimenting port level auth is straightforward.... unless you do not have 100% XP clients. Nobody does in my experience (think: Printservers, other headless network clients). Then you get to get REALLY inventive with firewalls, vlans, switches, etc. and you can "get there". Taint gonna be easy....

    There are open solutions on the client side, even in an MS infrastructure. Google for "wpa_supplicant".

    NOW, back to your question: The MS PKI will prolly scale as well as AD itself. No better, worse.

    This answer is deceptively simple. You have to overlay it on YOUR network, YOUR security policy, YOUR needs, YOUR level of expertise, etc.

    MS does eat their own dawgf00d in this area, and I personally know some of the architects and implementors.

    I AM NOT A MS FAN. That being said, they have (mostly) gotten this right.

    There is a book from MS Press: Deploying Secure 802.11 Wireless Networks with Microsoft® Windows, ISBN: 0-7356-1939-5, which is obviously oriented on wireless nets, but which steps you through setting all of the .1X schtuff up.

    Recommended....

    I sincerely hope this helps..

    -RED

  12. Microsoft PKI by kafka47 · · Score: 5, Informative
    The Microsoft solution is particularly good if your environment is totally Windows-based. It comes bundled for free and is deeply integrated into the Windows platform. The amount of built-in applications that have the ability to leverage it is somewhat astounding, actually. From S/MIME (secure email), EFS (file encryption), Authenticode (code signing), Wireless 802.11x Authentication (using TKIP) and even authenticating to web applications (UPN mapping). The list goes on.

    Fashioning it in Windows is quite simple, as Windows domain participants will automatically enroll for the types of certificates that you want, for example, allowing the machines to authenticate into the domain silently. I've written several detailed implementation how-tos on these subjects (kafkaATtelusDOTnet, if you're interested).

    As soon as you leave the Windows world, then all these things become a bit trickier. No longer can you simply let the the Windows Certificate Services generate your certificates silently, since you'll need to intercede to generate the type of certificates that want. Controlling how these certificates are constructed becomes somewhat difficult (not impossible, just tricky). How and what you want will totally depend on the applications that you're using. You're probably far better off getting a PKI solution based on OpenSSL in that case, especially if you need to interoperate with non-Windows applications and devices (such as CISCO routers). If you don't have time to write any code, look into RSA Security. They're wayyyy cheaper than Verisign, and you don't have to deal with the hassle of outsourcing.

    Another poster recommended using OCSP - thats fine, but I don't believe there is a native OCSP client built in to Windows. You either have to roll your own, or obtain one (RSA, for example, has one. As well as Computer Associates OCSPro). In fact, there is no reason why you can't implement both redundantly. Use both the CRL distributionpoints (CRLdP) extension *and* the AIA extension to get this done.

    Another citation, I believe, referred to Peter Guttmans (very old) document on various PKI implementations, X.509 Style Guide. This document is horrendously outdated, as the tools and apps are far more widespread than they were wayyyy back in 2000.

    Anyways, for what its worth, if you know what you're doing PKI has distinct advantages to add to your electronic security (although a blind reliance on it won't help you at all).

    If you don't know what you're doing, then you'd better go with a vendor that will support you.

    /K