wolfSSL چیست و چگونه ایجاد شد

پیدایش wolfSSL به سال 2004 برمی گردد، زمانی که لری استفونیک و تاد اوسکا فهمیدند که هیچ کتابخانه SSL امبدد منبع باز و لایسنس دوگانه دیگری در دسترس نبود. OpenSSL در آن زمان در دسترس بود، اما بسیاری از کاربران OpenSSL می خواستند گزینه ای جایگزین باشد که به راحتی قابل حمل، کوچکتر، سریعتر و تحت مجوز تجاری مشخص باشد، مجهز به یک API تمیز و مدرن باشد و پشتیبانی از توسعه دهنده به سبک تجاری را ارائه دهد.

از این نیاز بازار، wolfSSL، با یک لایه سازگاری OpenSSL، متولد شد. اولین کاربر اصلی کتابخانه SSL wolfSSL MySQL بود، محبوب ترین پایگاه داده منبع باز جهان. از طریق همراهی با پروژه های منبع باز موفق و محبوب مانند MySQL ،OpenWRT ،Mongoose ،cURL و اوبونتو، wolfSSL به توزیع بسیار زیاد و پذیرش کاربر دست یافته است. در حال حاضر بیش از 2 میلیارد اتصال توسط wolfSSL امن شده است.

 

تکامل

از زمان تاسیس آن در سال 2004، wolfSSL تعدادی از محصولات امنیتی امبدد را توسعه داده است. شرح مختصر هر یک را می توانید در زیر ببینید.

  • wolfSSL یک کتابخانه سبک SSL/TLS مبتنی بر زبان C است که عمدتا به دلیل اندازه کوچک، سرعت، قابلیت حمل و مجموعه ویژگی های آن برای محیط های امبدد و RTOS طراحی شده است.
  • yaSSL یک کتابخانه SSL مبتنی بر زبان ++C  برای توسعه دهندگان است که با ++C راحت ترند. ما توصیه می کنیم در صورت امکان از wolfSSL استفاده کنید.
  • wolfCrypt یک موتور رمزنگاری امبدد، مبتنی بر زبان C است، که استفاده کم از حافظه، سرعت بهینه شده، قابلیت حمل بالا و مجموعه ویژگی های قوی را ارائه می کند.
  • wolfCrypt FIPS نسخه ای از wolfCrypt است که FIPS 140-2 تأیید شده است (گواهی شماره 2425).
  • wolfSSH یک اجرای کوچک و قابل حمل SSH است که در حال حاضر در مراحل اولیه خود است و برای استفاده توسط توسعه دهندگان سیستم های امبدد مورد استفاده قرار می گیرد.

محصولات wolfSSL با موفقیت در پروژه های منبع باز و تجاری مورد استفاده قرار می گیرند. wolfSSL و wolfCrypt در انواع مختلفی از دستگاه ها و برنامه های شبکه وجود دارد، از جمله دستگاه های هوشمند در اتومبیل، تلفن های IP، تلفن های همراه، روترها، چاپگرها و اسکنرهای کارت اعتباری و غیره. به عنوان یک خط مشی، wolfSSL نام شرکت یا پروژه کاربر را فاش نمی کند مگر اینکه آن شرکت ها استفاده خود از محصولات wolfSSL را به طور علنی اعلام کنند.

 

پشتیبانی WOLFSSL از میکروکنترلرهای STM32

کتابخانه SSL/TLS امبدد wolfSSL از چندین میکروکنترلر STM32 و از رمزنگاری مبتنی بر سخت افزار و مولد اعداد تصادفی ارائه شده توسط آنها نیز پشتیبانی می کند. wolfSSL هم از کتابخانه SPL و هم از HAL پشتیبانی می کند. همچنین پکیج wolfSSL برای STM32Cube در دسترس است تا مستقیم wolfSSL را به پروژه های STM32CubeMX و STM32CubeIDE اضافه کنید که کار را برای کاربران آسان می کند.

کتابخانه wolfSSL و wolfCrypt از میکروکنترلرهای ST زیر پشتیبانی می کنند:

  • STM32F-Series: STM32F1, STM32F2, STM32F4, STM32F7
  • STM32L-Series: STM32L4, STM32L5
  • STM32H-Series: STM32H7
  • STM32WB-Series: STM32WB55
  • STM32G-Series: STM32G0

 

پکیج wolfSSL Cube

ابزار STMCubeIDE و STM32CubeMX امکان استفاده سریع از کتابخانه wolfSSL را با استفاده از توسعه نرم افزاری برای STM32Cube، را فراهم می کند که می توانید از لینک زیر دانلود کنید.

https://www.wolfssl.com/files/ide/I-CUBE-WOLFSSL-WOLFSSL.pack

 

نحوه نصب پکیج wolfSSL Cube:

  1. STM32CubeMX را اجرا کنید.
  2. در بخش Manage software installations روی دکمه INSTALL/REMOVE کلیک کنید.
  3. از Local و فایل دانلود شده I-CUBE-WOLFSSL-WOLFSSL.pack را انتخاب کنید.

 

نحوه ایجاد یک پروژه Cube با wolfSSL:

  1. بر اساس سخت افزار خود یک پروژه Cube ایجاد یا باز کنید.
  2. در بخش Software Packs ،Select Components را انتخاب کنید.
  3. همه پکیج های wolfSSL را پیدا و تیک بزنید. پکیج های wolfSSL (wolfSSL/Core ،wolfCrypt/Core و wolfCrypt/Test).
  4. برای Cortex-M این توصیه می شود.  Math Configuration -> Single Precision Cortex-M Math
  5. تولید کد

 

بیلد wolfSSL با STM32F2

برای فعال کردن رمزنگاری سخت افزاری STM32F2 و پشتیبانی RNG، هنگام بیلد، STM32F2_CRYPTO و STM32F2_RNG را define کنید. برای دیدن لیستی از define های استفاده شده برای بیلد wolfSSL در برد STM3221G-EVAL با Keil، به WOLFSSL_STM32F2 در wolfssl_root>/wolfssl/wolfcrypt/settings.h> مراجعه کنید.

 

بیلد wolfSSL با STM32CubeMX HAL

wolfSSL با استفاده از System Workbench For STM32  یک مثال از  STM32CubeMX را برای wolfSSL ایجاد کرده است. این مثال را می توانید در ادامه دانلود کنید. لطفاً برای جزئیات بیشتر به فایل README موجود در فولدر دانلود شده مراجعه کنید.

 

پشتیبانی و بنچمارک های رمزنگاری سخت افزار STM32

برای میکروکنترلرهای STM32 که دارای شتاب رمزنگاری سخت افزاری هستند wolfSSL کاملاً از آنها پشتیبانی میکند.

  • سخت افزار RNG:
    • همه RNG های مبتنی بر سخت افزار STM32 را پشتیبانی می کند.
  • شتاب سخت افزاری PKA برای ECC:
    • STM32WB55 و STM32L562.
  • AES ECB/CBC/GCM:
    • STM32F437, STM32H753, STM32F777, STM32H753, STM32L4A6, STM32WB55
  • SHA256:
    • STM32F437, STM32F777, STM32H753, STM32L4A6, STM32L552

 

پشتیبانی کتابخانه STM32Fxx SPL

الگوریتم های رمزنگاری پشتیبانی شده در سخت افزار از طریق کتابخانه STM32Fxx SPL شامل 3DES ,MD5, SHA1, AES (CBC, CTR) و DES (ECB, CBC) می شوند. برای جزئیات مربوط به رمزنگاری STM32 و پردازنده های هش، لطفاً به کتابچه راهنمای کتابخانه STM32Fxx SPL مراجعه کنید:

USER_MANUAL/DM00023896.pdf

 

STM32Cube با پشتیبانی HAL

الگوریتم های رمزنگاری پشتیبانی شده که از طریق STM32CubeMX HAL در سخت افزار تسریع می شوند شامل RNG ،AES ،SHA-1 ،3DES و MD5 هستند که بالاتر ذکر شد. برای جزئیات بیشتر در مورد STM32CubeMX لطفا به لینک زیر از وبسایت STMicroelectronics مراجعه کنید:

http://www.st.com/fa/development-tools/stm32cubemx.html

 

بنچمارک های STM32

با استفاده از wolfSSL با STM32، برنامه ها می توانند هنگام استفاده از رمزنگاری سخت افزاری، در مقایسه با استفاده از پیاده سازی رمزنگاری نرم افزار استاندارد wolfSSL، پیشرفت های قابل ملاحظه ای در سرعت داشته باشند.

لیست کاملی از بنچمارک های STM32 را می توان از لینک زیر یافت:

STM32_Benchmarks.md

منبع: wolfssl.com

  برچسب ها
  نظرات

جهت ثبت نظر وارد سایت شوید

راهنمای استفاده از کد در کامنت
````
insert your code
``