Author Archives: iang

About iang

Contrarianism rocks! Security for the members. Help yourselves, coz no-one else will. Must be time for a cup of tea.

AR.20080902.A1 CPS issues: 2 bugs

One side issue relating to the earlier post: in order to release funds for the critical systems work, we will need to sort out the CPS quickly.  There are two blocking questions that need to be fixed, so I’ll list them here for all to think about:

CPS Bug #1: Assurance is now on a good footing with the DRAFT Assurance Policy, and we can state with some confidence that CAcert does a good job at identifying people within the community.

But, there is a bug:  the certificates with names do not always use Assured Names.  Specifically, in the Organisations, there is no compelling reason to use Assurance information or anything else to name people.  So, Members are faced with a “name” that is either strongly Assured, or worthless, or somewhere arbitrarily in-between.

How are you to tell the difference?  Perhaps by further looking in the certificate, but forcing people to investigate every certificate to figure out detailed issues makes a mockery of the process, and of the Assurers.

Let’s put it to you:  Should the Name in the certificate (specifically, the CommonName or CN field as shown by software) be

  1. always Assured?
  2. always strong through some other mechanism, either Assurance or elsewise?
  3. sometimes be Assured, sometimes unknown, like now?
  4. be entirely variable at the discretion of the person?

All of these choices have merits.  For example, the last one looks odd, but is maybe OK, if we recall that all certificates will identify the Member through the serial number.

What do you think?  Over on the policy group, a choice will have to be made somehow, so dive on over there and help.

CPS Bug #2:  The domains and email addresses placed in certificates are only ping-tested once, when added.  Over time, various changes and problems can occur, such as transfer, expiry, loss, etc, so this is not good.  Something has to be improved.  The question is, what?  There are these possibilities that I have seen so far:

  • frequent or regular ping checks on email addresses,
  • automatic revocations on domain expiry or transfer,
  • a change made to a website through HTML text or headers, etc, to show control,
  • a change made to DNS records to show control,
  • a change made to Registry records to show ownership or delegation of control,
  • a statement of ownership or control made to CAcert in the online system,
  • or?

Probably, we need some combination of 2 or more of the above, because some of them will be hard for people to do.  As before, check in on the policy group to express your opinion.

Audit Report 20080802

The latest of the audit reports, for July-August, is now on the wiki. As this report and CAcert’s current situation are almost totally dominated by critical systems issues I shall only list those here. First, the big direct issues:

  1. The new plan for critical systems is now in place and approved by Board of CAcert.
  2. The Vienna systems will be shutdown on 30th September. This is a slightly variable date, it could change, but not substantially. The intention is that they will not be restated, see below.
  3. The data will be incorporated into the Netherlands machines over the days following that date.
  4. So, service to CAcert will be interrupted from 30th September.
  5. Until the job is done. There are estimates as to how many days this will take, but I won’t repeat them here. It will take as long as it takes.
  6. Which means, if the migration does not succeed, then CAcert may be left without an operating CA.
  7. I’ll be there. If you are in the Netherlands in the first week of October, and would like to help, let us know. We might need it!

The above plan is the Number One Thing on everyone’s desktop. Other issues that bear mentioning are these, because they effect the plan:

  1. The Vienna systems are Audit Fail. They were always a temporary arrangement, almost emergency status, and represent no base for the future nor a base for a responsible, professional CA. Somewhere, the line has to be drawn, and the board has agreed it is time to draw that line. 30th September. Hence, above, there is no intention to fall-back to the Vienna systems.
  2. The old Roots are Audit Fail. This is because there is no clear history, no documentation, and sanity checks don’t change that view. So, a task for the Dutch team is to create new roots, but only when they’ve got everything else sorted out, and only after the process is properly documented. (As an aside, the roots situation was reported and agreed with the board September 2007.)
  3. There was a security bug reported last month by a member. The handling of that bug was good, as it was more or less dealt with, within around 12 hours, and notified to the community. That’s the good news.
  4. The bad news is that the bug was rather bad, and likely indicative of others of the same class. (If you are into PHP, just think register_globals …) The software development team has a lot of work to do.
  5. Clearly, software development also suffers from the same lack of people as with the systems administration team. After the critical systems is put onto a sound footing, management will have to look at the development side as well. Meanwhile, you can help if you have PHP skills. Ask to get access to the test system, and ask for a small task to look at. There are many!
  6. Meanwhile, there is little benefit in shooting the messenger. It’s impolite and a waste of a good bullet. Security is a process: it is about fixing and improving. It decidedly isn’t about pretending there are no bugs, nor that our code is perfect or even high quality. Our thanks to Kriss for debunking that myth.

Some have said that this report looks overly dark. If anything, it is too polite, not dark enough: CAcert has had 2 years to prepare the critical systems, and has not. It has had over a year in the current situation, and not done the migration. The issues are very clear, and have been repeated maybe a hundred times, so I won’t list them again.

The time has come for CAcert to decide whether you want an audit or not.

That’s it from audit. Next report will be (not before) November. Either it will be lighter, or darker. Over to you!

Assurance Policy now in DRAFT

A week or so ago, the policy group pushed the Assurance Policy into DRAFT, which means according to PoP that it is now binding on the community.  To all the Assurers out there, this is your policy!

You should take a moment to have a look at it.  As it is in DRAFT, there is room for change, although each change will need to be voted through in the policy group.   You will see its evolution in the striking and bolding of parts.  Also be aware of the Assurance Handbook, which is where most of the daily practice will end up.  Now that there is a policy, the Handbook should also evolve more clearly and more rapidly.

The Assurance Policy establishes many things that in the past have been unclear or subject to variation.  Here’s a brief list of some changes:

  1. The general standard of a Name is that it is as written on a government-issued photo ID.  It should be recorded as fully as possible.
  2. However, because there are many variations in real life, multiple names will be possible.  That is, the online system will have a new feature added to it to add extra names, each requiring full Assurance independently.  When that is done, this will address the difficulties that people have with different documents, transliterations, married names, middle names and initials, etc.
  3. We’ve always encouraged Assurers to assure each other mutually, and this policy goes one step further:  it encourages non-Assurers to also assure you, under your supervision.  That is, when assuring a Member, you take the Member through the process of Assurance as if she were an Assurer.  You advise her on the steps, and encourage her to allocate 0,1,2 Assurance Points to you according to her judgement.  Be strict, it is better for her to allocate zero points to you to get used to the idea of assessing Name and other issues. You keep the forms, and when we get the system changed, you will enter in her points. Mutual Assurance will help us in the future:  It has the benefit of equalising the relationship, explaining the whole process, preparing the junior Member for the role and responsibilities of Assurer, and also identifying who you are to her.  As you the Assurer will be responsible for the entire result, and it takes extra time, you can choose to do it or not.
  4. As we now live in a world of Identity Theft, it is important for you the Assurer to protect the Members from harm.  In particular; false Assurances do happen, and could be used to acquire valuable information.  To this end, the Assurance Policy states:

    “A Member may check the status of another Member, especially for an assurance process…”

    In the future, we will need some way for you the Assurer to show you really are an Assurer.  How that is done is left up to the systems and management people; a future thought puzzle.

  5. The final big change is that Experience is no longer to be reflected in the Assurance Points.  In the future, there will be a separate set of points, called Experience Points.  Each Assurance you conduct will earn you 2 Experience Points, as before.  Separating out the points to match their meanings gets rid of a lot of mental gymnastics.  Again, we have to wait until the software is done.

As you can see, there is more work to do!  The policy needs to be reviewed, improved and taken the final step to POLICY.  Until it goes to POLICY, you still have a chance of fixing or improving it, even though it is already binding on you, the Assurer.  And, the Handbook needs updating with the new Policy work.
Also, the account system needs to be updated to add these features:  multiple names, a new set of points for Experience, mutual Assurance, and perhaps some support for showing your status as Assurer.  This will take time, but help will make it go faster:  are there any PHP programmers who can help make those coding changes?

Audit Report 20080602

The June Audit report to the Community, the latest in a series of two-monthly reports, is now on the wiki.  Here are some highlights.

The biggest issue facing CAcert is the state of the systems and the systems administration team. The Audit requirement is for the systems to be under a secure regime that is suitable for a certificate authority:  dual control, extra eyes over the critical systems, and reasonable physical security.  These things have not been done for the critical systems, and only partly done for the non-critical systems such as email, wiki.

The recent plan to have Evaldo lead the process has been dropped (not in my opinion due to any failing on his part).  Now the board of CAcert has to work up a new plan to make this happen somehow.

The move of the critical systems and the rebuilding of systems administration into a team has taken on the aspect of a never-ending Nordic saga, which is no good sign.  I will give it until the end of the year to see if CAcert can build the team, and put the systems into shape.  If not, we as a Community will have to re-examine how we are going to move forward without systems that are adequate to the certificate authority mission.

Other highlights:

  • The CAcert Community Agreement is in place as policy, now, but the roll-out of other important issues such as CAP form (here), agreement on the website, and emailed notifications of change are all lacking.  Lack of developers is an issue, and is probably the same story as with the systems administrators team.
  • Arbitration is working out well, and we are now in the “teething stage” of working through the little and unexpected problems.
  • The Assurance Policy work-in-progress is now in a call to go to DRAFT, which will make it binding on the community.  This important document lays the framework for Assurance, leaving most of the details for the Handbook.  There are a couple of fairly minor changes that Assurers will need to be aware of:
    • Assurance points now only cover Assurance on your details, and there is now (to be) a new count for Experience Points.  Assurance Points will therefore always indicate only of how others have assured you, and Experience points will indicate how many Assurances you have done.
    • Mutual Assurance is now a standard option, and the CAP form will be upgraded to show that.  In effect, a non-Assurer can now assure an Assurer, but, this assurance happens under the supervision and responsibility of the Assurer.  For this, a non-Assurer can allocate 0,1,2 points according to her judgement, and you should teach her to be skeptical!
  • As soon as we can make it, the older Assurers who have not done the Assurer Challenge will be blocked from more Assurances.

The Audit is a long way behind schedule.  As above, the systems are completely stalled.  The policy work is also slow, and although not a blocking action, it should be stressed:  we need these policies in place, not perfect, but usable.  Seek for consensus, and be prepared to lose some battles.  By the end of the year, we should have the Assurance process on a good strong basis.

Audit Report 20080321

As promised, there is now a current report posted on the wiki from Audit. Highlights:

  • CAcert is in the process of rolling out its new CAcert Community Agreement. The website now refers to it.
  • Soon, expect to see checkboxes to tick with statements like “I agree to the CAcert Community Agreement”.
  • The Assurance Policy is the next policy that the Audit needs tied down. Currently, it is at an advanced stage. Debate is going on as to whether to drop the requirement for Dates of Birth, as these are considered useful for fraud in some places. Unfortunately, the system does use this as an internal discriminator, so there are pros and cons.
  • Pat Wilson is now working on the Security Manual. Thanks, and welcome Pat!
  • The critical systems are the critical path for audit! Evaldo has been tasked to build the sysadm team, move the systems and implement dual control. See other blog entries!
  • Have you met the Assurer Challenge yet? CATS is in place, and some time soon, assurances will be blocked for those who have not as yet met the challenge.
  • If you are interested in the Audit work, there is a ToDo list on the wiki, and I have put the audit criteria online with the working commentary and (wip) conformance. See the main report for that location and the secret password!

That’s it from the Audit side. Now over to you!

Audit Report 20080111

One of the things that happened last year was to negotiate an audit funding deal with NLnet. (This has now agreed and first tranche of funds has been delivered to CAcert.) One of the requirements imposed on CAcert was to deliver reports to the Community and to NLnet at each event like milestones, and at approximately 2 month intervals.

With that in mind, I wrote a 2008 New Year’s report as a sort of checkpoint. For some reason it wasn’t published then, but is now on the wiki. Highlights are these:

  1. Many policies are now in POLICY or DRAFT. Some important work-in-progress projects are started, especially the Assurance Policy. This project needs help!
  2. The work on Risks/Liabilities/Obligations finally settled on a CAcert Community Agreement.
  3. NLnet funds CAcert for audit, described here.
  4. Non-critical systems were moved last year to Netherlands BIT center, but critical systems are still in their halfway house. CAcert needs more sysadms.
  5. Audit Criteria are going on-line.
  6. Best is last: CATS went on line: Have you done the Assurer Challenge yet?

The full report is found on the wiki area. Bear in mind that this report is late, and another is already due. I’ll start on that now!