Urumlug diary

Reader

Read the latest posts from Urumlug diary.

from misano

این پروژه صد‌درصد با LLM نوشته شده و از نظر امنیتی قابل اتکا نیست پس Don't try at home. پیوند مخزن: https://github.com/MirS0bhan/gpg-intercept

مشکل

برای سرویس های خودم درحال ساختن گواهی‌نامه(Certificate) های TLS خودامضا بودم، این فرایند چندین پرونده مختلف ایجاد می‌کنه که مهم ترینشون کلید خصوصی CA هست که به واسطه اون گواهی های امضا میشن. از نظر امنیتی خطرناک حساب میشه اگر گواهی CA رو داخل مرورگر و توزیع یا هر سیستم‌عاملی نصب کنید و کلید خصوصیش مراقبت نکنید. که این منجر میشه attacker با استفاده از اون کلید گواهی های خودشو امضا کنه و توی شبکه شما بتونه خودشو جای سرویس ها جا بزنه و گواهی خودشو بفرست توی ارتباط TLS و مرورگر یا توزیع شما هیچ خطایی نشون نده. روش های مختلفی برای رمزنگاری است از جمله GPG یا خیلی ساده تر age. مشکلی (نمیشه واقعا اسمشو مشکل گذاشت ولی ما می‌خوایم یه مسیر دیگه‌ای بریم) که هست اینه من نمی‌خوام هر دفعه دستور gpg -d رو وارد کنم تا پرونده کلید خصوصی رو رمزگشایی کنم و سپس استفاده کنم ازش و بعدش پاک کنم، مسیر بهتر اینه هر دستوری که میخواد اون پرونده رو بخونه توی حافظه رمزگشایی بشه و هیچوقت کلید خام روی دیسک قابل دسترس نباشه. بعد از مصاحبت ها با کلاد نتیجه این شد که ما می‌تونیم با استفاده از LD_PRELOAD بیایم و فانکشن هایی توی libc برای خوندن فایل استفاده میشن رو wrap کنیم تا اون رفتاری که مد نظرمون هست اعمال میشه و همین اتفاق افتاد. کلاد spec کدی که لازم بود رو نوشت و اون شد ورودی کوپایلت و کل کد رو نوشت و در نهایت با دیباگ کلاد کار کرد. نتیجه این شد که هر برنامه که به صورت لایبری های cش داینامیک لینک شده باشه و اون برنامه فانکشن های open و مشابهش رو call کنه درخواست اول به فانکشنی که ما نوشتیم میره و به صورت جداگانه چک میکنه آیا پرونده ما شبیه پرونده‌ای هست که gpg رمزنگاری کرده یا نه اگر نبود همونو پاس میده به دستور open اصلی libc و همه چیز عین قبل کار میکنه، ولاغیر شروع میکنه با gpg رمزگشایی کنه که درنتیجه یک صفحه popup میشه تا رمز اون کلید رو از شما بپرسه (این فرایند توسط gpg-agent انجام میشه) و بعد از رمزگشایی پرونده توی حافظه اونو به عنوان محتوای اصلی فایل برمیگردونه به کسی که کال کرده بود.

$ cat ca.key
[encrypted cipher]

LD_PRELOAD=~/Projects/gpg-intercept/gpgintercept.so cat ca.key
-----BEGIN ENCRYPTED PRIVATE KEY-----
[private key content...]
 
بیشتر بخوانید...

from SayGex

Dear Vim users: If you've switched from Neovim to the pinnacle of software engineering—Vim—and you're running Wayland, you may notice that the system clipboard doesn't work.

The easiest way to fix it is to install wl-clipboard and gvim.

Why gvim you may ask? IDK, a llm told me so. My guess is that because gvim is built with GUI clipboard support, Vim gains Wayland clipboard integration even when you're using the terminal version.

After installing them, regular yanks (y, yy, etc.) can interact with the system clipboard (assuming clipboard=unnamedplus is set), so you don't have to use the awkward "+y every time.

just use xfce+vs code bro.....

 
Read more...

from misano

حدود ۹ ماه بود که روی آرچ بودم و محض تنوع خواستم توزیع دیگه‌ای امتحان کنم و هدفم رفتن سراغ توزیع های immutable بود، توزیع هایی که کاربر دسترسی کاملی برای تغییر دادنش نداره و در نتیجه نمیتونه break کنه سیستم‌عامل رو. رفتم سراغ Silverblue نسخه گنومی تغییر‌ناپذیر فدورا که بر پایه ostree کار میکنه اما نتیجه نداشت. بعد از نصبی که اعلام میکرد موفقه ولی بوت نمی‌شد(رایانه نمیتونست بوت کنه که وارد گراب هم نمیشد) در تلاش برای دیباگ با Rescue mode هم وضعیت شبیه به این بود که نصاب به درستی پرونده‌های اجرایی رو کپی نمیکرد. بعد از سرگردانی رفتم سراغ دبیان.

 
بیشتر بخوانید...