Self Sovereign Identity can do just fine, blockchain-less

Self Sovereign Identity can do just fine, blockchain-less

KERI, an open protocol for identifiers

Published in Dutch on Tweakers

Authentication is the big problem on the Internet. There is no portable authentication layer in the Internet protocol, like phone number portability between phone providers. This has been a problem since the beginning: how do you prove that a user or other entity is who they say they are? Authentication is also the basis for the term SSI or self sovereign identity, popular in policy documents today. How can you control your own online identity? And at least as important: how can you ensure that others do not abuse it?

Since another term became popular, namely the word “blockchain,” many were looking at the possibilities that these more or less decentralized systems could offer. It seemed an ideal component for decentralized orchestration of online identity. Yet there are drawbacks to this, perhaps the biggest of which is platform dependency which means the identifier isn’t portable and sovereign.

This had to change, thought Sam Smith, creator of KERI or Key Event Receipt Infrastructure. After first enthusiastically collaborating on a large identity project based on a blockchain, he discovered that you do not need a blockchain or other shared database for an online identity or online identifiers. Basically all you need is a secret key that underlies your entire online identity, or: a public private key infrastructure resulting in a self-certifing identifier or SCID.

Smith explains in a few words the problem his system solves: “The Internet has an authentication problem and KERI solves that. There is no authentication layer in the Internet protocol so additional systems are needed to provide authentication. That’s needed for things like making payments, registering somewhere or the domain name system DNS. To know if a domain is really what it says it is, we use certificates but those have fundamental flaws. What you need is a trust layer that can trust all the applications on top of it. That requires a protocol that is not tied to any given trusted entity, trusted platform or trusted infrastructure. It must be zero-trust.”

Before we go deeper into KERI and how it works, it’s good to briefly review the basics of KERI and so much else on the Internet, namely the use of public and secret keys and the application of hashing techniques.

Public key infrastructure PKI

The basis of KERI is to manage a secret key. From that key, all kinds of other keys can be generated. That always seemed like an impossible task for “ordinary” people, so all kinds of systems were devised to circumvent that. However, since the advent of bitcoin and the whole crypto currency boom, people have become increasingly used to dealing with secret keys. More and more systems have also been devised to practically deal with them. According to Smith, this means that most people should be able to manage a secret key themselves without problems in order to manage their own key event log file or KEL, the basis of KERI. A KEL keeps track of changes of secret and derived keys and produces a verifiable data strcuture. In addition, key rotation also solves the problem of your secret key becoming known for any reason. 

That all sounds complicated to the outsider. Smith refutes that. “In fact, it’s relatively simple,” he says. “Simple enough to go all the way to the basics of the system and not even have to dive into very complex stuff. A little basic knowledge of cryptography, software, algorithms and consensus mechanisms is enough.” 

In essence, this amounts to relatively old technology: hashes and digital signatures. 

I speak to Smith about his work via Google Meet on Ascension Day 2022. Nine o’clock in the evening here, one o’clock in the afternoon there. “How much time do we have?” he asks. “Somewhere between half an hour and three-quarters of an hour,” I say. It turned into well over an hour. It’s fascinating stuff, and the little game of signing each other’s public keys all the time and thereby proving that you are who you are can be carried on endlessly. There are also an awful lot of interesting side paths to discuss that are of interest. Like how to make it easier to manage secret keys in the future. But also how you can effortlessly give others within a company or institution responsibility over specific matters with just a digital signature from someone who has the right to make such a decision. Or, of course, simply proving that you are indeed eighteen years of age or older when buying alcohol without giving away anything other than the assurance to the retailer that you are indeed over eighteen, and nothing else. 

What preceded the conception of KERI?

“In late 2014, I had some colleagues who were part of a startup that wanted to build a reputation system based on decentralized technology. It was called The World Table and they believed that the internet was broken from the point of view of social networks and people commenting on websites. Trolls were a big problem and they saw an opportunity to use decentralized technology to fix those problems.”

“My colleagues thought they needed artificial intelligence for their project. One thing led to another and they asked me to look into it. I had done some pioneering work in reinforcement learning back in the 1990s, where an artificial intelligence learns from its own experiences, among other things at a university in Florida. It seemed very interesting and I left the company I was working for and joined the startup.”

“Soon I found out that for an online reputation system you need a decentralized identity system. I wrote a number of whitepapers , but before we could get started, we ran out of money. In those white papers I did describe the idea of self-certifying identifiers and that idea stuck.”

“Not much later I got in touch with Evernym, an identity space company and they had just made the move to decentralized identity. They came across my white paper and they hired me. I wrote a white paper Identity Systems Essentials which was the basic design that later became Sovrin. Evernym did an initial coin offering or ICO and started the open source organization Sovrin.”

“The idea of Sovrin is that you can build an interoperable identity system with a public blockchain or public ledger. Only then everyone has to use the same ledger and that’s the big stumbling block: you get ledger wars from it.” 

Briefly, he explains that it is certainly possible to connect different blockchains and the like via bridges, rollups, atomic swaps and other systems, but in his view that is stitching things together. A blockchain is very good for tracking and performing transactions and ordering them globally over time. This helps to prevent that something can be spent twice, the well-known double spending problem, but this ordering is not necessary for an identifier, because it refers to an identity. Smith went in search of a solution that did not require a blockchain or other shared database.

“In our idea, you manage secret keys that control an identity, or more precisely, an identifier. That led us to design a protocol and not a platform. We named that protocol KERI. One of the main requirements for the protocol was that it had to be able to work anywhere on the Internet. It also had to be namespace agnostic and ledger agnostic. The whole thing had to provide a verifiable data structure that is also portable. In other words, it doesn’t matter where you host the file and yet anyone can verify the public keys and key state. So you get a truly decentralized identifier system, without shared management. The essential property we call “end-verifiability” means that the key state can be verified by anyone, anywhere, and any time. This is the ultimate most granular form of zero-trust.”

How does KERI actually work?

In essence, KERI is a type of decentralized public key infrastructure or PKI. The owner of a public key or identifier can prove that he is in possession of the corresponding secret key where the key event logs or KELs are the basis of the system. In this way, someone can prove ownership of a self-certifying identifier or SCID. A SCID is an identifier that can be proven using cryptography to be the only identifier linked to a specific public key, without the need for a blockchain or other database structure.

When modifying keys, someone can prove control over the new public keys without having to rely on anyone else. Anyone can keep their own key event log, but others can also keep and sign it. Such a witness is an additional facility to prove cheating if someone cheats. 

To avoid problems around exposure of secret keys, such as through theft, carelessness, brute force attacks and the like, pre-rotation, or a way to protect the next secret key, is used. New keys can be generated in the private wallet for future use. 

A KERI identifier can have multiple types of events added to it via its log, the KEL, that involves different PKIs . Nevertheless, at any given time only one secret key is active as controller of the KEL. That being active of only one secret key, can be done by pre-rotation. Such a thing would not be possible on a blockchain system, since that would involve a transaction. 

In pre-rotation, a controller digitally signs the next public key and adds that proof of signing to the key event log. That way, in the future, it is only possible to use exactly that announced key and no other. This key is not in the log as a public key, but as a hash, so that future public keys are not readable before they are used.

Via: https://www.windley.com/archives/2020/09/the_architecture_of_identity_systems.shtml

Example : Is the secret key of public key A compromised? Get the next public key B from your wallet and that way you use the next secret key for signing future documents. Future secret keys don’t have to be in the same place as the active device you’re currently using, or as Smith puts it, you can store all that in a safe in a mountain with an army of navy seals out front.

Because KERI identifiers and event logs are self-certifying, they can use any system as a witness, as long as the system in question can store and return data. So other key event logs, but also blockchains, traditional databases, file systems, etc. In this way, key event logs form signed hashed data structures that provide a verifiable key state.

Because everything relies on cryptographic links, KERI identifiers can be linked together in such a way that it is always provable who or what has ever verified an identifier or what permissions have been granted to an identifier. In this way, a government can be a reliable source for verifying an identity and a company can identify a person as authorized to sign. Or, conversely, revoke that authority. In this way it is possible to create an entire hierarchy of identifiers.

This works with the functions that KERI adds to identifiers, namely: inception, pre-rotation, rotation, delegation, and revocation. In addition, there are numerous derived and ancillary functions. Think of functions such as signing, committing (of data) that remain verifiable up to the source of the trust: the public-secret key pairs that the controller generated in his vault in his mountain, without having to trust intermediate parties.

So how does that work with, say, something like a personal identity, how do I prove it?

“Very simply, you create a verifiable link between a natural person and a cryptonymous identifier.”

And what does such a cryptonoumos identifier mean?

“Which is derived from your public-secret key pair in the beginning, but that identifier remains. So, you can rotate your keys, but you keep the same identifier. The key event log says, ‘here are the keys that control the identifier and no one else can create them.’ Then a reputable entity, the government for example, says, ‘I’m going to challenge you, natural person, to prove to me that you are the custodian of this identifier’. You can prove that by signing something with the secret key. I can verify that your signature can only come from the secret key if I have your public key, which proves that you have control over it. Then I, the government agency, will issue a certificate that says, “this is signed by the government’s crypto-anonymous identifier that is universally published so that everyone can verify that it is correct. Because the public identifier that you, the natural person with this name and personally identifiable information, is the controller of this crypto-anonymous identifier, this person is the controller of the secret keys.”

“We prefer to call it ‘autonomic identifier’ rather than crypto-anonymous, because that’s a bit easier to pronounce and better conveys the idea of self-governance. Self-governing because it is controlled by the custodian of the secret keys, not another entity. Yet for the purpose of determining the identity of you as a natural person, the reputable entity has made the connection with your identifier. This allows us to say, ‘okay, officially this identifier belongs to you, natural person’.  So with that certificate, if you’re willing to show it, you can prove who you are. Or you can apply it in a privacy-protecting way in that you can prove through cryptographic links that you are, for example, old enough to buy liquor, but without having to give up anything about yourself. GLEIF does this not for natural persons, but for companies and institutions. And that makes pretty good sense: they sign a lot all day long.”

“Many people who know a lot about blockchains say: it can’t be done! Now my challenge is to explain that it can. So in the meantime, that’s gotten through to GLEIF , the Global Legal Entity Identifier Foundation, sort of the W3C for identifiers.”

How can I practically shape all that as an end user? What do I need?

“You need a device that can do cryptography, so something like a cell phone or other device with similar capabilities. In those devices there’s a secure enclave or something, that’s not such a problem.”

And what if I lose the lot? Backup?

“You need a backup of the secret keys, but that’s not a problem these days. A password manager, a hard copy backup, or mechanisms to share secrets. Since the advent of Bitcoin and many wallets, the options around backups have gotten better and better. But the importance of KERI is to be a good protocol, not to build a good user interface. That’s what others do.”

And what about people who can’t or no longer operate these kinds of systems themselves? 

“Now that’s the beauty of delegation: if you build delegation into identity systems, then you can prove that someone is a guardian; the whole chain is verifiable.”

“But it’s interesting, you’re talking about usability now. That’s something that does get solved. The problem is: if you sacrifice security for usability, you lose trust.”

The latter, trust, is one of the Internet’s biggest problems, according to Smith: trust cannot be moved over the Internet.

“Web 3.0 is intended to increase trust,” he continues. “But right now, that’s the last thing it does. Everyone thinks it has to be based on blockchains, but that’s not true. It doesn’t have to be based on a shared ledger; instead, it has to be based on a verifiable data structure. One type of verifiable data structure is a blockchain, but I also have one: a verifiable data tree, not just a chain. So in my view, a verifiable data tree is the solution, not a shared blockchain.”

“Why is blockchain not the solution? Because you have to deal with shared governance (governance), and the latter is always a weak point. It makes for high costs and low throughput. Look at Ethereum, right now the transaction costs are bizarre! Now they’re all doing arts and crafts there to get those down with rollups. And then all these complicated systems are being implemented to protect privacy. Just try to manage zero knowledge proofs…”

The latter also has a lot to do with legal issues, such as when buying products and problems with them. Smith explains that such issues call for receipts, for a receipt. “It’s not called key event receipt infrastructure for nothing,” he says. “The basic idea is that agreements are made with receipts that are verifiable. That way, both parties have a legal recourse.”

So it all comes across as quite complex….

“Yet self sovereign identity is relatively simple. The problem is that it comes across as complex. People hear the word ‘blockchain’ and they shut down because they think it’s a big black box. With KERI, I just explained everything down to the fundamentals. Those fundamentals require a little bit of knowledge about cryptography and a little bit about software and a little bit about consensus algorithms, but it’s not remotely as complex as most blockchain systems that are supposed to provide SSI.”

Smith gets up to speed and pulls out NFTs. He mentions the complicated terms of use for the platforms you can get the NFTs from, but ultimately you can get thrown off a platform just like that. “You basically rent an NFT from such a platform, you don’t own anything. You simply don’t need a blockchain for an NFT. It’s just a chain of custody. It’s not much different than the key state. If you have an identifier and you embed it in a hash of a self certified identifier with a key state, then I can verify the origin of the NFT.  After all, an NFT is nothing but an identifier. If I want to transfer ownership to someone else, I simply do a key rotation.”

And the privacy issue?

Authenticity is Smith’s number one most important component. Confidentiality follows immediately and privacy is the least important of the three in his eyes. He calls this PAC: Privacy, Authenticity and Confidentiality. You can have two of the three at a high level. According to Smith, privacy is always the weak point. It’s always difficult to keep protecting that. If you want to jump through too many hoops to do that, you make it impossible. “To protect my privacy now, that’s not that hard. To protect that information in ten years’ time is very difficult. That’s why I structurally choose strong authenticity and slightly less strong privacy protection. When I deal with people, I already lose a bit of privacy. So if I want to protect that forever, I have to go sit on an island, alone. What matters is that I don’t want to be abused by third parties. If I engage with a party, I don’t want a third party to be able to misuse my data. I share information with a party in order to do an activity together, for that party to do that, they need to know certain things about me. I have to be able to trust them and they have to trust me, very specifically for the transaction we are entering into. Now that relationship is structurally abused by third parties. Parties who don’t need to know anything about our relationship. Confidentiality is good enough to prevent third party exploitation. 

The point is to be used, not to use the latest, coolest technique that is also very difficult to implement properly. That’s the principle of KERI: solve a problem in the real world with the minimum techniques needed. The dumber the technology, but still sufficient to solve the problem, the better. ‘Dumb technology’ is freely available, understandable to everyone and easy to implement. In our case: just hashes and digital signature.

With many thanks to Henk van Cann for his expertise and invaluable help in writing this article.

USB-C en laptopladen

USB-C en laptopladen

Ondanks dat USB-C al een tijdje bestaat, blijft het een groot moeras als het gaat om duidelijkheid. Ik kocht inmiddels weer bijna een jaar geleden mijn nieuwe laptop (zie review op Tweakers) en was blij dat ik eindelijk van mijn laadkabels af zou kunnen, want: USB-C-laden! Geen gedoe meer, toch?

Nee, helaas. Het bleek dat een Intel H-processor (in dit geval een Core i7 11370h) minimaal 90-watt aan laadvermogen vereist via USB-C. Wist ik niet, wist niemand niet. Staat nergens. Ik kan het ook niet meer terugvinden trouwens, alleen de tekst van mijn heen-en-weer-mailen met een Tweakers-redacteur over het aangeven van minimale USB-C-power-output van monitoren vlak nadat ik had uitgevonden waarom USB-C-laden niet werkt met een 65-watt Anker-lader en wel met een 95-watt HP-lader (je moet ook altijd alles annoteren blijkt maar weer).

Met die kennis in het achterhoofd kocht ik een Rebelcell Power Rebel 48K Powerbank. Capaciteit: maximaal 153.6Wh. Mooi dacht ik. Maar nee, het blijkt anders te liggen: de USB-C-output is maximaal 20,3 volt bij 3 ampère, ofwel: 60,9 watt. Te weinig, en inderdaad: laden als de laptop aanstaat werkt niet.

Gelukkig kwam ik er vandaag achter dat het wel werkt als de laptop in stand-by of uit staat. Schijnt ook bij nog lagere wattages te werken, dus dat is goed om in het achterhoofd te houden.

STACK and file managers

STACK and file managers

Some time ago I moved from Dropbox to STACK, a file hosting service from Dutch hosting provider TransIP. For a long time I used the two services side by side, meaning to leave Dropbox at a certain point. But before I really took the step, a few years passed because re-syncing half a terabyte takes quite some effort. Eventually Dropbox made it easy a few years ago when it stopped supporting encrypted ext4 filesystems (which it supports again, but that was too late).

I’ve got to admit some collaboration options are not ideal on STACK. You can’t easily share a directory with someone else and collaborate in that directory. Others would have to download and upload files via a web browser to alter files. It works, but it is not ideal. Many request this as an option, and apparently it is native to OwnCloud, on which STACK is based.

On the other hand it supports WebDAV and sftp which gives it a wide range of possibilities. And 2FA, of course. So overall I’m pretty happy with the service. Only it lacked those nice icons on Ubuntu telling you if a file is actually synced or not…

Add icons in GNOME Files (or other file managers)

It turns out there’s more in the STACK repositories than they tell you when you navigate to the Linux installation page. Just a simple

apt search stack-client

tells you there’s an integration for Nautilus (GNOME Files), Caja (Mate), Dolphin (KDE) and Nemo (Cinnamon/Mint).

This gives you those nice little notification icons at the bottom right of the files or directories which are synced to your STACK.

Using a digital camera ( Canon) as webcam – Ask Ubuntu

Source: Using a digital camera ( Canon) as webcam – Ask Ubuntu

Few additions to the original article (I used the beta of Ubuntu 20.04, but it should work on older versions):
– after installing sudo apt install gphoto2 v4l2loopback-utils when your camera mounts, unmount it (in your normal Ubuntu setup you can unmount the camera using right mouse button in file explorer Nautilus when clicking on the camera in the bar on the left)
– after sudo modprobe v4l2loopback you create a video device with the camera, but when you don’t have another active cam (like the internal webcam of your laptop) you have to set the device to /video0 instead of /video1 or /video2:
gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc ! decodebin3 name=dec ! queue ! videoconvert ! v4l2sink device=/dev/video1

When you want to use the camera for tethering in applications like Darktable, you should be able to use the camera without any of the additional applications as shown above, but you must make sure your camera is unmounted as well!

Make sure you use the right setting, like the active camera view or the video setting on the camera. Toy around with those settings on the camera when it doesn’t work.

Online video-conferencingtools voor thuiswerkers

Hoe, wat, etiquette en hoe neem je dat nou makkelijk op?

Voor velen is een dagje thuiswerken niets nieuws, maar hoe zit het nou als je huis ineens je kantoor is? Hoe werk je dan samen? Even snel iets met iemand overleggen gaat prima met een berichtendienst of een telefoontje. Videocalls zijn ook best handig, zeker voor overleg met meerdere mensen omdat je elkaar kunt zien waardoor hopelijk van die rare situaties met telefonisch overleg met meerdere mensen uitblijven. Misschien is het sowieso het moment om je af te gaan vragen of je eigenlijk wel moet vergaderen. Maar vergaderen of niet, anderen spreken is soms best praktisch en fijn. In mijn ogen zijn een paar zaken van belang in videoconferentieland:

Het moet altijd overal werken

Kies een videodienst die bij iedereen altijd werkt. Iets waar anderen geen account voor nodig hebben (misschien ook jijzelf niet). Iets waarbij je liever ook geen apps hoeft te installeren op je telefoon, maar gewoon iets dat werkt. Je stuurt iemand een link en gaan met die banaan. Of die persoon nou een oudere Android-telefoon heeft of de nieuwste en duurste iPhone of misschien wel een telefoon die helemaal iets anders als besturingssysteem heeft: het moet werken in een browser. Elke browser, of het nou Firefox, Google Chrome, Safari of Internet Explorer (bestaat dat nog?) is, ondersteunt al jaren HTML5. Wat dat is, is niet zo belangrijk, het betekent: videocamera’s en microfoons kunnen door de browser zelf gebruikt worden zonder speciale plugins.

Dit betekent dat er best een paar bekende diensten (in mijn ogen) afvallen. Skype for Business moet sowieso weg. Dat mag niemand nog gebruiken. Verder zijn er allerlei diensten die vast heel veel kunnen en door grote bedrijven gebruikt worden, maar dat werkt vaak heel goed binnen die bedrijven, niet voor de adhoc-teleconferencer. Skype kan op zich nog wel omdat iedereen daar misschien wel een account voor heeft, maar Zoom wordt al lastiger (zeker ook omdat er nogal wat privacybezwaren aan kunnen kleven).

Diensten

Ik ga het liefst voor opensourcediensten, maar ook enkele commerciële diensten doen het leuk.

Een paar diensten, volgorde betekent niet dat ik ze daarom beter of slecht vind:

  • https://jitsi.org/ Open source en zonder account bruikbaar, ook voor de persoon die het opzet. Voor zover mij bekend geen restrictie op aantal deelnemers. Nadeel: op je telefoon heb je wel een app nodig. Gratis.
    Surfnet, backbone van het (universitair) onderwijs in Nederland heeft ook een jitsi-dienst draaien (ik neem aan via hun eigen servers). Wellicht handig: Surf Videobel-pilot (werkt alleen voor medewerkers uni’s en hogescholen) of VC4ALL waar je verschillende (Nederlandse) servers kunt kiezen.
  • https://callaba.io/ Geen account nodig, werkt vanuit elke moderne browser. Ik weet niet hoeveel mensen er maximaal mee kunnen doen, vermoedelijk genoeg. Gratis.
  • https://whereby.com/ Geen account nodig om mee te doen aan een call, maar wel om er een op te zetten. Werkt op elke browser en gratis met 4 gebruikers tegelijk. Voor tot en met 12 gebruikers heb je een betaald account nodig van 9,99 dollar per maand. 
  • https://hubs.mozilla.com/ is een vreemde eend in de bijt, maar wel leuk, zeker als je een VR-bril hebt. Soort van in-browser Second Life of Minecraft. Je kúnt ook je video delen. Geen account nodig.
  • https://meet-app.io/ is een opensource-omgeving van het Nederlands-Duitse Kopano, ook op eigen servers te installeren, gratis versie max. tien mensen tegelijk. Daarnaast is er een tijdelijke server met meer opties: https://splash.meet-app.io/ zie voor meer info onderaan die pagina

Andere diensten:

  • https://zoom.us/ veel opties, login en apart programma vereist, twijfel over privacy. Werkt niet in de browser, maar voor alle grote platforms is een app (Windows, macOs, Linux, iOS en Android). Gratis versie tot max. 100 gebruikers, maar na 40 minuten stopt je call (misschien ook wel goed ;) ). Mogelijkheid tot inbellen met een telefoonnummer (nooit gedaan, werkt vast). Betaalde versie tot max. 500 gebruikers, geen limiet. Hoe dat eruit ziet, geen idee. Je kunt heel veel met Zoom (misschien iets te veel) en geeft de host veel macht. Als je Zoom gebruikt via bijvoorbeeld een universiteit, dan kan het zijn dat die mee kan kijken, afhankelijk van de instellingen
    Inmiddels is er veel twijfel gerezen over de privacy van Zoom, maar wat spookverhalen zijn en wat echt, is de vraag. Wellicht links laten liggen
  • https://web.skype.com de oudste en vermoedelijk bekendste, bestaat al sinds 2003, velen hebben hier wel een accountje van rondslingeren, je kunt er ook ‘gewoon’ mee bellen. Helaas te lang niet meegegaan met de tijd, al is het de huidige eigenaar Microsoft al een tijdje bezig met verbeteringen doorvoeren. Ook via web te gebruiken, login vereist. Voor zover mij bekend privacy-technisch okay, behalve dat je een Microsoft-account nodig hebt

Er zijn veel meer diensten, maar daar heb ik geen of slechte ervaring mee. 

Video-etiquette

Als de mussen van het dak vallen, verwacht niemand dat je in je pak voor de camera gaat zitten, maar kleed je wel een beetje aan. Leuk dat thuiswerken, maar constant in je pyama zitten, werkt op den duur op je zenuwen. Bij een videocall merken anderen dat ook. 

En verder:

  • Test je systeem eerst! Desnoods eerst met jezelf (bv. laptop + telefoon, let op rondzingen)
  • Gebruik een koptelefoon (tenzij je 100 procent zeker weet dat het systeem ervoor zorgt dat het niet gaat rondzingen, je geen echo’s krijgt, etc. Veel systemen zouden dat automatisch moeten voorkomen, maar dat is niet altijd zo)
  • Zet je microfoon op mute als je niks zegt! (okay, als alles goed ingesteld is, zou dit niet hoeven, maar helaas vaak toch wel)
  • Maak een agenda
  • Vraag iedereen zijn of haar vraag/inbreng voor te bereiden
  • Als iemand niet kan verbinden, dan is dat maar zo. Later kun je uitzoeken hoe dat zat (tenzij die persoon onmisbaar is, dan kun je nog 1x proberen met een andere dienst, maar als dat ook niet werkt, is er waarschijnlijk iets anders aan de hand, met de twee eerste gratis diensten maak je binnen 2 seconden een nieuwe room aan, stuur de link in zowel de videochat als per mail)
  • Neem je het op? Laat het weten!

Opname

Sommige diensten bieden de mogelijkheid een opname te maken die al dan niet elders op een server staat of op je eigen computer. Dat zijn vaak zogenaamde premium features. Toch kun je heel makkelijk zelf dit soort dingen opnemen. Het is niet moeilijk, maar vereist wel wat voorbereiding en vooral dat je het een paar keer geoefend hebt (en zeg het tegen de anderen als je opnames maakt!).

Hierover maak ik later nog een blog, maar het programma dat je daarvoor kunt gebruiken is bijvoorbeeld:

OBS Studio: https://obsproject.com/

Open source, zeer veelzijdig en op zich duidelijk in gebruik. Je moet alleen wel van te voren wegwijs worden in de bediening om 100% zeker te zijn van dat je ook opneemt wat je op wíl nemen. Maar daarover een volgende keer meer!

Heb je andere videocallprogramma’s waarvan je zegt: die is ook heel goed!!! Of adviezen bij een van de genoemde programma’s? Let me know in de commentaren, ik neem dat dan bij revisie mee.

PS: ik weet niet hoe alle diensten werken met betrekking tot privacy, opslag en waar de diensten hun servers hebben staan. Daar is ook een boom over op te zetten, maar ik ben bang dat veel diensten toch op zaken als AWS (Amazon) vertrouwen.

Kennisverzamelwoede

Kennisverzamelwoede

‘Gewijzigd: 26 jaar geleden’ staat achter het oudste bestand door mijzelf gecreëerd dat ik kan terugvinden. TRYOUT.BAS is op negen dagen na exact 26 jaar geleden uit mijn handen gekomen, een programmaatje in programmeertaal Basic, waarschijnlijk tekent het in 275 bytes wat lijntjes op het scherm. Daaropvolgend een verhaal uit april 1994, getikt met Word Perfect 4.2 (of 5.1, daar wil ik even vanaf zijn).

Eigenlijk kan ik alles terugvinden wat in mijn online backups staat, allemaal meegekomen via floppy’s, cd- en dvd-roms en harddiskbackups. Met behulp van een simpele zoekopdracht kan ik vrij gemakkelijk zoeken in dat verleden, in mijn archief. Datzelfde kan in mijn inmiddels vrij uitgebreide Google Docs-opslag en de historie die in deze website zelf zit. Soms duurt het even voordat iets weer bovenwater komt, maar meestal vind ik het terug.

Bronnen verzamelen en behouden

Dat is heel wat lastiger met allerlei online bronnen waarvan je denkt dat je ze wel weer even terug kunt vinden. Zelfs de historie van mijn Gmail begint steeds lastiger te worden om zaken in terug te vinden. Ik like dingen op Twitter om zo mijn leeslijst bij te houden, maar blijkbaar doe ik dat te vaak en weet ik dan niet meer hoe ik het terug moet vinden omdat het te ver terug is (of ik herken de betreffende tweet niet meer), ik denk dat ik het kan terugvinden in de historie van mijn browsers (die allen online synchroniseren), maar dan blijk ik of niet meer te weten in welk merk browser ik iets deed of ik heb in een vlaag van ‘nee ik wil niet dat Google alles van me weet’ weer eens mijn hele historie gewist (dat gaat dan om Google-accountkoppelingen natuurlijk). Om dat tegen te gaan, gebruik ik nu al weer een tijd vrij exclusief Firefox, behalve als ik offline dingen moet doen in een Google docs, wat weer alleen goed werkt in Chromium (de opensourceversie van Chrome). Je snap al: een zooitje.

De grote vraag is dus: hoe archiveer ik mijn bronnen nou eens goed? Hoe onthou ik waar ik iets belangrijks gelezen heb? Die vraag stelde ik aan het internet via Twitter en kreeg zo enkele aanwijzingen. Dingen als Trello, Workflowy, Airtable, Notion, Roam V3 en wat al niet meer. Dingen waar ik ondertussen al weer de naam van vergeten ben omdat ze in een tab openstonden, maar die inmiddels lang geleden gesloten is. Al die programma’s hebben schitterende testimonials van enthousiaste gebruikers, keurig uitgezocht op een brede groep mensen van verschillende sekse, met andere huidskleur, verschillende lengte, haardracht, kledingstijl en wat je al maar kunt verzinnen. Behalve misschien leeftijd, die blijft steken ergens onder de 35 of zo. Als er geen foto’s te zien zijn, dan zijn het guitige tekeningetjes. En eigenlijk moet overal ook heel erg samengewerkt worden.

Workflowy heeft dat overigens niet. Heel clean en op zich prettig, maar iets té clean voor mij misschien? Als laatste twee kreeg ik Notion en Roam V3 door. Notion leek me ook niet slecht en misschien zelfs wel wat ik zocht. En toch bleef ook daar iets zeuren in het achterhoofd: wat zint me hier nou niet? Is het te mooi? Misschien. Is het te uitgebreid? Mwah, dat hoef je niet te gebruiken toch? Is het te duur? Nee, niet als je eenling bent en anders is het ook nog wel te betalen met een paar dollar per maand. Is het niet Linux-friendly? Dat is het ook niet, want het is vooral web-based, dus. Ach. En Roam dan? Roam zou ‘fluide’ relaties in de database beloven waardoor het nog beter…

Het eeuwige clouddienstdilemma

Al die diensten zijn alleen allemaal in zichzelf een clouddienst. Dan gebruik ik wéér clouddienst nummer weet ik veel hoeveel en mijzelf kennende vind ik dat over een bepaalde tijd weer irritant en wil ik ze niet van mijn informatie voorzien of is er weer eens een hack. En hoe zit het als je de dienst na een tijdje misschien niet meer wil gebruiken? Hoe makkelijk migreer je de informatie naar iets anders? Aan de andere kant is dat waarschijnlijk allemaal overkomelijk als het zou spelen.

Nee, het is iets anders, bij al die applicaties moet je naar de applicatie toe integreren. Je moet van hun diensten gebruikmaken. Je kunt vaak wel andere online diensten koppelen, zoals Google Docs, Slack, en wat al niet meer (en vermoedelijk kun je al snel ook weer vise-versa bepaalde koppelingen maken), maar ik verlies de controle. En uiteindelijk is er een grote kans dat ik ook de informatie verlies.

Zotero?

Dus, nu ben ik uitgekomen bij een systeem dat andersom werkt: Zotero. Het is in essentie een databasesysteem gebaseerd op sqlite. Ik hoef het niet helemaal meer zelf in te richten door een database aan te maken met iets als Microsoft Access, LibreOffice Base of desnoods een SQL-achtige oplossing. Je kunt het als stand-alone programma downloaden, maar ook, als je dat wil, online gebruiken en synchroniseren. Als je dat niet wil, werkt het ook nog gewoon met dingen als Google Documents en LibreOffice, Word en waarschijnlijk veel meer. En vanuit alle browsers die ik heb kan ik elke site, elk artikel en elk boek gewoon opslaan in die database die ik zowel in mijn eigen online opslag beheer als in de ‘cloud’. Als ik dat laatste niet meer wil, dan verbreek ik die verbinding gewoon en heb ik toch nog al mijn gegevens.

Hoe kwam ik daar nou bij? In LibreOffice zit een bibliografiedatabase en toen ik daar ‘Extension manager’ aanklikte, kreeg ik het keurig als advies ‘als je meer wil’. Nou, zo geschiedde. We gaan het zien hoe het bevalt in de nabije toekomst.

Edit: via Twitter kreeg ik nog wel het advies voor iPhone-gebruikers om PaperShip te gebruiken om ook op je telefoon makkelijk koppelingen te kunnen maken, welke app voor Android het handigst/best is, ben ik nog niet uit, er zijn er een stuk of vier of vijf.

Yubikey-ervaringen en waar gebruik je zo’n sleutel nou eigenlijk voor?

Yubikey-ervaringen en waar gebruik je zo’n sleutel nou eigenlijk voor?

Hardwarematige sleutels om jezelf beter tegen de boze buitenwereld te beschermen: ik wilde dat wel eens proberen. Al vaker zag ik af en toe ontwikkelaars hun laptops ontgrendelen met behulp van een fysieke sleutel in een usb-poort. Dat leek me echt supervet, en passant ook heel veilig, dus dat wilde ik eigenlijk ook. Voortaan zou ik elke website en alles ontgrendelen met zo’n speciale sleutel aan mijn sleutelbos. Voor het gemak zag ik mijzelf al in een sciencefictionfilm waar je tegelijkertijd met iemand anders een sleutel moet omdraaien om vervolgens een aanval af te wenden. Een heerlijk gevoel van het heft in eigen hand maakte zich van mij meester.

Nu werd het noodzaak zo’n sleutel aan te schaffen en te gaan gebruiken. Dat eerste lukt nog wel in Nederland, al kun je helaas nog steeds niet naar een winkel gaan en er een paar fysiek naast elkaar bekijken, ze aanraken en iemand met kennis van zaken uithoren over welke nou voor jouw gebruik het handigst is. Dat deed ik dus allemaal online op de site van Yubikey. Het werd een keer versie 5 NFC.

1 sleutel is geen sleutel

Dat laatste was direct al onhandig of eigenlijk ronduit dom. Één key is in hardwaresleutelland geen key. Je hebt, afhankelijk van de dienst waarvoor je hem gebruikt, geen backup. Je kunt overigens vaak wel een andere 2fa-methode instellen bij veel websites, maar andere zaken, zoals een login op je computer, hebben daar niet zoveel aan.

Daar zit direct een groot minpunt van yubico, het bedrijf achter de sleutel, het ondoordringbare woud van opties, mogelijkheden, teksten, links en wat al niet meer om je te begeleiden. Of beter gezegd: in totale verwarring te brengen. Ten eerste staat er pas helemaal onderaan de pagina van het product dat het aangeraden wordt om minstens twee sleutels te hebben onder het kopje: ‘wat als ik mijn sleutel verlies?’. Zoiets zou mijns inziens bovenaan moeten staan bij de plek waar staat dat het allemaal supereasy is om te gebruiken. Of geef een pop-up bij de bestelplek met iets als: weet je zeker dat je 1 sleutel wil? Ten tweede wil je ook een beetje begrijpen wat je doet, maar daarover later meer.

Meer dan 1 sleutel, welke dan?

Voordat ik inga op andere zaken rond het begrijpen van je sleutel, eerst iets over meerdere sleutels. Het hangt af van je gebruik wat voor sleutels je hebben wil. Je kunt je voorstellen dat je één aan je sleutelbos hebt, maar die is vrij groot en kun je niet met goed fatsoen in je laptop of desktop laten zitten. Daarvoor wil je misschien wel een andere sleutel, namelijk een kleintje die nauwelijks uitsteekt. Je kunt zelfs, mocht je dat bezitten, vaak je hardwarewallet van je bitcoins of andere cryptovaluta gebruiken om je computer te ontgrendelen. Dat soort info is her en der wel terug te vinden, maar is niet direct logisch als je zelf nog nooit met dergelijke sleutels gewerkt hebt en/of mensen kent met meer kennis van soort zaken. Kortom, het kan dus best zijn dat het voor jou veel handiger is om een aan je sleutelbos te hebben, een usb-c-nano-versie voor in je laptop en een usb-a-nano-versie voor in je desktop.

Mijn tweede probleem was dat, toen ik de enkele sleutel in bezit had, ik in totale verwarring gebracht werd door de manier hoe de website ingericht is. Op de achterzijde van het doosje staat: ga naar yubico.com/start, waarna je een op het eerste gezicht overzichtelijk aantal tegels voorgeschoteld krijgt met de bekendste websites en drie grootste besturingssystemen. Nu werkt de sleutel redelijk out-of-the-box bij browsers en enkele programma’s, al moet je bij macOS en Linux misschien nog een extra driver installeren, maar dan werkt het gewoon. Alleen… kreeg ik een heel onveilig gevoel bij de systemen juist omdat ik geen tweede key had, maar ook omdat bleek dat je de key wel heel makkelijk kunt resetten met een app genaamd YubiKey Manager. Iets té makkelijk voor mij als beginnend gebruiker, het was reden genoeg om de sleutel verder naast mij neer te leggen er er een tijdje niet naar om te kijken.

Later kwam ik erachter dat er gewoon in de Ubuntu softwarewinkel een keurige applicatie zit: YubiKey Personalization Tool. Die tool had ik nodig om iets specifiek voor een keymanager in te stellen en die uitleg stond uiteraard… bij de keymanager zelf. Er is overigens een downloadsectie op de site, maar die is weinig intuïtief voor first time users.

Linux en de sleutel

De crux is zoals altijd: communicatie en daar is het bedrijf achter de sleutel niet heel goed in. Althans, niet voor de leek. Ik hoef echt niet álles te begrijpen en te weten, maar ik wil wel een veilig gevoel hebben met het gebruik van bepaalde zaken. Je kunt bij veel websites wel een backupcode instellen, dus als je je sleutel kwijtraakt, kun je die nog opsnorren, maar iets dat vrij logisch lijkt, zoals hoe beveilig ik admin-rechten op mijn computer, daar kom je niet heel makkelijk achter. Bij de Linux-instructies wordt je zelfs doodleuk naar een pagina doorverwezen waar je even je eigen zaakjes moet compilen. Nou ben ik niet per se bang voor dat soort dingen, maar ik krijg al beduidend minder zin, bovendien is het totaal onnodig voor basic gebruik.

Bescherm je admin

Na het ding een maand in de hoek te hebben laten verstoffen, bedacht ik dat er een zaak is waar ik me wel eens zorgen om maak: dat iemand op afstand iets op mijn computer installeert waar ik niet van gediend ben. Nou ben ik daar in eerste instantie met een Linux-systeem niet zo bang voor, toch kan het prima. Goede beveiliging: een goed sudo (super-user) wachtwoord, maar dat blijft mensenwerk. Dat kun je dus ook met een hardwaresleutel beveiligen: je kunt alleen inloggen op je account én alleen sudo-en met een sleutel die je dus fysiek moet aanraken. Nu kan niemand meer zonder die sleutel aan te raken iets installeren op afstand op mijn computers. En als de sleutel er niet inzit, kun je ook niet inloggen natuurlijk. Ineens begreep ik beter waarom die kleine keys bestaan, die laat je namelijk in je computer zitten.

Het duurde dus even, maar ineens was duidelijk wat een eerste goede usecase voor mijn hardwaresleutel was, namelijk: koop er nog twee, een nano-usb-c voor in de laptop (die poort gebruik ik vooralsnog toch niet) en een nano-usb-a-variant voor in de desktop. Zonder die sleutel aan te raken, kun je niks installeren of inloggen, maar je hoeft hem er niet constant uit te halen. Mocht je nou wel op reis gaan met je laptop, dan kun je natuurlijk gewoon je sleutel eruit halen en vanaf dat moment toch je andere sleutel aan je sleutelbos gebruiken. Op deze manier is het een stuk gebruiksvriendelijker en je bent volledig beschermd tegen aanvallen op afstand.

De nano-usb-a-variant is in mijn ogen wel beter dan de usb-c-variant, want die laatste heeft een wel heel klein aanraakoppervlak, waardoor die niet altijd direct werkt, zeker met droge handen is dat wel eens lastig.

Volgende stappen gaan zijn dat ik wil kijken welke diensten in mijn geval ook goed van een extra hardwaresleutel als tweede factor gebruik kunnen maken want, zoals eerder gezegd, er zijn heel veel mogelijkheden met de sleutel.

Ubuntu Yubikey Authentication in the Real World

Source: Ubuntu Yubikey Authentication in the Real World

Handig voor als je Ubuntu (of andere distro’s gebruikt) en de Yubikey-tutorial toch een beetje… wantrouwt.

Het is wel belangrijk om de guide van Lennart Koopmann te blijven volgen! Het lijkt een beetje alsof je na step 1 ook step 2 moet volgen op de Yubico-site, maar dat is niet het geval. De Yubico-site is inmiddels geüpdatet, maar het (lijkt) de aanbeveling te verdienen om alle stappen van Lennarts site te volgen, behalve Stap 2 in de Yubico-guide “Installing the required software”. Daarna terug naar Lennart.

Mensen vergeten, databases niet: over cookies, Facebook pixels en veel meer

Mensen vergeten, databases niet: over cookies, Facebook pixels en veel meer

Tien jaar is lang. De meeste mensen hebben echt geen idee meer wat er op deze dag tien jaar geleden gebeurde. Mijn agenda, eentje ergens in een datacentrum van Google, wel. Ik deed niets waar ik een agenda voor nodig had, het was een zaterdag. De dag ervoor had ik een overleg in vergaderruimte vier, de dag erna een feestje.

Het nieuws deze dagen gaat over Facebook, het verwijderen van je Facebook-account en een bekende Nederlander die afgelopen zondag in Zondag met Lubach opriep tot het verwijderen van je account. Daarnaast zijn er wat wereldbranden, aangewakkerd door heethoofdige Twitteraars met als stip op 1: de Amerikaanse president.

Verder verwijderen verzekeraars en andere instanties ineens en masse de gewraakte Facebook Pixel, een enkele pixel op een webpagina die bedrijven en instanties helpt met het volgen van hun gebruikers over het hele grote boze internet, behalve in China. De pixel verschaft ook een schat aan informatie aan de producent ervan: Facebook.

Een week is overigens niet zo lang. Een week geleden zat ik in de trein naar Groningen voor een hackathon rond blockchains. Een blockchain is iets met Bitcoin, maar in het geval van de hackathon ging het vooral over alle afgeleiden. Je kon er niet betalen met bitcoin, dat was misschien een beetje jammer. Die digitale munt volgt overigens ook goed, net als de Facebook pixel of Google Analytics, zelfs zo goed dat de munt mogelijk niet compatibel zou zijn met de aanstaande Europese privacyverordening: de Algemene Verordening Gegevensbescherming of GDPR (General Data Protection Regulation).

Wat hebben al deze zaken met elkaar gemeen? Heel veel: het volgen van personen en het schenden van privacy. Het klinkt allemaal heel complex, maar het is niet alsof het prompt voor onze neus staat. We zijn alleen wat langzaam in het herkennen van negatieve gevolgen van privacyschending.

Dat laatste is niet zo gek: tien jaar is lang, voor een kind is tien jaar iets wat oneindig lijkt. Voor een 72-jarige is het wellicht kort. Een kwestie van perspectief.

Het is ook niet zo dat privacy, en vooral het volgen en alles bijhouden over mensen zonder dat zij zich direct bewust zijn wat er gevolgd wordt, niet al heel lang op de radar staat. Het staat er al sinds het begin van internet, maar toen was dat alleen nog voor nerds, vonden mensen toen.

Mijn persoonlijke ergernis ging in het verleden overigens vooral over flashy advertenties en dat zorgde voor het installeren van adblockers, en passant zorgde dat voor extra veiligheid tijdens het surfen. Dat was vermoedelijk ergens in 2002 ontdekte ik een kleine twee jaar terug toen een speciaal soort blocker uitkwam: een adblocker die alle advertenties en andere zaken op internet blokkeert die zich niet aan bepaalde regels houden. In de tussentijd heb ik slechts enkele keren nog een advertentie gezien. Bijzonder interessant.

De waarschuwingen zijn ook al jaren niet van de lucht, en toch doen we elke keer weer alsof het ons verbaast: diensten die gratis zijn, zijn niet gratis. Zolang niemand in de broncode mee kan kijken, weet je niet of er iets niet in de haak is. Zo simpel ligt het al heel lang. Daar is nog wel wat nuance bij aan te brengen, maar dan zou ik nu een boek moeten schrijven. Dat red ik niet.

Toch wil ieder bedrijf, iedere instelling en zelfs veel particuliere webgebruikers weten wat er op hun websites of met hun apps gebeurt. Dat volgen kan makkelijk: er zijn zat gratis diensten die dat aanbieden. Maar de meesten geven ook steeds een stukje informatie weg aan iets buiten de basisdienst. Als een site advertenties gebruikt is de mogelijkheid dat er nog meer data weglekken naar steeds onbekendere en onduidelijkere diensten.

Een willekeurige verzekeraar, die overigens sinds vandaag geen Facebook Pixel meer plaatst

Laten we het probleem eerst kleiner maken: overheidswebsites en alle sites die te maken hebben met diensten rond ons als mens, zoals verzekeraars en nutsbedrijven, hebben niets van doen met advertenties op hun site. Ook zijn er opensource trackers die op eigen platforms te installeren zijn, zonder dat er data met andere partijen gedeeld hoeven worden.

Kort gezegd: je mag verwachten dat het Privacy Badger-tekentje (of Ghostery of welke blocker je dan ook gebruikt) geen rode cijfertjes laat zien bij gebruik van de betreffende site. Lastiger te controleren, maar dat zou ook moeten gelden voor apps op telefoons van dergelijke instanties.

En ooit, hopelijk in de toekomst, komt er een tijd waarin we wel over onze eigen data kunnen beschikken, decentraal opgeslagen zonder dat één persoon, bedrijf of instantie daar iets mee kan, tenzij jij dat wil.

Tot die tijd blijft het waarschijnlijk dweilen met de kraan open.

Ps, dan kom je er dus achter dat een WordPress plugin genaamd JetPack ook steeds weer zaken aanpast, waardoor mijn eigen site ook ineens weer Twitter, Facebook en andere trackers heeft. Hoe dat nu weer te fixen: daar moet ik weer even induiken.

Pps, embedden van bepaalde zaken als video’s via bijvoorbeeld YouTube kan ook via een Do Not Track-functie, bij YouTube wordt de link dan: youtube-nocookie.com