Ich habe gestern diese Hamburger Brioche Buns hergestellt. Zur Abwechslung habe ich mich präzise an das Rezept gehalten, keine anderen Mehlsorten, kein LM usw. Einzige Änderung: Teig nach Bertinet bearbeitet und nicht geknetet. Und was soll ich sagen: Die Brötchen waren der Hammer und die Hamburger sensationell.
Wir haben gefressen. Alter war das geil.
2016-09-04 - Sowas von!:
2016-09-04 - Profi-Patties: Rindsgulasch fein, Rinderfilet und Entrecote grob, 2 Finger dick Schweineschwarte, Salz, Pfeffer, bischen Semmel mit Milch, wenig Ei: Boah ey!:
2016-09-04 - Wie vorhergesagt erfüllen die Brötchen alle Anforderungen an ein Hamburgerbrötchen. Top! Übrigens erkennt man an der nicht ganz so regelmäßigen Porung die andere Teigbearbeitungsmethode.:
2016-09-04 - Die Brötchen. Guck Dir das mal an!:
Das erste Mal im Leben hab ich Marmelade gemacht: Pflaumenmuß und Holundermarmelade. Mit Rezepten aus dem 19ten Jahrhundert. Und die Sachen sind wirklich lecker. Nur ein bischen viel ist es geworden.
2016-08-28 - Holunderbeeren: 4 Stunden Arbeit für diese Schüssel:
2016-08-28 - Ein bischen Kompott ging auch noch:
2016-08-28 - 38 Gläser Pflaumenmuß, haha!:
2016-08-28 - Aber: 18 Gläser Marmelade waren es wert:
2016-08-28 - Pflaumen in rauen Mengen:
Ich war mal wieder in Frankfurt und habe mir diesmal die Zeit mit einer schönen Fahrradtour vertrieben:
So, the german and french government want to break cryptography. Now they "only" want to be able to decrypt messaging apps. If they get their law - and since there's not much sanity left in the corrupt EU this will likely happen - what will be next?
I think store and forward crypto systems are the first to come into mind, that is: PGP. Happily I am the maintainer of some nice but working play store and forward crypto software: PCP. Of course it is not PGP but uses comparable features. So, after reading the news the other day I thought to myself:
How would I implement such a backdoor in PCP, if I had to?
As it turned out the answer is hillariously simple! PCP, as GNUPG, supports encrypting data for multiple recipients. Therefore the task is easy: create a "government key pair", hardcode its public key into the encryption code and encrypt everything for this recipient as well.
Here's the backdoor patch.
The patch includes the "government's" secret key. Here's how to use it:
- Compile the patched pcp source as usual, install the binary as pcp1-backdoored or something like that.
- Create a test user on your system, say "spook".
- As user "spook" import said secret key, the import passphrase is "gov".
- As another user on the same system export your public key.
- Import that key as user "spook".
- Now as the regular user, encrypt some file asymmetrically for someone else (e.g. import one of the public key files in the tests/ directory of the source code) using the backdoored binary.
- As user "spook" decrypt the encrypted file as if you'd be the intended recipient.
- Et voilá.
[24.Aug 17:09:05] --- [~] ---
tom@vm: % src/pcp1 -V spiedsender.vault -l
Key ID Type Creation Time Owner
0x5C77C305F0BF8333 primary secret 2016-08-24T15:13:02 Freddy Victim <email@example.com>
0x616BDDA58845987B valid public 2015-04-17T17:08:19 Bobby <bobby@local>
[24.Aug 17:15:29] --- [~] ---
tom@vm: % src/pcp1 -V backdoor.vault -l
Key ID Type Creation Time Owner
0xF93E7016447D28CC primary secret 2016-08-24T14:54:28 The Government <firstname.lastname@example.org>
0x5C77C305F0BF8333 valid public 2016-08-24T15:13:02 Freddy Victim <email@example.com>
[24.Aug 17:15:43] --- [~] ---
tom@vm: % echo "for bobbys eyes only" | src/pcp1 -V spiedsender.vault -i 0x616BDDA58845987B -e -O encrypted-for-bobby.asc
Enter passphrase to decrypt your secret key:
Encrypted 242 bytes for:
0x616BDDA58845987B - Bobby <bobby@local>
[24.Aug 17:16:14] --- [~] ---
tom@vm: % src/pcp1 -V backdoor.vault -I encrypted-for-bobby.asc -d
Enter passphrase to decrypt your secret key:
for bobbys eyes only
Decrypted 21 bytes successfully
There you go. Freddy Victim encrypted some message for Bobby, but the "government" could read it anyway, it only had to import Bobby's public key (which is the difference to PGP, but it's public and much easier to retrieve).
Also note that the "government" just uses regular PCP features, it doesn't even need to use a patched binary, the vanilla one would do. That's because the backdoor is not really a cryptographic backdoor (which is, as many cryptographers already said, impossible). Instead it just adds another recipient. The result looks pretty normal to the uninitiated, just some encrypted file decryptable by two recipients instead only one.
So, as you can see, it couldn't be easier to implement this backdoor. I could even commit this code to Github and I'm pretty sure, no one would take notice (and of course in that case I'd obfuscate it a little to disguise a casual reader). Also, the government could distribute the patched binary. That'd be pretty easy as well, since almost all Open Source systems use binary packaging.
Finally, one question remains though:
How could I determine of an encrypted file has a "hidden" recipient?
I'm not sure. In the case of PCP, I added a debug print statement to the decryption code (git commit) which tells the number of recipients during decryption if -v have been supplied on the command line. Maybe GPG already includes such a function. But of course this could be easily patched away by a backdoored version. So to check if an encrypted file contains more recipients than expected you'd need to check out the source code, compile it manually and then do the checks.
Yes, evil and scary stuff. But as the README of PCP says loud and clearly: Do not use PCP for anything productive or important. However, for real live public key crypto systems the scheme to add a government recipient to all encrypted data could be a realistic possiblity.
This is a response to the article "Maintainers Matter" by Kyle Keen, which I'm posting here, since his comment system doesn't work for me.
First of all: I agree with you that maintainers are indeed required and do matter - for users of linux distributions. But I think your world view is a little bit too focused on linux distributions:
Supposedly one of Linux's failings is that there is too much pointless choice, too many K and G versions of things and it divides developer efforts. Why have so many window managers and text editors?
This is no failing, this is good. Who is to decide which WM I'm going to use? A maintainer? You? Why? What could I do if my distribution only provides Gnome but I'm a non-mouse-user and NEED xmonad?
Linux is about choice and it's the choice of the users, not the maintainers. That's why we do have so many different distributions: because at some point maintainers went mad, excluded users with their decisions, so the users had to make a fork of the distribution.
Somehow we've gotten this idea that everyone who writes software for Linux does it for the warm fuzzies.
I am writing software. Free software. NOT software for Linux. In fact, I don't care about Linux at all. My software is free, I provide the source, it runs on most unices, including Linux. And besides it is none of your business, what I'm doing it for. Be it for the lulz, for the "warm fuzzies" or for money - as long as the software comes with a free license which enables users to use it as they wish, it is free and everything is good.
Oh, and from my point of view there's only the developer (that would be me) and users. As you see, users includes maintainers. There's no difference. I do not handle bug reports differently whether they come from an "end user" or some "ubuntu maintainer". And why should I?
More fundamentally, the maintainer is the primary line of defence and interaction between users and developers. Maintainers shield developers from uninformed users, allowing the devs to write software with less support overhead. Non-bugs are caught and filtered out. Low-quality bugs reported to the distribution's tracker often becomes a good bug when the maintainer reports it upstream.
Maintainers may do whatever they want, I don't care. But they're not a "line of defence" or some shield between me and users. Maintainers are, if any, a proxy or a filter. I don't need a "line of defense" since I don't consider users to be my enemies. And even if I would, then maintainers would be enemies as well. So where's the point?
And what is a "non-bug"? Who decides? What if I want to know about it? What if it is not a bug, but just feedback. Why in the world is this hidden from me?
Without distros the ISV would have to carry the full weight of support.
Oh, look at the young one :) Do you know, there was a time when no "distributions" were around? During that time, developing and supporting free software was no burden nevertheless.
This is why Linux doesn't have spyware, doesn't come with browser toolbars, doesn't bundle limited trials, doesn't nag you to purchase and doesn't pummel you with advertising.
Wrong. It doesn't have spyware because it's not widespread. Oh, my bad, that's wrong too. Of course there's LOTS of spyware for Linux. Every android device has it installed. Ubuntu contains spyware. Sanctioned by a "maintainer" of some kind.
For the sake of argument, let us presume that all ISVs are ethical and hold the interests of the community as their utmost ideal.
Again, that's not the point of free software. I produce free software so you can do with it whatever you want, including modifying or distributing it. I'm not interested in your ethical values, your religion, your gender, your education, your location or even your species.
And it's the same the other way around: none of those things about me is your business.
But there's another major misconception here: "the community" you say. Which one? The community of Arch Linux users? Linux Users? Unix Users? Free Software Users? Software Users? Users? In the reality (to reuse you phrasing) there's no such thing as "the community". There are a bunch of people who use Arch Linux, but this doesn't constitute automatically a community. Most of Arch Linux users are unknown to Arch Linux maintainers. They are NOT part of whatever kind of community you're dreaming of. And this is the case for all kinds of users.
As long as people just use something, whether they pay for it or not, they are just users of this thing. Take Zippo users for example. Even if there's some "Zippo Community" somewhere, I am not part of that community only because I use a Zippo lighter!
I am part of a community if I subscribe to some list, apply for a forum account, post comments or opinions, contribute code, documentation or the like. Everyone else is not part of this. Seeing it this way is communist thinking. Free people decide themselfes if they want to be part of some kind of "movement" - not some maintainer somewhere in the U.S.
Could ISVs possibly make everyone happy? They can't. It is impossible.
As maintainers can't do as well. That's why we have thousands Linux distros, a couple of BSD's, hundreds of editors, hundreds of window managers and possibly billions of different ways to combine and configure them. And that's the idea behind the whole endeavor, isn't it?
So, let them make universal packages. Who cares? I'll continue to manually compile emacs and xmonad myself whatever distro I'm running on.