max

joined 1 year ago
[–] max@nano.garden 2 points 1 year ago (1 children)

This week I've been paying by cash, and I noticed a few things.

One thing is that there is a lot of people paying with cash that are doing so because they do not have another option. Some of them are simply tourists without a working card, but I suspect some of them might really have no card at all.

The other is that the people at the shop do notice when a long line of buyers stand to pay with cash. I have seen cashiers struggling to get someone to stand on the second cash register to offload some customers.

As for the ethical vendors... I struggle with this. It is just so much more convenient to go buy from the Albert Heijn that's right under my apartment. I tried the shops around, but they rarely have what I want, products are often more expensive, and lower quality. I also don't know how to tell whether specific small vendors are ethical vendors or not. So, for now I just go to AH for most of my purchases.

[–] max@nano.garden 2 points 1 year ago
[–] max@nano.garden 2 points 1 year ago (3 children)

Thanks! Not only is this a great list of actions, but it also has helped me see this whole issue from a new perspective. More specifically, I multiple times I have tried to switch to cash-only because of privacy reasons, and I eventually become discouraged. For example, I recently gave up again. I have a shared card with my girlfriend, and she doesn't really care much about privacy, so I felt like I was punishing myself for not good reason by paying with cash if my girlfriend next was going to pay with our card anyway.

But now that you have framed it from the point of view of those accepting cash, it does give me an additional source of motivation. It's not only about my personal privacy, but also about pressuring vendors to accept it. This makes it worth it even in cases where there might not be a privacy benefit. Starting now, attempt #I-lost-count begins.

[–] max@nano.garden 2 points 1 year ago (5 children)

You are right... Cash is king, and letting it be phased out is not a good idea.

You have me on board - how do we stop this?

[–] max@nano.garden 2 points 1 year ago (3 children)

Interesting. I haven't followed development in the space of "official" crypto currencies, but my impression is that these will probably be centralized, have little to no privacy features, and that the governments will be able to control access to the funds.

But I may be wrong - maybe they are actually building decentralized crypto networks? I just find it hard to believe that a government would do this.

[–] max@nano.garden 2 points 1 year ago (12 children)

Yes, it is increasingly difficult to pay with cash in the Netherlands. Even at the Albert Heijn they have set it up such that it is a lot more convenient NOT to pay with cash. They have a large amount of self-service pin-only checkouts, and one or maybe two workers accepting cash at the manual checkout lane.

One path is to make an effort to resist this digital move and pressure politicians so that they enforce these type of rules and that cash is accepted. But I think this can at best slow this process down.

The other path is to embrace the digital move and start integrating crypto currencies into our societies in a more substantial manner. I know that many people have given up in crypto, but, putting speculation and hype aside, crypto is the best way we know of to integrate cash-like payments into the digital world. Right? Or is this something others disagree with?

[–] max@nano.garden 2 points 1 year ago (1 children)

But then there is also the question if you trust github (and because of that microsoft, but also the USA because of laws) with always building from the sources, and adding nothing more.

Yesterday I would have said 'blah, they would not care about my particular small project'. But since then I read the paper recommended by a user in this post about building a compromised compiler that would installs a back-door to a type of login field. I now think it is not so crazy to think that intelligence agencies might collude with Microsoft to insert specific back-doors that somehow allows them to break privacy-related protocols or even recover private keys. Many of these might rely on a specific fundamental principle and so this could be recognized and exploited by a compiler. I came here for a practical answer to a simple practical situation, but I have learned a lot extra 😁

[–] max@nano.garden 4 points 1 year ago (1 children)

No, I'm not concerned about a lawsuit. It's something that I want to do because I think that it is important. If I want to share tools with non-tech savvy people who are unable to build them from source, I want to be able to share these without anyone needing to "trust" me. The reproducible builds standards are a very nice idea, and I will learn how to implement them.

But I still wonder whether my approach is valid or not - is printing the hash of the output executable during Github's build process, such that it is visible in the workflow logs, very strong evidence that the executable in the release with the same hash was built by github through the transparent build process? Or is there a way a regular user would be able to fake these logs?

[–] max@nano.garden 1 points 1 year ago (3 children)

But, if during Github's build process the sha156sum of the output binary is printed, and the hash matches what is in the release, isn't this enough to demonstrate that the binary in the release is the binary built during the workflow?

[–] max@nano.garden 2 points 1 year ago

Ooh, I did not know this one was of the properties of Rust.

[–] max@nano.garden 2 points 1 year ago* (last edited 1 year ago) (2 children)

Thanks! I am convinced now, I will learn how to create reproducible builds.

My worry is that the build is run through npm, and I think that the dependencies rely on additional dependencies such as openssl libraries. I worry that it will be a lot of work to figure out what every npm dependency is, what libraries they depend on, and how to make sure that the correct versions can be installed and linked by someone trying to reproduce the build 10 years from now. So it looks like a difficult project, but I will read more about it and hopefully it is not as complicated as it looks!

11
submitted 1 year ago* (last edited 1 year ago) by max@nano.garden to c/hacking@lemmy.ml
 

The linked paper was pointed out to me during a discussion about trusting executables built from source. Perhaps this paper is a well-known document in the hacking community, but I thought it was quite interesting and thought I'd share it.

The document describes how the author created a bugged C compiler that would compile UNIX code in which the "login" command would insert a backdoor.

The actual bug I planted in the compiler would match code in the UNIX "login" command. The re- placement code would miscompile the login command so that it would accept either the intended encrypted password or a particular known password. Thus if this code were installed in binary and the binary were used to compile the login command, I could log into that system as any user.

The author also describes strategies to build such bugged compiler in a way that would be very difficult to detect.

The document ends with a moral statement about hacking with a perspective from 1984 which is also an interesting read.

[–] max@nano.garden 5 points 1 year ago* (last edited 1 year ago) (1 children)

Ooh, I think I found the paper!

Oof:

The actual bug I planted in the compiler would match code in the UNIX "login" command. The re- placement code would miscompile the login command so that it would accept either the intended encrypted password or a particular known password. Thus if this code were installed in binary and the binary were used to compile the login command, I could log into that system as any user

 

I have forked a project's source code on GitHub. The program takes a private key as an input and that key must never leave the client. If I want to share a pre-built executable as a release it is essential that I can prove beyond reasonable doubt that it is built from the published source.

I have learned about how to publish the releases by using a Workflow in the GitHub actions such that GitHub itself will build the project and then repare a release draft with the built files as well as the file hashes..

However, I noticed that the release is first drafted, and at that point I have the option to manually swap the executable and the hashes. As far as I can tell, a user will not be able to tell if I swapped a file and its corresponding hashes. Or, is there a way to tell?

One potential solution that I have found is that I can pipe the output of the hashing both to a file that is stored and also to the publicly visible logs by using "tee". This will make it such that someone can look through the logs of the build process and confirm that the hashes match the hashes published in the release.

Like this:

I would like to know whether:

  • There is already some built-in method to confirm that a file is the product of a GitHub workflow

  • The Github Action logs can easily be tampered by the repo owner, and the hashes in the logs can be swapped, such that my approach is still not good enough evidence

  • If there is another, perhaps more standard method, to prove that the executable is built from a specific source code.

 

I have set up an instance to host an unofficial community centered around the cryptocurrency Nano (XNO): https://nano.garden

The purpose of the instance is to have a space in the lemmyverse to discuss the Nano cryptocurrency project and the community projects being built around it.

I want to play around with the integration of nano into the fediverse, but I don't want to do this in an invasive manner, so I've set up an instance to try to build some of these tools directly into the UI without inconveniencing others. Anyone else who needs an instance to try out their own nano-related inventions is more than welcome to try them out here. You may consider it a nano-playground in the Lemmyverse.

I chose Nano for this because I know that there are many open source projects related to 'tipping bots' and faucets, transfers are very fast and free, and the community that I've encountered is nice. I also found out that there is already a nano tipping button implemented in a mastodon instance, and I may draw some inspiration from that: https://xno.social/home

view more: next ›