[sdiy] Lockout / DRM chips?
David Kantowitz
dkantowitz at gmail.com
Fri Sep 11 08:56:31 CEST 2026
>
> My main concern right now honestly is figuring out a chip that is
> resilient enough to attack to allow for 10 years of security with
> rolling updates. I don't really know enough about how those things
> work. Can such chips be programmed with my own secure cryptographic
> algorithms, without exposing power sidechains? Can I limit the amount
> of challenge-responses per second? Can I program the chip with a
> secure VM?
- 10-years strikes me as very unrealistic.
- You can buy tamper-proof/evident/whatever CPUs. Although possibly not in
small qty. They'll run whatever fits into them.
- Not leaking data via power, timing, whatever is up to you.
For known attacks, the hardware crypo coprocessors will be resilient to
that sort of thing, but it's still up to you to write balanced code that
has uniform timing & power consumption. For example, if you quickly
determine some action is unauthorized, don't stupidly respond right away
... finish the exact same work you'd need to do as though everything was
properly authorized.
- Challenge/response rate is a commercial decision, not technical.
- "program the chip with a secure VM". I'm not sure what "program" means
in this context.
a. Set values in the chip's flash by running code in a VM (ex. VM ==
docker).
b. The assembled code that the cpu is executing is something like your
"encrypted execution machine".
In either case, my gut feeling is "no". If it's (a), any software you
execute on an insecure CPU is insecure. If it's (b), what's the point?
You already purchased a secure CPU, what does this extra level of
complexity get for you.
connect a usb cable and click a button on a website
This suggests each secure chip needs to have enough memory to store a
potentially *very* large list of bad modules. You'll need to find a way to
keep that list small. You can store databases on an untrusted device, but
it's tricky. Actually works a bit like your maldboge idea where you're
hiding data in random accesses plus you'll need to waste a ton of bandwidth
to hide your memory access pattern. There may be patent issues with these
kinds of systems; it's been a few years since we investigated that type of
approach ... ultimately the bandwidth requirements weren't compatible with
other latency requirements. Safest approach is to store what you need in
the memory of the secure cpu and/or stream the entire encrypted 'deny' file
through the secure cpu.
Steam knows which people pirate games, and they still don't do anything,
> because it's just not worth it from the business point of view.
This goes back to your original "piracy is a customer service problem".
As you're proposing, cloning is the same. You think your products will
underperform in the market relative to large manufacturers, so you're
attempting to force the consumer's hand through a DRM scheme. Might be
better business to offer really good customer service instead.
On Thu, Sep 10, 2026 at 10:49 PM cheater cheater <cheater00social at gmail.com>
wrote:
> I agree that online auth might be necessary, at least every now and
> then, possibly when a new device is connected to the modular system.
> Given that people don't change modules a lot, it wouldn't be much of a
> hassle, and they're already elbows deep in grease so it's not like
> they're technically inept to connect a usb cable and click a button on
> a website. However, given that people also keep upgrading modules, if
> they continue upgrading, any time they re-auth, their repudiation list
> would get updated. So either you keep using old bootleg devices, or if
> you want to use newer devices that have been issued more recently than
> the bootleg key, you have to upgrade your modules, and then that locks
> out the bootleg devices. This is basically the playstation firmware
> upgrade security pattern: new games don't work with old firmware,
> exploits don't work with new firmware. 99% of all people don't bother,
> but rarely people will buy playstations and just keep them in the box
> and wait for an exploit, at which point they get access to some games,
> but that won't even work here: the attractiveness of playstation
> piracy depends on the fact that once you have a hacked console, the
> games are essentially free; in this case, new modules still cost the
> same money; additionally, even if you have a set of older modules that
> don't know a bootleg module is bootleg, the other, newer modules will
> still reject it, so you're still stuck just using old modules that
> haven't been updated. So to use your bootleg modules you'd have to not
> just "crack" the older modules, but you'd also have to "crack" the
> newer ones as well, and every time you want to add a new non-bootleg
> module, you'd have to wait for it to get "cracked". So it's not very
> practical for the person using the bootlegs. Meanwhile, for the
> bootlegger, every time a key gets repudiated, they would have to
> obtain a new key. This shouldn't be easy, and would essentially
> require an existing approved manufacturer (or other entity in the
> supply chain) to sacrifice their business and licensing in order to
> provide the bootlegger with the key. (they could argue being hacked,
> but that's not a feasible explanation in the long term)
>
> Meanwhile Steam uses minimal DRM and while people do pirate Steam
> games, most don't bother, and the business can survive pretty well,
> i.e. the opposite to audio hardware manufacturers, who struggle. In
> fact, Steam knows which people pirate games, and they still don't do
> anything, because it's just not worth it from the business point of
> view.
>
> Regarding modulation, it would be pretty difficult to remove it to
> satisfactory quality. Maybe some other in-band signal can be used,
> idk. I'm trying to come up with something that doesn't mess with the
> sound during playing. Preferably at time of initial connection.
>
> One thing I am painfully aware of is the concept of session hijacking.
> Essentially, if only a handshake is used to secure a connection, but
> later communication is in plaintext, then the initial handshake can be
> forwarded to the unwitting legitimate module, while later
> communication happens with the bootleg module. One example where this
> is known in hardware are bootleg game cartridges. Each console
> required each cartridge to contain a lockout chip (known as the CIC
> chip). So what bootleggers did was a system where you'd have a "pass
> through adapter": it was a cartridge that plugged into the console. It
> had two cartridge ports of its own, on top, and in the back. You
> plugged any old legit game in the back, and that's what answered the
> CIC query; the cartridge at the top was the bootleg game you wanted to
> play. One weakness of this system was that the legit cartridge, being
> used as the handshake patsy, had no idea that it was being used like
> that. In a modular system, one could keep track of what's connected to
> what, and if there's more than one connection to one port, old
> connections get deauthorized and disconnected.
>
> My main concern right now honestly is figuring out a chip that is
> resilient enough to attack to allow for 10 years of security with
> rolling updates. I don't really know enough about how those things
> work. Can such chips be programmed with my own secure cryptographic
> algorithms, without exposing power sidechains? Can I limit the amount
> of challenge-responses per second? Can I program the chip with a
> secure VM?
>
> Some time ago I've been looking into secure computation in adversarial
> environments, and I've concluded a good design might be a VM inspired
> by how Malbolge works, however instead of it having some sort of
> unknown cypher* that requires cryptanalysis, the key would be known to
> the root of trust, who would be able to encode programs for the VM.
> Writing hello world in Malbolge required significant cryptanalysis by
> the community.
>
> * https://en.wikipedia.org/wiki/Malbolge#Crazy_operation
>
> I think this might be improved if every unit / module has its own
> private keys, which are all stored in the CA, therefore key derivation
> from any one unit does not transfer to any other unit.
>
> An additional positive aspect of an encrypted VM is that the program
> is essentially random noise, and the execution path is essentially
> random as well.
>
> An encrypted VM is basically explained as follows:
>
> Normal VM:
> new_state = operational_semantics(old_state, opcode)
>
> encrypted VM:
> decrypted_opcode = cipher(concat(secret_key, old_secret_state,
> old_state, encrypted_opcode))
> (new_state, new_secret_state) = operational_semantics(secret_key,
> old_secret_state, old_state, decrypted_opcode)
>
> Here, operational_semantics() is the implementation of the opcodes,
> i.e. it describes what should happen when it sees "mov", "je", "nop",
> etc. In the encrypted VM, the opcode is first "randomized"* through
> the one-way function (cipher) applied onto the encrypted opcode; then,
> the cipher is used to figure out what actual opcode this maps onto.
> This means that at every state of the program, to do what you want to
> do in the next step, you have to know the factors of the cipher, and
> you have to know the secret key, and the current state.
>
> *from the point of view of an observer who doesn't know the secrets
>
> The "state" is what the program knows about, it is the combination of
> the stack, heap, registers, program counter, etc. The "secret state"
> is something the program has no concept of, it is not exposed by the
> VM.
>
> This means that essentially such a VM is impossible to program unless
> you are told the secret parameters. If you know the secret parameters,
> to you the cipher is compromised, and every time you write a new
> instruction for your program you have to essentially "hack the
> cipher", which is less difficult than if you didn't know the cipher
> secrets.
>
> > Malbolge is a public-domain esoteric programming language invented by
> Ben Olmstead in 1998.
>
> > Malbolge was very difficult to understand when it arrived, taking two
> years for the first Malbolge program to appear. The author himself has
> never written a Malbolge program. The first program was not written by a
> human being; it was generated by a beam search algorithm designed by Andrew
> Cooke and implemented in Lisp.
>
> > There is a discussion about whether one can implement sensible loops in
> Malbolge—it took many years before the first non-terminating one was
> introduced. A correct 99 Bottles of Beer program, which deals with
> non-trivial loops and conditions, was not announced for seven years; the
> first correct one was by Hisashi Iizawa in 2005.
>
> > In 2020, Kamila Szewczyk published a Lisp interpreter written in
> Malbolge Unshackled.
>
> It took 22 years to write a complex program like that in Malbolge.
>
> Cheers
>
> On Fri, Sep 11, 2026 at 6:52 AM David Kantowitz <dkantowitz at gmail.com>
> wrote:
> >
> > How is a compromised module defined & detected?
> > How would the repudiation information reach a compromised module? or to
> modules connected to the compromised module?
> >
> > I'm sure there are complexities, but mixing coded noise into the outputs
> doesn't seem especially difficult. If the outputs are already digital, then
> you need to find a synchronization side channel. If the outputs are
> analog, modulate sync information in a frequency band outside what you were
> planning on transmitting ... if you're already satuating the analog i/o
> bandwidth, then find a different side channel.
> >
> > PS. Note that this doesn't really prevent clones. It simply makes the
> new equipment incompatible with everything else. Which doesn't sound very
> appealing to me as a consumer, but maybe the easy-to-clone yet
> intrinsically-awesome capabilities of modules in this new format will
> change my mind.
> >
> > PPS. If you're depending on modules being connected to the internet for
> repudiation data, then authorization is what the world generally uses.
> Works very well. Again, consumers generally hate it.
> >
> >
> > On Thu, Sep 10, 2026 at 9:26 PM cheater cheater <
> cheater00social at gmail.com> wrote:
> >>
> >> While technologically difficult it's also probably satisfactory, but
> >> you'd probably need to be able to repudiate compromised devices /
> >> licenses as well.
> >>
> >> On Fri, Sep 11, 2026 at 6:19 AM David Kantowitz <dkantowitz at gmail.com>
> wrote:
> >> >
> >> > Would this example approach satisfy your needs: every output is
> mixed with wide-band PRNG noise and only "in family" modules have the
> algorithm to filter that noise from their inputs.
> >> >
> >> > On Thu, Sep 10, 2026 at 9:09 PM cheater cheater <
> cheater00social at gmail.com> wrote:
> >> >>
> >> >> > Honestly, it's a bit hard to point you in the right direction
> without understanding what you actually want to do.
> >> >>
> >> >> Ultimately the goal is as follows.
> >> >>
> >> >> Situation: A new physical format, let's say for modular synthesizers
> >> >> or audio effects, is created.
> >> >> Problem: how to lock out a specific manufacturer that clones devices
> >> >> created by others, so they don't shit up this format as well?
> >> >> Solution: some form of hardware authorization and authentication
> >> >>
> >> >> Purpose of the discussion: The first part can be something myself and
> >> >> some others are planning, or it could be something that a completely
> >> >> different group of people are doing and they could use what's been
> >> >> learned here as basis for safeguarding their business from
> parasitical
> >> >> manufacturers
> >> >>
> >> >>
> >> >> On Thu, Sep 10, 2026 at 10:02 PM David Kantowitz <
> dkantowitz at gmail.com> wrote:
> >> >> >
> >> >> > Not really. Search for "secure microcontroller" at the NXP
> website. The detailed manuals (at least for NXP) usually require an NDA w/
> NXP, but a 2-page summary sales sheet should be available.
> >> >> >
> >> >> > A lot of microcontrollers (not just NXP) have features like:
> 'secure boot', 'secure element', 'secure memory', 'trusted module',
> 'trusted execution', etc. ARM has TrustZone that a lot of manufacturers
> use. Some combination of those features could do what you want.
> >> >> >
> >> >> > Honestly, it's a bit hard to point you in the right direction
> without understanding what you actually want to do. ... and based on my
> earlier emails, what you described as wanting to do doesn't really make
> sense to me in a commercial context. There are significant costs involved
> in building even vaguely secure hardware. An example of the stupid shit
> that happens ... units were keyed at Key Injection Facility, then shipped
> to the user site, units started to arrive in the tamper state with no keys
> .. queue 6 month parade of units back and forth ... eventually we figure
> out that a software bug wasn't putting the cpu into a low enough sleep
> state and the supercap keeping the keys alive was drained in transit. I
> can't even bear to describe how stupid the spares situation became.
> >> >> >
> >> >> >
> >> >> >
> >> >> > On Thu, Sep 10, 2026 at 11:51 AM cheater cheater <
> cheater00social at gmail.com> wrote:
> >> >> >>
> >> >> >> Thanks, David. That's some good info. Can you point to some recent
> >> >> >> devices that are available on the market?
> >> >> >>
> >> >> >> On Thu, Sep 10, 2026 at 7:22 PM David Kantowitz <
> dkantowitz at gmail.com> wrote:
> >> >> >> >
> >> >> >> > BOM cost was single digit USD. Essentially it was a way to
> audit licensing fees through an electronic component based supply chain.
> >> >> >> >
> >> >> >> > What you're describing are key rolling and key injection. You
> can look at current practices for payment terminals, but honestly those are
> made-by-committee unions of the individual company's own practices.
> >> >> >> >
> >> >> >> > We used two basic approaches to secure the cryptographic root:
> >> >> >> > 1. 'Base' key injection key that's used only to load
> site-deployment keys. Those keys were secured by obscurity.
> "Steganographic methodology" when we wanted to sound like experts.
> >> >> >> > 2. Shipping units to a secure key injection facility. Use
> tamper evident bags when you want a fancy audit trail.
> >> >> >> >
> >> >> >> > Site keys are stored in something physically tamper-proof. As
> a simple example (ie. what was done 20 years ago):
> >> >> >> > - make a PCB sandwich. all components on inside, no traces
> on outside of PCB. single power & serial port on outside. a plastic ring
> goes around the edge. bolot he sandwich together.
> >> >> >> > - electrical connection between the two boards via pin headers
> >> >> >> > - put key in static RAM (not flash, not DRAM)
> >> >> >> > - SRAM on board A, battery on board B
> >> >> >> > If someone opens the sandwich and the site keys lose power.
> Back to (1) or (2) above to restore site keys.
> >> >> >> >
> >> >> >> > Despite having microcontrollers with secure memory, much more
> physically complicated versions of the sandwich are still used today:
> >> >> >> > (A) Detect the tamper. (B) Destroy the keys. (C) Restore
> the keys.
> >> >> >> >
> >> >> >> > Separately, everyone also builds in some method for key-rolling
> into their systems. This handles the scenario you described: you believe
> the keys were actually stolen with malicious intent. Personally, I've gone
> through customer witnessed testing of the key rolling, I've never seen a
> live system do a key roll. It was simply too risky. Instead we would
> maintain blacklists of cards & equipment. This requires a system that is
> frequently online.
> >> >> >> >
> >> >> >> > On Thu, Sep 10, 2026 at 9:20 AM cheater cheater <
> cheater00social at gmail.com> wrote:
> >> >> >> >>
> >> >> >> >> I agree that the DRM is just one component of an otherwise
> healthy
> >> >> >> >> business strategy.
> >> >> >> >>
> >> >> >> >> Do you remember how much roughly the NXP chips added to your
> BOM?
> >> >> >> >>
> >> >> >> >> > This seems to be the arc of most cryptographically enabled
> DRM.
> >> >> >> >>
> >> >> >> >> I agree. I know about power monitoring, power glitching, and
> various
> >> >> >> >> other hardware attacks.
> >> >> >> >>
> >> >> >> >> One thing that I'm curious about is things like updating
> encryption,
> >> >> >> >> in order to be able to repudiate compromised keys, eg from
> >> >> >> >> manufacturers who have decided to start leaking them to
> companies who
> >> >> >> >> shouldn't have them. This would at least require some sort of
> secure
> >> >> >> >> vault with a machine of some sort inside, probably a VM.
> >> >> >> >>
> >> >> >> >> Cheers,
> >> >> >> >> D
> >> >> >> >>
> >> >> >> >> On Thu, Sep 10, 2026 at 6:09 PM David Kantowitz <
> dkantowitz at gmail.com> wrote:
> >> >> >> >> >
> >> >> >> >> > The closest "on topic" experiences I have are with the
> contactless payment (and ID) cards.
> >> >> >> >> >
> >> >> >> >> > To read/write Mifare cards, we had to include the Philips
> (now NXP) reader chip in our equipment: even though our own DSP/FPGA
> generated the RF modulation signals and we had our own implementation of
> the on-air data protocol stack.
> >> >> >> >> >
> >> >> >> >> > All the Philips chip contained was their proprietary
> shared-secret encryption algorithm.
> >> >> >> >> >
> >> >> >> >> > Two things happened over time:
> >> >> >> >> > 1. Researchers reverse engineered/discovered and published
> the exact proprietary cryptographic algorithm.
> >> >> >> >> > 2. Various key recovery techniques were possible through
> either defects in the protocol implementation or techniques like power
> monitoring (which you can also think of as an implementation defect).
> >> >> >> >> >
> >> >> >> >> > This seems to be the arc of most cryptographically enabled
> DRM.
> >> >> >> >> >
> >> >> >> >> > The Philips chips were generally easy to use and the
> integration cost was more a one-time expense. Still they added to the BOM
> cost.
> >> >> >> >> >
> >> >> >> >> > Even after the system was broken we continued to use them:
> it was the easiest way to vouch to our customers that our equipment was
> compatible with Mifare cards. That compatibility was necessary because, by
> then, out customers had money sunk (ie. millions) into cards.
> >> >> >> >> >
> >> >> >> >> > Briefly off topic: that 10+ year experience taught me that
> DRM-like capabilities are small (nearly irrelevant) technical components in
> a broader commercial strategy ; figure out the strategy first and then use
> DRM as a temporary stepping stone in that strategy.
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > On Thu, Sep 10, 2026 at 12:41 AM cheater cheater via
> Synth-diy <synth-diy at synth-diy.org> wrote:
> >> >> >> >> >>
> >> >> >> >> >> David, Mike,
> >> >> >> >> >> Please start a separate thread, this isn't what this thread
> is about.
> >> >> >> >> >>
> >> >> >> >> >> Thanks.
> >> >> >> >> >>
> >> >> >> >> >> On Thu, Sep 10, 2026 at 8:58 AM David Huss via Synth-diy
> >> >> >> >> >> <synth-diy at synth-diy.org> wrote:
> >> >> >> >> >> >
> >> >> >> >> >> > The idea to do some sort of multichannel modular via
> digital cables is not exactly new and not exactly something that isn't
> obvious.
> >> >> >> >> >> >
> >> >> >> >> >> > Technically such a thing is already done with
> ADAT/Toslink optical cables and many audio interfaces use it to allow users
> to add more I/O channels.
> >> >> >> >> >> >
> >> >> >> >> >> > So the main obvious question is why we haven't seen
> something like this widely used in the modular world?
> >> >> >> >> >> >
> >> >> >> >> >> > To me the answer is that the simplicity of the concept is
> unbeatable: Everything is just a voltage versus time, one signal per cable,
> what you see is what you get. All while being reliable, cheap to implement,
> cables are cheap, clocking is not an issue, it is conceptually clear, etc.
> >> >> >> >> >> >
> >> >> >> >> >> > The two useful applications of multi-channel cables I see
> are: (1) polyphonic modules where patching up 4+ cables is annoying and
> takes up valuable panel space and (2) breakout boxes for multichannel
> connections between racks (e.g. via Ethernet).
> >> >> >> >> >> >
> >> >> >> >> >> > Of course I could envision cool systems with
> multi-channel cables, but I am not sure it is really worth the extra
> complexity to make them digital. By that point one can ask, why not just
> run everything on a computer and make a patch-cable controller panel that
> just reads out the patch connections, knob positions etc and controls a big
> virtual modular.
> >> >> >> >> >> >
> >> >> >> >> >> > On September 9, 2026 11:44:34 PM UTC, Gordonjcp <
> gordonjcp at gjcp.net> wrote:
> >> >> >> >> >> > >On Wed, Sep 09, 2026 at 07:31:21PM +0200, cheater
> cheater via Synth-diy wrote:
> >> >> >> >> >> > >>
> >> >> >> >> >> > >> So, there's good news and bad news. The bad news is
> that I can't go
> >> >> >> >> >> > >> into specifics, but there are good reasons to expect a
> new modular
> >> >> >> >> >> > >> format showing up sometime in the not extremely
> distant future.
> >> >> >> >> >> > >
> >> >> >> >> >> > >Good luck with that.
> >> >> >> >> >> > >
> >> >> >> >> >> > >How did you get one with your polyphonic modular idea
> with 24 channels of 24-bit 192kHz CV on a single 3.5mm jack?
> >> >> >> >> >> > >
> >> >> >> >> >> >
> >> >> >> >> >> > ________________________________________________________
> >> >> >> >> >> > This is the Synth-diy mailing list
> >> >> >> >> >> > Submit email to: Synth-diy at synth-diy.org
> >> >> >> >> >> > View archive at:
> https://synth-diy.org/pipermail/synth-diy/
> >> >> >> >> >> > Check your settings at:
> https://synth-diy.org/mailman/listinfo/synth-diy
> >> >> >> >> >> > Selling or trading? Use marketplace at synth-diy.org
> >> >> >> >> >>
> >> >> >> >> >> ________________________________________________________
> >> >> >> >> >> This is the Synth-diy mailing list
> >> >> >> >> >> Submit email to: Synth-diy at synth-diy.org
> >> >> >> >> >> View archive at: https://synth-diy.org/pipermail/synth-diy/
> >> >> >> >> >> Check your settings at:
> https://synth-diy.org/mailman/listinfo/synth-diy
> >> >> >> >> >> Selling or trading? Use marketplace at synth-diy.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20260910/ce83f1bc/attachment.htm>
More information about the Synth-diy
mailing list