News for hackers. Stuff that matters.
Re:RPM Packages Explained by _pmf_ on Thursday June 27, 2019 @10:29AM (#20294678)
What's baffling to me is that there's support for signing,, but no support for an encryption layer. When delivering software updates for embedded devices, I need to do both, so I have to roll my own container format. This seems to also be the case with package formats like ipkg/opkg, which are targeted for the embedded use case.
Re:RPM Packages Explained by JetSpiegel on Wednesday July 03, 2019 @11:06AM (#20344876)
Why not have a password-protected repository per client? If you need public dependencies, build them once and copy them to all repositories.

HTTP supports inline username and passwords, use HTTPS to keep the password encrypted on the wire: http://username:[email protected]/...

Re:RPM Packages Explained by 0x006A on Thursday June 27, 2019 @10:40AM (#20294787)
whats the use-case for an encryption layer?
Re:RPM Packages Explained by scheveningen on Thursday June 27, 2019 @01:49PM (#20296778)
Personally I don't feel like the "hiding from the listener" use case discussed in the other response is very critical. What I think _pmf_ is getting at is an "only authorized devices may install my software, or view the RPMs".

You could accomplish this having a keypair on your field/embedded devices, and then having the RPM distribution system pull each devices public key from the keyserver, build the RPM with encryption specifically for this device, and then push it out. Or maybe you choose to have a generic keypair for a class of devices.

This could be used in cases where you have internal secrets in the RPMs you are building, or in the case of things like proprietary software and software licensing. I don't see how this applies to open source OS updates which is what I think the other sub-thread seems to be fixated on for some reason.

Whether this belongs in the RPM system itself or in a wrapper format, I'm not so sure of.

Re:RPM Packages Explained by ggg2 on Thursday June 27, 2019 @10:58AM (#20294974)
hiding packages you have installed from your ISP/NSA/etc.

this discussion comes up time and time again (in rpm, apt et al). the consensus is: if you need that extra feature, manually download sensitive packages via ssl or something. everyone else (with nothing to hide, heh) keeps benefiting from a global cache of unencrypted transport of (mostly) open source data.

Re:RPM Packages Explained by BuildTheRobots on Thursday June 27, 2019 @11:11AM (#20295102)
Transport security & confidentiality makes sense (though at first I was trying to work out how an encrypted yum package would work).

Yum with CentOS 6 and above does support SSL for mirror sites and a handful of global mirrors also support it (HEG being one).

I suppose there's a slight race condition (eg how do I update the CA-Certificates bundle when I need the new CA-Certificates bundle to connect to the mirror site to download the update), however I tend to agree there should be some privacy as default.

Re:RPM Packages Explained by solatic on Thursday June 27, 2019 @12:02PM (#20295646)
As pwnna pointed out, package size gives you away.

The real way to protect against this, if it's genuinely part of your threat model, is to maintain a complete local mirror: you can't tell what is installed and at what versions if you simply download everything.

And if it's actually part of your threat model, then you likely have a large enough install base that you need a local mirror for performance/non-security reasons anyway. So it's really a non-issue.

Re:RPM Packages Explained by ses1984 on Thursday June 27, 2019 @11:57AM (#20295589)
You can cache things that are encrypted too, or do you think drm protected Netflix videos are all streamed from the origin? Yeah it's a bit more complicated...
Re:RPM Packages Explained by forgottenpass on Thursday June 27, 2019 @03:03PM (#20297467)
If by "origin" you mean "box Netflix has root on"... yes, I do think that?
Re:RPM Packages Explained by rhinoceraptor on Thursday June 27, 2019 @03:06PM (#20297487)
Netflix runs a fleet of their own CDN boxes, that they put in ISP data centers.
Re:RPM Packages Explained by eeZah7Ux on Thursday June 27, 2019 @02:08PM (#20296972)
The combination of IP addresses and package sizes is way too revealing. That's why APT supports Tor as a transport protocol.
Re:RPM Packages Explained by pwnna on Thursday June 27, 2019 @11:01AM (#20295004)
Does that help? I thought the package size is quite revealing.
Re:RPM Packages Explained by isostatic on Thursday June 27, 2019 @11:49AM (#20295494)
In some cases (although the server could presumably send some random length data headers if that's a concern), but if you download multiple packages on a single connection can it still be tracked?
Re:RPM Packages Explained by vetinari on Thursday June 27, 2019 @12:08PM (#20295722)
The sizes of all packages are a known information. So if someone is dedicated enough to track your downloaded packages, figuring out which ones were transferred with a single connection is relatively simple integer programming task.

If you want to really hide what you are installing, make a local mirror of the entire repo and then pick and choose from that.

Re:RPM Packages Explained by scheveningen on Thursday June 27, 2019 @01:14PM (#20296415)
I thought _pmf_ was describing packages that he authored, and certainly if the contents of them are confidential, they would be in a private repository.

I don't think that the RPMs that I have created in my internal repository and deploy to my field systems are a 'known information' to anyone outside of my organization. If they are, I'm in serious trouble.

I think a more realistic use case for package-level encryption is deploying RPMs that have secrets in them (either keys/creds in configuration or trade secrets in application logic). Ideally of course we should encapsulate these such that they aren't deployed to field/embedded devices but in embedded there certainly may be some use-cases and requirements that those of us used to working in data center and cloud computing aren't immediately thinking of.

Re:RPM Packages Explained by _pmf_ on Thursday June 27, 2019 @03:00PM (#20297440)
This is for embedded Linux devices with a set of proprietary applications (small volume commercial/industrial control, no consumer device). Mostly non networked, so we have to distribute application updates via USB (in the networked case, we a use VPNs separated by customer groups to deliver updates, so this layer provides the encryption without requiring the update archive to be encrypted).
Re:RPM Packages Explained by eeZah7Ux on Thursday June 27, 2019 @02:13PM (#20297012)
The combination of IP addresses and package sizes is way too revealing. That's why APT supports Tor as a transport protocol.