[Interest] anti-Tivo - was The willy-nilly deletion of convenience, , methods

Roland Hughes roland at logikalsolutions.com
Wed Mar 24 14:22:12 CET 2021


On 3/24/21 6:00 AM, Konrad Rosenbaum wrote:
> Hi,
>
> [this is getting a bit off-topic, but anyway...]
>
> On 23/03/2021 16:43, Roland Hughes wrote:
>> The OpenSource community was blind, deaf, and dumb when they railed
>> against Tivo locking down their devices and came up with all of these
>> poisoned pills in OpenSource licenses mandating users be able to
>> modify the software.
>>
>> In medical devices, that's illegal.
>>
>> In industrial control systems where SAFETY is mandated, that's illegal.
> This is not exactly true. Modifying software of a medical or safety
> critical device is not illegal, it just revokes your right to use the
> device in its critical function because it no longer follows regulations.

According to the FDA approved training I had to go through on this 
matter it is illegal. Modifying the device and leaving it where it 
"could" be used ranges from criminal trespass with intent (whatever that 
is) to attempted manslaughter.

To be clear, it depends on several things:

1) The class of device. I'm speaking mostly of Class II and Class III

2) If the device was subject to 510K 
https://www.fda.gov/media/99785/download

3) How honked off the FDA is and how good the A.G. lawyer.

https://www.enzyme.com/resources/intro-to-qms

I hate Web pages that won't let me scrape one line. Search for illegal. 
It's illegal to launch a product without a QMS in place. They can take 
it to the extreme and say you are launching your own product by 
modifying an FDA approved product subject to 510K approval process thus 
giving the false impression your product has FDA approval.

They are using much the same approach with drug distributors who receive 
one IV bag of a super high priced drug, cut it with 
saline/water/whatever into 2, 5, 7+ bags and sell it as pure.

I will cede the point that the FDA training was most likely pushing the 
extreme to strike fear of God so nobody working in the industry tried 
it. At best it is a very expensive legal rats nest.

>
> Keep in mind that 99.9% of devices that were targeted by the
> anti-tivoization clauses were actually very Tivo-like: smart TVs, HiFi
> devices, mobile phones, smart buttons, cheap internet routers, etc.
They brought a shotgun to what should have been a knife fight.
> It is possible to use software with an anti-tivo license in critical
> systems, it just requires you to use your brain before deploying it in
> your device.

Actually no. Scroll back through the archive, or perhaps the EU medical 
device person I had a conversation with some months back will chime up.

The anti-tampering/cyber security regulations which are deservedly 
getting more strict, not more permissive, forbid anyone modifying the 
device software. You have to make it physically impossible to alter the 
software without breaking the device and not having special 
not-easily-replicated tools

OR

you have to do what they were doing with checksums compiled into the OS 
kernel so the device refused to book if any one checksum didn't match.

> Question is whether you wouldn't want to use something else
> anyway, because you need hard, certified real time capabilities.

Were that the case, nobody could use Qt.

Devices are in layers.

If I skip a step or fluff a definition I hope others currently working 
FDA/EU regulated correct it. Qt had a big place in this market so junior 
developers surfing through the archive should get the correct picture.

Bare metal: out at the very end of the device, nearest to something that 
operates. Probably burned rather than flashed in final product version. 
This has to be deterministic. No dynamic memory allocation, free, 
network, etc. No matter what is going on in the system the exact same 
command takes the exact same amount of time. Nothing can block it.

RTOS: All of the safety critical interaction with physical/logical 
device operations occur at this next higher level. Must be 
deterministic. No dynamic memory allocation/free. This has its own 
processor and RAM allocation if not own RAM. Someone needs to clarify. I 
__believe__ network activity is formally not allowed at this level. It 
__might__ be that nobody does it as an industry standard. I don't 
generally work at this level. All of the designs I've worked on have 
messaging system between this level and a different OS where UI and 
networking happen.

COMM Module: Pretty much standard in most new designs. Usually its own 
hunk of programmed hardware. All off-device communication happens here. 
Own processor and RAM. Various serial/on-chip messaging techniques to 
the higher level. Usually does not speak directly with RTOS. Generally 
has ReadOnly mount of "disk" storage that is mounted WriteOnly from 
higher level. There is no deterministic requirement. There is generally 
a requirement that this *cannot write* to anything other than the 
message queue.

UI: (There is a better name for this layer, just having brain fart) Here 
is where you can have a Yocto build of Linux, Qt, Windows, DOS, 
whatever. There are no deterministic requirements. Communicates via 
message queues to both the COMM Module and RTOS layers. If changes need 
to be made to COMM Module they come through the COMM module as messages 
to this layer. After validation they get written to the WriteOnly shared 
"disk". Note: you generally don't allow firmware changes to COMM Module 
via this method. Those are generally designed to be a plug-&-play 
firmware of their own. The configuration changes allowed are 
configuration changes. Other than a PPP-serial driver to communicate 
with the other layers, there is no networking software loaded here.

NOTE: older designs did not have COMM Module. This is newer. Designed to 
answer new security requirements.

Note 2: The RTOS and UI layers are generally flashable by service 
personnel with specialty equipment __AFTER__ opening the device.

You would be correct in assuming Note 2 wasn't always the case and Note 
2 may not be the case yet for the lower classes.

>
>> Change either of those and the regulators find out, you go to jail. A
>> person doesn't even have to get hurt or killed.
> That's a bit of an overly generalized statement, in't it?
>
>
> Your statement about industry and safety doesn't hold much water either:
> in semiconductor we change critical software all the time and nobody
> cares.

Different industry Konrad. I only know about the mills because they were 
one time huge OpenVMS customers. I suspect the real difference is that 
many mills and mines in the U.S. are unionized because of a long history 
like this:

https://www.pbs.org/wgbh/americanexperience/features/triangle-fire-deadliest-workplace-accidents/

Some day I want to read the rest of this book.

https://link.springer.com/chapter/10.1007%2F978-0-387-22466-4_8

I just don't want to pay $80 to read it. At least not $80 for an 
electronic copy. Hard cover I probably would.

-- 

Roland Hughes, President
Logikal Solutions
(630)-205-1593

http://www.theminimumyouneedtoknow.com
http://www.infiniteexposure.net
http://www.johnsmith-book.com
http://www.logikalblog.com
http://www.interestingauthors.com/blog

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210324/80dcf8ce/attachment.html>


More information about the Interest mailing list