آموزش هک و امنیت با پایتون
دوستان عزیز سلام ، امروز در این نوشته از ویرگول دانشجویار میخوایم درباره مبحث بسیار پرطرفدار هک و امنیت در پایتون که یکی از پرکاربردترین زبان های برنامه نویسی در این زمینه می باشد صحبت کنیم.
این نوشته اطلاعات خوبی در این زمینه را به شما منتقل می کند، اما پیش نیاز ورود به این مبحث یادگیری زبان پایتون می باشد.
اگر تا به حال با این زبان کار نکردین و یا نیاز به حرفه ای تر شدن در این زمینه دارید، ما در دانشجویار دوره آموزش پایتون را به صورت رایگان در اختیار شما قرار داده ایم که از اینجا می توانید دانلود و مشاهده کنید و بعد، مقاله را با خیال راحت مطالعه کرده و دانش عملی به دست آورید :
خب بریم سراغ اصل داستان یعنی هک و امنیت با پایتون :
امروزه کمتر کسی وجود دارد که با دنیای تکنولوژی آشنا بوده و نامی از زبان برنامه نویسی پایتون python را نشنیده باشد. این زبان برنامه نویسی یکی از زبان های برنامه نویسی معروف و بسیار پیشرفته و قدرتمند در تمام دنیا است و بر تعداد کاربران آن روز به روز افزوده شده و هرروز تعداد بیشتری از افراد به این زبان برنامه نویسی جذب می شوند. اگر نگاهی به تعداد افرادی که از زبان برنامه نویسی پایتون استفاده می کنند نگاه کنیم متوجه می شویم این آمار روز به روز در حال افزایش است. افزایش استفاده از یک زبان برنامه نویسی علاوه بر مزیت ها و اتفاقات مثبتی که به همراه دارد باعث اتفاق به وجود آمدن هکر ها و بروز مشکل در امنیت نیز می شود. هرچند پایتون با توانایی های و فریمورک های خود کمک شایانی به ما می کند. اما وظیفه یک برنامه نویس این است که به خوبی از ابزار هایی که زبان برنامه نویسی در اختیارش قرار داده استفاده کند و با قدرت و به مانند فرمانده یک ارتش در مقابل همه نوع از حملات هکر ها ایستادگی کند. بعد از استفاده از این محصول با رمزنگاری با پایتون با کتابخانه hashlib آشنا می شویم و مبحث هک و امنیت پایتون را به طور کامل بررسی می کنیم.
هک چیست و هکر کیست؟
شما اگر در طول یک هفته اخبار تکنولوژی را دنبال کنید و به اتفاقات رخ داده در طول این مدت دقت کنید. غیر ممکن است که خبری راجع به هک در آن نیابیم. حال ممکن است این سوال پیش بیاید که اساساً هک چیست؟ چرا تعداد زیادی از افراد هکر می شوند و اصلاً چه کسی را یک هکر می نامند؟ همه این نوع از پرسش های شما در این قسمت پاسخ داده خواهد شد. بهتر است با مثالی از دنیای واقعی این مبحث را باز کنیم. در دنیای واقعی و در یک شهر میلیون ها شغل و حرفه وجود دارد که هرکدام دارای روابط و مشتریان مربوط به خود هستند حال فرض می کنیم شرکتی در این دنیا وجود دارد که سیستم کامل اداری خود را به راه انداخته و شروع به کار به صورت حرفه ای کرده است. حال این سیستم اداری به مانند همه سیستم ها یک سیستم دارای مشکل است. حال اگر اطلاعاتی از طریق این مشکلات و ضعف های سیستم به بیرون نفوذ کند می توان گفت این سیستم هک شده است. در دنیای کامپیوتر نیز مسئله به همین شکل است. کلمه Hack در زبان انگلیسی به معنی رخنه و نفوذ است و به کسی که توانایی یافتن حفره های امنیتی و استفاده از آن ها را دارد هکر می گویند که معمولاً توانایی برنامه نویسی بسیار قدرتمندی را دارند.
سئوال بعدی که در مورد هکر ها ایجاد می شود این است که آیا همه هکر ها بد هستند و هک هم کار بسیار بدی است؟ مطالبی که در قسمت بالا برای شما گفتم به علاوه فیلم های سینمایی و سریال هایی که تاکنون راجع به هک دیدید همین مطلب را تداعی میکند اما واقعیت این نیست. هک کاری بسیار خوب و مفید برای سیستم های کامپیوتری است که با استفاده از آن می توان حفره های امنیتی را شناخته و آن ها را برطرف کرد. مشکلی که باعث خطرناک شدن هک می شود درحقیقت هکر ها هستند. برخی از این هکر ها بعد از یافتن مشکلات و حفره های امنیتی شروع به سوء استفاده از این اطلاعات می کنند و آنجاست که ما باید هوشیار باشیم و با دانش خود جلوی این حملات احتمالی را بگیریم.
رمزنگاری در پایتون با کتابخانه hashlib
ما می توانیم برای رمزنگاری hash در پایتون استفاده کنیم. هش کردن به طور کلی به معنی رمزنگاری به صورت رشته ای از حروف و کلمات است که در مقصد رمزگشایی می شود. این کار سبب امن تر شدن اطلاعات شده و یکی از روش های رمزنگاری ( cryptography ) است. برای رمزنگاری با کتابخانه hashlib در پایتون لازم است آن را فراخوانی کنیم. از طرفی از آنجایی که hashlib به وسیله openssl برگشته است از الگوریتم های رمزنگاری md5, sha1, sha224, sha256, sha384, sha512 پشتیبانی میکند. که بعضی از این الگوریتم ها برای همه پلتفرم ها در دسترس بوده و برخی نیز بسته به زیرکتابخانه های استفاده شده قابل استفاده اند.
import hashlib
print('Guaranteed:\n{}\n'.format(
', '.join(sorted(hashlib.algorithms_guaranteed))))
print('Available:\n{}'.format(
', '.join(sorted(hashlib.algorithms_available))))
$ python3 hashlib_algorithms.py
Guaranteed:
blake2b, blake2s, md5, sha1, sha224, sha256, sha384, sha3_224,
sha3_256, sha3_384, sha3_512, sha512, shake_128, shake_256
Available:
BLAKE2b512, BLAKE2s256, MD4, MD5, MD5-SHA1, RIPEMD160, SHA1,
SHA224, SHA256, SHA384, SHA512, blake2b, blake2b512, blake2s,
blake2s256, md4, md5, md5-sha1, ripemd160, sha1, sha224, sha256,
sha384, sha3_224, sha3_256, sha3_384, sha3_512, sha512,
shake_128, shake_256, whirlpool
بهتر است برای استفاده از این کتابخانه مثال هایی را بزنیم نحوه فراخوانی و نحوه استفاده آن به خوبی مشخص شود. برای مثال متن زیر با الگوریتم md5 و توسط کتابخانه hashlib رمزگذاری شده است.
داده های اولیه ما با شکل زیر است.
hashlib_data.py
import hashlib
lorem = '''Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis
aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.'''
حال شروع به رمزگذاری داده ها می کنیم.
import hashlib
from hashlib_data import lorem
h = hashlib.md5()
h.update(lorem.encode('utf-8'))
print(h.hexdigest())
هنگامی که می خواهیم md5 را محاسبه کنیم باید در ابتدا یک شی هش تعریف کنیم که بتوانیم داده های خود را با نام digest وارد آن کنیم. نتیجه این عمل به شکل زیر خواهد بود.
$ python3 hashlib_md5.py
3f2fd2c9e25d60fb0fa5d593b802b7a8
همچنین در مثالی دیگر این داده نمونه را می توانیم با الگوریتم SHA1 رمزگذاری کنیم. روند کار در این الگوریتم نیز به مانند الگوریتم قبلی است.
import hashlib
from hashlib_data import lorem
h = hashlib.sha1()
h.update(lorem.encode('utf-8'))
print(h.hexdigest())
و نتیجه کار به شکل زیر نشان داده می شود.
$ python3 hashlib_sha1.py
ea360b288b3dd178fe2625f55b2959bf1dba6eef
روند وارد کردن داده ها و همچنین رمزگذاری آن ها با دو الگوریتم به شکل بالا است و مطمئناً با تهیه این محصول به سادگی توانایی انجام کار با این کتابخانه و الگوریتم های مختلف آن را دارید و از طرفی میتوانید امنیت برنامه خود را تامین خواهید کرد.
در پایان باید گفت با این روش می توانید از ورود هکر ها در پایتون جلوگیری کنید و وارد مبحث هک و امنیت با پایتون شوید. اگر نیاز به تامین امنیت در پایتون و یا علاقه مند به مباحث رمزنکاری و یا حتی علاقه به برنامه نویسی پایتون دارید، این آموزش مناسب شما بوده و با استفاده از آن به طور کامل می توانید از این کتابخانه استفاده کنید.
مطلبی دیگر از این انتشارات
تفاوت برنامه نویسی و مهندس نرم افزار
مطلبی دیگر از این انتشارات
دولوپر کیست؟ - حوزه های فعالیت و بازار کار
مطلبی دیگر از این انتشارات
تحول دیجیتال: جلسه دوم –آقای دکتر اعتماد مقدم