code signing چیست و چطور نرم افزار را ایمن می کند؟
![ssl برای وردپرس](https://amnssl.com/wp-content/uploads/2020/04/SSLlogo-250x250.jpg)
code signing چیست؟ code signing روش استفاده از امضای دیجیتال مبتنی بر گواهی برای امضای اجرایی اسکریپت ها به منظور تأیید هویت نویسنده و اطمینان از تغییر یا خرابی کد از زمان امضای نویسنده توسط کد است. code signing به کاربران و سایر نرم افزارها کمک می کند تا تشخیص دهند آیا نرم افزار قابل اعتماد است. در محتوای امروز به شرح code signing پرداخته و سعی بر این داریم تا با این نوع گواهینامه ssl که در ایران کمتر از آن استفاده شده است بپردازیم.
هدف از code signing
به دلیل آسیب احتمالی که یک برنامه اجرایی یا اسکریپت می تواند به یک سیستم رایانه ای وارد کند، مهم است که کاربران بتوانند به کدهای منتشر شده در اینترنت اعتماد کنند. به عنوان مثال اگر بدانید که برنامه ای توسط Microsoft امضا شده است، احتمال اینکه آن را نصب کنید بسیار بیشتر از یک برنامه امضا شده توسط شخص یا گروه مجهول است. دو روش مهم وجود دارد که توسط آن، Code Signing اعتماد را افزایش می دهد:
احراز هویت
تأیید اینکه نویسنده نرم افزار کیست.
تمامیت
تأیید اینکه نرم افزار از زمان امضای آن دستکاری نشده است.
به عنوان مثال، شما برنامه ای به نام WordWrite می نویسید، آن را با استفاده از گواهی code signing امضا کرده و در وب سایت خود توزیع می کنید. قبل از اجرای برنامه، کاربران شما می بینند که توسط شما امضا شده است و آنها می دانند که توسط یک هکر در روند بارگیری آن تغییر ایجاد نشده است.
به روز رسانی
مزیت دیگری که code signing ارائه می دهد توانایی اعتماد به روزرسانی است. اگر یک به روزرسانی را برای یک برنامه نرم افزاری منتشر کنید و امضا کنید که از همان کلید برنامه اصلی استفاده می کند، می توان به طور خودکار به روزرسانی اعتماد کرد زیرا نمی توانست از جایی غیر از منبع شما باشد.
سیستم عامل های پشتیبانی کننده
همه سیستم عامل های اصلی (مایکروسافت ویندوز، اپل OS X، لینوکس و غیره) و مرورگرهای وب از code signing پشتیبانی می کنند. آنها همچنین برای اطمینان از عدم توزیع کد مخرب از طریق سیستم وصله، از code signing استفاده می کنند. درباره code signing Microsoft Windows و code signing Apple OS X بیشتر بیاموزید.
گواهینامه code signing چیست؟
پس از شرح code signing به گواهینامه code signing می پردازیم. گواهی code signing به شما امکان می دهد کد را با استفاده از یک سیستم کلید خصوصی و عمومی مشابه روش استفاده شده توسط SSL و SSH امضا کنید. هنگام درخواست گواهی، یک جفت کلید عمومی / خصوصی ایجاد می شود. کلید خصوصی بر روی دستگاه متقاضی باقی می ماند و هرگز برای ارائه دهنده گواهی ارسال نمی شود. کلید عمومی با درخواست مجوز به ارائه دهنده ارسال می شود و ارائه دهنده گواهی صادر می کند.
![شرح code signing](https://amnssl.com/wp-content/uploads/2020/03/SSL-logo.png)
گواهی code signing به عنوان یک امضای دیجیتالی عمل می کند. وقتی داده را امضا می کنید، امضای دیجیتال خود را همراه با داده وارد می کنید. یک گواهینامه حاوی اطلاعاتی است که بطور کامل یک نهاد را شناسایی می کند و پس از تأیید هویت نهاد توسط مرجع صدور گواهی (CA) صادر می شود. وقتی فرستنده پیام با کلید خصوصی خود پیام را امضا می کند، گیرنده پیام می تواند از کلید عمومی فرستنده برای تأیید هویت فرستنده استفاده کند.
نقش اعتماد در Code Signing چیست؟
گواهینامه های code signing باید توسط یک مقام معتبر صدور گواهینامه روت با استفاده از زیرساخت ایمن کلید عمومی (PKI) امضا شود. مقامات صدور گواهینامه، سازمانی هستند که از نظر قابل اعتماد بودن، گواهینامه هایی را به نهادهایی صادر می کنند که هویت آنها تأیید شده است. گواهی ها با استفاده از زنجیره ای از CA تأیید می شوند. هر گواهی به گواهی CA که آن را امضا کرده پیوند دارد. با دنبال کردن این مسیر زنجیره ای به یک CA معتبر، می توانید اطمینان حاصل کنید که یک گواهی معتبر است. به عنوان مثال، اگر سیستم کاربری تنظیم شود که به یک مرجع صدور گواهینامه خاص اعتماد کند و یک اجرایی قابل امضا توسط نهادی را دریافت کند که توسط آن مرجع تأیید شده باشد، او می تواند اعتماد کند که به اجرایی توسط پروکسی اعتماد کند.
این مورد تضمین نمی کند که به خود کد اعتماد شود، فقط اینکه توسط یک شخص حقوقی خاص امضا شده است. یک هکر هنوز هم می تواند یک گواهی code signing دریافت کند و ویروس را امضا کند اما از نظر قانونی پاسخگو خواهد بود. CA های تجاری علاوه بر تأیید هویت یک نهاد، از متقاضیان می خواهند متعهد شوند که نرم افزاری را که می دانند حاوی ویروس است یا توجیه نمی کنند توزیع نکنند یا به رایانه یا کد کاربر آسیب می رسانند.
سخن پایانی
امیدواریم شرح code signing و اینکه چه نقشی در امنیت نرم افزار دارد برای شما مفید بوده و در صورت نیاز بتوانید این گواهینامه را جهت نرم افزار یا اپلیکیشن مدنظرتان استفاده نمایید.
![محمد یاری پور](https://amnssl.com/wp-content/uploads/ultimatemember/108/profile_photo-80x80.png?1725770129)
مطالب زیر را حتما بخوانید:
چنانچه دیدگاهی توهین آمیز باشد و متوجه اشخاص مدیر، نویسندگان و سایر کاربران باشد تایید نخواهد شد. چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد. چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد. چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد. چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.
نظرات کاربران