I am reading the TPM Design Principles v1.2 §17 and do not feel I fully understand the example they give on how the counters would work.
Apparently monotonic counters are used to prevent replay attacks. I wonder if there is content somewhere, which would explain how a counter like the internal base counter would work with more than one external counter. The example in the spec uses two external counters and seems to save the difference.
I read the section again, and it says "...IB drives all external counters on the machine." The example shows how IB is used to return the value of the external counter, while it leverages the difference value. Does this seem to suggest that IB is used to keep the external counters honest? To validate that external counters are not manipulated since the last save?
I have searched online for monotonic counters; perhaps I need to look for some other term? I do not see any content, which explains how the Internal Base counter would interact with more than one counter; I am looking for an example that shows the counters in action and justifies the Internal Base counter implementation vs. the external counters. I see the definition in the spec; I do not see how the different counter would be used to perhaps provide different functions or services?
I think the problem is that the example in the spec is written in pseudo-code format; I need a little more explanation about what is actually happening to the Internal Base Counter when there are two or more external counters, and how the "difference" value is saved and used later to return the value of an external counter.
For instance, is there a different value associated with each counter?