آموزش SDK EC200- قسمت ششم- SSL

Open CPU 6
smem
36 بازدید
۱۴۰۴-۰۴-۳۰
8 دقیقه
  • نویسنده: آرویدتک
  • درباره نویسنده: www.arvidtek.com | گروه مهندسی آرویدتک | فعال حوزه الکترونیک و مخابرات | فروشگاه تخصصی قطعات الکترونیک

در دنیای امروز که ارتباطات الکترونیکی و تبادل اطلاعات به بخش جدایی‌ناپذیری از زندگی روزمره و فناوری تبدیل شده‌اند، حفظ امنیت این ارتباطات از اهمیت ویژه‌ای برخوردار است. یکی از مهم‌ترین ابزارها برای تامین امنیت در بستر اینترنت، پروتکل SSL (یا نسخه‌ی جدید آن، TLS) است.SSL (Secure Sockets Layer) پروتکلی است که امکان برقراری یک ارتباط امن و رمزنگاری‌شده را بین دو سیستم (معمولاً مرورگر کاربر و سرور وب) فراهم می‌کند. این پروتکل با رمزنگاری داده‌ها، مانع از شنود، دستکاری یا جعل اطلاعات توسط اشخاص ثالث می‌شود و در نتیجه، حریم خصوصی کاربران و یکپارچگی داده‌ها را تضمین می‌کند.

کاربرد SSL بسیار گسترده است؛ از محافظت از اطلاعات حساس کاربران در وب‌سایت‌های بانکی و فروشگاهی گرفته تا ایمن‌سازی ارتباط بین تجهیزات اینترنت اشیا (IoT) مانند ماژول‌های مخابراتی و سرورهای ابری. در پروژه‌های IoT، استفاده از SSL نقش حیاتی در جلوگیری از حملات میانی (Man-in-the-Middle) و افشای اطلاعات دارد. این پروتکل به توسعه‌دهندگان این امکان را می‌دهد تا با اطمینان بیشتری داده‌ها را بین دستگاه‌ها و سرورها انتقال دهند و اعتماد کاربران را جلب کنند. در یک جمله، SSL نه‌تنها ستون امنیت ارتباطات دیجیتال امروزی است، بلکه پایه‌ای حیاتی برای ساخت سیستم‌های هوشمند و قابل اعتماد در آینده نیز به‌شمار می‌رود.

راه اندازی HTTPS

پروتکل HTTPS (HyperText Transfer Protocol Secure) نسخه‌ای امن از HTTP است که برای انتقال داده‌ها بین مرورگر کاربر و سرور وب به‌کار می‌رود. تفاوت اصلی HTTPS با HTTP در استفاده از SSL/TLS برای رمزنگاری ارتباط است. این رمزنگاری باعث می‌شود اطلاعات ارسالی و دریافتی بین کاربر و سرور توسط اشخاص ثالث قابل مشاهده یا دستکاری نباشد.

 مزایای استفاده از HTTPS

  1. رمزنگاری داده‌ها: جلوگیری از شنود اطلاعات توسط مهاجمان.

  2. احراز هویت سرور: کاربران مطمئن می‌شوند که با وب‌سایت واقعی در ارتباط هستند، نه نسخه‌ای جعلی.

  3. یکپارچگی داده‌ها: جلوگیری از تغییر یا خراب شدن داده‌ها در مسیر انتقال.

  4. جلب اعتماد کاربران: مرورگرها سایت‌های بدون HTTPS را با پیام‌های هشدار نمایش می‌دهند.

  5. بهبود رتبه سایت در گوگل: HTTPS یکی از فاکتورهای رتبه‌بندی در موتور جستجو است.

 انواع گواهی‌نامه‌های SSL/TLS (Certificates)

گواهی‌نامه SSL نشان می‌دهد که یک وب‌سایت از رمزنگاری ایمن استفاده می‌کند و توسط یک مرجع معتبر (CA – Certificate Authority) تأیید شده است. گواهی‌نامه‌ها از نظر سطح اعتبار و نوع اعتبارسنجی به سه دسته کلی تقسیم می‌شوند:

1. DV – Domain Validation (اعتبارسنجی دامنه)

  • ساده‌ترین و ارزان‌ترین نوع گواهی.

  • فقط مالکیت دامنه تأیید می‌شود.

  • مناسب برای وب‌سایت‌های شخصی و وبلاگ‌ها.

  • آدرس با HTTPS شروع می‌شود و قفل سبز ظاهر می‌شود.

  • سریع‌ترین زمان صدور.

2. OV – Organization Validation (اعتبارسنجی سازمانی)

  • علاوه بر دامنه، هویت سازمان مالک دامنه نیز بررسی و تأیید می‌شود.

  • اطلاعات شرکت در گواهی قابل مشاهده است.

  • مناسب برای وب‌سایت‌های تجاری و دولتی.

  • زمان صدور بیشتر از DV.

3. EV – Extended Validation (اعتبارسنجی پیشرفته)

  • بالاترین سطح اعتبار و امنیت.

  • نیاز به بررسی دقیق حقوقی و مستندات شرکت دارد.

  • در برخی مرورگرها، نام شرکت در کنار آدرس سایت نمایش داده می‌شود.

  • مناسب برای بانک‌ها، فروشگاه‌های بزرگ و سامانه‌های مالی.

انواع گواهی از نظر ساختار فنی

  • Single Domain Certificate: برای یک دامنه خاص (مثلاً example.com)

  • Wildcard Certificate: برای دامنه و تمام زیردامنه‌ها (*.example.com)

  • Multi-Domain Certificate (SAN): پشتیبانی از چند دامنه مختلف در یک گواهی.

کاربرد در IoT

در پروژه‌های اینترنت اشیا (IoT)، از گواهی SSL برای امن‌سازی ارتباط بین دستگاه‌ها (مثل ماژول‌های 4G) و سرور استفاده می‌شود. این گواهی‌ها می‌توانند:

  • روی سرور نصب شوند تا دستگاه‌ها به آن متصل شوند.

  • یا در خود دستگاه تعبیه شوند تا ارتباط client-authenticated برقرار شود (مانند استفاده از client.crt, client.key).

انواع مختلف گواهی ها در جدول زیر قابل مشاهده است.

زنجیره اعتماد (Chain of Trust) چیست؟

زنجیره اعتماد یعنی: «مرورگر یا دستگاه شما چطور می‌فهمد که گواهی‌نامه‌ای که سرور ارسال کرده، قابل اعتماد است یا نه؟»

اینجا یک ساختار سلسله مراتبی داریم:

[Root CA] ← اعتماد از پیش تعریف‌شده

[Intermediate CA] ← توسط Root امضا شده

[Server Certificate] ← توسط Intermediate امضا شده

انواع مختلف گواهی ها در جدول زیر قابل مشاهده است.

نوع گواهی‌نامه

کاربرد

صادرکننده

در سمت

نکته

Root Cert

پایه اعتماد

CA

مرورگر / سیستم

از قبل نصب شده

Intermediate Cert

لینک بین Root و Server

CA

سرور

توسط CA مدیریت می‌شود

Server Cert

احراز هویت دامنه

CA

سرور

به کلاینت ارسال می‌شود

Client Cert

احراز هویت کاربر

CA / سازمان

کلاینت

نیاز به تنظیم روی سرور دارد

مثال ساده:

فرض کن به سایت https://sisoog.com وصل می‌شی:

  1. مرورگر یا دستگاه شما درخواست اتصال می‌فرسته.

  2. سرور sisoog.com:

    • گواهی‌نامه خود (Server Certificate)

    • به‌علاوه گواهی‌نامه واسط (Intermediate Certificate)

      رو برای شما می‌فرسته.

  3. دستگاه یا مرورگر شما گواهی‌ها را بررسی می‌کنه:

    • بررسی می‌کنه که آیا گواهی واسط واقعاً توسط یک Root CA معتبر امضا شده؟

    • این Root CA باید در سیستم‌عامل یا فریمور شما از قبل وجود داشته باشه (مثلاً در خود فریمور ماژول).

  4. اگر همه چیز درست باشه، ارتباط امن برقرار می‌شه. وگرنه، خطای SSL Handshake Failed دریافت می‌کنی.

گواهی هایی که استفاده میکنیم در جدول زیر قراردارند:

فایل

توضیح

server.crt

گواهی‌نامه عمومی سرور

server.key

کلید خصوصی سرور

intermediate.crt

گواهی‌نامه واسط

root.crt

گواهی‌نامه ریشه (سیستم معمولاً از قبل داره)

client.crt

گواهی‌نامه کلاینت (برای mutual TLS)

client.key

کلید خصوصی کلاینت

client.csr

درخواست صدور گواهی (Certificate Signing Request)

چطور مرورگر یا دستگاه متوجه جعلی بودن گواهی می‌شه؟

مثلاً اگه یه هکر با روش مرد میانی (MITM) بیاد و یه گواهی جعلی با دامنه sisoog.com برای شما بفرسته:

  • اگر کل زنجیره اعتماد اون گواهی، به یک Root CA معتبر نرسه،

  • یا اگر کلید عمومی و امضای دیجیتال اون گواهی با دامنه اصلی نخونه،

  • مرورگر یا دستگاه خطا می‌ده:

    Untrusted Certificate, SSL Handshake Failed, Certificate Not Valid, و…

خب حالا که با انواع گواهی ها و روش امن کردن ارتباط آشنا شدید به سراغ کد میرویم.

راه اندازی ارتباط HTTPs

برای استفاده از HTTPS لازم است تابع زیر را از مسیر (/components/ql-application/init/ql_init.c) از حالت کامنت خارج کنید.

باتوجه به اینکه فایلهای (Certificate) را در SDcard قراردادم نیاز بود تا از تابع (ql_sdmmc_app_init();) که در پست قبل باهم بررسی کردیم استفاده کنیم که آن را هم از حالت کامنت خارج کردم و سپس فایلها را به صورت زیر در کد تعریف میکنیم.

برای ساخت فایلهای مورد نیاز که قرار است در SDcard قراردهیم، در لینوکس از دستورات زیر استفاده کنید.

و در ویندوز پس از نصب برنامه Openssl (و افزودن آن به path ویندوز) از دستورات زیر استفاده کنید.

سپس میتوانید فایلهای را به SDcard منتقل کنید.

در نهایت این قسمت کد را ویرایش کنید. (آدرسی که استفاده شده برای مثال بوده و شما میتوانید از آدرسهای دیگر استفاده کنید.)

 پس از کامپایل و نصب خروجی مانند زیر خواهید داشت.

خروجی راه اندازی ارتباط HTTPs

راه اندازی SSL

برای استفاده از SSL لازم است تابع زیر را از مسیر (/components/ql-application/init/ql_init.c) از حالت کامنت خارج کنید.

باتوجه به اینکه فایل (CAcert) را در SDcard قراردادم نیاز بود تا از تابع (ql_sdmmc_app_init();) که در پست قبل باهم بررسی کردیم استفاده کنیم که آن را هم از حالت کامنت خارج کردم و سپس به صورت زیر در کد تغییر ایجاد کردم. همچنین همینطور که مشاهده میکنید تنظیمات دیگر را عوض کردم.

سپس نیاز است که تنظیمات مربوط به کانفیگ SSL به صورت زیر تغییر دهیم:

پس از انجام تغییرات ذکر شده و کامپایل و نصب کد خروجی مانند زیر خواهید داشت.

خروجی نهایی کد

امیدوارم از این آموزش استفاده کافی را برده باشید.

اطلاعات
36
0
0
لینک و اشتراک
profile

آرویدتک

متخصص الکترونیک

وبسایت: http://www.arvidtek.com

www.arvidtek.com | گروه مهندسی آرویدتک | فعال حوزه الکترونیک و مخابرات | فروشگاه تخصصی قطعات الکترونیک

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ
سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله