کتاب Hacking Cryptography: Write, break, and fix real-world implementations (هک رمزنگاری: نوشتن، شکستن و اصلاح پیادهسازیهای واقعی) یک راهنمای عملی برای علاقهمندان به امنیت سایبری و برنامهنویسان است که به دنبال درک عمیقتر رمزنگاری از طریق تجربه عملی هستند.
کتاب Hacking Cryptography فراتر از تئوریهای انتزاعی، به خواننده میآموزد که چگونه الگوریتمهای رمزنگاری متداول را از ابتدا پیادهسازی کند، آسیبپذیریهای موجود در سیستمهای رمزنگاری واقعی را شناسایی کرده و آنها را مورد بهرهبرداری قرار دهد، و در نهایت، راهحلهایی برای بهبود امنیت و رفع ضعفها ارائه دهد. با تمرکز بر رویکرد “یادگیری با انجام”، کتاب Hacking Cryptography به خوانندگان کمک میکند تا با چالشهای دنیای واقعی در رمزنگاری آشنا شوند و مهارتهای لازم برای ساخت سیستمهای امن و مقاوم در برابر حملات را کسب کنند.
در ادامه مقدمهای از کتاب Hacking Cryptography را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Hacking Cryptography:
دوست من، عاصم، و من دو تا بچهدرسخوان بودیم که در طائف، عربستان سعودی (ما به مدرسهی سفارت پاکستان میرفتیم) بزرگ شدیم. یک بار در کلاس چهارم، سعی کردیم قفل یک کمد متروکه را در یک انباری باز کنیم. با گیرهی کاغذ نتوانستیم آن را باز کنیم، همانطور که در تلویزیون دیده بودیم، بنابراین از او خواستم روز بعد یک پیچگوشتی فیلیپس بیاورد. بیشمار بار آرزو کردهام که ای کاش این کار را نکرده بودم. قفل کمد را باز کردیم و یک عالمه سند دور ریختهشده داخل آن پیدا کردیم.
من میخواستم بروم، اما عاصم اصرار کرد بماند و قفل را دوباره روی کمد ببندد. معلم او را گرفت. من در یک مخفیگاه در مدرسه پناه گرفتم. بعد از مدتی هم مرا پیدا کردند، چون عاصم تحت فشار قرار گرفت تا فاش کند چه کسی به او در شکستن قفل کمد «کمک» کرده است. خانواده عاصم کمی بعد از آنجا نقل مکان کردند. فقط یک بار دیگر با او صحبت کردم یا خبری از او شنیدم، زمانی که قبل از ترک شهر برای پس دادن چند رمان اردو که با هم رد و بدل کرده بودیم، سر زد. رمانهای اردو عشق مشترک ما بودند.
هیچکدام از ما به بازیهای ویدیویی یا کامپیوتر دسترسی نداشتیم، و چون بچههای «متوسطهی اردو» بودیم، تسلط بسیار کمی به انگلیسی داشتیم. از آن زمان به بعد، زندگی من پیچ و خمهای زیادی پیدا کرده است، همانطور که مطمئنم زندگی او نیز همینطور بوده است. حدود پنج سال پس از سرقت بزرگ ما، من برای اولین بار از کامپیوتر استفاده کردم، یک رویداد تحولآفرین در زندگی من. عاصم و من سالها پیش تظاهر میکردیم که میدانیم کامپیوترها چگونه کار میکنند. حالا یک کامپیوتر واقعی داشتم تا در موردش یاد بگیرم.
شکل ۱: کامپیوتری که تظاهر میکردیم واقعی است. “ویندوز ۲۰۰۰ در ۱” خیلی بهتر از “ویندوز ۱۹۹۸ در ۱” به نظر میرسد.
مهمتر از همه، کامپیوتر مرا به جامعهای از گیکها و نِردها وصل کرد. تا همین اواخر، همیشه باور داشتم که من عاشق یادگیری امنیت و رمزنگاری هستم زیرا یادگیرندهی چندان سریعی نیستم، و این حوزهها دلایل طبیعی و استراتژیک برای حرکت آهسته دارند. با افزایش سن – و با کمک فرآیند نوشتن کتاب Hacking Cryptography – متوجه شدم که دلایل بسیار عمیقتر از این حرفها بود.
اگرچه درست است که ماهیت آرام این رشته به افرادی مثل من کمک میکند، زیرا ما میتوانیم الگوریتمها و پیادهسازیهای دهها سال پیش را بخوانیم که هنوز هم امروزی هستند، اما من در این زمینه خانهای پیدا کردم، زیرا از طراحی آن نشأت میگرفت.
منظورم از “از طراحی آن” این نیست که کسی عمداً جوانان را به دنیای رمزنگاری و امنیت هدایت میکند؛ بلکه، در این زمینه تمهای بسیار واقعی از پذیرش و رشد وجود دارد که آن را به خانهای برای بچههایی مثل عاصم و من تبدیل میکند. بیاغراق نیست اگر بگوییم دنیای امنیت سایبری به طور سنتی خانهی برخی از بزرگترین “ناجورها” بوده است. پشت همهی آن کتهای بلند و باران دیجیتالی، روحیهای از پرسشگری، یادگیری و خراب کردن چیزها نهفته است.
مهم نیست از کجا آمدهاید، سرعت اینترنتتان چقدر است، یا در مدرسه چقدر باحال بودید؛ تا زمانی که فروتنی و کنجکاوی را به همراه بیاورید، کسانی در این جامعه هستند که شما را صمیمانه پذیرا خواهند بود و وقت گرانبهای خود را صرف به اشتراک گذاشتن شور و شوق خود با شما میکنند. کتاب Hacking Cryptography تلاش من برای جبران این لطف است.
اگرچه من و عاصم فرصت صحبت درباره کامپیوترهای واقعی یا رمزنگاری را پیدا نکردیم، اما بدون دوستیهای واقعی بسیاری از افرادی که از آن زمان با آنها کار کردهام، هیچیک از این ایدهها را درک نمیکردم. پس از یک سخنرانی درباره انتخابات قابل تأیید رمزنگاری در مایکروسافت، دکتر جاش بنالو مقداری هدیه برای مخاطبان توزیع کرد.
من یک کیت قفلبازکن دریافت کردم، و وقتی آن را در دست گرفتم، نتوانستم جلوی لبخند روی صورت دوستم را تصور نکنم – چقدر میتوانستیم با چنین ابزار جالبی خوش بگذرانیم! گاهی اوقات، مؤثرترین راه برای یادگیری اینکه چرا قفلها به این شکل ساخته میشوند، درک نحوهی باز کردن آنهاست. کتاب Hacking Cryptography دقیقاً درباره همین است. کتابهای زیادی در مورد رمزنگاری وجود دارد که بر نحوهی ساخت قفلها تمرکز دارند؛ این کتاب درباره نحوهی شکست رمزنگاری در هنگام حمله است: چگونه قفلهای آن باز و شکسته میشوند. تنها چیزی که لازم دارید، یک کامپیوتر، کنجکاوی سالم و آشنایی اولیه با زبان برنامهنویسی Go است – هیچ پیچگوشتی فیلیپس لازم نیست.
کامران خان
درباره کتاب Hacking Cryptography
امنیت سایبری یک مسابقه تسلیحاتی است و همیشه خواهد بود. رمزنگاری شالوده امنیت اطلاعات و بهترین ابزاری است که برای تضمین محرمانگی و یکپارچگی در دنیای مدرن داریم. در حوزه رمزنگاری، ساختارهای خاصی برای اهداف خاص در همه جا ظاهر میشوند. به عنوان مثال، توابع هش به طور گستردهای برای به دست آوردن “اثر انگشت” یکطرفه دادههایی مانند رمزهای عبور استفاده میشوند. این ایدهها از طریق الگوریتمهای خاص و پیادهسازیهایشان به واقعیت تبدیل میشوند. وقتی افراد مخرب میخواهند یک سیستم را بشکنند، به ندرت با تئوری ریاضی شروع میکنند. بیشتر اوقات، آنها ترجمه تئوری به عمل را هدف قرار میدهند – به عبارت دیگر، اشتباهات در مهندسی رمزنگاری را هدف قرار میدهند.
هر یک از فصلهای کتاب Hacking Cryptography یک ایده اصلی رمزنگاری را ارائه میدهد، مانند رمزنگاریهای بلوکی، امضاهای دیجیتال و غیره، اما با یک تفاوت. ما از این منظر نگاه میکنیم: افراد مخرب چگونه این ایده را هدف قرار دادند؟ چگونه موفق شدند؟ و در زمان نگارش کتاب Hacking Cryptography، به چه تدابیر امنیتیای متکی هستیم؟
کتاب Hacking Cryptography برای چه کسانی است؟
اگر قصد دارید در زمینه رمزنگاری کار کنید، این کتاب یک تور سریع از نحوهی رسیدن ما به وضعیت کنونی را ارائه میدهد. مثالها با دقت زیادی طراحی شدهاند تا نقاط ضعف مهم در این زمینهها را برجسته کنند. به شدت توصیه میشود که هنگام خواندن بخشهای مربوطه، مثالها را از مخزن همراه کتاب اجرا کنید؛ خوانندگانی که این کار را انجام دادهاند، درک عمیقتری از محتوای کتاب گزارش کردهاند.
سازماندهی کتاب Hacking Cryptography: نقشه راه
این کتاب ۱۰ فصل دارد. از فصل ۲ شروع میشود، هر فصل از کتاب Hacking Cryptography، یک مفهوم رمزنگاری را معرفی میکند، توضیح میدهد که چرا برای استفاده عملی مهم است، و سپس روشهای مختلفی را که این ایده توسط مهاجمان هدف قرار گرفته است، مورد بحث قرار میدهد.
- فصل ۱ مقدمهای بر رمزنگاری و اهداف آن ارائه میدهد.
- فصل ۲ به عمق تئوری تولید اعداد تصادفی و چرایی حیاتی بودن آن برای اهداف رمزنگاری میپردازد.
- فصل ۳ دو تولیدکننده عدد تصادفی را پیادهسازی و مورد بهرهبرداری قرار میدهد: MT19937 و DUAL_EC_DRBG (که دومی یک تولیدکننده “رمزنگاری ایمن” بود که توسط موسسه ملی استانداردها و فناوری توصیه شده بود).
- فصل ۴ به رمزنگاریهای جریانی (Stream Ciphers) میپردازد که به طور گستردهای، مثلاً در فناوریهای پخش جریانی، استفاده میشوند. ما شیفت رجیسترهای بازخورد خطی (LFSRs) را پیادهسازی و مورد بهرهبرداری قرار میدهیم و سپس به کرک کردن رمزهای عبور Wi-Fi نسل اول با بهرهبرداری از RC4 نگاه میکنیم.
- فصل ۵ به رمزنگاریهای بلوکی (Block Ciphers) میپردازد که در زمینههایی مانند فناوریهای رمزگذاری دیسک محبوب هستند. ما اوراکلهای Padding را پیادهسازی و مورد بهرهبرداری قرار میدهیم که تقریباً یک مشکل دائمی در پیادهسازیهای رمزنگاری بلوکی هستند، و همچنین حمله BEAST را که به طور خلاقانهای رمزگذاری TLS را برای سرقت کوکیهای مرورگر شکست.
- فصل ۶ توابع هش را معرفی میکند. ما یک جدول رنگینکمان (Rainbow Table) کامل را برای کرک کردن رمزهای عبور هششده پیادهسازی میکنیم و اثربخشی و محدودیتهای جداول رنگینکمان را هنگام حمله به هشها مورد بحث قرار میدهیم.
- فصل ۷ به کدهای احراز هویت پیام (MACs) میپردازد، به ویژه آنهایی که بر اساس توابع هش ساخته شدهاند. ما احراز هویت با پیشوند مخفی (secret-prefix authentication) را پیادهسازی و مورد بهرهبرداری قرار میدهیم. پیادهسازیهای پرخطر چنین MACهایی در گذشته خدماتی مانند AWS و Flickr را از کار انداختند؛ و در سال ۲۰۲۴، پروتکل پرکاربرد RADIUS (برای احراز هویت، اعطای مجوز و حسابداری) قربانی حملهای مشابه در طرح احراز هویت پیشوند مخفی خود شد. این فصل خلاصهای از نحوهی جلوگیری HMACها از مشکلات مرتبط با MACهای پیشوند مخفی و پسوند مخفی را ارائه میدهد.
- فصل ۸ رمزنگاری کلید عمومی (Public-Key Cryptography) را معرفی میکند. ما طرحهای برجستهی رمزگذاری نامتقارن را مورد بحث قرار میدهیم و حمله عوامل مشترک (common factors attack) را که میلیونها کلید را در اینترنت آسیبپذیر کرد، پیادهسازی میکنیم. ما همچنین با نشان دادن حمله وینر (Wiener’s attack) بر روی توانهای خصوصی کوتاه، تمایز بین تئوری و عمل را برجسته میکنیم، چیزی که تمام پیادهسازیهای (جدی) RSA باید آن را در نظر بگیرند.
- فصل ۹ به امضاهای دیجیتال میپردازد. ما ECDSA را به عنوان بخشی از نمایش نحوهی منجر شدن تصادفیبودن بد به فروپاشی کامل امنیت پلیاستیشن ۳ سونی، پیادهسازی و مورد بهرهبرداری قرار میدهیم. ما با پیادهسازی حمله جعل امضای بلیشِنباخر (Bleichenbacher’s signature forgery attack) علیه یک تأییدکننده آسیبپذیر امضای PKCS#1 1.5، بزرگترین بهرهبرداری نهایی در کتاب Hacking Cryptography را به پایان میرسانیم.
- فصل ۱۰ بحثها و درسهای نه فصل اول کتاب Hacking Cryptography را خلاصه میکند و دستورالعملهای کلی برای نوشتن کد امن را ارائه میدهد. ما کد را تجزیه و تحلیل میکنیم تا ببینیم چرا شیوههایی مانند پیادهسازیهای با زمان ثابت (constant-time implementations) مهم هستند و چگونه آنها در برابر حملات پیشرفته مانند تحلیل کانال جانبی (side-channel analysis) محافظت میکنند.
سرفصلهای کتاب Hacking Cryptography:
- Hacking Cryptography
- copyright
- dedication
- contents
- preface
- acknowledgments
- about this book
- about the authors
- about the cover illustration
- 1 Introduction
- 2 Random number generators
- 3 Implementing and exploiting RNGs
- 4 Stream ciphers
- 5 Block ciphers
- 6 Hash functions
- 7 Message authentication codes
- 8 Public-key cryptography
- 9 Digital signatures
- 10 Guidelines and common pitfalls for cryptographic implementations
جهت دانلود کتاب Hacking Cryptography میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.