1312 Blogs

Reader

Read the latest posts from 1312 Blogs.

from kalvin0x58c

Salam sejahtera, papa.

Saya ingin berkongsi sesuatu yang penting dan serius. Ini bukan niat untuk menyalahkan, tetapi untuk kejelasan dan mencari jalan penyelesaian.

Telah bertahun-tahun, keluarga kita—terutamanya Ibu dan saya—telah bergelut dan memerlukan bantuan, termasuk perihal rumah yang selesa, bil air/elektrik, dan pembahagian harta yang adil. Kami telah mencari sokongan daripada papa, tetapi keperluan ini sering tidak dipenuhi.

Apabila kami nyatakan kesukaran, papa selalu merasakan diri papa adalah mangsa keadaan dan mengatakan kami yang perlu dapatkan bantuan.

Saya telah terbaca mengenai tanda-tanda penyakit kronik yang memerlukan perhatian segera dan juga corak tingkah laku yang dikenali sebagai penderaan narsistik (narcissistic abuse). Corak ini sungguh merugikan dan melukakan keluarga kita, dan ia adalah nyata.

Saya tidak meminta untuk dilahirkan, tetapi papa yang membuat keputusan itu. Kini, papa perlu memutuskan apa tindakan papa seterusnya untuk kesihatan diri dan kebaikan serta keharmonian keluarga ini.

Kami perlukan kerjasama dan kesedaran, bukan penafian.

Salam sejahtera.

 
Read more...

from kalvin0x58c

Encik Fahmi, the ministry of communication, they said

Are we moving forward towards a sovereign digital nation, or are we regressing to the Stone Age where communication is done via smoke signals and carrier pigeons?

Recently, the public discourse regarding the government’s proposal—specifically the narrative driven by the Minister of Communications, Mr Fahmi Fadzil—to ban social media usage for those under 16 years old has become increasingly critical. The justification often revolves around safety: protecting the youth from sexual predators, cyberbullying, and negative influences.

However, as an IT student and a digital rights activist, I do not see this as a safety measure. I see it as a “shortcut” to mask a systemic failure in managing Malaysia's internet ecosystem.

Web 1.0 vs Web 2.0: Failing to Understand Digital Evolution

To understand why this proposed ban is problematic, we need to return to the fundamentals of internet technology that I learnt in my lectures.

The authorities seem to be stuck in a Web 1.0 mentality. Web 1.0 was the “read-only” era, where the internet functioned like a television or a newspaper—information was sent one-way from the provider to the user. If you didn't like what was on, you turned off the TV. Simple.

But we are now living in the era of Web 2.0 and moving towards Web 3.0. This is the “read-write” web. It is a two-way street. Social media is not just a place to watch dance videos; it is critical infrastructure for communication, collaboration, and identity building.

For teenagers aged 13 to 16 today, social media is where they:

  • Build portfolios for art or coding.
  • Learn about the outside world through educational content.
  • Connect with niche communities that share their specific interests.

Cutting off this access via a “total ban” means we are severing their lifeline to learning and social development. We are forcing them to be passive consumers (Web 1.0) in a world that demands active interaction.

Blaming the Victim to Cover Systemic Potholes

The narrative often peddled is: “Social media is a dangerous place, so let’s not let the kids in.”

This is a classic form of victim-blaming. If a road is dangerous because there are many drunk drivers and potholes, do we ban pedestrians from using the road? No. We catch the drunk drivers and we resurface the road.

In the context of the Malaysian cyber landscape, those “potholes” are systemic failures:

  1. Weak Enforcement: Why are sexual predators and scammers still roaming free on these platforms?
  2. Lack of Digital Literacy Education: Why do we prefer fear-mongering over teaching users how to identify danger?
  3. Fragile Data Sovereignty: Why is our personal data so easily leaked that scammers can contact us with ease?

The act of censoring an entire demographic (under-16s) is an easy way for the government to wash its hands of the problem. It gives the illusion that “something is being done,” whilst the root causes—cybercrime and enforcement failure—remain completely untouched.

A Neurodiverse Perspective: The Internet as a Lifeline

One aspect often overlooked by policymakers is the neurodiverse community. As an autistic person, I understand that face-to-face communication can sometimes be incredibly draining and fraught with invisible social hurdles.

For many autistic teenagers, the internet and social media are spaces where the playing field is levelled. Here, we can communicate without the pressure of maintaining eye contact or decoding complex body language. We can find communities that accept us as we are.

Banning social media for this group is not just “reducing screen time”; it is a form of social isolation. It shuts the door on the only way some of us can comfortably interact with the outside world. Has Mr Fahmi considered this psychological impact, or is this decision made entirely based on a neurotypical framework?

The “Creep” Label and Ad Hominem Attacks

What is even more disheartening is that when we try to debate this issue rationally—discussing digital rights, freedom of speech, and system failures—we are often attacked personally.

I myself have been accused of various unsavoury titles, such as being a “creep,” simply for defending a free internet. When intellectual arguments are met with moral accusations (“Do you not care about children?”, “Are you some kind of predator?”), it signals the death of intellectual discourse.

We must stop using emotion to draft technical legislation. We need to look at data and reality. Criminals will not stop because of an age-limit law; they will find other ways. The only ones who will be affected are the law-abiding citizens.

What is the Real Solution?

We cannot go back to communicating via smoke signals. We need to move forward with Digital Sovereignty and Education.

  1. Empower Literacy, Not Censorship: Teach the youth (and parents!) about data privacy, how to identify grooming, and how to manage their digital footprint. Make it a compulsory subject in schools, not just a once-a-year talk.
  2. Safer Technology (Humane-Tech): Encourage the use of platforms that respect privacy and do not manipulate algorithms for addiction. As a proponent of self-hosting, I believe the future lies in decentralised platforms where communities can moderate each other, not in giant platforms that only care about profit.
  3. Platform Responsibility & Enforcement: Force giant tech platforms to cooperate with the police to catch the actual criminals, rather than just banning user accounts.

Conclusion

Banning social media for those under 16 might satisfy certain politicians who want a quick fix on paper. But in reality, it is a regressive step that will hinder the potential of our younger generation.

We should not sacrifice democracy and the voice of the rakyat simply to blindly copy what other countries are doing. Malaysia has the potential to build an internet model that is civilised, safe, and free—but it starts by admitting that the real problem lies with the system, not the users.

Do not switch off our youth's digital light just because we are too lazy to fix the switch.

 
Read more...

from kalvin0x58c

Encik Fahmi menteri komunikasi, mereka kata

Adakah kita sedang bergerak ke hadapan menuju negara digital yang berdaulat, atau kita sedang mengundur ke zaman batu di mana komunikasi hanya dilakukan melalui isyarat asap dan burung merpati?

Kebelakangan ini, wacana mengenai cadangan kerajaan—khususnya naratif yang dibawa oleh Menteri Komunikasi, Encik Fahmi Fadzil—untuk mengharamkan penggunaan media sosial bagi mereka yang berusia di bawah 16 tahun semakin meruncing. Alasannya sering kali berkisar tentang keselamatan: untuk melindungi anak muda daripada pemangsa seksual, buli siber, dan pengaruh buruk.

Namun, sebagai seorang pelajar IT dan aktivis hak digital, saya melihat ini bukan sebagai langkah keselamatan. Saya melihatnya sebagai satu tindakan “jalan pintas” untuk menutup kegagalan sistemik dalam menguruskan ekosistem internet di Malaysia.

Web 1.0 vs Web 2.0: Kegagalan Memahami Evolusi Digital

Untuk memahami mengapa cadangan pengharaman ini bermasalah, kita perlu kembali kepada asas teknologi internet yang saya pelajari dalam kuliah.

Pihak berwajib nampaknya masih tersekat dalam mentaliti Web 1.0. Web 1.0 adalah era “baca sahaja” (read-only), di mana internet berfungsi seperti televisyen atau surat khabar—maklumat dihantar sehala dari penyedia kepada pengguna. Jika anda tidak suka apa yang disiarkan, anda tutup TV itu. Mudah.

Tetapi kita kini hidup dalam era Web 2.0 dan sedang bergerak ke Web 3.0. Ini adalah web “baca dan tulis” (read-write). Ia adalah jalan dua hala. Media sosial bukan sekadar tempat menonton video tarian; ia adalah infrastruktur kritikal untuk komunikasi, kolaborasi, dan pembangunan identiti.

Bagi remaja berumur 13 hingga 16 tahun hari ini, media sosial adalah tempat mereka:

  • Membina portfolio seni atau koding.
  • Belajar tentang dunia luar melalui content pendidikan.
  • Berhubung dengan komuniti yang mempunyai minat yang sama (niche communities).

Memotong akses ini secara total (“total ban”) bermakna kita memotong talian hayat pembelajaran dan perkembangan sosial mereka. Kita memaksa mereka menjadi pengguna pasif (Web 1.0) dalam dunia yang menuntut interaksi aktif.

Menyalahkan Mangsa untuk Menutup Lubang Sistem

Naratif yang sering dijaja ialah: “Media sosial tempat yang bahaya, jadi jangan bagi budak masuk.”

Ini adalah satu bentuk victim-blaming (menyalahkan mangsa) yang klasik. Jika jalan raya berbahaya kerana banyak pemandu mabuk dan jalan berlubang, adakah kita mengharamkan pejalan kaki daripada menggunakan jalan raya? Tidak. Kita tangkap pemandu mabuk dan kita turap jalan tersebut.

Dalam konteks siber Malaysia, “jalan berlubang” itu adalah kegagalan sistemik:

  1. Penguatkuasaan yang Lemah: Mengapa pemangsa seksual dan scammer masih bebas berkeliaran di platform?
  2. Kurangnya Pendidikan Literasi Digital: Mengapa kita lebih suka menakut-nakutkan pengguna daripada mengajar mereka cara mengenal pasti bahaya?
  3. Kedaulatan Data yang Rapuh: Mengapa data kita mudah bocor sehingga scammer boleh menghubungi kita dengan mudah?

Tindakan menapis atau censor keseluruhan demografik (bawah 16 tahun) adalah cara mudah untuk kerajaan cuci tangan. Ia memberi ilusi bahawa “sesuatu sedang dilakukan”, sedangkan punca utama masalah—iaitu jenayah siber dan kegagalan penguatkuasaan—tidak disentuh sama sekali.

Perspektif Neurodiversiti: Internet Sebagai Talian Hayat

Satu aspek yang sering dilupakan oleh pembuat dasar ialah golongan neurodiversiti. Sebagai seorang autistik, saya memahami bahawa komunikasi bersemuka kadangkala boleh menjadi sangat memenatkan (draining) dan penuh dengan halangan sosial yang tidak ketara.

Bagi ramai remaja autistik, internet dan media sosial adalah ruang di mana padang permainan menjadi rata. Di sini, kami boleh berkomunikasi tanpa tekanan “eye contact” atau membaca isyarat badan yang rumit. Kami boleh mencari komuniti yang menerima kami seadanya.

Mengharamkan media sosial bagi golongan ini bukan sekadar “mengurangkan screen time”; ia adalah satu bentuk pengasingan sosial. Ia menutup pintu kepada satu-satunya cara sesetengah daripada kami berinteraksi dengan dunia luar dengan selesa. Adakah Encik Fahmi memikirkan impak psikologi ini, atau adakah keputusan ini dibuat semata-mata berdasarkan kerangka fikir orang neurotipikal?

Label “Creep” dan Serangan Ad Hominem

Apa yang lebih menyedihkan, apabila kita cuba membahaskan isu ini secara rasional—tentang hak digital, tentang kebebasan bersuara, dan tentang kegagalan sistem—kita sering diserang secara peribadi.

Saya sendiri pernah dituduh dengan pelbagai gelaran buruk semata-mata kerana mempertahankan internet yang bebas. Apabila hujah intelektual dibalas dengan tuduhan moral (“awak tak sayang budak-budak ke?”, “awak ni creep ke?“), ia menandakan kematian wacana intelektual.

Kita perlu berhenti menggunakan emosi untuk menggubal undang-undang teknikal. Kita perlu melihat data dan realiti. Penjenayah tidak akan berhenti kerana undang-undang had umur; mereka akan mencari jalan lain. Yang akan terkesan hanyalah rakyat biasa yang patuh undang-undang.

Apa Penyelesaian Sebenar?

Kita tidak boleh kembali berkomunikasi menggunakan isyarat asap. Kita perlu bergerak ke hadapan dengan Kedaulatan Digital dan Pendidikan.

  1. Perkasakan Literasi, Bukan Penapisan: Ajar anak muda (dan ibu bapa!) tentang privasi data, cara mengenal pasti grooming, dan cara menguruskan jejak digital. Jadikan ia subjek wajib di sekolah, bukan sekadar ceramah sekali setahun.
  2. Teknologi yang Lebih Selamat (Humane-Tech): Galakkan penggunaan platform yang menghormati privasi dan tidak memanipulasi algoritma untuk ketagihan. Sebagai penyokong self-hosting, saya percaya masa depan adalah pada platform teragih (decentralised) di mana komuniti boleh memantau satu sama lain, bukan pada platform gergasi yang hanya mahukan keuntungan.
  3. Tanggungjawab Platform & Penguatkuasaan: Paksa platform gergasi untuk bekerjasama dengan polis dalam menangkap penjenayah sebenar, bukan sekadar menutup akaun pengguna.

Kesimpulan

Mengharamkan media sosial untuk bawah 16 tahun mungkin memuaskan hati segelintir pihak politik yang mahukan penyelesaian pantas di atas kertas. Tetapi di alam nyata, ia adalah langkah mundur yang akan merugikan potensi generasi muda kita.

Kita tidak sepatutnya mengorbankan demokrasi dan suara rakyat demi mengikut telunjuk “negara orang” bulat-bulat. Malaysia mempunyai potensi untuk membina model internet yang bertamadun, selamat, dan bebas—tetapi ia bermula dengan mengakui bahawa masalah sebenar ada pada sistem, bukan pada pengguna.

Jangan padamkan lampu digital anak muda kita hanya kerana kita malas membaiki suisnya.

 
Read more...

from Arg's blog

Il s'agit davantage d'une check-list (orienté sécurité) que d'un guide complet : à adapter en fonction de votre “modèle de menace” spécifique. Les lecteur·ices sont encouragé·es à consulter également le guide GrapheneOS for Anarchists, le guide d'utilisation et la faq officielles de GrapheneOS.

Quel appareil choisir ?

Les dernier leaks de la doc Cellebrite (Février 2025) révèlent que les téléphones Pixel (à partir de la version 6) résistent toujours très bien à l'extraction des données, et sont les seuls téléphones android à avoir ce niveau de résistance. Le Google Pixel 6a est le moins chèr, le Pixel 8a a sans doute le meilleur rapport qualité prix (en considérant le temps de support restant). Si vous pensez être activement ciblé, choisissez un Pixel 8 ou un modèle ultérieur (ou mieux : pas de téléphone du tout).

Dans tous les cas, utilisez un appareil qui est encore activement pris en charge.

Vous pouvez aussi vouloir un téléphone qui n'est pas lié à votre identité : acheté en espèces ou par l'intermédiaire d'un service communautaire qui achète des téléphones pour un grand nombre de personnes et les distribue sans conserver les traces des transactions.

Où faire l'installation ?

Pour que votre téléphone ne soit pas lié à votre identité personnelle, n'allumez pas le téléphone chez vous tant que vous n'avez pas terminé ce guide, puis gardez votre téléphone en Mode Avion lorsque vous êtes près de chez vous (et même, idéalement, en permanence). Choisissez un lieu public avec un wifi public, apportez un ordinateur portable ou un autre téléphone Android de confiance avec accès à un navigateur basé sur Chromium pour exécuter l'installateur web, et KeePass{XC,DX} pour générer vos mots de passe.

Installation

Suivez les instructions du Web installer. Vérifier le hash du système d'exploitation sur le premier écran de démarrage : – Pixel 9a : 0508de44ee00bfb49ece32c418af1896391abde0f05b64f41bc9a2dfb589445b – Pixel 9 Pro Fold : af4d2c6e62be0fec54f0271b9776ff061dd8392d9f51cf6ab1551d346679e24c – Pixel 9 Pro XL : 55d3c2323db91bb91f20d38d015e85112d038f6b6b5738fe352c1a80dba57023 – Pixel 9 Pro : f729cab861da1b83fdfab402fc9480758f2ae78ee0b61c1f2137dd1ab7076e86 – Pixel 9 : 9e6a8f3e0d761a780179f93acd5721ba1ab7c8c537c7761073c0a754b0e932de – Pixel 8a : 096b8bd6d44527a24ac1564b308839f67e78202185cbff9cfdcb10e63250bc5e – Pixel 8 Pro : 896db2d09d84e1d6bb747002b8a114950b946e5825772a9d48ba7eb01d118c1c – Pixel 8 : cd7479653aa88208f9f03034810ef9b7b0af8a9d41e2000e458ac403a2acb233 – Poids en pixels : ee0c9dfef6f55a878538b0dbf7e78e3bc3f1a13c8c44839b095fe26dd5fe2842 – Tablette Pixel : 94df136e6c6aa08dc26580af46f36419b5f9baf46039db076f5295b91aaff230 – Pixel 7a : 508d75dea10c5cbc3e7632260fc0b59f6055a8a49dd84e693b6d8899edbb01e4 – Pixel 7 Pro : bc1c0dd95664604382bb888412026422742eb3371ea0b2d19036217d49182f – Pixel 7 : 3efe5392be3ac38afb894d13de639e521675e62571a8a9b3ef9fc8c44fd17fa1 – Pixel 6a : 08c860350a9600692d10c8512f7b8e80707757468e8fbfeea2a870c0a83d6031 – Pixel 6 Pro : 439b76524d94c40652ce1bf0d8243773c634d2f99ba3160d8d02aa5e29ff925c – Pixel 6 : f0a890375d1405e62ebfd87e8d3f475f948ef031bbf9ddd516d5f600a23677e8

Configuration l'assistant de démarrage

Langue

Si vous envisagez d'utiliser un VPN (tor) et que vous êtes à l'aise avec l'anglais, l'utilisation de la langue par défaut (English (United States)) vous donnera un peu plus d'anonymat (plus grand nombre d'utilisateurs).

Se connecter au Wi-Fi

Pas encore. Nous allons d’abord générer l'empreinte initiale du firmware/OS à l'aide de l'application Auditor avant d'établir toute connexion réseau : vous aurez besoin d'un autre téléphone Android (idéalement celui d'un·e camarade que vous voyez de temps en temps) pour cela.

Date et heure

Il vous suffit de sélectionner votre fuseau horaire ici.

Services de localisation

Décochez la case Allow apps that have asked your permission to use your location information. Cette option peut être activée ultérieurement à l'aide d'une bascule rapide.

Définissez un code

En théorie, si vous faites confiance à la protection de la puce de sécurité Titan M2 contre les attaques par force brute, un code PIN aléatoire de 8 chiffres est suffisant. Pour plus de sécurité (par exemple, si vous voulez être sûr que le contenu de votre téléphone ne pourra jamais être décrypté au cours de votre vie), appuyez sur Options de verrouillage de l'écran pour choisir un Mot de passe de 18 caractères aléatoires ou de 7 mots aléatoires (ou plus), c'est-à-dire suffisamment de bits d'entropie pour durer toute une vie. Conseil : Il peut être difficile de se souvenir de sept mots aléatoires au début. Commencez donc par quatre mots et modifiez régulièrement votre phrase de passe pour ajouter un nouveau mot aléatoire jusqu'à ce que vous atteigniez sept ou huit mots.

Configurez votre empreinte

On fera ça Plus tard (pour activer en même temps le deuxième facteur d'authentification via PIN).

Restore apps & data

Skip. Cette opération peut être effectuée ultérieurement si nécessaire.

Configuration de l'application Auditor

Cette app permet d'effectuer régulièrement une vérification matérielle pour s'assurer que le micrologiciel et le système d'exploitation du téléphone n'ont pas été altérés. Suivez la section correspondante du guide GrapheneOS pour les anarchistes – sauf que vous n'avez pas besoin d'une connexion Internet pour enregistrer la vérification à distance.

Seul le profil du propriétaire a besoin d'être configuré via Auditor.

Revue et sécurisation de la configuration de GrapheneOS

Seuls les paramètres qui doivent être modifiés par rapport aux valeurs par défaut (en date de Juillet 2025) sont mentionnés ici. La revue des paramètre est à faire pour chaque profil utilisateur. Certains paramètres ne sont modifiable que via le profil Propriétaire car ils s'appliquent à tout le système.

Commençons par activer le Mode avion. À ce propos n'hésitez pas à modifier de menu d'accès rapide pour rendre les toggles Mode avion, Accès au micro, Accès caméra et Localisation directement accessible via les deux première lignes visibles en un seul swipe.

Réseau et internet

Cartes SIM

uniquement si vous disposez d'une carte SIM :

Désactivez l'option Autoriser la 2G en bas de l'écran. Cela devrait rendre plus difficiles les attaques de downgrade des IMSI-catchers. Pour aller plus loin, réglez Type de réseau préféré sur 5G or 4G uniquement.

Une fois cela fait, vous pouvez ré-activer le Mode avion.

Notes sur les cartes SIM : – Les appels Wi-Fi n'utilisent pas le VPN de votre session utilisateur, ce qui révèle votre adresse IP à votre opérateur. – À moins qu'une carte SIM ne soit désactivée, les applications peuvent voir le code de pays de votre carte SIM, et ce même si le Mode avion est activé, et l'utiliser pour participer à l'identification de l'utilisateur·ice.

Économiseur de données

L'activation de l'option Utiliser l'Économiseur de données peut s'avérer utile pour économiser quelques MBytes sur un plan de données bon marché, ou simplement pour réduire l'utilisation de la batterie.

DNS privé

si vous prévoyez d'utiliser l'emplacement VPN (pour un fournisseur VPN ou TOR), n'utilisez pas la fonction DNS privé car elle aurait la priorité sur le DNS intégré à votre application VPN, que vous devriez probablement utiliser pour éviter de vous démarquer parmi les utilisateurs de ce VPN ou de Tor.

Si vous n'avez pas l'intention d'utiliser un VPN, vous devez choisir un résolveur DNS respectueux de la vie privée comme quad9 ou dns0.eu.

Appareils connectés > Préférences de connexion

NFC

Activer temporairement Utiliser le NFC, puis activer Exiger le déverrouillage de l'appareil pour le NFC, puis désactiver Utiliser le NFC.

Impression > Service d'impression par défaut

À moins que vous ne prévoyiez de l'utiliser, désactivez Utiliser le service d'impression pour réduire la surface d'attaque.

Notifications > Notification sur l'écran de verrouillage

Si vous ne voulez pas que quelqu'un qui a mis la main sur votre téléphone (verrouillé) sache quelle application vous utilisez pour communiquer (par exemple Signal) : réglez ce paramètre sur N'afficher aucune notification.

Batterie

Pas une configuration lié à la sécurité, mais vous pouvez activer la fonction Optimisation de la recharge pour limiter la charge de la batterie à 80 % afin d'augmenter la durée de vie de la batterie. Vous pouvez également activer la fonction Économiseur batterie.

Système

Sauvegarde

L'application de sauvegarde (Seedvault peut sauvegarder les données de certaines applications (celles qui implémentent l'API requise), les APK et des dossiers de l'utilisateur·ice (par exemple, Documents). Il s'agit d'une application par utilisateur·ice, qui doit donc être exécutée pour chaque profil pour lequel vous avez besoin d'une sauvegarde. L'option la plus sûre consiste à effectuer une sauvegarde sur une clé USB (vous pouvez utiliser la même clé USB pour plusieurs utilisateurs/appareils) qui peut être cachée dans un endroit sûr (et en faire une copie de temps en temps, stockée dans un autre endroit).

Mises à jour du système

Pour plus de sécurité, mais au risque de manquer certaines notifications, activez l'option Automatic reboot, sauf si vous prévoyez d'utiliser un profil secondaire et de vous fier à ses réveils : ceux-ci ne sonneront pas après un redémarrage tant que votre profil secondaire n'aura pas été déverrouillé. Les réveils du profil du propriétaire fonctionnent grâce à la fonction Direct-Boot, mais même dans ce cas, il vaut mieux ne pas compter sur la fonction “Snooze”, car elle risque de ne pas fonctionner.

Pour économiser sur un petit plan de données, vous pouvez régler Permitted networks sur Unmetered.

Utilisateurs

Les profils Utilisateurs et Espace privé peuvent être utilisés pour séparer les applications en profils isolés (presque comme s'il s'agissait de téléphones différents) en fonction de leurs (non) respect de la vie privée et/ou pour isoler vos activités professionnelles/personnelles/militantes. En particulier pour atténuer un problème majeur d'android, à savoir que de nombreuses applications peuvent voir quelles applications sont actives dans le même profil.

Si vous souhaitez uniquement isoler le Play Store et certaines applications installées à partir de celui-ci (par exemple les applications bancaires), vous pouvez utiliser la fonctionnalité Espace privé de GrapheneOS dans Sécurité et confidentialité. Gardez à l'esprit que les applications dans l'Espace privé ne peuvent pas recevoir de notifications lorsque l'espace privé est verrouillé, et que leurs données ne peuvent pas être sauvegardées à l'aide de l'application Seedvault.

Pour ces raisons, il est souvent préférable d'utiliser un profil utilisateur à part entière, eg. un profil secondaire Défaut, comme le recommande le guide AnarSec. L'un des principaux avantages est que vous pouvez fermer la session secondaire, qui revient alors à l'état Before First Unlock (Avant le premier déverrouillage), tout en vous permettant d'utiliser votre téléphone via le profil Propriétaire. Ce dernier étant principalement utilisé pour l'installation et la mise à jour des applications (une mise à jour d'app est effective pour tout les profils utilisateurs en même temps).

Le guide AnarSec recommande un mot de passe différent pour le profil secondaire, mais l'utilisation du même mot de passe fort que pour le profil propriétaire n'est pas un grand risque pour la sécurité, surtout si vous utilisez le déverrouillage par empreinte digitale + 2FA-PIN après le premier déverrouillage du profil.

Sécurité et confidentialité

Déverrouillage de l'appareil

Configuration du Verrouillage de l'écran

Activez la fonction Scramble PIN input layout pour qu'une caméra cachée ou un observateur ait plus de mal à deviner votre code PIN.

Empreinte digitale

L'utilisation du déverrouillage par empreinte digitale protège contre les attaques de type “shoulder surfing” visant votre code PIN. Mais un adversaire pourrait vous forcer à déverrouiller votre téléphone avec votre doigt (vous pouvez toujours essayer d'utiliser un doigt non enregistré), c'est pourquoi le guide AnarSec le déconseille. Mais il est maintenant possible de créer un Second factor PIN, qui atténue le problème ; 6 chiffres devraient suffire.

Duress password

Il s'agit d'un code PIN qui déclenche l'effacement des clés de décryptage de tous les profils et le redémarrage du téléphone. Ce code peut être est saisi à n'importe quel un endroit où un code PIN ou mot de passe de session est demandé (quelque soit l'utilisateur en cours).

La question d'utiliser un mot de passe ou PIN duress est délicate et dépend des implications pratiques et juridiques. Le fait de ne pas donner son code PIN peut avoir moins de conséquences juridiques que le fait d'être accusé de destruction de preuves. Un compromis consisterait à utiliser un code PIN et un mot de passe que l'adversaire pourrait essayer, sans que vous ayez à le donner (mais je ne suis pas juriste, donc je ne sais pas vraiment), par exemple en utilisant votre date de naissance ou 1312/acab.

Si vous créez un mot de passe/PIN duress, veillez particulièrement à ce que vos sauvegardes soient à jour.

Exploit Protection

Auto reboot (Redémarrage automatique)

Il s'agit d'une fonctionnalité majeure de sécurité de GrapheneOS qui redémarre l'appareil (le ramène à l'état Before First Unlock) si il n'est pas déverrouillé pendant un certain laps de temps (18 heures par défaut). Des délais plus courts améliorent la sécurité : n'hésitez pas à raccourcir temporairement ce délai lorsque vous en avez besoin (eg. avant une manif, si vous devez prendre votre téléphone). 12 heures est probablement une bonne valeur pour la plupart des cas d'usage.

Turn off Wi-Fi automatically (Désactiver automatiquement le Wi-Fi)

Le configurer à quelque chose comme 5 minutes, pour réduire l'utilisation de la batterie (et très légèrement la surface d'attaque : très peu probable d'être un vecteur d'attaque cependant.

Turn off Bluetooth automatically (Désactiver automatiquement le Bluetooth)

Idem que ci-dessus.

Native code debugging

Activez l'option Block for third-party apps by default pour améliorer le sandboxing.

WebView JIT

Activez l'option Disable for third-party apps by default pour réduire la surface d'attaque.

Dynamic code loading via memory

Activez l'option Restrict for third-party apps by default pour les mêmes raisons que ci-dessus.

Dynamic code loading via storage

Même chose que ci-dessus (comme indiqué, vous devrez peut-être l'activer manuellement pour certaines applications qui dépendent du service Play).

Sécurité et confidentialité renforcée

Désactiver la permission Allow Sensors permission to apps by default. Vous pourrez la donner manuellement pour les applications qui en ont réellement besoin (par exemple, pour la rotation automatique).

Comment installer des applications ?

La recommandation habituelle pour l'installation d'une application tierce est d'essayer dans l'ordre :

  1. Lorsqu'une application web est disponible et que vous n'avez pas besoin des fonctionnalités de l'application native (par exemple, les notifications) : utilisez la webapp. Dans Vanadium, appuyez sur Ajouter à l'écran d'accueil.
  2. Accrescent, un app store sécurisé et open-source qui peut être installé à partir de l'App Store intégré à GrapheneOS.
  3. Google Play Store (également installé à partir du App Store intégré)
  4. L'APK publié sur la forge du projet en utilisant Obtainium et App verifier (ce dernier étant installé à partir de d'Accrescent et est utilisé pour vérifier l'APK d'Obtainium).
  5. The project own f-droid repo (eg. repos of The Guardian Project, SimpleX, Briar, FUTO).
  6. IzzyOnDroid f-droid repo.
  7. Repo officiel de F-Droid.

Cet ordre a été choisi en fonction des pratiques de sécurité impliquées et pour minimiser à la fois le délai de mise à jour et le nombre de tiers à qui faire confiance.

Le repo F-droid en particulier devrait être évité pour des raisons de sécurité en raison, entre autres, de leur processus de mise à jour (lent) et de leur environnement de construction (souvent obsolète).

Pour les applications uniquement disponibles dans un dépôt f-droid (tiers ou officiel), utilisez Obtainium ou F-droid Basic.

En ce qui concerne le Play Store, vous devriez pouvoir vous y inscrire, sans donner de numéro de téléphone (si vous ne passez pas par un VPN), avec une [adresse YopMail] dédiée (https://yopmail.com) par exemple.

Une fois Obtainium installé, supprimez la capacité d'installation Allow from this source de l'app Fichiers ou de Vanadium qui a été accordée pour installer l'APK.

Si une application n'est pas installée via un store sécurisé (Accrescent ou Play Store), pensez à valider sa signature avec AppVerifier. Si la signature n'est pas dans la base interne de AppVerifier, demander à un·e camarade ayant déjà installé l'app de vous fournir la signature (issue de son AppVerifier) via un canal sécurisé.

Applications recommandées

VPN / Tor

Un bon VPN (ie. Mullvad / IVPN) est probablement suffisant pour la plupart des activités. Vous pouvez utiliser le navigateur Tor pour Android en cas de besoin, mais le navigateur Tor sur ordinateur / Tails fournira probablement un meilleur anonymat (plus grand nombre d'utilisateurs).

Néanmoins, si vous ne voulez pas payer pour un VPN, l'utilisation d'un VPN basé sur TOR, Orbot ou Invizible Pro, est viable, d'autant plus qu'il est souvent plus rapide que le VPN gratuit RiseUp. Si vous avez choisi d'utiliser le profil propriétaire uniquement pour installer/mettre à jour des applications, utilisez un VPN (si votre routeur domestique n'en dispose pas) plutôt que TOR, qui peut souvent se déconnecter lorsqu'il n'est pas utilisé pendant une longue période (et donc vous risquez de manquer des mises à jour). RiseUp VPN convient parfaitement à cet usage.

Signature Invizible Pro Beta (la version beta n'a pas de popup “demander un don”) (pour AppVerifier) :

pan.alexander.tordnscrypt
1E:A0:9E:90:62:28:59:84:FF:E8:96:56:05:ED:AB:8B:01:ED:19:DF:A0:19:C3:14:84:A3:38:2A:CC:C1:9A:CE

Invizible dispose d'une option personnalisée “DNS Crypt” que vous pouvez utiliser pour éviter le chargement des publicités, mais c'est au prix de se démarquer un peu parmi la plupart des utilisateurs de TOR qui s'appuient sur le nœud de sortie pour la résolution de noms.

Si vous souhaitez superposer Invizible à, par exemple, Mulllvad VPN, vous pouvez vous connecter à Mullvad via Shadowsocks en mode proxy : – https://mullvad.net/en/help/shadowsocks-androidhttps://invizible.net/en/tor-over-vpn/ Cependant TOR sur VPN n'est généralement pas un gain de sécurité (voir les liens à la fin pour la documentation InviZible ci-dessus), sauf si vous souhaitez utilisez Shadowsocks pour contourner facilement la plupart des pare-feu wifi publics et/ou si vous ne voulez pas être identifié par le réseau/ISP comme un utilisateur de TOR et/ou si vous voulez que certaines applications soient acheminées par votre VPN uniquement et non par TOR.

Voici la signature de Shadowsock-android pour AppVerifier :

com.github.shadowsocks
92:41:6E:A4:16:64:22:61:3D:3D:1D:58:5A:C1:C7:0F:03:83:40:70:77:13:46:36:B4:CF:B2:F0:BD:8E:01:F0

(utilisez -tv- pour le filtre APK inversé dans Obtainium).

Email

Soit FairEmail, soit Thunderbird-Android (plus simple, moins configurable, moins de fonctionnalités anti-tracking, mais peut importer tous vos comptes depuis Thunderbird facilement), avec OpenKeychain pour le support GPG.

Messagerie instantanée

Les suspects habituels : Signal (ou mieux : Molly, installé via Accrescent), SimpleX, Cwch et Briar.

Atténuation du risque de vol de téléphone déverrouillé

Vous pouvez activer la fonction Google Play Verrouillage en cas de détection de vol dans Google Settings > Protection contre le vol mais les conditions qui activent le verrouillage sont assez particulières. Vous pouvez donc également installer Private Lock. L'application est assez ancienne, mais elle fonctionne. La sensibilité réglée sur 30 semble utilisable.

Gestionnaire de mots de passe

KeepassDX est une bonne solution. Peut être synchronisé avec votre PC avec syncthing si nécessaire.

Diverses autres applications

  • Clavier : HeliBoard
  • Navigation web : IronFox (pour les sites web qui ne nécessitent pas de connexion, ou du moins qui n'encourent pas de risque financier ou de réputation en cas de piratage, car le sandboxing d'IronFox (Firefox) est nettement moins sécurisé que celui de Vanadium. Mais il bloque mieux les traqueurs et les publicités.
  • Sites web sensibles : Tor browser
  • Agenda : Etar, ICSx5 (calendrier ical public), DAVx5 (caldav privé)
  • Lecture de documents/epub : LxReader, OpenLib
  • Application météo : Breezy Weather
  • GPS : OrganicMap (trekking), OSMAnd+ (power users), Magic Earth (pour les horaires de bus).

#GrapheneOS #Cellebrite #OpSec #Android

 
Lire la suite...

from Arg's blog

This is more of a check-list that a comprehensive guide. Every items might not apply to your specific “threat model”. Readers are encouraged to also check-out the GrapheneOS for Anarchists guide and GrapheneOS official usage guide and faq.

Which device to chose?

Pixel phone (from version 6 onward) are known to resist very well to Celebrite data extraction, as of February 2025. A Google Pixel 6a would be the cheapest option. Don't use any earlier device. If you think you might be actively targeted, chose a Pixel 8 or later model (or better: no phone at all).

In any case, use a device that is still actively supported.

Also you might want a phone that is not linked to your identity: bought with cash or through a community service that buy phones for many people and distribute them without keeping transaction traces.

Where to do the install?

To keep your phone unlinked from your personal identity, do not switch on the phone in your home until you have finished the guide: you might want to keep your phone on Aireplane mode at least whenever you are near your home (ideally always). So chose a public place in a city center with a public wifi, bring a trusted laptop or android phone with access to a Chromium-based browser to run the web installer, and KeePass{XC,DX} to generate your passwords.

Install

Follow Web installer instructions. Check OS hash on first boot screen: – Pixel 9a: 0508de44ee00bfb49ece32c418af1896391abde0f05b64f41bc9a2dfb589445b – Pixel 9 Pro Fold: af4d2c6e62be0fec54f0271b9776ff061dd8392d9f51cf6ab1551d346679e24c – Pixel 9 Pro XL: 55d3c2323db91bb91f20d38d015e85112d038f6b6b5738fe352c1a80dba57023 – Pixel 9 Pro: f729cab861da1b83fdfab402fc9480758f2ae78ee0b61c1f2137dd1ab7076e86 – Pixel 9: 9e6a8f3e0d761a780179f93acd5721ba1ab7c8c537c7761073c0a754b0e932de – Pixel 8a: 096b8bd6d44527a24ac1564b308839f67e78202185cbff9cfdcb10e63250bc5e – Pixel 8 Pro: 896db2d09d84e1d6bb747002b8a114950b946e5825772a9d48ba7eb01d118c1c – Pixel 8: cd7479653aa88208f9f03034810ef9b7b0af8a9d41e2000e458ac403a2acb233 – Pixel Fold: ee0c9dfef6f55a878538b0dbf7e78e3bc3f1a13c8c44839b095fe26dd5fe2842 – Pixel Tablet: 94df136e6c6aa08dc26580af46f36419b5f9baf46039db076f5295b91aaff230 – Pixel 7a: 508d75dea10c5cbc3e7632260fc0b59f6055a8a49dd84e693b6d8899edbb01e4 – Pixel 7 Pro: bc1c0dd95664604382bb888412026422742eb333071ea0b2d19036217d49182f – Pixel 7: 3efe5392be3ac38afb894d13de639e521675e62571a8a9b3ef9fc8c44fd17fa1 – Pixel 6a: 08c860350a9600692d10c8512f7b8e80707757468e8fbfeea2a870c0a83d6031 – Pixel 6 Pro: 439b76524d94c40652ce1bf0d8243773c634d2f99ba3160d8d02aa5e29ff925c – Pixel 6: f0a890375d1405e62ebfd87e8d3f475f948ef031bbf9ddd516d5f600a23677e8

Initial wizard configuration

Language

If you are planning to use a (tor) VPN and are somewhat comfortable with English then using default language (English (United States)) will give you a bit more anonymity (larger user pool).

Connect to Wi-Fi

Don't yet. We want to register initial fingerprint of the firmware/OS using the Auditor app before making any network connection: you will need an another android phone (ideally on of a comrade you see from time to time) for this.

So tap Set up without Wi-fi.

Date and time

Just select your time zone here.

Location services

Uncheck Allow apps that have asked your permission to use your location information. This can be enabled later via a quick toggle.

Set a PIN

Theoretically, if you trust the Titan M2 protection against brute force attacks, a random 8 digits PIN is good enough. For additional safety (eg. if you need to be sure the content of your phone cannot ever be decrypted in your life time), tap Screen lock options to chose a Password of 18 random characters or 7 random words (or more), ie. enough entropy bits to last a life-time. Tip: Remembering 7 random words can be tough at first, so maybe try to start with four and modify your passphrase regularly to add a new random word until you reach 7 or 8 words.

Fingerprint unlock

Skip for now (to enable only with 2FA PIN).

Restore apps & data

Skip. This can be done later if needed.

Auditor app setup

The auditor app allows to perform hardware-based verification that the phone firmware and OS have not been tampered with. Follow related section of the GrapheneOS for Anarchists guide – except you don't actually need internet connectivity to register remote verification.

Only owner profile needs to setup Auditoring.

Settings hardening

Let's start by toggling on Aireplane mode.

Only settings which are to be modified from default values (as of April 2025) are mentioned here.

Network & internet

Internet > Network preferences

Uncheck Allow WEP networks. WEP wifi AP should not exist nowadays so if one does, better be aware that something is wrong.

SIMs

if you have a SIM card:

Toggle off Allow 2G at the bottom of the screen. This should make downgrade attacks of IMSI-catchers more difficult. To go one step further, set Preferred network type to 5G or 4G only.

Once done, you can activate Airplane mode.

Notes on SIM cards:Wi-FI calling do not use the VPN slot of your user session, so it will reveals your current IP address to your carrier. – Unless a SIM card is Turned off, apps can see the country code of your SIM card, even if Airplane mode is on, and use it to fingerprint you.

Data Saver

Toggling on Use Data Saver can be useful to save some MBytes on a cheap data plan, or just to reduce battery usage. Though if you use the VPN slot this won't stop connection from apps that go through the VPN. Use the VPN app firewall feature instead (available in eg. Invizible Pro or RethinkDNS).

Private DNS

if you plan to use the VPN slot (for a VPN provider or TOR) do not use the Private DNS feature because it would take precedence over your VPN app built-in DNS, which you should probably use to avoid sticking-out among the VPN user pool.

If you don't plan to use a VPN then you chose a privacy-respecting DNS resolver like quad9 or dns0.eu.

Connected devices > Connection preference

NFC

Temporarily enable Use NFC, then toggle on Require device unlock for NFC, then revert back off Use NFC.

Printing > Default Print Service

Unless you plan to use it, toggle off Use print service for attack surface reduction.

Notifications > Notification on lock screen

If you don't want someone that got their hands on your (locked) phone to know which app you use for communication (eg. Signal): set this setting to Don't show any notification.

Battery

Not privacy related, but you might want to switch on Charging optimization to limit battery charging to 80% for longer battery life. Maybe also enable the Battery Saver feature.

System

Backup

The Backup app (Seedvault can backup some app data (the ones that implement the required API), APKs and user folders (eg. Documents). It is per user, so the app need to be run for every user profiles for which you need a backup. Safer option is to backup on a USB key (you can use the same USB key for multiple user/devices) that can be hidden in a safe place (and make copy of it from time-to-time, stored in another location).

System updates

For added security at the price of maybe missing some notifications, enable Automatic reboot, unless you plan to use a secondary profile and rely on its alarm-clocks: those won't ring after a reboot until your secondary profile is unlocked. Alarm-clocks of owner profile get to work thanks to the Direct-Boot feature, but even then, better to don't rely on snoozing as it might not work.

To save on a small data plan, you might want to set Permitted networks to Unmetered.

Users

Users, and the Private Space (Owner profile only for now) can be used to segregate apps into isolated profiles (almost as if on different phones) depending on their privacy issues and/or to isolate your professional/personal/militant activities. In particular to mitigate a major android issue that many apps can see which apps are active in the same profile.

If you only want to isolate the Play Store and some apps installed from it (eg. Banking apps), you can use the Private space feature of GrapheneOS under Security & privacy. Keep in mind that apps in Private space cannot receive notifications when the private space is locked, nor their data be backup-ed using the Seedvault app.

For those reasons full fledged user profiles might be preferable, in particular, a Default secondary profile, as recommended by the AnarSec guide. One major advantage is that you can close the secondary session, it then return to Before First Unlock state but you can still use your phone through the Owner profile.

The AnarSec guide recommend a different password for the secondary profile but using the same strong password as for the owner profile is not a big security risk, especially if you use Fingerprint + 2FA-PIN unlocking after first unlock of the profile.

Security & privacy

Device unlock

Screen lock config

Enable Scramble PIN input layout to make it more difficult for a hidden camera/observer to guess your PIN.

Fingerprint Unlock

Using fingerprint unlock protect against shoulder surfing attacks on your PIN. But an adversary could force you to unlock your phone with your finger (you can still try to use an unregistered finger), which is why the AnarSec guide recommend against it. But nowadays we can setup a Second factor PIN, which mitigate the issue; 6 digits should probably be enough.

Duress password

This is a PIN that would trigger the erasing of decryption keys and reboot your phone if entered anywhere a PIN is asked. This one is tricky and depends of legal implications. There might be less legal repercussion for not giving your PIN than being accused of destruction of evidence. One compromise would be to use a PIN and password that could be tried by the adversary, without you having to give it (but I'm no lawyer so I don't really know), eg. using your date of birth or 1312/acab.

If you do setup a duress password/PIN, be sure to keep your backups up-to-date.

Exploit protection

Auto reboot

This is a major security feature of GrapheneOS: it reboot (returns the device to Before First Unlock state) if the device is not unlocked for a certain amount of time (18 hours by default). Shorter time improve security: don't hesitate to temparilly shorten the time when you need it. 12 hours is probably a good default value for most people.

Turn off Wi-Fi automatically

Maybe set it to something like 5 minutes, to reduce battery usage (and very slightly the attack surface: very unlikely to be an attack vector though.

Turn off Bluetooth automatically

Same as above.

Native code debugging

Toggle on Block for third-party apps by default to improve sandboxing.

WebView JIT

Toggle on Disable for third-party apps by default to reduce attack surface.

DCL via memory

Toggle on Restrict for third-party apps by default for the same reasons as above.

DCL via storage

Same as above (as stated, you might have to enable it manually for some apps that depends on Play service).

More security & privacy

Toggle off Allow Sensors permission to apps by default. Add it back to the apps that actually need them (eg. for auto-rotate).

How to install apps?

The usual recommendation to install a third-party app is to try in order:

  1. When a (progressive) web app is available and you don't need the features (eg. notifications) of the native app: use their website/PWA. In Vanadium, tap Add to Home screen.
  2. Accrescent, a secure and open-source app store that can be installed from GrapheneOS built-in App Store.
  3. Google Play Store (also installed from the built-in App Store)
  4. APK published on project's forge using Obtainium + App verifier (the later being installed from the built-in App Store and used to check the Obtainium APK).
  5. Self-updating apps, like Wiregard or Signal.
  6. The project own f-droid repo (eg. repos of The Guardian Project, SimpleX, Briar, FUTO).
  7. IzzyOnDroid f-droid repo.
  8. Official F-Droid repo.

This order has been chosen based on security practices involved and to both minimize update delay and number of third-parties to trust.

F-droid repo in particular should be avoid for security critical due, among other issues, to their (slow) update process and (often out-dated) build environment.

For apps only available in a f-droid repos (third-party or official), either use Obtainium or F-droid Basic.

Regarding Play Store you should be able to register with it, without giving any phone number, with a dedicated YopMail address for example. Use the 4 step setup to disable personalized tracking.

Once Obtainium is installed, remove the Allow from this source install capability from Files or Vanadium that was granted to install the APK.

VPN / Tor

A good VPN (ie. Mullvad / IVPN) is probably enough for most activities. You can use Tor Browser for Android when needed but Tor browser on desktop / Tails would probably provide better anonymity (larger user pool).

Nonetheless if you don't want to pay for a VPN, using a TOR-based VPN, Orbot or Invizible Pro, is viable, especially since its often faster than the free RiseUp VPN. If you chose to use the owner profile only to install/update apps, then use a VPN (if your home router does not) rather than TOR, which may often disconnect when not in used for long period of times (and thus you may miss updates). RiseUp VPN is fine for this purpose.

Invizible Pro Beta (beta has no “ask for donation” popup) signature (for AppVerifier):

pan.alexander.tordnscrypt
1E:A0:9E:90:62:28:59:84:FF:E8:96:56:05:ED:AB:8B:01:ED:19:DF:A0:19:C3:14:84:A3:38:2A:CC:C1:9A:CE

Invizible has a custom “DNS Crypt” option which you can use to avoid loading ads, but it's at the cost of standing out a bit among most TOR users that rely on the exit node for name resolution.

If you want to stack Invizible on top of, eg., Mulllvad VPN, you can connect to Mullvad through Shadowsocks in proxy mode: – https://mullvad.net/en/help/shadowsocks-androidhttps://invizible.net/en/tor-over-vpn/ Though TOR over VPN is usually not a net gain (see links at end for the InviZible documentation above), except if you use Shadowsocks to easily bypass most public wifi firewall and/or you don't want to be identified by network/ISP as a TOR user and/or you want to some apps to be routed through your VPN only and not tor.

Here is Shadowsock-android signature for AppVerifier:

com.github.shadowsocks
92:41:6E:A4:16:64:22:61:3D:3D:1D:58:5A:C1:C7:0F:03:83:40:70:77:13:46:36:B4:CF:B2:F0:BD:8E:01:F0

(use -tv- for the inverted APK regex filter in Obtainium).

Email

Either FairEmail or Thunderbird-Android (simpler, less configurable, less anti-tracking features, but can import all your account from desktop easily), with OpenKeychain for GPG support.

Instant Messaging

The usual suspects: Signal (or better: Molly, installed from Accrescent), SimpleX, Cwch and Briar.

Mitigation against forceful take-over of unlocked phone

You can activate Google Play Theft Detection Lock in Google Settings > Theft protection but it is rather peculiar to the conditions that activate the locking. So you can also install Private Lock. The app is quite old, but working. Sensitivity set to 30 appears to be usable.

Password manager

KeepassDX is good. Can be synced with your PC with syncthing if needed.

Various other apps

  • Keyboard: HeliBoard
  • Casual browsing: IronFox (for website that don't requires login, are at least that don't incur a financial or reputational risk if you get hacked, as IronFox (Firefox) sandbox is significantly weaker than Vanadium. But it has better tracker/ads blocking.
  • Sensitive websites: tor browser
  • Agenda: Etar, ICSx5 (public ical calendar), DAVx5 (private caldav)
  • Reading: LxReader, OpenLib
  • Weather app: Breezy Weather
  • GPS: OrganicMap (trekking), OSMAnd+ (power users), Magic Earth (for the bus schedules).

#GrapheneOS #Android #Hardening #Cellebrite

 
Lire la suite...

from Arg's blog

Documenting here how the server supporting 1312 Blogs (and a few other blog sites) was created.

So I'm using nixos-anywhere to provision NixOS to my hosted dedicated servers. nixos-anywhere purpose is to transform any linux machine with ssh access into a NixOS machine.

For this nixos-anywhere only need a description of the disk layout you want to end-up with. More precisely, it uses disko to support declarative disk partitioning.

My declarative partitioning look like this:

disko.nix

{
  disko.devices = {
    disk = {
      sda = {
        type = "disk";
        device = "/dev/sda";
        content = {
          type = "gpt";
          partitions = {
            BOOT = {
              size = "1M";
              type = "EF02"; # for grub MBR
            };
            ESP = {
              size = "1000M";
              type = "EF00";
              content = {
                type = "filesystem";
                format = "ext4";
                mountpoint = "/boot";
              };
            };
            luks = {
              size = "100%";
              content = {
                type = "luks";
                name = "crypted";
                askPassword = true;
                content = {
                  type = "filesystem";
                  format = "ext4";
                  mountpoint = "/";
                };
              };
            };
          };
        };
      };
    };
  };
}

So only 2 partitions, /boot and an encrypted /. Now I don't have physical access to the machine, so to decrypt the root partition we will bundle an ssh server into the initrd, as explained in this blog post by Carlos Vaz or this one by Matthias Totschnig:

flake.nix

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
    disko = {
      url = "github:nix-community/disko";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };
  outputs = { nixpkgs, disko, ... }: {
    nixosConfigurations = {
      server = nixpkgs.lib.nixosSystem rec {
        system = "x86_64-linux";
        modules = [
          disko.nixosModules.disko
          ./disko.nix
          ./configuration.nix
          {
            boot.initrd.network = {
              # Make sure you have added the kernel module for your network driver to `boot.initrd.availableKernelModules`
              enable = true;
              ssh = {
                enable = true;
                # To prevent ssh clients from freaking out because a different host key is used,
                # a different port for ssh is useful (assuming the same host has also a regular sshd running)
                port = 2222;
                hostKeys = [ "/etc/ssh/initrd-ssh-host-key" ];
                # public ssh key used for login
                authorizedKeys = [
                  "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPEvEVBYFc/u2vRUaiQgV/t4aA6tqhlvNj/OrUkHa1Pz"
                ];
              };
              # ask for secret key on login
              postCommands = ''
                cat <<'EOF' > /root/.profile
                echo "Enter encrypted volume passphrase"
                read -s pass
                echo "$pass" > /crypt-ramfs/passphrase && exit
                EOF
              '';
            };
          }
        ];
      };
    };
  };
}

To go one setup further, one could use Tailscale ssh instead.

Then we run nixos-anywhere with the necessary secrets, as per documentation:

temp=$(mktemp -d)
cleanup() {
  rm -rf "$temp"
}
trap cleanup EXIT
install -d -m755 "$temp/etc/ssh"
ssh-keygen -t ed25519 -N "" -f "$temp/etc/ssh/initrd-ssh-host-key"
chmod 600 "$temp/etc/ssh/initrd-ssh-host-key"

read -s my_disk_encryption_password

nix run github:nix-community/nixos-anywhere -- \
  --extra-files "$temp" \
  --disk-encryption-keys /tmp/luks.key <(echo $my_disk_encryption_password) \
  --flake '.#server' ubuntu@nsxxxxx.ip-xx-xx-xx-xx.eu

Note: beware that this method does not prevent an attacker with physical access to intercept you password by forcing the machine to reboot into a crafted shell under attacker control. To prevent this you would need to setup UEFI Secure Boot with lanzaboote (that means having access to the machine BIOS, which must have reliable TPM support).

disclaimer: I am not a professional security expert / cryptographer.

Still,

All Crypted-disks Are Beautiful

#FullDiskEncryption #NixOS

 
Lire la suite...

from 1312 Blogs

For better privacy, your newly created blogs are unlisted by default, that is they are not visible in the Reader. One need to know/find elsewhere the URL of the blog to read it.

To change this default setting, click on the Customize button to change the Publicity setting for your blog. You may want to activate Email subscriptions and look at the other customization options while your are at it.

#WriteFreely

 
Lire la suite...

from 1312 Blogs

The choice of Writefreely over, say, WordPress, was done for two main reasons:

  • Writefreely is very lightweight and can run on minimal hardware (eg. a Raspberry Pi), lowering our participation to the mostly neo-colonial, anti-ecologicial tech industry.
  • Writefreely can interoperate with the main open communications systems: free web (no tracking or forced registration), RSS readers, Emails and ActivityPub.

And while WriteFreely is very lightweight it still allows users to customize their blogs with CSS.

Finally, the very lean, distraction-free editor is much appreciated when writing posts. Though it helps to memorize the markdown syntax first.

For more technical details about how this server was setup, please look at our system admin's blog

#WriteFreely

 
Lire la suite...