Forwarded from Ninja Learn | نینجا لرن (Mohammad)
💎 دنیای رمزنگاری با DSA 💎
امروز میخوایم با هم یکی از الگوریتمهای مهم و پرکاربرد در دنیای رمزنگاری آشنا بشیم. این الگوریتم با اسم جذاب DSA شناخته میشه که مخفف Digital Signature Algorithm هست.
حالا DSA چیه و چیکار میکنه؟ 🤔
تصور کن میخوای یه پیام خیلی مهم رو برای دوستت بفرستی. اما نگران اینی که کسی پیام رو تو راه دستکاری کنه یا به اسم تو پیام بفرسته. اینجا DSA به دادت میرسه!
خب DSA یه الگوریتم رمزنگاریه که بهت کمک میکنه تا مطمئن بشی پیامی که فرستادی دست نخورده به دست مقصد رسیده و واقعا توسط خودت ارسال شده. به عبارت دیگه، DSA مثل یه امضای دیجیتالی عمل میکنه که ثابت میکنه پیام از طرف تو ارسال شده و کسی نتونسته اون رو تغییر بده.
چطور کار میکنه؟
اینجوریه که DSA از دو کلید استفاده میکنه: یک کلید عمومی و یک کلید خصوصی.
🔑 کلید عمومی: مثل یه کارت ویزیت دیجیتالی هست که همه میتونن ببینن. این کلید برای رمزگشایی پیام استفاده میشه.
🗝 کلید خصوصی: مثل یه رمز عبور خیلی محرمانه هست که فقط خودت باید بدونی. این کلید برای ایجاد امضای دیجیتال استفاده میشه.
وقتی میخوای یه پیام رو امضا کنی، DSA از کلید خصوصیت برای ایجاد یه رشته تصادفی استفاده میکنه. این رشته تصادفی با پیام اصلی ترکیب میشه و یه امضای دیجیتال ایجاد میکنه. این امضا به پیام اصلی اضافه میشه و همراه با پیام برای گیرنده ارسال میشه.
گیرنده با استفاده از کلید عمومی تو، امضای دیجیتال رو بررسی میکنه. اگر امضا معتبر باشه، مطمئن میشه که پیام از طرف تو ارسال شده و دستکاری نشده.
⚙ الگوریتمهای استفاده شده در DSA:
خب DSA از چندین الگوریتم ریاضی پیچیده استفاده میکنه که تضمین میکنه شکستن امضای دیجیتال تقریبا غیرممکن باشه. این الگوریتمها بر اساس تئوری اعداد و رمزنگاری نامتقارن طراحی شدهاند.
✅ کاربردهای DSA:
1⃣ امضای دیجیتال اسناد: برای اطمینان از اصالت و عدم تغییر اسناد الکترونیکی
2⃣ احراز هویت: برای تأیید هویت کاربران در سیستمهای امنیتی
3⃣ تأمین امنیت تراکنشهای مالی: برای محافظت از اطلاعات حساس در تراکنشهای آنلاین
4⃣ امضای نرمافزار: برای اطمینان از اینکه نرمافزار دستکاری نشده است
مزایای DSA:
5⃣ امنیت بالا: شکستن امضای دیجیتال DSA بسیار دشوار است.
6⃣ سرعت بالا: DSA نسبت به برخی الگوریتمهای دیگر سریعتر عمل میکنه.
7⃣ استاندارد بودن: DSA یک استاندارد جهانی است و در بسیاری از سیستمهای امنیتی استفاده میشه.
✅ جمعبندی:
فهمیدیم که DSA یک ابزار قدرتمند برای تأمین امنیت اطلاعات است. با استفاده از DSA میتونیم اطمینان حاصل کنیم که اطلاعات ما دست نخورده باقی میمونه و از طرف فرد مورد نظر ارسال شده است.
⭕️ نکته: DSA یکی از چندین الگوریتم امضای دیجیتال است. الگوریتمهای دیگری مثل RSA هم وجود دارند که کاربردهای مشابهی دارند.
امروز میخوایم با هم یکی از الگوریتمهای مهم و پرکاربرد در دنیای رمزنگاری آشنا بشیم. این الگوریتم با اسم جذاب DSA شناخته میشه که مخفف Digital Signature Algorithm هست.
حالا DSA چیه و چیکار میکنه؟ 🤔
تصور کن میخوای یه پیام خیلی مهم رو برای دوستت بفرستی. اما نگران اینی که کسی پیام رو تو راه دستکاری کنه یا به اسم تو پیام بفرسته. اینجا DSA به دادت میرسه!
خب DSA یه الگوریتم رمزنگاریه که بهت کمک میکنه تا مطمئن بشی پیامی که فرستادی دست نخورده به دست مقصد رسیده و واقعا توسط خودت ارسال شده. به عبارت دیگه، DSA مثل یه امضای دیجیتالی عمل میکنه که ثابت میکنه پیام از طرف تو ارسال شده و کسی نتونسته اون رو تغییر بده.
چطور کار میکنه؟
اینجوریه که DSA از دو کلید استفاده میکنه: یک کلید عمومی و یک کلید خصوصی.
🔑 کلید عمومی: مثل یه کارت ویزیت دیجیتالی هست که همه میتونن ببینن. این کلید برای رمزگشایی پیام استفاده میشه.
🗝 کلید خصوصی: مثل یه رمز عبور خیلی محرمانه هست که فقط خودت باید بدونی. این کلید برای ایجاد امضای دیجیتال استفاده میشه.
وقتی میخوای یه پیام رو امضا کنی، DSA از کلید خصوصیت برای ایجاد یه رشته تصادفی استفاده میکنه. این رشته تصادفی با پیام اصلی ترکیب میشه و یه امضای دیجیتال ایجاد میکنه. این امضا به پیام اصلی اضافه میشه و همراه با پیام برای گیرنده ارسال میشه.
گیرنده با استفاده از کلید عمومی تو، امضای دیجیتال رو بررسی میکنه. اگر امضا معتبر باشه، مطمئن میشه که پیام از طرف تو ارسال شده و دستکاری نشده.
⚙ الگوریتمهای استفاده شده در DSA:
خب DSA از چندین الگوریتم ریاضی پیچیده استفاده میکنه که تضمین میکنه شکستن امضای دیجیتال تقریبا غیرممکن باشه. این الگوریتمها بر اساس تئوری اعداد و رمزنگاری نامتقارن طراحی شدهاند.
✅ کاربردهای DSA:
1⃣ امضای دیجیتال اسناد: برای اطمینان از اصالت و عدم تغییر اسناد الکترونیکی
2⃣ احراز هویت: برای تأیید هویت کاربران در سیستمهای امنیتی
3⃣ تأمین امنیت تراکنشهای مالی: برای محافظت از اطلاعات حساس در تراکنشهای آنلاین
4⃣ امضای نرمافزار: برای اطمینان از اینکه نرمافزار دستکاری نشده است
مزایای DSA:
5⃣ امنیت بالا: شکستن امضای دیجیتال DSA بسیار دشوار است.
6⃣ سرعت بالا: DSA نسبت به برخی الگوریتمهای دیگر سریعتر عمل میکنه.
7⃣ استاندارد بودن: DSA یک استاندارد جهانی است و در بسیاری از سیستمهای امنیتی استفاده میشه.
✅ جمعبندی:
فهمیدیم که DSA یک ابزار قدرتمند برای تأمین امنیت اطلاعات است. با استفاده از DSA میتونیم اطمینان حاصل کنیم که اطلاعات ما دست نخورده باقی میمونه و از طرف فرد مورد نظر ارسال شده است.
⭕️ نکته: DSA یکی از چندین الگوریتم امضای دیجیتال است. الگوریتمهای دیگری مثل RSA هم وجود دارند که کاربردهای مشابهی دارند.
#امنیت_اطلاعاتDSA #رمزنگاری #امضای_دیجیتال
👍1🔥1
استرس در مصاحبه کاری یه امر طبیعیه. قراره قضاوت شین و نتیجهش رو هم نمیدونین! واضحه که به عنوان یک انسان باید مضطرب بشین، اما این استرس میتونه تا حدی مهار بشه که تأثیر منفیش کنترل شه.
۳×۳ نکتهی مختصر دربارهی «مدیریت استرس در مصاحبه کاری»:
1️⃣ قبل مصاحبه:
۱. راجع به شرکت، پوزیشن، و مصاحبهکننده خوب تحقیق کنین.
خوبه که بدونین چی کار دارن میکنن، احتمالاً به چی علاقه دارن و دنبال چیان، و خودتون رو توی مصاحبه باید علاقهمند و آگاه نشون بدین. توجه و اهمیت، احترام و علاقه میاره.
۲. حتماً یک محیط آروم، هم از نظر فیزیکی و هم از نظر روحی فراهم کنین.
آرامش فیزیکی محیط (از نظر صوتی و بصری) احترام به مخاطبه. آرامش خودتون هم کمک کنه بهترین عملکردتون رو داشته باشین، هم میتونه نشان از تسلط شما بر موضوع بحث داشته باشه.
۳. شب قبلش خوب بخوابین، قبل مصاحبه (و حینش) آب بنوشین، و به روزمهتون هم افتخار کنین!
قطعاً دستاوردهای شما اونقدری بوده که حاضرن براتون وقت باارزششون رو بذارن تا بیشتر بشناسنتون. پس اعتمادبهنفس (در حد کافی) داشته باشین و حالتون با خودتون خوب باشه.
حین مصاحبه:
۱. جواب مختصر مفید (efficient) بدین. و با دست خودتون مصاحبه رو به کوچه پسکوچههای پرخطر و استرسزا نبرین!
حتماً هر ۳۰ الی ۴۵ ثانیه چک کنین که مخاطب همچنان توضیح میخواد و جلوش آپشن بذارین. چون ممکنه طرف از سر احترام نپره وسط حرفتون اما بعداً نمره منفی بده!
۲. تلاش برای بیشاثرگذاری (overimpress کردن) نکنین! صرفاً بهترینِ خودتون باشین.
مصاحبهگر حرفهای خیلی راحتتر از اونی که فکر کنین میفهمه کجاها دارین تقلا میکنین که بیش از حد خودتون رو خفن نشون بدین. و هم ممکنه با خودبزرگبینی شما حال نکنه، هم مچتون رو بگیره و کلهپا شین!
۳. مغز خودتون رو گول بزنین که انگار مصاحبه رو قبول شدین و شغل رو گرفتین و این جلسه فقط یه مرور اینه که چرا شما لایق بودهاین!
درست مثل تمرین تئاتر که میتونین فرض کنین تماشاچیای نیست و این یه تمرینه. این شکلی دیگه لازم نیست استرسِ درحدلحظه قضاوت شدن رو دائم به دوش بکشین.
3️⃣ بعد مصاحبه:
۱. حتماً یه «دمت گرم» به خودتون بگین که از کنج دنج راحت خودتون (کامفورت زون) بیرون اومدین و این مرحله رو پشت سر گذاشتین!
و اون والدی نباشین که فقط اگه بچه ۲۰ بگیره دوستش داره. بلکه به تلاش خودتون ارزش بدین و احترام بذارین. انشالله نتیجه هم خوب میشه.
۲. بیشفکری (overthink) نکنین! کنترل تمام دنیا دست شما نیست. با شفقت و صبوری سعی کنین یاد بگیرین و جاهای بهبودپذیر رو کمکم بهبود بدین.
صد تا فاکتور توی مصاحبه همیشه هست که ممکنه باعث نشدن بشه. و ۹۰ تاشم نمیتونین ببینین. پس بیش از حد تحلیل و خودقضاوتگری مضاعف و ناسالم نکنین.
۳. نهایتاً، یادتون باشه که شما یک شیر هستین که نیاز داره «یه آهو» شکار کنه. اگه این آهو رو از دست دادین، بازم آهو تو گله ممکنه باشه. و تهش کسی نه میپرسه و نه براش مهمه که چند تا آهو رو از دست دادین، وقتی که با یه آهو لای دندوناتون با افتخار برگردین و حالشو ببرین!
۳×۳ نکتهی مختصر دربارهی «مدیریت استرس در مصاحبه کاری»:
1️⃣ قبل مصاحبه:
۱. راجع به شرکت، پوزیشن، و مصاحبهکننده خوب تحقیق کنین.
خوبه که بدونین چی کار دارن میکنن، احتمالاً به چی علاقه دارن و دنبال چیان، و خودتون رو توی مصاحبه باید علاقهمند و آگاه نشون بدین. توجه و اهمیت، احترام و علاقه میاره.
۲. حتماً یک محیط آروم، هم از نظر فیزیکی و هم از نظر روحی فراهم کنین.
آرامش فیزیکی محیط (از نظر صوتی و بصری) احترام به مخاطبه. آرامش خودتون هم کمک کنه بهترین عملکردتون رو داشته باشین، هم میتونه نشان از تسلط شما بر موضوع بحث داشته باشه.
۳. شب قبلش خوب بخوابین، قبل مصاحبه (و حینش) آب بنوشین، و به روزمهتون هم افتخار کنین!
قطعاً دستاوردهای شما اونقدری بوده که حاضرن براتون وقت باارزششون رو بذارن تا بیشتر بشناسنتون. پس اعتمادبهنفس (در حد کافی) داشته باشین و حالتون با خودتون خوب باشه.
حین مصاحبه:
۱. جواب مختصر مفید (efficient) بدین. و با دست خودتون مصاحبه رو به کوچه پسکوچههای پرخطر و استرسزا نبرین!
حتماً هر ۳۰ الی ۴۵ ثانیه چک کنین که مخاطب همچنان توضیح میخواد و جلوش آپشن بذارین. چون ممکنه طرف از سر احترام نپره وسط حرفتون اما بعداً نمره منفی بده!
۲. تلاش برای بیشاثرگذاری (overimpress کردن) نکنین! صرفاً بهترینِ خودتون باشین.
مصاحبهگر حرفهای خیلی راحتتر از اونی که فکر کنین میفهمه کجاها دارین تقلا میکنین که بیش از حد خودتون رو خفن نشون بدین. و هم ممکنه با خودبزرگبینی شما حال نکنه، هم مچتون رو بگیره و کلهپا شین!
۳. مغز خودتون رو گول بزنین که انگار مصاحبه رو قبول شدین و شغل رو گرفتین و این جلسه فقط یه مرور اینه که چرا شما لایق بودهاین!
درست مثل تمرین تئاتر که میتونین فرض کنین تماشاچیای نیست و این یه تمرینه. این شکلی دیگه لازم نیست استرسِ درحدلحظه قضاوت شدن رو دائم به دوش بکشین.
3️⃣ بعد مصاحبه:
۱. حتماً یه «دمت گرم» به خودتون بگین که از کنج دنج راحت خودتون (کامفورت زون) بیرون اومدین و این مرحله رو پشت سر گذاشتین!
و اون والدی نباشین که فقط اگه بچه ۲۰ بگیره دوستش داره. بلکه به تلاش خودتون ارزش بدین و احترام بذارین. انشالله نتیجه هم خوب میشه.
۲. بیشفکری (overthink) نکنین! کنترل تمام دنیا دست شما نیست. با شفقت و صبوری سعی کنین یاد بگیرین و جاهای بهبودپذیر رو کمکم بهبود بدین.
صد تا فاکتور توی مصاحبه همیشه هست که ممکنه باعث نشدن بشه. و ۹۰ تاشم نمیتونین ببینین. پس بیش از حد تحلیل و خودقضاوتگری مضاعف و ناسالم نکنین.
۳. نهایتاً، یادتون باشه که شما یک شیر هستین که نیاز داره «یه آهو» شکار کنه. اگه این آهو رو از دست دادین، بازم آهو تو گله ممکنه باشه. و تهش کسی نه میپرسه و نه براش مهمه که چند تا آهو رو از دست دادین، وقتی که با یه آهو لای دندوناتون با افتخار برگردین و حالشو ببرین!
❤1
🧑💻Cyber.vision🧑💻
Photo
اولین دوره سمینارهای اسپارک با حمایت مرکز کارآفرینی دانشگاه صنعتی شریف
همراه با حضور ١٢ شرکت مطرح تکنولوژی و برگزاری در تاریخ ٨ و ٩ شهریور به صورت مجازی
فرصت استثناییِ بهرهمندی از تجارب مهندسین شرکتهای دیوار ، بازار، ترب ، یکتانت، همروش، تپسل، جاباما ، تبدیل ، رمزینکس، گپیفای، زرینپال و اسمارتک
امکان حضور در ١٢ ارائه و دو میزگرد همراه با گواهی رسمی حضور از طرف مرکز کارآفرینی شریف، ارسال رزومه برای تمامی حامیان و فرصت استخدام در شرکتها تنها با پرداخت ١٠٠ هزار تومان
فرصت رو از دست نده و همین حالا ثبتنام کن:
ce-spark.com
در صورت وجود هرگونه سوال، با اکانت پشتیبانی به آدرس @CE_Spark_Support در ارتباط باشید.
اسپارک؛ جرقهی ارتباط با صنعت
LinkedIn Instagram
@ce_spark Register Now
همراه با حضور ١٢ شرکت مطرح تکنولوژی و برگزاری در تاریخ ٨ و ٩ شهریور به صورت مجازی
فرصت استثناییِ بهرهمندی از تجارب مهندسین شرکتهای دیوار ، بازار، ترب ، یکتانت، همروش، تپسل، جاباما ، تبدیل ، رمزینکس، گپیفای، زرینپال و اسمارتک
امکان حضور در ١٢ ارائه و دو میزگرد همراه با گواهی رسمی حضور از طرف مرکز کارآفرینی شریف، ارسال رزومه برای تمامی حامیان و فرصت استخدام در شرکتها تنها با پرداخت ١٠٠ هزار تومان
فرصت رو از دست نده و همین حالا ثبتنام کن:
ce-spark.com
در صورت وجود هرگونه سوال، با اکانت پشتیبانی به آدرس @CE_Spark_Support در ارتباط باشید.
اسپارک؛ جرقهی ارتباط با صنعت
LinkedIn Instagram
@ce_spark Register Now
Linkedin
CE Spark | LinkedIn
CE Spark | 1,214 followers on LinkedIn. A Technological Event Regarding Products and Challenges of Tech Companies | اسپارک؛ رویداد اشتراکگذاری تجارب توسعهی محصولات نرمافزار و هوش مصنوعی
رویداد اسپارک فرصتی استثنایی برای انتقال تجربه، شبکهسازی و آشنایی…
رویداد اسپارک فرصتی استثنایی برای انتقال تجربه، شبکهسازی و آشنایی…
🦋برگزاری کلاس های صفر تا صد زبان خارجه توسط اساتید نیتیو و با سابقه فوق العاده
🌿کلاس ها به صورت افلاین و انلاین برگزار میشوند
🌿از سطح مبتدی تا پیشرفته
🌿کلاس امادگی برای ازمون های بین المللی
🌿مشاوره تحصیلی و کاری به کشور مورد نظر
📍دریافت شرایط و ثبت نام فقط از طریق ایدی زیر
@nihon_admin
🌿کلاس ها به صورت افلاین و انلاین برگزار میشوند
🌿از سطح مبتدی تا پیشرفته
🌿کلاس امادگی برای ازمون های بین المللی
🌿مشاوره تحصیلی و کاری به کشور مورد نظر
📍دریافت شرایط و ثبت نام فقط از طریق ایدی زیر
@nihon_admin
تقریباً توی ۲ سال گذشته وقتی یکی بهم میگه:
واقعاً عصبیم میکنه.
من زمانی لینوکس رو یاد گرفتم که ۱ ماه منتظر موندم تا
چرا ؟
چون با اینترنت dial up + کارت اینترنت
۲ هفته صبر کردم نسخه جدید منتشر بشه، بعد سفارش دادم برام آوردن که ۲ هفته طول کشید.
وقتی cd به دستم رسید، یک کتاب قدیمی که از یک دانشجوی کارشناسی دانشگاه دستم رسیده بود رو نصفش رو خونده بودم و رو کاغذ تمرین کرده بودم.
انقدری که جای آیکون و آپشنها و ... رو حفظ شده بودم.
سیستم وقتی خراب میشد و توی کتاب نبود، بهترین گزینه این بود که تا ۱ شب صبر کنم چون از ۱ شب به بعد اینترنت dial up قویتر میشد (۶۴ کیلوبایت بود اون موقع) و میشد توی فرومهای مختلف راحتتر پستهارو دنبال کرد.
بعد شما الان به من میگی منبع نیست ؟ حتی اگر واقعاً هیچ منبعی هم وجود نداشته باشه برای دسترسی شما.
۱- داکیومنت اصلی
۲- سورس کدهای دیگران (یا حتی نویسنده اون کتابخونه، زبان برنامهنویسی یا ...)
۳- هوش مصنوعی
برای مثال من میخوام یک کتابخونه تو
bard.google.com
رو باز میکنم؛ توی اولین پیام مینویسم.
بعد شروع میکنم سورس کد دیگران رو خوندن، داکیومنت خوندن و کد زدن.
و هر کدی که متوجه نشم، یا حتی متوجه هم بشم برای درک بهتر و یا اینکه مطمئن بشم درست یاد گرفتم میدم به این مدل و ....
حالا چرا
۱- دسترسی به داده سرچ
۲- طول متن ورودی طولانیتر
۳- توضیحات دقیقتر
۴- کاملاً رایگان
توجه کنید ازش نمیخوام کد بزنه، میخوام بهم توضیح بده.
خلاصه که برای تنبلی خودتون، دنبال بهونه نباشید.
قطعاً این تکنیک زمانبر هست، اما پیشرفت نیاز به زمان داره.
گل سر سبد، آنچه باید رو بهتون گفتم دیگه
برای فلان موضوع منبعی وجود نداره، نمیتونم یاد بگیرم
واقعاً عصبیم میکنه.
من زمانی لینوکس رو یاد گرفتم که ۱ ماه منتظر موندم تا
CD
نصب لینوکس به دستم برسه چرا ؟
چون با اینترنت dial up + کارت اینترنت
۵۰۰۰
تومانی امکان دانلود نداشتم.۲ هفته صبر کردم نسخه جدید منتشر بشه، بعد سفارش دادم برام آوردن که ۲ هفته طول کشید.
وقتی cd به دستم رسید، یک کتاب قدیمی که از یک دانشجوی کارشناسی دانشگاه دستم رسیده بود رو نصفش رو خونده بودم و رو کاغذ تمرین کرده بودم.
انقدری که جای آیکون و آپشنها و ... رو حفظ شده بودم.
سیستم وقتی خراب میشد و توی کتاب نبود، بهترین گزینه این بود که تا ۱ شب صبر کنم چون از ۱ شب به بعد اینترنت dial up قویتر میشد (۶۴ کیلوبایت بود اون موقع) و میشد توی فرومهای مختلف راحتتر پستهارو دنبال کرد.
بعد شما الان به من میگی منبع نیست ؟ حتی اگر واقعاً هیچ منبعی هم وجود نداشته باشه برای دسترسی شما.
۱- داکیومنت اصلی
۲- سورس کدهای دیگران (یا حتی نویسنده اون کتابخونه، زبان برنامهنویسی یا ...)
۳- هوش مصنوعی
برای مثال من میخوام یک کتابخونه تو
Rust
یاد بگیرم و منبع هم نداره : bard.google.com
رو باز میکنم؛ توی اولین پیام مینویسم.
You are a senior Rust developer and my tutor on learning Axum, from now on you must help me understand every single line of code we will talk about.
بعد شروع میکنم سورس کد دیگران رو خوندن، داکیومنت خوندن و کد زدن.
و هر کدی که متوجه نشم، یا حتی متوجه هم بشم برای درک بهتر و یا اینکه مطمئن بشم درست یاد گرفتم میدم به این مدل و ....
حالا چرا
Bard
یا همون Gemini
رو استفاده میکنم ؟ ۱- دسترسی به داده سرچ
۲- طول متن ورودی طولانیتر
۳- توضیحات دقیقتر
۴- کاملاً رایگان
توجه کنید ازش نمیخوام کد بزنه، میخوام بهم توضیح بده.
خلاصه که برای تنبلی خودتون، دنبال بهونه نباشید.
قطعاً این تکنیک زمانبر هست، اما پیشرفت نیاز به زمان داره.
گل سر سبد، آنچه باید رو بهتون گفتم دیگه
اگه Wi-Fi سیستمتون اینتله و حس میکنید کنده با این تریک ممکنه مشکلتون حل بشه
برای این کار به فایل زیر برید
/etc/modprobe.d/iwlwifi.conf
و این خط رو اضافه کنید
options iwlwifi 11n_disable=8
این خط با غیرفعال کردن برخی از ویژگیهای استاندارد 802.11n، میتونه به بهبود عملکرد در برخی شرایط خاص کمک کنه. به صورت کلی میاد فاصله زمانی بین فریم هارو کم میکنه و چند فریم رو میتونه ترکیب کنه با هم دیگه. همچنین تداخل با دستگاه های وایفای دیگه هم کم میشه.
البته توجه کنید این عمل وقتی که چند تا دستگاه رو وصل میکنید ممکنه سرعت شمارو از حالت عادی بیاره پایین تر.
برای این کار به فایل زیر برید
/etc/modprobe.d/iwlwifi.conf
و این خط رو اضافه کنید
options iwlwifi 11n_disable=8
این خط با غیرفعال کردن برخی از ویژگیهای استاندارد 802.11n، میتونه به بهبود عملکرد در برخی شرایط خاص کمک کنه. به صورت کلی میاد فاصله زمانی بین فریم هارو کم میکنه و چند فریم رو میتونه ترکیب کنه با هم دیگه. همچنین تداخل با دستگاه های وایفای دیگه هم کم میشه.
البته توجه کنید این عمل وقتی که چند تا دستگاه رو وصل میکنید ممکنه سرعت شمارو از حالت عادی بیاره پایین تر.
امنیت در استفاده از <iframe> و window.open
اگر به دنیای امنیت وب و تست نفوذ علاقهمند هستید، حتماً با ابزارهایی مثل تگ <iframe> و متد window.open مواجه شدهاید. این دو ابزار اگر بهدرستی مدیریت نشوند، میتوانند به دریچهای برای حملات XSS خطرناک تبدیل شوند. در این پست، به بررسی این دو و تهدیداتی که ممکن است ایجاد کنند، میپردازیم.
تگ <iframe>
تگ <iframe> به توسعهدهندگان اجازه میدهد تا محتوای یک صفحه وب دیگر را درون صفحهی اصلی خود نمایش دهند. این قابلیت به ظاهر بیخطر است اما میتواند به یک نقطه ضعف امنیتی تبدیل شود. مهاجمان میتوانند از این تگ برای جاسازی محتوای مخرب در سایتهای معتبر استفاده کنند.
مثال حمله XSS با iframe:
فرض کنید یک سایت بهدرستی ورودیهای کاربران را فیلتر نمیکند و یک مهاجم موفق میشود کد زیر را در سایت تزریق کند:
<iframe src="https://attacker.com/steal_data"></iframe>
این iframe میتواند به صفحهای هدایت شود که حاوی کدهای مخرب است. چنین کدهایی ممکن است برای سرقت کوکیها یا اجرای عملیات ناخواسته روی حساب کاربری شما به کار رود.
متد window.open
متد window.open در جاوااسکریپت برای باز کردن یک پنجره یا تب جدید در مرورگر استفاده میشود. اگر این متد بهدرستی کنترل نشود، مهاجمان میتوانند کاربران را به صفحات فیشینگ یا سایتهای آلوده هدایت کنند.
مثال حمله با window.open:
مهاجم میتواند با تزریق کد جاوااسکریپتی مانند زیر، کاربران را به یک سایت فیشینگ هدایت کند:
window.open('https://attacker.com/phishing_page', '_blank');
این کد میتواند بدون آگاهی کاربر، او را به صفحهای هدایت کند که به نظر معتبر میرسد اما در واقع هدف آن سرقت اطلاعات کاربر است.
روشهای پیشگیری
برای جلوگیری از سوءاستفاده از <iframe> و window.open، این نکات را در نظر بگیرید:
1. استفاده از Content Security Policy (CSP): با تنظیم یک CSP مناسب، میتوانید بارگذاری منابع از دامنههای غیرمجاز را محدود کنید.
2. محدود کردن iframe با sandbox: استفاده از ویژگی sandbox در iframe، از اجرای کدهای مخرب و ارسال فرمهای ناخواسته جلوگیری میکند.
<iframe src="https://example.com" sandbox="allow-scripts"></iframe>
3. کنترل دقیق ورودیها: همیشه ورودیهای کاربران را فیلتر کنید تا از حملات XSS جلوگیری شود.
4. بررسی URLها در window.open: قبل از هدایت کاربران به یک صفحه جدید، URL را به دقت بررسی کنید.
---
به امید موفقیت در مسیر حرفهای شدن در حوزه امنیت وب!
#جاوااسکریپت #تست_نفوذ #امنیت #برنامهنویسی #وب_اپلیکیشن
اگر به دنیای امنیت وب و تست نفوذ علاقهمند هستید، حتماً با ابزارهایی مثل تگ <iframe> و متد window.open مواجه شدهاید. این دو ابزار اگر بهدرستی مدیریت نشوند، میتوانند به دریچهای برای حملات XSS خطرناک تبدیل شوند. در این پست، به بررسی این دو و تهدیداتی که ممکن است ایجاد کنند، میپردازیم.
تگ <iframe>
تگ <iframe> به توسعهدهندگان اجازه میدهد تا محتوای یک صفحه وب دیگر را درون صفحهی اصلی خود نمایش دهند. این قابلیت به ظاهر بیخطر است اما میتواند به یک نقطه ضعف امنیتی تبدیل شود. مهاجمان میتوانند از این تگ برای جاسازی محتوای مخرب در سایتهای معتبر استفاده کنند.
مثال حمله XSS با iframe:
فرض کنید یک سایت بهدرستی ورودیهای کاربران را فیلتر نمیکند و یک مهاجم موفق میشود کد زیر را در سایت تزریق کند:
<iframe src="https://attacker.com/steal_data"></iframe>
این iframe میتواند به صفحهای هدایت شود که حاوی کدهای مخرب است. چنین کدهایی ممکن است برای سرقت کوکیها یا اجرای عملیات ناخواسته روی حساب کاربری شما به کار رود.
متد window.open
متد window.open در جاوااسکریپت برای باز کردن یک پنجره یا تب جدید در مرورگر استفاده میشود. اگر این متد بهدرستی کنترل نشود، مهاجمان میتوانند کاربران را به صفحات فیشینگ یا سایتهای آلوده هدایت کنند.
مثال حمله با window.open:
مهاجم میتواند با تزریق کد جاوااسکریپتی مانند زیر، کاربران را به یک سایت فیشینگ هدایت کند:
window.open('https://attacker.com/phishing_page', '_blank');
این کد میتواند بدون آگاهی کاربر، او را به صفحهای هدایت کند که به نظر معتبر میرسد اما در واقع هدف آن سرقت اطلاعات کاربر است.
روشهای پیشگیری
برای جلوگیری از سوءاستفاده از <iframe> و window.open، این نکات را در نظر بگیرید:
1. استفاده از Content Security Policy (CSP): با تنظیم یک CSP مناسب، میتوانید بارگذاری منابع از دامنههای غیرمجاز را محدود کنید.
2. محدود کردن iframe با sandbox: استفاده از ویژگی sandbox در iframe، از اجرای کدهای مخرب و ارسال فرمهای ناخواسته جلوگیری میکند.
<iframe src="https://example.com" sandbox="allow-scripts"></iframe>
3. کنترل دقیق ورودیها: همیشه ورودیهای کاربران را فیلتر کنید تا از حملات XSS جلوگیری شود.
4. بررسی URLها در window.open: قبل از هدایت کاربران به یک صفحه جدید، URL را به دقت بررسی کنید.
---
به امید موفقیت در مسیر حرفهای شدن در حوزه امنیت وب!
#جاوااسکریپت #تست_نفوذ #امنیت #برنامهنویسی #وب_اپلیکیشن
Attacker
Attacker - The Domain Name Attacker.com is Now For Sale.
Attacker.com is now for sale, lease or rent. Smart domain names compound conversion rates and this domain name for Attacker marketing is a wise investment.
خطا داریم؟ همینه که هست!
یه مثال دیدم که میگفت شما وقتی ماشینتون پنچر میشه صبر میکنید تا تعمیرکار بیاد درستش کنه، یا با همون چرخ های پنجر با سرعت کم ادامه میدین تا به مقصد برسید؟
به نظرم همین توی برنامهنویسی هم مصداق داره، وقتی برنامهمون به ارور میخوره چطوری مدیریتش میکنیم؟ حالا این ارور خیلی وقت ها exceptionه توی زبون های برنامه نویسی، ولی یکم سطح بالاتر ببینیم،
مثلا به یه سرویس خارجی درخواست دادیم و نیست، خب چیکار کنیم؟
یه فایل کانفیگ رو میخوایم لود کنیم ولی نیست.
دیتایی که از سمت کاربر اومده معتبر نیست.
در یک برنامه معمولی جوابِ (احتمالا) درست به خیلی از این سوالا اینه که خب کارکرد برنامه رو متوقف کن و بگو نمیتونم. برنامه کار نکنه تا دوباره با برطرف شدن مشکلات یکی از اول اجراش کنه،
ولی اگر برنامه ما قراره توی یکسری از محیطها اجرا بشه دیگه خبری از «من کار نمیکنم تا شرایط درست بشه» نیست. چه محیطهایی؟ محیطهایی که availability بالا مهمه مثلا سیستم های امبدد یا بکاند.
مثلا قراره ما مسیریابی یک هواپیما رو انجام بدیم و سیگنال GPS دریافت نمیکنیم، خب به هواپیما بگیم فعلا من کار نمیکنم؟! یعنی چی که کار نمیکنم، با سرعت زیاد داره میره :)))
یا مثلاً توی کلود اگر ارور بدیم و برنامه کرش کنه کنیم چی میشه؟ کوبرنتیز دوباره برنامه رو اجرا میکنه و دوباره با مشکل درگیریم!
پس در این شرایط نمیشه ارور داد و بیخیال شد، بلکه باید با همون چرخ پنچر ادامه داد، برای هر روش هم با خلاقیت خودمون یا با کمک روش های پیشنهاد شده باید یه پلن بی داشته باشیم،
پیاده سازی و تست خود برنامه در کنار اینکه هر قسمتی ممکنه کار نکنه و سناریوهای مختلفش، کار سختیه ولی هزینهی داشتن یه نرم افزار قابل اعتماده.
مثلا چه مشکلاتی؟
مثلاً اگه قراره کانفیگ فایل رو از بیرون لود کنیم, آمادگی نبودنش رو هم داشته باشیم، مثلا یه کانفیگ پیشفرض داشته باشیم (البته کانفیگ چون موقع اولین اجرای برنامه خودش رو نشون میده شاید نیازی هم نباشه)
مثلا اگر داده gps به ما نرسید، با کمک داده های قبلی که ذخیره کردیم و یا ترکیبش با سرعت و شتاب و ... مشکل رو موقتا و حتی نادقیق حل کنیم
یا مثلاً اگر به سرور خارجی درخواست میزنیم و نیست، آمادگی نبودنش رو داشته باشیم، اینجا یکسری پترن که تو صنعت استفاده میشه داریم
مثلا چه پترنهایی؟
+ دوباره درخواست بده: retry pattern
+ به یکی دیگه درخواست بده: fallback
+ اگر خرابه تا یه مدت بهش درخواست نده تا ارور الکی نگیری: circuit breaker
+ اگه سرور خارجی کنده، خیلی صبر نکن تا response time خودت هم بالا نره
+ اگر سرور خارجی دیتا قراره بهت بده، دیتای قبلی رو کش کن.
اینها در سطح کد بودن، در سطح معماری هم میشه از قبل روشهایی رو تدارک دید مثلاً خود دیتابیس رو چطوری High available کنیم، یا روشهایی که بیشتر تو سیستم های امبدد استفاده میشه مثل اینکه یه برنامه رو با چند تا پیاده سازی همزمان اجرا کنیم تا اگر یکیش خراب شد اون یکیها باشن!
منابع:
https://opensource.com/article/19/9/transient-faults-devops
https://www.jrebel.com/blog/microservices-resilience-patterns
https://learn.microsoft.com/en-us/azure/architecture/best-practices/transient-faults
https://learn.microsoft.com/en-us/dotnet/architecture/cloud-native/application-resiliency-patterns
یه مثال دیدم که میگفت شما وقتی ماشینتون پنچر میشه صبر میکنید تا تعمیرکار بیاد درستش کنه، یا با همون چرخ های پنجر با سرعت کم ادامه میدین تا به مقصد برسید؟
به نظرم همین توی برنامهنویسی هم مصداق داره، وقتی برنامهمون به ارور میخوره چطوری مدیریتش میکنیم؟ حالا این ارور خیلی وقت ها exceptionه توی زبون های برنامه نویسی، ولی یکم سطح بالاتر ببینیم،
مثلا به یه سرویس خارجی درخواست دادیم و نیست، خب چیکار کنیم؟
یه فایل کانفیگ رو میخوایم لود کنیم ولی نیست.
دیتایی که از سمت کاربر اومده معتبر نیست.
در یک برنامه معمولی جوابِ (احتمالا) درست به خیلی از این سوالا اینه که خب کارکرد برنامه رو متوقف کن و بگو نمیتونم. برنامه کار نکنه تا دوباره با برطرف شدن مشکلات یکی از اول اجراش کنه،
ولی اگر برنامه ما قراره توی یکسری از محیطها اجرا بشه دیگه خبری از «من کار نمیکنم تا شرایط درست بشه» نیست. چه محیطهایی؟ محیطهایی که availability بالا مهمه مثلا سیستم های امبدد یا بکاند.
مثلا قراره ما مسیریابی یک هواپیما رو انجام بدیم و سیگنال GPS دریافت نمیکنیم، خب به هواپیما بگیم فعلا من کار نمیکنم؟! یعنی چی که کار نمیکنم، با سرعت زیاد داره میره :)))
یا مثلاً توی کلود اگر ارور بدیم و برنامه کرش کنه کنیم چی میشه؟ کوبرنتیز دوباره برنامه رو اجرا میکنه و دوباره با مشکل درگیریم!
پس در این شرایط نمیشه ارور داد و بیخیال شد، بلکه باید با همون چرخ پنچر ادامه داد، برای هر روش هم با خلاقیت خودمون یا با کمک روش های پیشنهاد شده باید یه پلن بی داشته باشیم،
پیاده سازی و تست خود برنامه در کنار اینکه هر قسمتی ممکنه کار نکنه و سناریوهای مختلفش، کار سختیه ولی هزینهی داشتن یه نرم افزار قابل اعتماده.
مثلا چه مشکلاتی؟
مثلاً اگه قراره کانفیگ فایل رو از بیرون لود کنیم, آمادگی نبودنش رو هم داشته باشیم، مثلا یه کانفیگ پیشفرض داشته باشیم (البته کانفیگ چون موقع اولین اجرای برنامه خودش رو نشون میده شاید نیازی هم نباشه)
مثلا اگر داده gps به ما نرسید، با کمک داده های قبلی که ذخیره کردیم و یا ترکیبش با سرعت و شتاب و ... مشکل رو موقتا و حتی نادقیق حل کنیم
یا مثلاً اگر به سرور خارجی درخواست میزنیم و نیست، آمادگی نبودنش رو داشته باشیم، اینجا یکسری پترن که تو صنعت استفاده میشه داریم
مثلا چه پترنهایی؟
+ دوباره درخواست بده: retry pattern
+ به یکی دیگه درخواست بده: fallback
+ اگر خرابه تا یه مدت بهش درخواست نده تا ارور الکی نگیری: circuit breaker
+ اگه سرور خارجی کنده، خیلی صبر نکن تا response time خودت هم بالا نره
+ اگر سرور خارجی دیتا قراره بهت بده، دیتای قبلی رو کش کن.
اینها در سطح کد بودن، در سطح معماری هم میشه از قبل روشهایی رو تدارک دید مثلاً خود دیتابیس رو چطوری High available کنیم، یا روشهایی که بیشتر تو سیستم های امبدد استفاده میشه مثل اینکه یه برنامه رو با چند تا پیاده سازی همزمان اجرا کنیم تا اگر یکیش خراب شد اون یکیها باشن!
منابع:
https://opensource.com/article/19/9/transient-faults-devops
https://www.jrebel.com/blog/microservices-resilience-patterns
https://learn.microsoft.com/en-us/azure/architecture/best-practices/transient-faults
https://learn.microsoft.com/en-us/dotnet/architecture/cloud-native/application-resiliency-patterns
Opensource.com
3 ways to handle transient faults for DevOps
In electrical engineering, a transient fault is defined as an error condition that vanishes after the power is disconnected and restored.
Forwarded from Syntax | سینتکس (Daimon)
حق:
من این مشکل رو زیاد دیدم؛ بیش از حداقل 20% پروژههای خدماتی که دوستان روش کار میکنن. میبینم که
شاید به روی خودتون نیارید ولی خیلی از شما هم ازین پروژهها دیدید دیگه.
خواستم هم اهمیت
هم بگم پروژههایی مثل
مثال:
کاری به درست و غلط بودن دیزاین و ... ندارم و بحثم فقط همین مورد
یک کدی رو دیدم؛ طرف یک سیستم
این دیتابیس خیلی اهمیت زیادی نداره؛ هر کد قراره نهایتا
چرا میخواید شر درست کنید برای تیم
خیلی ها مشکلشون این هست که اطلاعات ندارند (هیچوقت هم جرات تجربه کردن نداشتند)؛ خود
بیش از 500 هزار
روی
اضافه کنم :
اینم rqlite اگر حتی خواستید
Source
من این مشکل رو زیاد دیدم؛ بیش از حداقل 20% پروژههای خدماتی که دوستان روش کار میکنن. میبینم که
Postgresql
به معنای واقعی کلمه OverKill
هست. مخصوصا وقتی Sqlite
کار رو در میاره.شاید به روی خودتون نیارید ولی خیلی از شما هم ازین پروژهها دیدید دیگه.
خواستم هم اهمیت
SQLite
رو یادآوری کنمهم بگم پروژههایی مثل
rqlite
هم وجود دارههامثال:
کاری به درست و غلط بودن دیزاین و ... ندارم و بحثم فقط همین مورد
Sqlite
هست.یک کدی رو دیدم؛ طرف یک سیستم
verification
جدا براش طراحی کرده بود و تمام پروژههاشون ازین سرویس استفاده میکرد. فکر کنم این سرویس یا .net
بود یا golang
بعد بحث اصلی سر این بود که Postgres
بذارند یا MsSql
من درجا پیشنهاد SQlite
رو دادم.این دیتابیس خیلی اهمیت زیادی نداره؛ هر کد قراره نهایتا
۱۰
دقیقه valid
باشه. در صورت پاک شدن هم طرف یکبار دیگه درخواست میده (که من تاحالا پاک شدن خود به خود توش ندیدم).چرا میخواید شر درست کنید برای تیم
devops, server, database, ...
خیلی ها مشکلشون این هست که اطلاعات ندارند (هیچوقت هم جرات تجربه کردن نداشتند)؛ خود
SQLite
روی SSD
طبق بنچمارکها.بیش از 500 هزار
insert
در ثانیه رو پشتیبانی میکنه و برای read
هم این مورد به بیش از 1 میلیون میرسه و این مورد بدون config
های پرفورمنسی هست که توی داکیومنت خودش ارائه شده.روی
NVMe
هم چندسال قبل تست کردیم؛ اعداد بهتر هم میشه.اضافه کنم :
اینم rqlite اگر حتی خواستید
SQlite
رو بصورت distributed
داشته باشید (قبلا توی اون کی کانال راجبش صحبت کردم با K8s
)Source
👍1🔥1
Liger (Linkedin GPU Efficient Runtime) Kernel
لینکدین یک لایبرری بنام Liger Kernel معرفی کرده که به طرز قابل توجهی باعث افزایش سرعت و کاهش مصرف RAM در آموزش LLM میشه. آمار و ارقام نشون میده که شما با این لایبرری میتونید 20% افزایش سرعت و 60% کاهش مصرف RAM رو تجربه کنید! 🤯
استفاده از این لایبرری هم اصلا کاری نداره. فقط یک خط کد به کدهاتون اضافه میکنید. مثلا، در کد زیر، این لایبرری روی مدل لاما هاگینگفیس اعمال شده:
import transformers
from liger_kernel.transformers import apply_liger_kernel_to_llama
model = transformers.AutoModelForCausalLM.from_pretrained("<some llama model>")
# Adding this line automatically monkey-patches the model with the optimized Liger kernels
apply_liger_kernel_to_llama()
همونطور که گفتم، این لایبرری رو لینکدین ارائه کرده و هم مورد توجه جامعه هوش مصنوعی قرار گرفته و هم دست مایه طنز کاربرهای توییتر شده! تصویر بالا رو ببینید. 😁
لینک گیتهاب
تحلیل BSOD پتچ امنیتی CrowdStrike
مشکل اصلی که در نرمافزار CrowdStrike رخ داد، به دلیل دسترسی نادرست به حافظه از طریق یک اشارهگر تهی (NULL pointer) در زبان برنامهنویسی C++ بود. حافظه در کامپیوتر به صورت یک آرایه بزرگ از اعداد سازماندهی شده است. اگر برنامهای تلاش کند به یک آدرس حافظه نامعتبر دسترسی پیدا کند، سیستمعامل بلافاصله برنامه را متوقف میکند و این موضوع منجر به خرابی سیستم میشود.
در این حالت خاص، برنامه سعی کرد به آدرس حافظه 0x9c (که معادل 156 در مبنای 10 است) دسترسی پیدا کند. این آدرس حافظه نامعتبر است و دسترسی به آن باعث میشود که سیستمعامل برنامه را متوقف کند. این مسئله به دلیل عدم بررسی اشارهگر تهی توسط برنامهنویس اتفاق افتاد.
برای مثال:
در این مثال، اشارهگر obj تهی (NULL) است. هنگامی که برنامه سعی میکند به عضو a از شیء obj دسترسی پیدا کند، به دلیل تهی بودن اشارهگر، به یک آدرس نامعتبر دسترسی پیدا میکند و باعث خرابی برنامه میشود.
این مشکل بهخصوص خطرناک بود زیرا در یک درایور سیستمی رخ داد. درایورهای سیستمی دسترسیهای سطح بالایی به منابع سیستم دارند و خرابی در این درایورها میتواند منجر به توقف کل سیستمعامل و نمایش صفحه آبی مرگ (BSOD) شود.
برای جلوگیری از چنین مشکلاتی، برنامهنویسان باید همیشه قبل از دسترسی به اشارهگرها، آنها را بررسی کنند. استفاده از زبانهای برنامهنویسی مدرن مانند Rust که از دسترسیهای نادرست به حافظه جلوگیری میکنند، میتواند به کاهش این خطرات کمک کند.
➖➖➖➖➖➖➖➖
مشکل اصلی که در نرمافزار CrowdStrike رخ داد، به دلیل دسترسی نادرست به حافظه از طریق یک اشارهگر تهی (NULL pointer) در زبان برنامهنویسی C++ بود. حافظه در کامپیوتر به صورت یک آرایه بزرگ از اعداد سازماندهی شده است. اگر برنامهای تلاش کند به یک آدرس حافظه نامعتبر دسترسی پیدا کند، سیستمعامل بلافاصله برنامه را متوقف میکند و این موضوع منجر به خرابی سیستم میشود.
در این حالت خاص، برنامه سعی کرد به آدرس حافظه 0x9c (که معادل 156 در مبنای 10 است) دسترسی پیدا کند. این آدرس حافظه نامعتبر است و دسترسی به آن باعث میشود که سیستمعامل برنامه را متوقف کند. این مسئله به دلیل عدم بررسی اشارهگر تهی توسط برنامهنویس اتفاق افتاد.
برای مثال:
struct Obj {
int a;
int b;
};
Obj* obj = NULL;
print(obj->a);
در این مثال، اشارهگر obj تهی (NULL) است. هنگامی که برنامه سعی میکند به عضو a از شیء obj دسترسی پیدا کند، به دلیل تهی بودن اشارهگر، به یک آدرس نامعتبر دسترسی پیدا میکند و باعث خرابی برنامه میشود.
این مشکل بهخصوص خطرناک بود زیرا در یک درایور سیستمی رخ داد. درایورهای سیستمی دسترسیهای سطح بالایی به منابع سیستم دارند و خرابی در این درایورها میتواند منجر به توقف کل سیستمعامل و نمایش صفحه آبی مرگ (BSOD) شود.
برای جلوگیری از چنین مشکلاتی، برنامهنویسان باید همیشه قبل از دسترسی به اشارهگرها، آنها را بررسی کنند. استفاده از زبانهای برنامهنویسی مدرن مانند Rust که از دسترسیهای نادرست به حافظه جلوگیری میکنند، میتواند به کاهش این خطرات کمک کند.
➖➖➖➖➖➖➖➖
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 متاسفانه زیر ساخت شبکه TON تلگرام بسیار ضعیف اجرا شد و آنها انتظار نداشتند چنین حجم سنگینی از تراکنش های روی شبکه TON انجام شود. گزارشی رسیده که حجم تراکنش از روزانه 2.5 ملیون تراکنش به 9.5 ملیون تراکنش رسیده است و بسیاری از تراکنش ها انجام نمی شود و برخی از صرافی ها مثل بایننس مجبور شدند که برداشت از شبکه TON ببندد. بهرحال این اتفاق به ایردارپ داگز بر می گردد که نتوانست به ۴۰ میلیون کاربر خود توکن های داگز از طریق شبکه TON به حساب آنها انتقال دهد.
باید دید شبکه TON چه برنامه ای برای ارتقای زیرساخت خود در کوتاه مدت دارد.
@TheRaymondDev
باید دید شبکه TON چه برنامه ای برای ارتقای زیرساخت خود در کوتاه مدت دارد.
@TheRaymondDev
#regreSSHion #OpenSSH #CVE-2024-6387
اخیرا برنامه OpenSSH که استفاده گسترده ای در پروتکل SSH دارد، دارای یک آسیب پذیری شرایط رقابتی یا Race Condition شده است.
این آسیب پذیری از نسخه 8.5p1 => 9.8p1 که در برابر signal handler آسیب پذیری Race Condition رخ خواهد داد، که به زبان ساده میشود اینکه در یک بازه زمانی مشخص، چندین Thread موازی تلاش میکنند در یک منطقه حافظه برخی فرایند خواندن و برخی فرایند نوشتن را انجام دهند.
اینجا تقدم و تأخر لحظه استفاده و لحظه چک بهم خواهد خورد و آسیب پذیری این امکان رو خواهد داد که شما از 200 درخواست یا Request ارسالی چند مورد رو به اشتباه مجوز تایید بگیرید.
خب حالا نحوه رخداد آسیب پذیری چطور بوده؟ این آسیب پذیری بر روی سیستم عامل های لینوکسی که از کتابخونه glibc بهره میگیرند، قابل بهره برداری است.
چرا که تابع syslog خود تابع async-signal-unsafe را فراخوانی میکند که این تابع از malloc و free برای تخصیص حافظه استفاده میکند که در منطقه سیستم است لذا سطح دسترسی نیز root خواهد بود، همچنین در تابع main_sigchld_handler شرط آسیب قرار دارد.
اخیرا برنامه OpenSSH که استفاده گسترده ای در پروتکل SSH دارد، دارای یک آسیب پذیری شرایط رقابتی یا Race Condition شده است.
این آسیب پذیری از نسخه 8.5p1 => 9.8p1 که در برابر signal handler آسیب پذیری Race Condition رخ خواهد داد، که به زبان ساده میشود اینکه در یک بازه زمانی مشخص، چندین Thread موازی تلاش میکنند در یک منطقه حافظه برخی فرایند خواندن و برخی فرایند نوشتن را انجام دهند.
اینجا تقدم و تأخر لحظه استفاده و لحظه چک بهم خواهد خورد و آسیب پذیری این امکان رو خواهد داد که شما از 200 درخواست یا Request ارسالی چند مورد رو به اشتباه مجوز تایید بگیرید.
خب حالا نحوه رخداد آسیب پذیری چطور بوده؟ این آسیب پذیری بر روی سیستم عامل های لینوکسی که از کتابخونه glibc بهره میگیرند، قابل بهره برداری است.
چرا که تابع syslog خود تابع async-signal-unsafe را فراخوانی میکند که این تابع از malloc و free برای تخصیص حافظه استفاده میکند که در منطقه سیستم است لذا سطح دسترسی نیز root خواهد بود، همچنین در تابع main_sigchld_handler شرط آسیب قرار دارد.
Forwarded from CodeCrafters (Amirali)
فصل اول
2- بلاکچین چگونه کار میکند؟
بلاکچین را مجموعهای از بلاکها تصور کنید که به صورت زنجیرهوار به یکدیگر متصلاند.
1- ساختار هر بلاک
هر بلاک در زنجیره شامل 3 بخش اصلی است:
برای افزودن بلاک جدید به زنجیره، مراحل زیر انجام میشود:
هر تراکنش در بلاکچین به صورت عمومی قابل مشاهده و ردیابی است. این ویژگی باعث میشود تا تمامی تراکنشها شفاف و قابل اعتماد باشند. این شفافیت به ویژه در کاربردهایی مانند رایگیری الکترونیکی، مدیریت زنجیره تأمین و سیستمهای مالی بسیار مهم است.
تکمیلی:
بعضی از سایتهای تولید محتوا مانند ویکیپدیا و everpedia بر بستر بلاکچین هستند.که اصولا برای اضافه کردن بلاک جدید نیاز به حل معادلات پیچیده نیست،مثلا در سایت everpedia براساس یک سری الگورتیم های دیگه بلاکچین باشه که هیچ یک از این کار ها رو کاربر انجام نمیده.
بیشتر بخوانید:
الگوریتم های هشینگ Hashing algorithms
هش بلاک Block Hash
نود Node
#blockchain
@code_crafters
2- بلاکچین چگونه کار میکند؟
بلاکچین را مجموعهای از بلاکها تصور کنید که به صورت زنجیرهوار به یکدیگر متصلاند.
1- ساختار هر بلاک
هر بلاک در زنجیره شامل 3 بخش اصلی است:
1.1- داده (Data): این بخش شامل اطلاعاتی است که بلاک ذخیره میکند. برای نمونه، در بلاکچین بیتکوین دادهها شامل جزئیات هر تراکنش است مانند فرستنده، گیرنده و مقدار بیتکوین انتقال داده شده.2- فرایند افزودن بلاک به زنجیره
1.2- هش بلاک (Block Hash): هر بلاک دارای یک کد منحصر به فرد به نام هش است که با استفاده از الگوریتمهای رمزنگاری تولید میشود. هش یک بلاک مانند اثر انگشت آن بلاک است و کوچکترین تغییری در جزئیات دادههای بلاک، هش آن را به کلی تغییر میدهد.
الگوریتمهای هشینگ توابع ریاضی یکطرفهای هستند که ورودی آن هر چیزی میتواند باشد اما خروجی آن یک مقدار منحصر به فرد با اندازه ثابت است. یکطرفه بودن این توابع به این معناست که با داشتن خروجی نمیتوان به داده ورودی آن دست پیدا کرد.
1.3- هش بلاک قبلی (Previous Block Hash): هر بلاک حاوی هش بلاک قبلی است که به آن متصل است. این ویژگی باعث ایجاد زنجیرهای از بلاکها میشود و امنیت و تغییرناپذیری بلاکچین را تضمین میکند.
برای افزودن بلاک جدید به زنجیره، مراحل زیر انجام میشود:
2.1- تایید تراکنشها (Transaction Verification): ابتدا تراکنشهای جدید توسط نودهای شبکه تایید میشوند. این تایید شامل بررسی صحت امضاهای دیجیتال و اطمینان از عدم تکراری بودن تراکنشها است.شفافیت و قابلیت ردیابی
2.2- حل مسئله ریاضی (Proof of Work): برای اضافه کردن بلاک جدید به زنجیره، نودها باید یک مسئله ریاضی پیچیده را حل کنند که به آن اثبات کار میگویند. این فرآیند نیازمند قدرت محاسباتی زیادی است و زمان و انرژی زیادی مصرف میکند.
2.3- اضافه شدن به زنجیره (Block Addition): پس از حل مسئله و تایید صحت بلاک جدید توسط سایر نودهای شبکه، بلاک به زنجیره اضافه میشود.
هر تراکنش در بلاکچین به صورت عمومی قابل مشاهده و ردیابی است. این ویژگی باعث میشود تا تمامی تراکنشها شفاف و قابل اعتماد باشند. این شفافیت به ویژه در کاربردهایی مانند رایگیری الکترونیکی، مدیریت زنجیره تأمین و سیستمهای مالی بسیار مهم است.
تکمیلی:
بعضی از سایتهای تولید محتوا مانند ویکیپدیا و everpedia بر بستر بلاکچین هستند.که اصولا برای اضافه کردن بلاک جدید نیاز به حل معادلات پیچیده نیست،مثلا در سایت everpedia براساس یک سری الگورتیم های دیگه بلاکچین باشه که هیچ یک از این کار ها رو کاربر انجام نمیده.
بیشتر بخوانید:
الگوریتم های هشینگ Hashing algorithms
هش بلاک Block Hash
نود Node
#blockchain
@code_crafters
Forwarded from Deep Time
دوره آنلاین "معاملات الگوریتمی براساس یادگیری ماشین"
Machine Learning-based Algorithmic Trading
زمان:
از 15 شهریور تا 20 مهر
پنجشنبهها: 16:30 تا 19
جمعهها: 17:30 تا 20
طول دوره:
30 ساعت
امکان برگزاری جلسات تکمیلی و رفع اشکال بدون هزینه اضافی وجود دارد. این امکان به دلیل گستردگی مباحث و ذات بین رشتهای دوره ایجاد شده است.
✅ مشاهده سرفصلها و ثبتنام: Link
ظرفیت کل به دلیل کیفیت و نیاز به تعامل محدود است.
🔴 ظرفیت بلیطهایِ زودهنگام به پایان رسید
🔵 تعدادی بلیط معمولی باقی مانده است
Machine Learning-based Algorithmic Trading
زمان:
از 15 شهریور تا 20 مهر
پنجشنبهها: 16:30 تا 19
جمعهها: 17:30 تا 20
طول دوره:
30 ساعت
امکان برگزاری جلسات تکمیلی و رفع اشکال بدون هزینه اضافی وجود دارد. این امکان به دلیل گستردگی مباحث و ذات بین رشتهای دوره ایجاد شده است.
✅ مشاهده سرفصلها و ثبتنام: Link
ظرفیت کل به دلیل کیفیت و نیاز به تعامل محدود است.
🔴 ظرفیت بلیطهایِ زودهنگام به پایان رسید
🔵 تعدادی بلیط معمولی باقی مانده است
❤1
Forwarded from CodeCrafters (Behzad Azadi)
Event storming
مشکلات در طراحی نرمافزارهای سازمانی بزرگ و پیچیدگی آن همچنان پابرجاست، بدون ساخت زبان مشترک بین مهندسین نرم افزار و متخصصین کسب و کار هیچ راه نجات و خروجی رو نمیتوان تصور کرد
به شیوه سابق مهندسین نرم افزار از UML استفاده میکردن (زبان مدلسازی یکنواخت) اما دو ایراد اساسی داشتیم اول اینکه در این رویکرد متخصصین کسب و کار حذف میشدند یعنی کسانی که در شناخت حوزه بشدت کارآمد هستند و دوم اینکه عدم در نظر گرفتن گلوگاهها، وابستگیها و داینامیک بودن پروژه می باشد این مسئله درست هستش که میتوان دیاگرامهای بیشتر و بیشتری طراحی و این برای مهندسین نرم افزار خوب و بهتر بود اما همچنان مورد اول پا برجا بود
در دنیای DDD ما نیاز به رویکردی جدید و مدرنتر داشتیم که بتوان موارد زیر رو رفع کرد:
۱- فضای مسئله و راه حلها
۲- شناخت و یافتن BC یا همان مرزهای محدود
۳ـ جلسات منفعل با BR یا همان متخصصان کسب و کار
۴- فرار از مدلسازیهای نامناسب
۵- تهیه کردن لیست نیازمندی ها
۶- دست یافتن سریع به یک زبان مشترک
همیشه دیدگاه اشتباهی راجب DDD وجود دارد اینکه این رویکرد فقط برای سیستمهایی جوابگو هستش که در ابتدای راه و ساختن قراردارد اما این یک اشتباه هست اتفاقا این رویکرد برای سیستمهای قهوهای (امیدوارم منظور نویسنده از قهوهای را گرفته باشید) بهتر پاسخ میدهد
در سال ۲۰۱۳ یک روش خلاقانه با عنوان event storming معرفی شد که پایان هرآنچه که در بالاتر مطرح کردیم رو ختم کرد
این رویکرد یک طوفان فکری را بپا میکرد که به سرعت موجب فرآیندسازی کسب و کار میشد و مشکل UML را نیز با خود نداشت
با توجه به اینکه مطالب مربوط به event storming زیاد و گوناگون است لذا این بخش از کتاب رو بهتر هستش خودتون با سرچ کردن و خوندن مقالات متنوع یاد بگیرید
#DDD
#domain_driven_design
@code_crafters
مشکلات در طراحی نرمافزارهای سازمانی بزرگ و پیچیدگی آن همچنان پابرجاست، بدون ساخت زبان مشترک بین مهندسین نرم افزار و متخصصین کسب و کار هیچ راه نجات و خروجی رو نمیتوان تصور کرد
به شیوه سابق مهندسین نرم افزار از UML استفاده میکردن (زبان مدلسازی یکنواخت) اما دو ایراد اساسی داشتیم اول اینکه در این رویکرد متخصصین کسب و کار حذف میشدند یعنی کسانی که در شناخت حوزه بشدت کارآمد هستند و دوم اینکه عدم در نظر گرفتن گلوگاهها، وابستگیها و داینامیک بودن پروژه می باشد این مسئله درست هستش که میتوان دیاگرامهای بیشتر و بیشتری طراحی و این برای مهندسین نرم افزار خوب و بهتر بود اما همچنان مورد اول پا برجا بود
در دنیای DDD ما نیاز به رویکردی جدید و مدرنتر داشتیم که بتوان موارد زیر رو رفع کرد:
۱- فضای مسئله و راه حلها
۲- شناخت و یافتن BC یا همان مرزهای محدود
۳ـ جلسات منفعل با BR یا همان متخصصان کسب و کار
۴- فرار از مدلسازیهای نامناسب
۵- تهیه کردن لیست نیازمندی ها
۶- دست یافتن سریع به یک زبان مشترک
همیشه دیدگاه اشتباهی راجب DDD وجود دارد اینکه این رویکرد فقط برای سیستمهایی جوابگو هستش که در ابتدای راه و ساختن قراردارد اما این یک اشتباه هست اتفاقا این رویکرد برای سیستمهای قهوهای (امیدوارم منظور نویسنده از قهوهای را گرفته باشید) بهتر پاسخ میدهد
در سال ۲۰۱۳ یک روش خلاقانه با عنوان event storming معرفی شد که پایان هرآنچه که در بالاتر مطرح کردیم رو ختم کرد
این رویکرد یک طوفان فکری را بپا میکرد که به سرعت موجب فرآیندسازی کسب و کار میشد و مشکل UML را نیز با خود نداشت
با توجه به اینکه مطالب مربوط به event storming زیاد و گوناگون است لذا این بخش از کتاب رو بهتر هستش خودتون با سرچ کردن و خوندن مقالات متنوع یاد بگیرید
#DDD
#domain_driven_design
@code_crafters
تحلیل دیتاستهای جدولی (Tabular) هم در ریسرچ و هم در کاربردهای واقعی خیلی مورد توجه هست. مقایسههایی که تا الان انجام شده، نشون میده عملکرد مدلهای دیپ اغلب پایینتر یا همسطح مدلهای بوستینگ گرادیان (GBMs) هست.
میخوام درباره مقالهای صحبت کنم که مقایسه عمیقی روی مدلهای آنسامبل مبتنی بر درخت تصمیم (TE)، دیپ (DL) و مدلهای کلاسیک ML انجام داده. عنوان مقاله:
A Comprehensive Benchmark of Machine and Deep Learning Across Diverse Tabular Datasets link
حدود 111 دیتاست جدولی و 20 مدل مختلف برای مقایسه انتخاب شده. مقایسههای متنوعی انجام شده؛ مقایسه عملکرد مدلهای DL و TE رو در تصویر بالا آوردم. نتایج جالبی بدست اومده:
* مدل CatBoost در 19 مورد از 111 دیتاست بهترین بوده.
* رتبه Random Forest قابل توجه هست.
* مدل XGBoost که خیلیها انتخاب اولشون هست، در رتبه 10 دیده میشه!
* رتبه اول تا چهارم رو مدلهای ML اشغال کردن.
* اولین مدل دیپ لرنینگی در رتبه 5 دیده میشه.
* شبکه MLP در رتبه 9 دیده میشه.
* شبکه TabNet آخره!
مقاله بخشهای متنوعی داره و من فقط یک مقایسه رو آوردم. شاید بعدا بیشتر بنویسم.
میخوام درباره مقالهای صحبت کنم که مقایسه عمیقی روی مدلهای آنسامبل مبتنی بر درخت تصمیم (TE)، دیپ (DL) و مدلهای کلاسیک ML انجام داده. عنوان مقاله:
A Comprehensive Benchmark of Machine and Deep Learning Across Diverse Tabular Datasets link
حدود 111 دیتاست جدولی و 20 مدل مختلف برای مقایسه انتخاب شده. مقایسههای متنوعی انجام شده؛ مقایسه عملکرد مدلهای DL و TE رو در تصویر بالا آوردم. نتایج جالبی بدست اومده:
* مدل CatBoost در 19 مورد از 111 دیتاست بهترین بوده.
* رتبه Random Forest قابل توجه هست.
* مدل XGBoost که خیلیها انتخاب اولشون هست، در رتبه 10 دیده میشه!
* رتبه اول تا چهارم رو مدلهای ML اشغال کردن.
* اولین مدل دیپ لرنینگی در رتبه 5 دیده میشه.
* شبکه MLP در رتبه 9 دیده میشه.
* شبکه TabNet آخره!
مقاله بخشهای متنوعی داره و من فقط یک مقایسه رو آوردم. شاید بعدا بیشتر بنویسم.
Forwarded from CodeCrafters (Behzad Azadi)
از جان مهندسین نرم افزار چه میخواهند؟؟
با توجه به انقلاب تکنولوژی و عصر ارتباطات و همچنین حرکت بسوی جوامع الکترونیک نیازهای جدیدی احساس شد، سازمانها روز به روز وابستهتر و نیازمندتر به نرمافزارها شدند چه نرم افزارهای خدماتی جهت توسعه و تسریع درون سازمانی خود، چه نرمافزارهای سیستمی مخصوص خود سازمان، بدین شکل سیستمهای نرم افزاری به قلب تپنده هر سازمانی تبدیل گشت و موجب شد جایگاه ویژهای در سازمانها با نام مهندس نرم افزار بوجود آید
اگر از سیر تاریخی مهندسی نرم افزار عبور کنیم بدون شک رویکرد اجایل دست کمی از یک انقلاب تفکری و رویکردی نداشت شاید با طنز بتوان گفت مهندسی نرم افزار به قبل و بعد از اجایل تقسیم خواهد شد
اما در پاسخ به این سوال که از جان مهندسین نرم افزار چه میخواهند، پاسخ بدین شکل خواهد بود، علاوه بر ساختن صحیح یک نرم افزار ،انتظار میرود که یک نرم افزار مناسب ساخته شود
در این سری از پستها میخواهیم راجب BDD (Behavior-Driven Development) توسعه مبتنی بر رفتار صحبت کنیم که از بالاترین سطح تا پایینترین سطح کدزنی را تحت تاثیر خواهد گذاشت و منجر به ایجاد یک نرم افزار مناسب میشود و علاوه بر آن به شما کمک خواهد کرد تا به یکی از بزرگترین چالشهای موجود که زمان تحویل بموقع نرم افزار است فائق آیید
شاید تا کنون براتون سوال شده که چرا فلان سازمان با صرف هزینههای گزاف و سرسام آور هیچوقت نتوانست یک نرم افزار درخور و شایسته ارائه دهد و هیچوقت به خروجی درست و مناسب نرسید، BDD بر این ماجرا متمرکز است و با طرح این مسئله و شکافتن و بررسی کردن این موضوع به ما پاسخ خواهد داد و به ما خواهد گفت چه کسی یا کسانی را باید مورد هدف قرار دهیم
شما با ردگیری دو هشتک زیر در کانال ازین ببعد میتوانید به سلسله پستها مربوط به توسعه رفتار محور دست پیدا کنید
#BDD
#behavior_driven_development
@code_crafters
با توجه به انقلاب تکنولوژی و عصر ارتباطات و همچنین حرکت بسوی جوامع الکترونیک نیازهای جدیدی احساس شد، سازمانها روز به روز وابستهتر و نیازمندتر به نرمافزارها شدند چه نرم افزارهای خدماتی جهت توسعه و تسریع درون سازمانی خود، چه نرمافزارهای سیستمی مخصوص خود سازمان، بدین شکل سیستمهای نرم افزاری به قلب تپنده هر سازمانی تبدیل گشت و موجب شد جایگاه ویژهای در سازمانها با نام مهندس نرم افزار بوجود آید
اگر از سیر تاریخی مهندسی نرم افزار عبور کنیم بدون شک رویکرد اجایل دست کمی از یک انقلاب تفکری و رویکردی نداشت شاید با طنز بتوان گفت مهندسی نرم افزار به قبل و بعد از اجایل تقسیم خواهد شد
من در ذهن خودم بدین شکل میاندیشم: مهندسی نرم افزار کلاسیک و مهندسی نرم افزار مدرن مبتنی بر اجایل
اما در پاسخ به این سوال که از جان مهندسین نرم افزار چه میخواهند، پاسخ بدین شکل خواهد بود، علاوه بر ساختن صحیح یک نرم افزار ،انتظار میرود که یک نرم افزار مناسب ساخته شود
در این سری از پستها میخواهیم راجب BDD (Behavior-Driven Development) توسعه مبتنی بر رفتار صحبت کنیم که از بالاترین سطح تا پایینترین سطح کدزنی را تحت تاثیر خواهد گذاشت و منجر به ایجاد یک نرم افزار مناسب میشود و علاوه بر آن به شما کمک خواهد کرد تا به یکی از بزرگترین چالشهای موجود که زمان تحویل بموقع نرم افزار است فائق آیید
شاید تا کنون براتون سوال شده که چرا فلان سازمان با صرف هزینههای گزاف و سرسام آور هیچوقت نتوانست یک نرم افزار درخور و شایسته ارائه دهد و هیچوقت به خروجی درست و مناسب نرسید، BDD بر این ماجرا متمرکز است و با طرح این مسئله و شکافتن و بررسی کردن این موضوع به ما پاسخ خواهد داد و به ما خواهد گفت چه کسی یا کسانی را باید مورد هدف قرار دهیم
شما با ردگیری دو هشتک زیر در کانال ازین ببعد میتوانید به سلسله پستها مربوط به توسعه رفتار محور دست پیدا کنید
#BDD
#behavior_driven_development
@code_crafters
❤2
شاپرک برگزار میکند: رویداد امنیت سایبری CASH24
رویداد فتح پرچم CASH24 با هدف ارتقاء دانش و مهارتهای امنیت سایبری به ویژه در صنعت پرداخت برای نخستین بار از سوی شرکت شاپرک برگزار میشود.
به گزارش روابط عمومی شرکت شاپرک، این رویداد در دو بخش مسابقه CTF و همایش علمی طی سه روز در هفته آخر شهریور ماه و با حضور مدیران ارشد بانک مرکزی، گروه ملی انفورماتیک و متخصصان امنیت سایبری برگزار خواهد شد.
نخستین دوره از رقابتهای تست نفوذ سایبری شاپرک تحت عنوان رقابتهای فتح پرچم (Capture the Flag (CTF با هدف شناسایی و مقابله با آسیبپذیریهای محصولات نرمافزاری و سامانههای امنیتی در روزهای 24 و 25 شهریورماه به صورت آنلاین برگزار میشود.
مسابقهCASH24 (CTF Arena For Security & Hacking) شاپرک شامل بخشهای مختلفی از جمله امنیت برنامههای وب و برنامکهای موبایل، رمزنگاری و مهندسی معکوس و تحلیل جرمشناسی دیجیتال است.
جوایز تیمهای برنده که شامل جایزههای ارزندهای است، همزمان با رویداد امنیت سایبری شاپرک به برندگان اهدا خواهد شد.
رویداد علمی ـ تخصصی امنیت سایبری شاپرک با همکاری آکادینو و حمایت چهار شرکت پرداخت الکترونیک امیدپی، به پرداخت، پارسیان و سپ در روز 27 شهریورماه در قالب کارگاهها و سخنرانیهای علمی برگزار خواهد شد.
تیمهای علاقهمند برای شرکت در مسابقه میتوانند از طریق لینک زیر ثبت نام کنند:
https://cash.ctfd.io
رویداد فتح پرچم CASH24 با هدف ارتقاء دانش و مهارتهای امنیت سایبری به ویژه در صنعت پرداخت برای نخستین بار از سوی شرکت شاپرک برگزار میشود.
به گزارش روابط عمومی شرکت شاپرک، این رویداد در دو بخش مسابقه CTF و همایش علمی طی سه روز در هفته آخر شهریور ماه و با حضور مدیران ارشد بانک مرکزی، گروه ملی انفورماتیک و متخصصان امنیت سایبری برگزار خواهد شد.
نخستین دوره از رقابتهای تست نفوذ سایبری شاپرک تحت عنوان رقابتهای فتح پرچم (Capture the Flag (CTF با هدف شناسایی و مقابله با آسیبپذیریهای محصولات نرمافزاری و سامانههای امنیتی در روزهای 24 و 25 شهریورماه به صورت آنلاین برگزار میشود.
مسابقهCASH24 (CTF Arena For Security & Hacking) شاپرک شامل بخشهای مختلفی از جمله امنیت برنامههای وب و برنامکهای موبایل، رمزنگاری و مهندسی معکوس و تحلیل جرمشناسی دیجیتال است.
جوایز تیمهای برنده که شامل جایزههای ارزندهای است، همزمان با رویداد امنیت سایبری شاپرک به برندگان اهدا خواهد شد.
رویداد علمی ـ تخصصی امنیت سایبری شاپرک با همکاری آکادینو و حمایت چهار شرکت پرداخت الکترونیک امیدپی، به پرداخت، پارسیان و سپ در روز 27 شهریورماه در قالب کارگاهها و سخنرانیهای علمی برگزار خواهد شد.
تیمهای علاقهمند برای شرکت در مسابقه میتوانند از طریق لینک زیر ثبت نام کنند:
https://cash.ctfd.io