#opensource

federatica_bot@federatica.space

GNU Guix: Authenticate your Git checkouts!

You clone a Git repository, then pull from it. How can you tell its contents are “authentic”—i.e., coming from the “genuine” project you think you’re pulling from, written by the fine human beings you’ve been working with? With commit signatures and “verified” badges ✅ flourishing, you’d think this has long been solved—but nope!

Four years after Guix deployed its own tool to allow users to authenticate updates fetched with guix pull (which uses Git under the hood), the situation hasn’t changed all that much: the vast majority of developers using Git simply do not authenticate the code they pull. That’s pretty bad. It’s the modern-day equivalent of sharing unsigned tarballs and packages like we’d blissfully do in the past century.

The authentication mechanism Guix uses for channels is available to any Git user through the guix git authenticate command. This post is a guide for Git users who are not necessarily Guix users but are interested in using this command for their own repositories. Before looking into the command-line interface and how we improved it to make it more convenient, let’s dispel any misunderstandings or misconceptions.

Why you should care

When you run git pull, you’re fetching a bunch of commits from a server. If it’s over HTTPS, you’re authenticating the server itself, which is nice, but that does not tell you who the code actually comes from—the server might be compromised and an attacker pushed code to the repository. Not helpful. At all.

But hey, maybe you think you’re good because everyone on your project is signing commits and tags, and because you’re disciplined, you routinely run git log --show-signature and check those “Good signature” GPG messages. Maybe you even have those fancy “✅ verified” badges as found on GitLab and on GitHub.

Signing commits is part of the solution, but it’s not enough to authenticate a set of commits that you pull; all it shows is that, well, those commits are signed. Badges aren’t much better: the presence of a “verified” badge only shows that the commit is signed by the OpenPGP key currently registered for the corresponding GitLab/GitHub account. It’s another source of lock-in and makes the hosting platform a trusted third-party. Worse, there’s no notion of authorization (which keys are authorized), let alone tracking of the history of authorization changes (which keys were authorized at the time a given commit was made). Not helpful either.

Being able to ensure that when you run git pull, you’re getting code that genuinely comes from authorized developers of the project is basic security hygiene. Obviously it cannot protect against efforts to infiltrate a project to eventually get commit access and insert malicious code—the kind of multi-year plot that led to the xz backdoor—but if you don’t even protect against unauthorized commits, then all bets are off.

Authentication is something we naturally expect from apt update, pip, guix pull, and similar tools; why not treat git pull to the same standard?

Initial setup

The guix git authenticate command authenticates Git checkouts, unsurprisingly. It’s currently part of Guix because that’s where it was brought to life, but it can be used on any Git repository. This section focuses on how to use it; you can learn about the motivation, its design, and its implementation in the 2020 blog post, in the 2022 peer-reviewed academic paper entitled Building a Secure Software Supply Chain with GNU Guix, or in this 20mn presentation.

To support authentication of your repository with guix git authenticate, you need to follow these steps:

  1. Enable commit signing on your repo: git config commit.gpgSign true. (Git now supports other signing methods but here we need OpenPGP signatures.)

  2. Create a keyring branch containing all the OpenPGP keys of all the committers, along these lines:

    git checkout --orphan keyring
    

    git reset --hard
    gpg --export alice@example.org > alice.key
    gpg --export bob@example.org > bob.key

    git add *.key
    git commit -m "Add committer keys."

All the files must end in .key. You must never remove keys from that branch: keys of users who left the project are necessary to authenticate past commits.

  1. Back to the main branch, add a .guix-authorizations file, listing the OpenPGP keys of authorized committers—we’ll get back to its format below.

  2. Commit! This becomes the introductory commit from which authentication can proceed. The introduction of your repository is the ID of this commit and the OpenPGP fingerprint of the key used to sign it.

That’s it. From now on, anyone who clones the repository can authenticate it. The first time, run:

guix git authenticate COMMIT SIGNER

… where COMMIT is the commit ID of the introductory commit, and SIGNER is the OpenPGP fingerprint of the key used to sign that commit (make sure to enclose it in double quotes if there are spaces!). As a repo maintainer, you must advertise this introductory commit ID and fingerprint on a web page or in a README file so others know what to pass to guix git authenticate.

The commit and signer are now recorded on the first run in .git/config; next time, you can run it without any arguments:

guix git authenticate

The other new feature is that the first time you run it, the command installs pre-push and pre-merge hooks (unless preexisting hooks are found) such that your repository is automatically authenticated from there on every time you run git pull or git push.

guix git authenticate exits with a non-zero code and an error message when it stumbles upon a commit that lacks a signature, that is signed by a key not in the keyring branch, or that is signed by a key not listed in .guix-authorizations.

Maintaining the list of authorized committers

The .guix-authorizations file in the repository is central: it lists the OpenPGP fingerprints of authorized committers. Any commit that is not signed by a key listed in the .guix-authorizations file of its parent commit(s) is considered inauthentic—and an error is reported. The format of .guix-authorizations is based on S-expressions and looks like this:

;; Example ‘.guix-authorizations’ file.

(authorizations
 (version 0)               ;current file format version

 (("AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3"
   (name "alice"))
  ("2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5"
   (name "bob"))
  ("CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5"
   (name "charlie"))))

The name bits are hints and do not have any effect; what matters is the fingerprints that are listed. You can obtain them with GnuPG by running commands like:

gpg --fingerprint charlie@example.org

At any time you can add or remove keys from .guix-authorizations and commit the changes; those changes take effect for child commits. For example, if we add Billie’s fingerprint to the file in commit A , then Billie becomes an authorized committer in descendants of commit A (we must make sure to add Billie’s key as a file in the keyring branch, too, as we saw above); Billie is still unauthorized in branches that lack A. If we remove Charlie’s key from the file in commit B , then Charlie is no longer an authorized committer, except in branches that start before B. This should feel rather natural.

That’s pretty much all you need to know to get started! Check the manual for more info.

All the information needed to authenticate the repository is contained in the repository itself—it does not depend on a forge or key server. That’s a good property to allow anyone to authenticate it, to ensure determinism and transparency, and to avoid lock-in.

Interested? You can help!

guix git authenticate is a great tool that you can start using today so you and fellow co-workers can be sure you’re getting the right code! It solves an important problem that, to my knowledge, hasn’t really been addressed by any other tool.

Maybe you’re interested but don’t feel like installing Guix “just” for this tool. Maybe you’re not into Scheme and Lisp and would rather use a tool written in your favorite language. Or maybe you think—and rightfully so—that such a tool ought to be part of Git proper.

That’s OK, we can talk! We’re open to discussing with folks who’d like to come up with alternative implementations—check out the articles mentioned above if you’d like to take that route. And we’re open to contributing to a standardization effort. Let’s get in touch!

Acknowledgments

Thanks to Florian Pelz and Simon Tournier for their insightful comments on an earlier draft of this post.

#gnu #gnuorg #opensource

bliter@diaspora-fr.org

Nom de code - #Linux [Ultra HD 4K] 2001 [VF] - #TVArchive

top
https://www.youtube.com/watch?v=UfN_uUsFGaM

Nom de Code : Linux (anglais : The Code, titre de la version originale) est un #film #documentaire de #HannuPuttonen datant de 2002 qui retrace l' #histoire des #mouvements #GNU, #Linux, #opensource et des #logicielslibres et dans lequel plusieurs personnalités de l' #informatique sont interviewées, comme #LinusTorvalds, #AlanCox, #RichardStallman, Theodore Ts'o ou Eric S. Raymond.

Le film s'achève par cette assertion : "Ce serait peut-être l'une des plus grandes opportunités manquées de notre époque si le #logiciel-libre ne libérait rien d'autre que du code."

https://invidious.fdn.fr/watch?v=UfN_uUsFGaM
#gnu-linux #internet #ordinateur #politique

danie10@squeet.me

The origins of Bitwarden and how it is fending off the tech giants

Phone screen showed blurred text, but has two pop up windows one stating Text with a string of random letters like a password, and the other states deletion date 7 days. To the left is a instant chat bubble showing a conversation snippet saying "what's the password for the company Twitter account?" and the reply is "Hang on let me send you a password link, with the response being a bitwarden link.
Kyle Spearrin had never developed a mobile app or browser extension when he started building Bitwarden as a fun side project in 2015.

Nearly nine years later, Spearrin’s humble attempt at a free, open-source password manager has become one of the most popular ways to keep online accounts secure. Wirecutter, PCWorld, PCMag, and others say it’s the best free password manager, and CNet even calls it the best password manager overall. Bitwarden says it now has 8.5 million users, and it uses that audience to grow its enterprise subscription business. Bitwarden’s business side has tens of thousands of customers and helped fuel nearly 100% revenue growth last year, and the company now has roughly 200 employees.

“We really value that everyone should have access to a full-featured password management tool,” Spearrin says.

Very humble beginnings, and of course we’ve seen why tech giants like Apple, Google, etc embraced passkeys with such enthusiasm, as this would lock users into their ecosystem. Try using your Apple passkeys when migrating to say Android, or vice versa.

“If you are locked in with one vendor, you have a risk of being locked out of your account,” Magdanurov says. “Something can happen. Somebody can hack your account. Or their automated tools that block your account for violations can be triggered for some reason.”

So, whilst it is true many tech giants have been improving their offerings around password management, Bitwarden is managing to stay a step or two ahead of them with newer innovative features (some I did not even know about). And of course, one can self-host Bitwarden too.

A lot can also be learnt from buy-outs like LastPass went through. The ownership does dictate the philosophy, or changes to it.

Although I’m eyeing out Proton Pass’ rapid developments (I’m a paying Proton user) I’m still a paid tier user of Bitwarden as right now they’re doing their things right, and what I really like is that their paid tier is not expensive at all. I just feel that I am supporting what they do.

See fastcompany.com/91117788/how-b…
#Blog, #bitwarden, #opensource, #passwords, #security, #technology

vertruc@diaspora-fr.org

MIRLO 🐦 une alternative à Bandcamp libre et collective 🎶

Mirlo: a free and collective alternative to Bandcamp

https://mirlo.space/

Mirlo logo

🇫🇷 Un magasin de musique en ligne libre et collectif fait son apparition ! ✊🎶 Leur objectif: proposer un outil simple, efficace et adapté aux artistes qui veulent vendre leur musique en ligne. Le site fonctionne déjà et les futures mises à jour risquent de vous plaire: 🤝 fédération, 👕 vente de merch et CD, 💸 rémunération récurrente ou ponctuelle, 👔 gestion d'artistes et labels... le tout porté par des valeurs anticapitaliste et anarchistes ! Ses 3 fondateurs, vétérans dans ce domaine (Ampled, FunMusicPlace) sont actuellement à la recherche de financements *pour l'année 2024... *Donnez-leur un coup de main !
⏩ Partagez ce post, faites un tour sur leur site et sur leur kickstarter, et voyez par vous-même ;)
https://www.kickstarter.com/projects/mirlo/mirlo

🇺🇸 An opensource and collective music storefront appears ! ✊🎶 Their objective: build a simple efficient and adapted tool for the artists selling their music online. The website is already up and running but future updates might interest you even more: 🤝 federation, 👕 disc & merch store, 💸 recurring patronage or one-off payments, 👔 artists and label management... all brought together by anticapitalistic and anarchistic values ! Its 3 veteran founders (Ampled, FunMusicPlace) are currently seeking infrastructure funding for the rest of 2024... Help them out !
⏩ Share this post, have a look around on their website and kickstarter page, and see for yourself ;)
https://www.kickstarter.com/projects/mirlo/mirlo

#mirlo #bandcamp #layoff #layoffs #musician #musicien #collective #collectif #music #musique #musica #distribution #distributionplatform #corporate #startup #jeunepousse #bigtech #share #support #kickstarter #crowdfunding #crowdfunder #financementparticipatif #opensource #libre #anarchist #anarchiste #anarchy #anarchie #anticapitaliste #anticapitalisme #anticapitalist #queer #lgbt #lgbtqia+ #lgbtqiap+ #lgbtqiap #lgbtq #lgbtqia #community #communauté #network #label #e2c #exit2community #exittocommunity #solidarity #solidarité #economy #economie #économie #ampled #new-york #newyork #funding #label #musiclabel #productivity #partage #entraide #social #internet #online #travail #work #cooperation #collaboration #ethique #ethics #culture #storefront #magasin #federated #fédéré #federation #2024 #patronage #mécénat #remuneration #funmusicplace

federatica_bot@federatica.space

2 самых популярных канала по информационной...

image

2 самых популярных канала по информационной безопасности и этичному хакингу:

🔐 infosec — редкая литература, курсы и уникальные мануалы для ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.

👨‍💻 Вакансии в ИБ — актуальные предложения от самых крупных работодателей и лидеров рынка в сфере информационной безопасности.

#lang_ru #ru #opensourcefriend #открытыйисходныйкод #opensource

grey@sysad.org

Dillo release 3.1.0

Also Dillo is still alive?? Hunh?

https://dillo-browser.github.io/latest.html
https://lobste.rs/s/drhnog/dillo_release_3_1_0

  • Add support for floating HTML elements, which involved a big redesign.
  • Add support for OpenSSL, LibreSSL and mbed TLS for HTTPS, which is now enabled by default.
  • Add a CI pipeline to build Dillo on Ubuntu, MacOS, FreeBSD and Windows (via cygwin).
  • Add automatic HTML rendering tests.
  • Improve and extend the Dillo manual.

In memory of Sebastian Geerken

#linux #gnu #gnulinux #web #html #code #softtware #opensource #freesoftware

mcv@friendica.opensocial.space

Refugee from Nerdica, Pluspora and Google+ looking to reconnect

I don't have much luck with social networks, do I? I used to be mcv@nerdica.net, but nerdica seems to be quite thoroughly dead. Database is corrupt, and nothing can be recovered.

So that means I lost all my posts, comments, contacts, followers, and my place in the Fediverse. I'm trying to cobble things together, so if you recognise me, or even if you don't, please reach out and reconnect. I used to be on #Nerdica , #pluspora and I'm even a #googleplusrefugee.

So I'm not #newhere in the Fediverse, but I am new at this server. I run a #shadowrun #rpg #ttrpg campaign, occasionally post about a #boardgame I played, especially #18xx #railroad games, but also many others. I'm a #programmer , and I'm pretty sure I was also connected to a bunch of people in the #opensource #software world. I'm also interested in #tech, #science, and #computers in general.

I'm also occasionally interested in discussions of #politics, especially of the #leftwing #liberal #green and/or #libertariansocialism kind, though I'm not overly dogmatic on any of them. I #bicycle regularly, use #linux, and after all these social media servers I lost, I'm considering running my own #friendica server. I might even be nuts enough to try to write my own #fediverse software, which would probably end up much like Friendica (or #Diapora, or Google+), but not in PHP.

I'm probably forgetting a bunch of stuff, but I hope this post will help me reconstruct and reconnect what I lost.

federatica_bot@federatica.space

Food Diary App

*Food Diary App

*


Приложение Food Diary позволяет пользователям регистрировать приемы пищи, используя ввод на естественном языке, и оценивает пищевую ценность.

Функции включают регистрацию приемов пищи, анализ пищевой ценности, запрос прошлых приемов пищи, обновление записей и общение со специалистом по питанию с искусственным интеллектом.

https://github.com/ingig/FoodDiaryApp

#lang_ru #ru #opensourcefriend #открытыйисходныйкод #opensource

danie10@squeet.me

4 Tools to Share Large Files Over the Internet Securely

Tux penguin in foreground with a representation of a file manager icon behind it.
These are privacy respecting tools to consider. But what signifies as a big file? Any file that you cannot seem to send through an encrypted messaging app like Signal or Telegram’s secret chat. Ideally, it should be anything more than 1 GB.

Internxt is probably the most convenient being online, whilst an option like OninionShare is fully peer-to-peer but then does require the app to be installed at both ends (but is available for all generally used platforms).

See itsfoss.com/share-large-files-…
#Blog, #filesharing, #opensource, #privacy, #technology

federatica_bot@federatica.space

Оплачиваемая стажировка и трудоустройство без опыта...

image

Оплачиваемая стажировка и трудоустройство без опыта — ну ничего себе **😳**

Все возможно с Добровольным квалификационным экзаменом! Это бесплатный проект Правительства Москвы, где ты можешь показать свои знания по специальности, запомниться потенциальным работодателям и получить оффер в престижные компании Москвы.

Тебя ждет всего три шага:

1️⃣ Пройди тест

После регистрации на сайте ДКЭ тебе будет доступно 70 профессий по 7 направлениям. Выбирай тест по своей специальности и проверь уровень своих знаний!

2️⃣ Реши кейс

Если ты успешно сдал тест, тебя пригласят на следующий этап, где ты с другими участниками в команде будешь решать реальный кейс одного из работодателей.

3️⃣ Стань победителем

Окажись в числе лучших по общему количеству баллов за оба этапа и получи шанс попасть на оплачиваемую стажировку с дальнейшим трудоустройством.

Готов проявить себя? Регистрируйся и начинай проходить тест — https://dke.moscow

Реклама. АНО &"РАЗВИТИЕ ЧЕЛОВЕЧЕСКОГО КАПИТАЛА&", АНО &"РЧК&". ИНН 7710364647. erid: LjN8KMpyR

#lang_ru #ru #opensourcefriend #открытыйисходныйкод #opensource

danie10@squeet.me

Video Overview of the Meshtastic Radio Mobile App Interface and Settings

Teal coloured background with title in white on the left saying Meshtastic Off-Grid Comms, Using the Mobile app. To the right are two small radio devices with antennas. One is while and the other is green and back. Both have small screens on the front.
This video explores what the Android app looks like, how to use the main screens, and what various settings and menu options it has. It gives a good feel of how you’d use Meshtastic radio communications from the app to control the radio settings and to communicate. I did a previous video that dealt with a non-technical intro to what Meshtastic radio is, and this is well worth just watching first if Meshtastic is completely new to you.

Meshtastic is license-free, so anyone can use it, and has really started picking up in popularity in the last year, so much so, that stock has often not been available for a month or two at a time. It’s a really fun way to also connect to neighbours nearby, or keep in contact in the wilderness when out hiking.

Watch youtu.be/GAGOkXUlbaY
#Blog, #Meshtastic, #offgrid, #opensource, #radio, #technology

danie10@squeet.me

Nano 8.0 Command-Line Text Editor Released – Key Bindings Have Now Joined The 21st Century

As per title text
That is not the only improvement, but it is pretty significant to be able to now use CTRL-Q to quit, CTRL-C to copy, CTRL-X to cut, CTRL-V to paste, CTRL-F to search forward, CTRL-Z to undo, etc. The old key bindings (being very old) were a bit like using Morse code in modern times (I nearly said like Vim or Emacs, but luckily, I didn’t as that would be sacrilegious). You can still opt though to revert to the old key bindings if you really wish.

I do also like it being open directly to a line number with nano filename:number.

See linuxiac.com/nano-8-0-command-…
#Blog, #linux, #nano, #opensource, #technology