گواهی الکترونیکی چیست؟
گواهی الکترونیکی (digital certificate) شناسه دیجیتال یک موجودیت (مانند فرد) در تعاملات الکترونیکی است. در واقع، همانطور که در تعاملات غیر الکترونیکی، "کارت ملی" یا شناسنامه یک فرد شناسه وی می باشد، در تعاملات الکترونیکی "گواهی الکترونیکی" شناسه فرد (و بطور کلی هر موجودیت) می باشد. در تعاملات الکترونیکی (برخلاف تعاملات رو در رو)، طرفین ممکن است نتوانند هویت طرف مقابل را شناسایی کنند. این چالش می تواند منجر به برخی محدودیت ها و مشکلات در این نوع تعاملات شود. برای مثال فرض کنید نرم افزاری توسط فرد یا سازمانی توسعه و منتشر شده است. پس از انتشار، یک فرد دیگر فایل نرم افزار اصلی را با فایلی که در آن یک ویروس تروجان قرار داده شده جایگزین می کند یا آن را تغییر داده و مجدداً منتشر می کند. در این صورت، افرادی که نرم افزار را دریافت می کنند، راهی برای تشخیص هویت منتشرکننده و حصول اطمینان از اینکه نرم افزار پس از انتشار توسط فرد دیگری تغییر نیافته، ندارند. بدین سان، ممکن است منتشرکننده اصلی نرم افزار به هدف خود در تولید و انتشار نرم افزار نرسد و کاربران نرم افزار (به دلیل تغییر آن توسط فرد دیگر) دچار مشکلاتی مثل ویروسی شدن سیستم و غیره شوند.
گواهی الکترونیکی، رایج ترین راه حل مواجهه با چالش بالا است. یک موجودیت با استفاده از گواهی الکترونیکی خود می تواند به طرف مقابل خود اطمینان دهد که با موجودیت مورد نظر خود در تعامل است. برای مثال، وقتی یک نرم افزار امضای دیجیتال شود، کاربران نهایی نرم افزار می توانند از هویت فرد امضاکننده و عدم تغییر آن پس از انتشار اطمینان حاصل کنند.
امضای دیجیتال چیست و چرا باید از گواهی الکترونیکی امضای دیجیتال کد استفاده کرد؟
امضای دیجیتال مفهومی شبیه امضای دستی و اثر انگشت اما با عملکردی دقیق تر و امن تر در دنیای الکترونیک دارد. امضای دیجیتال کد روشی برای امضای کد اجرایی نرم افزار (executable) و اسکریپت ها با استفاده از امضای دیجیتال مبتنی گواهی الکترونیکی است. وقتی روی یک نرم افزار امضای دیجیتال انجام میشود، امکانات زیر فراهم میشود:
در چه کاربردهایی می توان از امضای دیجیتال کد استفاده کرد؟
انواع مختلف کد را می توان امضای دیجیتال نمود که از جمله آن ها می توان برنامه های ویندوزی مانند ActiveX ، .msi ، .exe ، .cab ، .dll ، .ocx ، .xpi ، و اپلت های جاوا (فایل های jar.) اشاره کرد.