عدد نانس چیست؟ مفهوم Nonce در بلاکچین و ارز های دیجیتال

فهرست مطالب
- عدد نانس چیست؟
- اهمیت اعداد نانس در رمز نگاری
- عملکرد نانس چگونه است و حملات باز پخش یا تکرار چیست؟
- اعداد نانس چطور از حملات تکرار جلوگیری میکنند؟
- چه سیستمی و چطور اعداد نانس را تولید میکند؟
- استفاده از عدد نانس در بلاکچین
- آسیب پذیری های احتمالی و حملات به اعداد نانس
- حملات بالقوه ای که میتواند اعداد نانس را به خطر بیندازد
- برخی دیگر از آسیب پذیری های عدد نانس
در دنیای رمز نگاری ، عدد نانس نقش حیاتی در تضمین ارتباطات امن و خصوصی دارد. Nonce، مخفف واژه ی number used once (عددی که یک بار استفاده شده)، یک عدد تصادفی یا شبه تصادفی است که فقط یک بار در یک ارتباط رمز نگاری استفاده میشود. هدف از nonce جلوگیری از حملات تکرار یا بازپخش (replay attacks) است .
در این حملات مهاجم برای رسیدن به اهداف خود پیامی را رهگیری کرده و مجدداً ارسال میکند. در این مقاله، به این سوال که عدد نانس چیست پاسخ میدهیم، کاربرد عدد نانس ارز دیجیتال، عملکرد این اعداد و استفاده از عدد نانس در بلاکچین را با جزئیات بررسی خواهیم کرد
بیشتر بدانید : برای آشنایی بیشتر با ، فناوری Blockchain ، میتوانید مقاله بلاکچین چیست ، را در وب سایت مطالعه کنید .
عدد نانس چیست؟
برای اینکه به این مفهوم بپردازیم ، باید بدانیم مفهوم عدد نانس چیست ، ترجمه تحت اللفظی Nonce به معنی “عدد تنها یک بار استفاده شده” است. عدد نانس در بلاکچین یک عدد چهار بایتی است که به یک بلوک هش شده یا رمز گذاری شده در بلاکچین اضافه میشود .
تا دشواری لازم برای عدم رخداد تکرار را تضمین کند. در هر تعامل شبکه، عدد تصادفی یکتایی تولید میشود که از استفاده دوباره از ماهیت های هر ارتباط در دیگری جلوگیری میکند. بخصوص در اپلیکیشن ها، این عدد معیاری برای تشخیص هویت کاربران است و از ورود هکرها به اپ جلوگیری میکند.
اهمیت اعداد نانس در رمز نگاری
اعداد نانس یک بخش ضروری از رمز نگاری مدرن هستند. رمز نگاری روشی برای محافظت از اطلاعات حساس مانند رمز های عبور، شماره کارت اعتباری و داده های شخصی استیکی از اهداف اصلی رمز نگاری این است که اطمینان حاصل شود که پیام ها فقط توسط گیرنده مورد نظر خوانده میشوند .توسط مهاجم رهگیری، اصلاح یا پخش مجدد (intercepted, modified, or replayed) نمیشوند.
اعداد نانس نقش اساسی در دستیابی به این هدف دارند. با استفاده از یک nonce در یک پیام، گیرنده میتواند تأیید کند که پیام اخیراً و به صورت امن تولید شده و از پیام های بازتکرار شده که با هدف کلاهبر داری ارسال میشوند، نیست.عدد نانس معمولاً در پروتکل هایی مانند SSL/TLS استفاده میشود که برای ایمن سازی ارتباطات وب استفاده میشوند.
در این پروتکل ها از این اعداد برای تولید کلیدهای سشن امن (secure session keys) استفاده میشود. کلید سشن برای رمز گذاری و رمز گشایی داده های مبادله شده بین سرور و کلاینت استفاده میشود. اعداد Nonce همچنین در مکانیزم احراز هویت چالش/ پاسخ استفاده میشوند، که در آن از مشتری خواسته میشود برای اثبات هویت خود یک nonce تولید کند.
عملکرد نانس چگونه است و حملات باز پخش یا تکرار چیست؟
عدد نانس نقش مهمی در تضمین ارتباط ایمن با جلوگیری از حملات تکرار دارد. در این بخش، نحوه کار اعداد نانس، هدف و عملکرد آنها در رمز نگاری و چند نمونه از پروتکل های رمزنگاری که از nonce number استفاده میکنند را بررسی خواهیم کرد. همانطور که گفته شد، عدد نانس یک عدد تصادفی یا شبه تصادفی است .
که توسط فرستنده تولید و به همراه پیام برای گیرنده ارسال میشود. گیرنده از شماره nonce استفاده میکند تا تأیید کند که این پیام اولین بار است که برای او ارسال شده است و یک کلاهبردار پیام را بازارسال نکرده تا مثلاً اطلاعاتی را بدزدد. نمونه هایی از پروتکل های رمزنگاری که از اعداد نانس استفاده میکنند .
اعداد Nonce در طیف گسترده ای از پروتکل های رمز نگاری استفاده میشوند. در اینجا چند نمونه آورده شده است:
- SSL/TLS: SSL/TLS پروتکلی است که برای ایمنسازی ارتباطات وب استفاده میشود.
- WPA/WPA2: WPA و WPA2 پروتکلهای امنیتی وایرلس هستند که برای محافظت از شبکههای Wi-Fi استفاده میشوند. در این پروتکلها از اعداد Nonce استفاده میشود تا اطمینان حاصل شود که هر بسته داده منحصر به فرد است و فقط یکبار ارسال و دریافت شده.
- احراز هویت چالش-پاسخ: احراز هویت چالش-پاسخ مکانیزمی است که برای تأیید هویت کاربر استفاده میشود. در این مکانیزم سرور چالشی را برای کلاینت ارسال میکند که کلاینت برای اثبات هویت خود باید با یک عدد nonce به آن پاسخ دهد.
اعداد نانس چطور از حملات تکرار جلوگیری میکنند؟
عدد نانس از حملات تکارا با اطمینان از اینکه هر پیام منحصر به فرد است و توسط مهاجم رهگیری و ارسال نشده است، جلوگیری میکند. در اینجا مثالی از نحوه جلوگیری از حملات تکراری توسط مکانیزم این اعداد آورده شده است ، فرض کنید آرش میخواهد برای غزل پیامی ارسال کند.
او یک عدد تصادفی نانس تولید میکند و آن را همراه با پیام برای غزل میفرستد. غزل پیام را دریافت میکند و عدد nonce را بررسی میکند. اگر عدد نانس معتبر باشد، غزل میداند که پیام اخیراً و برای اولین بار ارسال شده و باز ارسال نشده است. اگر عدد نانس معتبر نباشد، غزل پیام را رد میکند.
حال فرض کنید که یک مهاجم یا کلاهبردار پیام را رهگیری کرده و مجدداً برای غزل ارسال میکند. در این صورت ، عدد nonce در پیام ارسالی از مهاجم صحیح نخواهد بود پس غزل پیام را مردود اعلام میکند و پاسخی به پیام ارسال شده نمیدهد. با استفاده از اعداد نانس، پروتکل های رمزنگاری میتوانند سطح بالایی از امنیت را فراهم کنند و اطمینان حاصل کنند که پیامها فقط توسط گیرنده مورد نظر خوانده و پاسخ داده میشوند.
چه سیستمی و چطور اعداد نانس را تولید میکند؟
در بخش قبل، هدف و عملکرد نانس و نحوه جلوگیری از حملات تکرار را بررسی کردیم. در این بخش به روش های تولید اعداد نانس تصادفی یا شبه تصادفی و بهترین روشها برای تولید اعداد نانس امن میپردازیم.
روش های تولید اعداد غیر تصادفی یا شبه تصادفی
اعداد Nonce باید به گونهای تولید شوند که پیشبینی آنها برای مهاجم دشوار باشد. دو نوع اعداد غیر تصادفی وجود دارد:
- عدد نانس تصادفی Random nonce numbers
- عدد نانس شبه تصادفی Pseudo-random nonce numbers
اعداد نانس تصادفی با استفاده از یک فرآیند فیزیکی تولید میشوند که مقادیر غیر قابل پیش بینی را تولید میکند، مانند نویز اتمسفر واپاشی رادیواکتیو ، یا حرکات موش (mouse movements). با این حال ، تولید اعداد واقعاً تصادفی میتواند از نظر محاسباتی گران و زمان بر باشد، به ویژه در محیط های محدود به منابع مانند سیستم های امبد شده.
اما، اعداد نانس شبه تصادفی با استفاده از یک الگوریتم قطعی تولید میشوند که دنباله ای از اعداد تصادفی را تولید میکند. اعداد نانس شبه تصادفی اغلب بیشتر استفاده میشوند زیرا از نظر محاسباتی کارآمد هستند و میتوانند به سرعت تولید شوند. یکی از روشهای رایج برای تولید اعداد نانس شبه تصادفی، استفاده از تابع هش رمزنگاری (cryptographic hash function) است. یک تابع هش یک ورودی میگیرد .
و یک خروجی با طول ثابت تولید میکند که تصادفی و غیرقابل پیشبینی به نظر میرسد. با استفاده از یک تابع هش برای تولید یک عدد nonce، فرستنده میتواند اطمینان حاصل کند که شماره nonce منحصر به فرد و غیرقابل پیشبینی است. روش دیگر برای تولید اعداد غیر تصادفی شبه، استفاده از شمارنده (counter) است. فرستنده شمارنده ای را نگه میدارد.
که هر بار که یک پیام جدید ارسال میشود، افزایش مییابد. مقدار شمارنده به عنوان عدد nonce استفاده میشود. این روش تضمین میکند که هر عدد nonce منحصر به فرد است، اما غیرقابل پیشبینی نیست و میتواند در برابر انواع خاصی از حملات آسیبپذیر باشد.
استفاده از عدد نانس در بلاکچین
اعداد نانس جزء ضروری رمز نگاری مدرن هستند و برای جلوگیری از حملات تکراری و اطمینان از برقراری ارتباط امن استفاده میشوند. در این بخش، استفاده از عدد نانس در بلاکچین را بررسی خواهیم کرد، از جمله نحوه استفاده از این اعداد برای ایمن سازی تراکنش ها در یک بلاک چین و نمونه هایی از پروتکل های بلاک چین که از اعداد نانس استفاده میکنند.
اگر بلاکچین را یک آپارتمان میلیون طبقهای درنظر بگیریم، عدد نانس در بلاکچین کلیدهایی هستند که دسترسی یکتایی را به افراد در ورود به هر طبقه میدهد. اما عدد نانس در بلاکچین ماهیت فیزیکی ندارد، بلکه یک کد با محوریت یک عدد اول یکتا است که یافتن آن به عمل ماینینگ و صرف زمان و هزینه محاسباتی بالا نیاز دارد.
ایمن سازی تراکنش ها در یک بلاک چین
فناوری بلاک چین یک پایگاه داده توزیع شده است که به شرکت کنندگان اجازه میدهد تا تراکنش ها را به شیوه ای امن و شفاف ثبت و تأیید کنند. یک بلاک چین از زنجیره ای از بلوک ها تشکیل شده است که هر بلوک شامل مجموعه ای از تراکنش ها و یک هش رمزنگاری از بلوک قبلی است.
هش هر بلوک با استفاده از یک تابع هش محاسبه میشود و بلوکها به گونهای به هم مرتبط میشوند که تغییر محتوای زنجیره بلوک را برای دیگران دشوار یا غیر ممکن میکند. اعداد نانس در فناوری بلاک چین برای ایمنسازی تراکنشها و جلوگیری از یک نوع کلاهبرداری به نام خرج کردن مضاعف استفاده میشود.
دوبار خرج کردن زمانی اتفاق میافتد که کاربر با ایجاد دو تراکنش با ورودی یکسان، سعی میکند یک ارز دیجیتال را دو بار خرج کند. برای جلوگیری از خرج مضاعف، پروتکلهای بلاک چین از یک الگوریتم اجماع (consensus algorithm) استفاده میکنند که تضمین میکند هر تراکنش فقط یک بار پردازش میشود و بلاک چین در تمام گرههای شبکه سازگار است.
بیشتر بخوانید : برای آشنایی با نحوه محاسبه نرخ هش میتوانید مقاله مربوط به هش ریت چیست ، را در وب سایت مطالعه کنید
نمونه هایی از پروتکل ها و الگوریتم های بلاک چین
- اثبات کار
یکی از الگوریتم های اجماع رایج مورد استفاده در فناوری بلاک چین، اثبات کار (Proof of Work PoW) است. در الگوریتم اجماع PoW، ماینرها برای حل یک معمای رمزنگاری با هم رقابت میکنند که به مقدار مشخصی تلاش محاسباتی نیاز دارد. اولین ماینری که این معما را حل میکند یک بلوک جدید به بلاک چین اضافه میکند .
و با مقدار مشخصی ارز دیجیتال پاداش میگیرد. تلاش محاسباتی مورد نیاز برای حل پازل توسط یک پارامتر دشواری تعیین میشود که به طور دورهای تنظیم میشود تا اطمینان حاصل شود که بلوکهای جدید با نرخ ثابتی به زنجیره بلوک اضافه میشوند. عدد nonce نقش مهمی در الگوریتم اجماع PoW ایفا میکند.
معمای رمزنگاری که ماینرها باید حل کنند این است که یک مقدار هش را پیدا کنند که شرایط خاصی را برآورده کند، مانند داشتن تعداد معینی صفر که پیش از یک عدد غیر صفر میآید مقدار هش با اعمال یک تابع هش در هدر بلوک محاسبه میشود که شامل هش بلوک قبلی، فهرستی از تراکنشها، مهر زمانی (timestamp) و یک nonce است.
ماینرها باید مقادیر مختلف nonce را امتحان کنند تا زمانی که یک مقدار هش پیدا کنند که شرایط را برآورده کند. از آنجایی که تابع هش قطعی است، تغییر nonce مقدار هش حاصل را تغییر میدهد. با تغییر مقدار nonce، ماینرها میتوانند فضای مقادیر هش احتمالی را کاوش کنند و یک مقدار هش پیدا کنند که شرایط را برآورده کند.
از آنجایی که الگوریتم اجماع PoW به تلاش محاسباتی زیادی نیاز دارد، ایجاد بلوکی که شرایط را برآورده میکند و آن را به زنجیره بلوکی اضافه میکند برای سارق دشوار است. سارق باید مقدار قابل توجهی از قدرت محاسباتی داشته باشد و بتواند معما را سریعتر از سایر ماینرها حل کند. علاوه بر این، هنگامی که یک بلوک به بلاک چین اضافه میشود، تغییر محتویات بلاک ثبت شده تقریباً غیرممکن است، زیرا هر تغییری در بلوک منجر به یک مقدار هش متفاوت میشود که توسط شبکه رد میشود.
- اثبات سهام
یکی دیگر از الگوریتم های اجماع مورد استفاده در فناوری بلاک چین، اثبات سهام (Proof of Stake PoS) است. در الگوریتم اجماع PoS، اعتبار دهنده ها (validators) بر اساس مقدار ارز دیجیتالی که دارند انتخاب میشوند و مسئولیت اضافه کردن بلوک های جدید به بلاک چین را بر عهده دارند.
اعتباردهنده ها موظفند مقدار مشخصی از ارزهای دیجیتال را اصطلاحاً استیک stake کنند و اگر بلوکی را اضافه کنند که توسط شبکه پذیرفته نشده است، استیک خود را از دست میدهند. انتخاب اعتباردهنده ها به صورت تصادفی یا بر اساس ترکیبی از تصادفی بودن و سهام انجام میشود.از عدد نانس ارز دیجیتال همچنین در الگوریتم اجماع PoS استفاده میشود .
تا اطمینان حاصل شود که هر اعتبار دهندهای یک بلوک منحصر به فرد را به زنجیره بلوکی اضافه میکند. در الگوریتم اجماع PoS، اعتبار دهنده باید یک nonce را در هدر بلوک قرار دهد، که تضمین میکند هر بلوک اضافه شده به بلاک چین منحصربهفرد است.از آنجایی که اعتباردهنده نیاز به قرار دادن یک استیک دارد، از نظر اقتصادی برای اعتباردهنده مقرون به صرفه نیست که چندین بلوک با nonce یکسان ایجاد کند.
زیرا این امر منجر به از دست دادن استیک خودش میشود. علاوه بر PoW و PoS، الگوریتم های اجماع دیگری نیز در فناوری بلاک چین مورد استفاده قرار میگیرند، مانند Delegated Proof of Stake (DPoS) و Byzantine Fault Tolerance (BFT). این الگوریتم های اجماع نیز از اعداد نانس برای تضمین امنیت بلاک چین استفاده میکنند.
آسیب پذیری های احتمالی و حملات به اعداد نانس
برای اطمینان از امنیت پروتکل های رمزنگاری مختلف، از جمله شبکه های بلاک چین، از اعداد نانس استفاده میشود. با این حال، آسیبپذیری ها و حملات بالقوه ای وجود دارند که میتوانند امنیت این اعداد و پروتکل هایی که در آنها استفاده میشوند را به خطر بیندازند. در این بخش، برخی از حملات رایج به اعداد نانس و بهترین روشها برای اجتناب از این حملات را مورد بحث قرار میدهیم.
حملات بالقوه ای که میتواند اعداد نانس را به خطر بیندازد
یکی از حملات متداول به عدد نانس ارز دیجیتال ، حمله brute force است که در آن مهاجم سعی میکند با تولید تعداد زیادی مقادیر تصادفی، مقدار nonce را حدس بزند. اگر مهاجم در حدس زدن مقدار nonce صحیح موفق باشد، به طور بالقوه میتواند امنیت پروتکل را به خطر بیندازد.برای جلوگیری از حملات brute force، مهم است که از مقادیر nonce به اندازه کافی طولانی استفاده شود که حدس زدن آنها دشوار است.
حمله بالقوه دیگر به اعداد نانس، حمله تکرار است، که در آن مهاجم یک پیام را رهگیری میکند و در زمان بعدی آن را مجدداً ارسال میکند تا یک اقدام متقلبانه انجام دهد. برای جلوگیری از حملات مجدد، مقدار nonce باید در پیام گنجانده شود و برای هر پیام منحصر به فرد باشد. این تضمین میکند که هر پیام فقط یک بار پردازش میشود و مانع از استفاده مجدد مهاجم از پیام رهگیری شده قبلی میشود.
بیشتر بخوانید: برای داشتن اطلاعات بیشتر در مورد دنیای رمز ارزها ، میتوانید مقاله ارز دیجیتال چیست را در وب سایت مطالعه کنید .
برخی دیگر از آسیب پذیری های عدد نانس
در برخی موارد، مقدار nonce ممکن است برای اهداف متعدد، مانند تولید کلیدهای رمزگذاری و امضای پیامها استفاده شود. در چنین مواردی، یک مقدار nonce به خطر افتاده به طور بالقوه میتواند امنیت کل پروتکل را به خطر بیندازد. برای جلوگیری از این امر، توصیه میشود برای هر هدف از مقادیر نانس جداگانه استفاده کنید و آنها را با استفاده از الگوریتمها یا کتابخانههای مختلف تولید کنید.
علاوه بر این، تولید مقادیر nonce ممکن است در برابر حملاتی مانند سوگیری یا پیشبینیپذیری (bias or predictability) آسیبپذیر باشد. سوگیری زمانی اتفاق میافتد که احتمال تولید یک مقدار خاص از عدد نانس بیشتر از سایرین باشد، در حالی که قابلیت پیشبینی زمانی رخ میدهد .که مهاجم بتواند مقدار بعدی را بر اساس مقادیر قبلی پیشبینی کند.
برای جلوگیری از این حملات، استفاده از منابع تصادفی با کیفیت بالا، مانند تولیدکننده های اعداد تصادفی سختافزاری، و آزمایش دوره ای تصادفی بودن مقادیر نانس تولید شده، مهم است.و نهایتاً در برخی موارد، مقادیر nonce ممکن است به بیرون درز کند یا در معرض مهاجمان قرار گیرد.
به عنوان مثال، در یک شبکه بلاک چین، یک مهاجم ممکن است بتواند مقدار nonce را که توسط اعتباردهندهای برای افزودن یک بلوک جدید به بلاک چین استفاده میشود، بدست آورد. اگر مقدار nonce به اندازه کافی تصادفی نباشد یا دوباره مورد استفاده قرار گیرد، مهاجم میتواند امنیت زنجیره بلوکی را به خطر بیاندازد. برای جلوگیری از این امر، توصیه میشود از مقادیر nonce که منحصر به فرد و تصادفی هستند برای هر تراکنش استفاده کنید و از یک سیستم مدیریت کلید امن برای محافظت از مقادیر nonce استفاده کنید.
سخن آخر و گفتگو از آینده !
اعداد نانس نقش مهمی در تضمین امنیت و یکپارچگی پروتکل های رمزنگاری مختلف، از جمله فناوری بلاک چین دارند. آنها برای جلوگیری از حملات مجدد، اطمینان از یکپارچگی پیام و جلوگیری از هزینه مضاعف استفاده میشوند. در این مقاله، نحوه عملکرد اعداد نانس، نحوه تولید و استفاده از آنها در فناوری بلاک چین را بررسی کردهایم. همچنین در مورد آسیب پذیری ها و حملات بالقوه به اعداد نانس و بهترین روشها برای اجتناب از آنها نیز گفتگو نمودیم.
همانطور که تکنولوژی به تکامل خود ادامه میدهد، پیشرفت ها و روندهای جدیدی در استفاده از اعداد نانس در حال ظهور است. یکی از این روندها استفاده از پروتکل های رمزنگاری با مقاومت کوانتومی (quantum-resistant cryptographic protocols) است که برای مقاومت در برابر حملات رایانه های کوانتومی طراحی شدهاند.
این پروتکل ها از روش های جدیدی برای تولید و استفاده از مقادیر nonce استفاده میکنند که در برابر حملات کوانتومی مقاوم هستند. ترند و روند دیگر استفاده از احراز هویت چند عاملی (multi-factor authentication) است که در آن مقادیر nonce با سایر اشکال احراز هویت، مانند بیومتریک، ترکیب میشوند تا وسیله ارتباطی امنتری ارائه کنند.
سوالات متداول
1 – نانس چیست؟
اینکه نانس چیست به جریان رمزگذاری و استفاده از اعداد اول در ارتباطات امن اینترنتی برمیگردد. نانس یک اصطلاح در دنیای کریپتو است که به مفهوم استفاده انحصاری از یک عدد در تعاملات است. بخصوص، عدد نانس ارز دیجیتال محور شاخص در رمزگذاری پروتکلهای غالب در بلاکچین است.
2 – منظور از عدد نانس ارز دیجیتال چیست؟
عدد نانس ارز دیجیتال یا Number Only Used Once به استفاده از اعداد در رمزگذاری تبادلات و تراکنشهای ارز دیجیتال اشاره دارد. عدد نانس ارز دیجیتال قابلیتهایی چون هش گذاری، تعریف پروتکلهای انجام کار و پایداری شبکه تعاملی بلاکچین را پشتیبانی میکند.
3 – کد یا عدد نانس در بلاکچین چیست؟
کد نانس رمزنگاری (nonce code) که در سرویسهای انتقال داده به صورت آنی به کار میرود، عددی است که به صورت تصادفی تولید میشود و وظیفه آن حفظ ماهیت خصوصی یک ارتباط و جلوگیری از حملات بازپخش است. بدون عدد نانس ارز دیجیتال، هکرها به سادگی وارد بلاکچین میشوند و عملکرد انحصاری آن را تحت کنترل میگیرند.
درباره نویسنده
سام سوزنی
ثبت نظر جدید