Not an other category but I think there are (at least) four subcategories of opaque tokens that you might possibly want to distinguish between.
* Hierarchical (Derivable) Opaque Tokens
* Non hierarchical cryptographically relevant opaque tokens.
* Content-Addressable (Integrity-Bound) Opaque Tokens
* Random Opaque Tokens


--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z1s9-D_XnF7wr1toLBPqCDWuQfPDqx2OA-ZkCrYRbOzAA%40mail.gmail.com.


--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z0E1PY0XsbhR0PsHo_%3DPRUpYLm4VgxjOpy_iNhZwJvRvg%40mail.gmail.com.
I listed E as in the language category. You likewise listed Endo as in the language category. In fact, both are a combo of a local dynamic ocap language (local-E, HardenedJS) and a live crypto-cap protocol (E's CapTP, ocapn)I am also inclined to include ocap-oriented UIs, first, as another implementation substrate. Due to human limitations, these usually have a different abstract access control model (petnames, transitive selective revocability as the default form of delegation). These include CapDesk, SCoopFS, The Familar (Endo's in progress UI).Above, I also failed to give enough credit to Waterken and Spritely.Waterken used Joe-E as the local language and introduced its own live crypto-cap protocol, which I would still classify as being in the CapTP family. YMMV.Spritely started with W7 and therefore Scheme as its local language, but then added builtin time travel. Spritely and Endo jointly use ocapn as the live crypto-cap protocol.A third orthogonal axis is the persistence and upgrade model.Agoric's use of Endo starts with orthogonal persistence just to ensure that all honest validators produce the same deterministic computation, independent of whether they crashed and started or they just continued. This leaves upgrade as a separate problem. Agoric does both state-based upgrade (via Exos) and relay based "Manchurian" upgrade (via async-flow). We
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAK5yZYgR%2BGkidv8v6jMSi5%2Bk80DiOEFEGkDhzoL7SiBeEXt%2BDw%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAK-_AD57_zwLRTfQ1fa%3DtaPZJTr04ycShGMtZObNOXJJm9pRpA%40mail.gmail.com.
From Robust Composition:> Object-capability systems differ regarding concurrency control, storage management, equality, typing, and the primitiveness of messages, so we avoid these issues in our model.Thus, each of these are further dimensions of classification.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAK5yZYj0NvHkoe-zc5SjxZQKEyd_9JphAsmeOci9q5PHRQFbig%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "friam" group.
To unsubscribe from this group and stop receiving emails from it, send an email to friam+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/friam/CACTLOFqf0wMY%3D_LNgDyDPGuVPYWOHPAzQfHJpZcD9aXF_VCYsg%40mail.gmail.com.
* Content addressable or integrity bound opaque tokens can be something like a secure hash over the logically immutable (integrity bound) part of what is addressed. The simplest example is using the sha256 hash of a read only file as capabity for reading the file.
* The best example of a non hierarchical cryptographically relevant opaque tokens are I think YURLs.
* An example of hierarchical opaque tokens is my old pyrumpeltree project. There is a detetministic cryptographic link between a capability token for some composite or more powerful authority and a capability for a decomposition or attenuation of that authority.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z1s9-D_XnF7wr1toLBPqCDWuQfPDqx2OA-ZkCrYRbOzAA%40mail.gmail.com.
What is the purpose of this exercise?
There are (at least) two orthogonal dimensions. The abstract access control model and the implementation substrate.
Alan, there were two generations of Client Utility. The first was split capabilities are the second started with SPKI/SDSI. I'll leave it to you to expand on how it fits.
I listed E as in the language category. You likewise listed Endo as in the language category. In fact, both are a combo of a local dynamic ocap language (local-E, HardenedJS) and a live crypto-cap protocol (E's CapTP, ocapn)
I am also inclined to include ocap-oriented UIs, first, as another implementation substrate. Due to human limitations, these usually have a different abstract access control model (petnames, transitive selective revocability as the default form of delegation). These include CapDesk, SCoopFS, The Familar (Endo's in progress UI).
Above, I also failed to give enough credit to Waterken and Spritely.Waterken used Joe-E as the local language and introduced its own live crypto-cap protocol, which I would still classify as being in the CapTP family. YMMV.
Spritely started with W7 and therefore Scheme as its local language, but then added builtin time travel. Spritely and Endo jointly use ocapn as the live crypto-cap protocol.
A third orthogonal axis is the persistence and upgrade model.
Agoric's use of Endo starts with orthogonal persistence just to ensure that all honest validators produce the same deterministic computation, independent of whether they crashed and started or they just continued. This leaves upgrade as a separate problem. Agoric does both state-based upgrade (via Exos) and relay based "Manchurian" upgrade (via async-flow). We expect that both forms of upgrade will migrate to Endo, but we do not expect non-consensus use of Endo to support orthogonal persistence. Rather, the durable state of state-based upgrade will also provide persistence.Mostly separately, Endo supports formula-based persistence and upgrade, already reflected in the Endo cap-oriented UI, the Familiar.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z1y51Cv6AH%3DTCs%2BgR_TdLcrMZwLQUMdvH6AK0jW8%3DJYHw%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAGC3UE%3D1yRJMz2%2BzjALBKOFKe9zrYPnDQ9SFHhabbur%3Dq8zRSA%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z35TiX0X%3DC%3D2Y2j6%2BEcLLCKLA7k2QxBkQ7ZOuz%2Bfs3Bng%40mail.gmail.com.
On Thu, Mar 5, 2026 at 12:34 PM Rob Meijer <pib...@gmail.com> wrote:* Content addressable or integrity bound opaque tokens can be something like a secure hash over the logically immutable (integrity bound) part of what is addressed. The simplest example is using the sha256 hash of a read only file as capabity for reading the file.Content addressable is fine for static resources, such as files. They don't seem to be useful for dynamic resources, such as services like MCP servers.
* The best example of a non hierarchical cryptographically relevant opaque tokens are I think YURLs.That's an example of what I've been calling an opaque token. Other than pointing to the resource, the bits have no structure.
* An example of hierarchical opaque tokens is my old pyrumpeltree project. There is a detetministic cryptographic link between a capability token for some composite or more powerful authority and a capability for a decomposition or attenuation of that authority.Like the relationship between read and write capabilities in Tahoe LAFS?
----------------
Alan Karp
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z3btia2en5ai0wYzbH2MN4y%2Bn81MWvT8uh9gRu9dX6Skw%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z35TiX0X%3DC%3D2Y2j6%2BEcLLCKLA7k2QxBkQ7ZOuz%2Bfs3Bng%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAK5yZYjD%3D77k9DFgAx1wNWgjaof8099__8x3754jDh_7b_WJfA%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAGC3UE%3D2cUZ2jH_Ros5Er6WaRFgz3ejLbOuA5vs95WGgC6GHHA%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAK5yZYjD%3D77k9DFgAx1wNWgjaof8099__8x3754jDh_7b_WJfA%40mail.gmail.com.
Content addressable is fine for static resources, such as files. They don't seem to be useful for dynamic resources, such as services like MCP servers.Almost. Resources with a logically static/frozen set of integrity relevant parts. It can be useful for a sparse cap to become invalid if invariants are compromised.
There is a lack of structure in the token itself, but when the token is cryptographicly linked to for example a public key or doubles as a symetric key, it's still different from just random bits.
* An example of hierarchical opaque tokens is my old pyrumpeltree project. There is a detetministic cryptographic link between a capability token for some composite or more powerful authority and a capability for a decomposition or attenuation of that authority.Like the relationship between read and write capabilities in Tahoe LAFS?In pyrumpeltree a read-only sparse cap is a secure hash of the read-write sparse cap, and that read-only sparse-cap doubles as AES key+iv for encryption of a node. Then another secure hash operation creates a storage location handle for the encrypted node data. So that part is attenuation.The combination of a child node name, a server side secret salt and the patent read only sparse cap is then hashed together to get the read write sparse cap of the child node.That means you can do client side attenuation and server side decomposition, and both attenuation and decomposition work without a collection of unrelated random numbers.
My thought is to have insert (append, for folders, create tables, grant/delegate, put), read (select, query, get), update (edit, set, post), delete (remove, revoke), so not only a GUI for sharing, but also a GUI or actions for stopping sharing.Aka CRUD. Attentuate is just meta-CRUD, or CRUD about CRUD.
Personally, I would not do tabs, but checkboxes, probably following after Product Lifecycle Management and MatrixOne, which had many more options I forget. Maybe that’s the same as a mini-menu. Each type of object would have their own set of checks, but the labels on the checkboxes were the same.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAAP%3D3QMN3v5-p9Q%2BPOBZKJU23rBUGUn4wmxBL3cUyf5dhXbkMA%40mail.gmail.com.
On 7 Mar 2026, at 05:25, Jonathan S. Shapiro <jonathan....@gmail.com> wrote:I think Spectre and Meltdown may have marked the end of approaches built on in-memory swiss numbers without hardware-assisted protection, and also cryptographic systems that use an in-memory signing or encryption key or secret without hardware protection. Speculative execution exploits (that is: side channel attacks) can extract the bits of these from the address space of a non-cooperating holder.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/DEE68EFF-B731-4AF3-BADC-4173DE2B5F48%40gmail.com.
Most mechanisms to block these side channel attacks have serious performance impact. For example, don't you lose your branch predictor state? What about the cache? Surely, you're not invalidating it.
I wonder if the KeyKOS approach is safe if you combine Spectre/Meltdown with RowHammer. I believe that combination would allow you to learn a set of bits that can then be written to memory in a way that they'd be treated as a capability.
...and in any cases leads to more predictable performance in the case of a contented cache.
Cache channels are the easiest to exploit as covert and side channels. L1 caches are virtually indexed and cannot be spatially partitioned, they *must* be invalidated, like it or not.The cost of this is dominated by the D-cache writeback, but that’s unavoidable. Everything else happens in parallel and doesn’t add to the cost.
On Fri, Mar 6, 2026 at 4:20 PM Gernot Heiser <gernot...@gmail.com> wrote:Cache channels are the easiest to exploit as covert and side channels. L1 caches are virtually indexed and cannot be spatially partitioned, they *must* be invalidated, like it or not.The cost of this is dominated by the D-cache writeback, but that’s unavoidable. Everything else happens in parallel and doesn’t add to the cost.For larger applications there doesn't tend to be much useful retained L1 I-cache or D-cache from one process to the next on the same CPU. The notable exception is the microkernel itself. If IPC is synchronous, it seems as if you can sometimes skip the D-cache flush if a long enough string has been transferred, because it has effectively been flushed by the copy operation and the state now in the D-cache is receiver state. I'm not clear how helpful that is in practical terms.Northup says that most of the hardware people are throwing up their hands at the cost of cache flush and declaring that dedicated secret stores are the answer and us punk-ass software pukes will just have to do more work to protect our secrets. Unfortunately, there are enough applications where that works to make it seem like a viable approach, and it becomes a big game of marketing "chicken" for competitive performance benchmarks. At least for now, the incentives do not favor the more secure approach.
Could a modified cache help guard against this? It seems to me that a cache set is a partition, and maybe a per-set "must be flushed" marker bit would allow the flush to proceed more incrementally? No idea if that actually helps; it would need to be measured, and I wonder if knowing (from the timing) which sets were aliased across the process switch boundary is exploitable.
If it hasn't been done already, I think it would be good for somebody to try hard to do an exploit based on timing observability of which sets held dirty lines.
Could a modified cache help guard against this? It seems to me that a cache set is a partition, and maybe a per-set "must be flushed" marker bit would allow the flush to proceed more incrementally? No idea if that actually helps; it would need to be measured, and I wonder if knowing (from the timing) which sets were aliased across the process switch boundary is exploitable.
Locking a complete set is likely to cause issues, as both processes are likely to access the same set. And CPU designs pretty much depend on reading from the L1, so having a hole in there isn’t likely to work.
If it hasn't been done already, I think it would be good for somebody to try hard to do an exploit based on timing observability of which sets held dirty lines.
This sounds exactly like what the varioys prime&probe (P&P) cache attacks are doing (although they tend to probe for residency, not dirtyness but I can’t see what difference that would make).
If it hasn't been done already, I think it would be good for somebody to try hard to do an exploit based on timing observability of which sets held dirty lines.This sounds exactly like what the varioys prime&probe (P&P) cache attacks are doing (although they tend to probe for residency, not dirtyness but I can’t see what difference that would make).You mentioned that the flush cost is mainly driven by writeback, which makes sense. It got me wondering if the higher do a write-back vs. an invalidate might be exploitable?
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAAP%3D3QNrfuSc7T%3D%3D1%3DLrhZL9wQ%3DabG6WjDdGarMd1GQeOJM27w%40mail.gmail.com.