نگاهي دوباره به رمزنگاري داده و ايميل (قسمت اول)
رمزنگاري نه تنها ارتباطات اينترنتي شما را از طريق ارائه قابليت امضا كردن پيامها و رمزكردن متنها، امنتر ميكند، بلكه حفاظت از حريم شخصي شما را نيز تضمين ميكند. شايد اطلاع داشته باشيد که اتحاديه اروپا درباره حفظ و نگهداري از اطلاعات ارتباطي توسط ارائه دهندگان خدمات اينترنتي و شركتهاي موبايل قوانين ويژهاي تنظيم کردهاست. با توجه به اطلاعات كارتهاي نقدي و اعتباري و ساير اطلاعات مشابه، ميتوان يك پروفايل كامل از اطلاعات شخصي ايجاد كرد. منبع اطلاعاتي مورد استفاده براي اين پروفايل نه تنها از طريق دادههاي فوق بلكه از طريق ساير دادههايي كه با استفاده از الگوريتمهاي دادهكاوي به دست ميآيند، تأمين ميشود. بهاحتمال، آنها تاكنون نيز اطلاعات بسيار زيادي را درباره شما و عادتهايتان جمعآوري كردهاند، اما اكنون وقت آن است كه براي مقابله با اين مسئله كاري انجام دهيد.
ويژگي كليدهاي رمزنگاري متقارن در اين است كه براي رمزنگاري داده و همچنين رمزگشايي اطلاعات رمزشده، در هر دو مورد از يك كليد يكسان استفاده ميشود (يا آنکه كليدهاي مورد استفاده براي رمزنگاري و رمزگشايي با يكديگر ارتباط داشته و ميتوان با داشتن يكي، ديگري را از طريق محاسباتي به دست آورد). به عبارت ديگر، فرستنده و گيرنده پيام مبادلهشده، بايد هر دو يك كليد را در اختيار داشتهباشند و بايد آن كليد را قبل از ارسال پيام با يكديگر مبادله كنند و همين مسئله مبادله كليد قبل از ارسال پيام، هميشه به عنوان نقص اصلي روشهاي متقارن شناختهشده است.يكي از نخستين روشهاي رمزنگاري با نام Caesar Cipher شناخته شدهاست. جوليوس سزار براي رمزنگاري نامهها، به اين ترتيب عمل ميكرد كه هر حرف نامه اصلي را با سومين حرف بعد از آن در فهرست حروف الفبا، جانشين ميكرد.
به اين ترتيب، A به D و B به E و به همين ترتيب Z به C تبديل ميشد. روش كار الگوريتم به اين ترتيب بود، هر يك از كلمات نامه با حرفي كه در ترتيب حروف الفبا با حرف كنوني به اندازه مشخصي جلوتر يا عقبتر بود، جانشين ميشد كه در اين مورد تعداد مشخص عدد 3 است.الگوي جانشيني و نگاشت كلمات براي ايجاد متن رمزشده، در طول سالها تكامل يافت و بعضي از روشهاي جديد حتي در ابزارهاي مكانيكي رمزنگاري، مورد استفاده قرار گرفت. يكي از مثالهاي معروف، به ماشين معروفي به نام ENIGMA مربوط ميشود كه در طول جنگ جهاني دوم نيروهاي آلماني از آن استفاده کردند (در سايت ويكيپديا، مقاله بسيار خوب و كاملي وجود دارد كه روش تحليلي مورد استفاده توسط اين ماشين را براي رمزنگاري نامهها شرح ميدهد). بيش از دويستهزار عدد از اين ماشينها توليد شده و مورد استفاده بودند و هر يك از اپراتورها فهرستي از كدها داشتند كه به آن CodeBooks ميگفتند و اين فهرست به طور ماهيانه تغيير ميكرد.
در نهايت، روش مورد استفاده براي اين رمزنگاري در سال 1930 در انگليس توسط گروهي از محققان از جمله رياضيدان لهستاني ماريانراجوسکي و آلِنتورينگ از Bletchley Park و تحليل و شناسايي (شکسته)شد، اما عموم مردم در دهه 1970 از آن مطلع شدند، زيرا اين مسئله از لحاظ اهميت در سطح فوقسري طبقهبندي شدهبود.امروزه، به كمك كامپيوترهاي مدرن، روشهاي متقارن بسيار زيادي وجود دارد كه ميتوان آنها را در سطح امنيتي مناسبي ارزيابي كرد. بهعنوان مثال، روش AES (استاندارد پيشرفته رمزنگاري يا Rijndael كه توسط جونديمين و وينسنتريجمنت ارائه شد)، روش 3DES (يا Data Encryption Standardسه لايه يا استاندارد سه لايه رمزنگاري كه براساس كارهاي Horst Feistel ارائه شده) يا روش IDEA (سرنامData Encryption Algorithm International)، ازجمله الگوريتمهايي هستند كه ميتوان به آنها اشاره كرد. همه اين روشهاي رمزنگاري متقارن و پيشرفته بعد از دهه 1950 توسعه داده شده و پيادهسازي شدند. روشهاي رمزنگاري قبل از اين زمان به طور كلي به عنوان روشهاي كلاسيك شناخته ميشدند. اما تا سال 1970 طول كشيد تا متخصصان رمزنگاري راهحلي را براي مسئله مبادله كليد رمزنگاري، پيدا كنند (اين كار توسط ويتفيلدديفي، مارتينهلمن و رالفمرکل پيادهسازي شد). همچنين بر اساس همين ايده، مفهوم جديدي به نام كليدهاي نامتقارن توسط اديشمير، رانرايوست و لئونارد ادلمن در سال 1977 ارائه شد.
الگوريتمها يا متدهاي رمزنگاري نامتقارن، براي رمزنگاري و رمزگشايي دادهها يا پيامها، از كليدهاي متفاوتي استفاده ميكنند. به تركيب اين دو كليد با يكديگر يك جفتكليد ميگويند كه گاهي از نام كليد يا كليد نامتقارن نيز براي آن استفاده ميشود. يكي از دو قسمت اين جفت كليد بعد از ايجاد شدن، به صورت كاملاً محرمانه حفظ ميشود كه به اين قسمت از كليد، كليد محرمانه يا Private key ميگويند. قسمت دوم مرتبط با كليد محرمانه را كليد عمومي يا Public key ميگويند كه به صورت آزادانه در اختيار همگان قرار ميگيرد. از يك كليد براي رمزنگاري پيامها استفاده ميكنند و به علت ماهيت و ساختار الگوريتم رياضي ايجاد كننده اين دو كليد، تنها راه رمزگشايي رمز حاصل و دستيابي به اصل پيام، استفاده از كليد دوم است.
از لحاظ عملي نيز توليد كليد محرمانه از روي كليد عمومي يا بالعكس غيرممكن است. همچنين امكان رمزگشايي از پيام رمز شده با استفاده از كليدهاي مختلف غيرممكن است. به مورد دوم كه سعي در استفاده از رمزهاي تصادفي فراوان دارد، به اصطلاح حمله به روش Brute force ميگويند. استفاده از اين روش حتي در صورت استفاده از اطلاعات پيشفرض، به ميلياردها سال زمان نياز دارد تا رمز محرمانه شناسايي شود.
شكل 1- در برنامه Enigmail با استفاده از دكمه OpenPGP امكان امضا يا رمزنگاري پيامها يا هر دو كار را به صورت همزمان دارد.
بهطورکلي دو روش اصلي نامتقارن وجود دارد كه روشهاي امني بهشمار ميروند و شما از آنها ميتوانيد استفاده كنيد. اين دو روش عبارتند از: RSA (سه حرف اول نام مخترعان آن، يعني Rivest ،Shamir ،Adleman) و روش ElGamal كه توسط طاهر الگمل ارائهشده است. علاوهبر اين براي امضاي ديجيتال، الگوريتم ديگري به نام DSA يا الگوريتم امضاي ديجيتال وجود دارد.
اولي يك بلاك داده است كه به روش متقارن رمزنگاري شده و دومي كليد متقارن مرتبط با بلاك داده مذكور است كه خود اين كليد به يكي از روشهاي نامتقارن (با استفاده ازكليد عمومي گيرنده پيام) رمزنگاري شدهاست. بهاين ترتيب، گيرنده اين دو خروجي ابتدا با استفاده از كليد محرمانه خود رمز متقارن مربوط به پيام را رمزگشايي و استخراج ميكند، سپس از كليد استخراجشده براي رمزگشايي داده ارسالي استفاده ميكند.بعد از اينكه همه اين الگوريتمها در اختيار عموم قرار گرفت، نخستين موردي كه اين تركيب از الگوريتمها را پيادهسازي كرده، برنامهاي به نام PGP (سرنام Pretty Good Privacy) بوده كه در سال 1991 توسط فيل زيمر من ارائه شد و استفاده از آن به مرور گسترش يافت و به يك ابزار تجاري تبديل شد. همه برنامههاي PGP به همراه كد مرجع خود ارائه نميشوند. به علاوه اجازه خروج برنامه PGP بهصورت برنامه كامپيوتري، از ايالات متحده صادر نشد (يك نسخه بينالمللي از اين برنامه با نام نسخه 5.0i وجود دارد).
در نهايت اين برنامه به صورت پرينتشده و در قالب كتاب به صورت قانوني از امريكا خارج شد. سپس اين كد در خارج از امريكا اسكن و به متن تبديل شد و بخشي از كد به نام مخترع آن به ثبترسيد. بهطور خلاصه، چون امكان بررسي همه قسمتهاي كد اين برنامه فراهم نشد، در نتيجه، اين دسته از برنامهها بهطوركامل قابل اعتماد نيستند. بهعنوان مثال، ممكن است راههاي نفوذ مخفي يا الگوريتمهاي خاصي در اين برنامهها وجود داشته باشد كه كاربران هيچ نوع اطلاعاتي در مورد آنها ندارند. استفاده از كدهاي رمزنگاري، به ميزان اعتماد شما به آنها بستگي دارد. براي رفع مشكلات مربوط به مجوز بهرهبرداري و مسائل مرتبط با حق اختراعات انحصاري برنامهها، ايده پيادهسازي برنامهاي به نام GnuPG توسط ورنر کورچ ارائه شد.
اين برنامه، استاندارد OpenPGP را پيادهسازي ميكند (RFC 2440 كه با نام PGP/MIME شناخته شدهاست). براساس روش PGP كه توسط فيل زيمرمن پيادهسازي شده، ايجاد شدهاست.اما اگر فقط يك استاندارد وجود داشت، كارها بسيار راحتتر ميشد. همچنين نسخهاي تحت عنوان S/MIME وجود دارد (MIME امن با شماره RFC 2822) که براي رمزنگاري از روشهايي استفاده ميكند كه در OpenPGP نيز استفاده ميشوند. اما هر دو استاندارد، كليد و ساختار پيام متفاوتي دارند. در نتيجه، با يكديگر ناسازگارند. به علاوه، مدل اعتمادسازي اين دو استاندارد نيز متفاوت است. در حالي كه OpenPGP امكان اعتمادسازي حجم گستردهاي از اطلاعات محيط وب را (web of trust) فراهم ميكند، در طرف مقابل روش S/MIME از X.509 نسخه سوم استفاده ميكند و مبتني بر تأييدنامههايي است كه به صورت كامل و دقيق براساس ساختار سلسله مراتبي، توليد ميشوند (استاندارد X.509، فرمتهاي استاندارد را براي كليدهاي عمومي و الگوريتم تأييد و اعتبارسنجي مسير و منبع آن كليد فراهم ميكند. براي اطلاعات بيشتر درباره اين استاندارد به سايت ويکيپديا مراجعه كنيد).
هر چند كه بهاين ترتيب، بايد MD5 و SHA1 را بايد يك روش ناامن به حساب آورد، اما از آنجا كه اين دو مورد، بخشي از الگوريتمهاي DSS هستند، در نتيجه استفاده از آنها ادامه دارد و تا زماني كه اين مسئله تداوم داشتهباشد، در برنامههايي نظير GnuPG از الگوريتمهاي SHA1 و MD5 استفاده خواهدشد. الگوريتمهاي بهتري وجود دارد كه در GnuPGP پيادهسازي شدهاند. اما بهعنوان مثال، SHA256 به جاي DSS از RSA استفاده ميكند. متأسفانه به نظر ميرسد تا زماني كه يك رويكرد مشخص و جامع در اين مورد در نظر گرفته نشدهباشد، مجبور هستيم تا با اين مشكل كنار بياييم. البته، ميتوانيد كليدهاي GnuPG را طوري تنظيم کنيد كه از الگوريتم MD5 استفاده نكند. اما SHA-1 در استاندارد OpenPGP حالت اجباري دارد كه ميتوان با كم كردن اولويت استفاده از الگوريتمهاي Hash متعدد احتمال استفاده از اين الگوريتم را كاهش داد. اين مورد نيز بعدها بررسي خواهد شد.
منبع:ماهنامه شبکه
ارسال توسط کاربر محترم سایت : hasantaleb
ادامه دارد...
رمزنگاريهاي متقارن و نامتقارن
ويژگي كليدهاي رمزنگاري متقارن در اين است كه براي رمزنگاري داده و همچنين رمزگشايي اطلاعات رمزشده، در هر دو مورد از يك كليد يكسان استفاده ميشود (يا آنکه كليدهاي مورد استفاده براي رمزنگاري و رمزگشايي با يكديگر ارتباط داشته و ميتوان با داشتن يكي، ديگري را از طريق محاسباتي به دست آورد). به عبارت ديگر، فرستنده و گيرنده پيام مبادلهشده، بايد هر دو يك كليد را در اختيار داشتهباشند و بايد آن كليد را قبل از ارسال پيام با يكديگر مبادله كنند و همين مسئله مبادله كليد قبل از ارسال پيام، هميشه به عنوان نقص اصلي روشهاي متقارن شناختهشده است.يكي از نخستين روشهاي رمزنگاري با نام Caesar Cipher شناخته شدهاست. جوليوس سزار براي رمزنگاري نامهها، به اين ترتيب عمل ميكرد كه هر حرف نامه اصلي را با سومين حرف بعد از آن در فهرست حروف الفبا، جانشين ميكرد.
به اين ترتيب، A به D و B به E و به همين ترتيب Z به C تبديل ميشد. روش كار الگوريتم به اين ترتيب بود، هر يك از كلمات نامه با حرفي كه در ترتيب حروف الفبا با حرف كنوني به اندازه مشخصي جلوتر يا عقبتر بود، جانشين ميشد كه در اين مورد تعداد مشخص عدد 3 است.الگوي جانشيني و نگاشت كلمات براي ايجاد متن رمزشده، در طول سالها تكامل يافت و بعضي از روشهاي جديد حتي در ابزارهاي مكانيكي رمزنگاري، مورد استفاده قرار گرفت. يكي از مثالهاي معروف، به ماشين معروفي به نام ENIGMA مربوط ميشود كه در طول جنگ جهاني دوم نيروهاي آلماني از آن استفاده کردند (در سايت ويكيپديا، مقاله بسيار خوب و كاملي وجود دارد كه روش تحليلي مورد استفاده توسط اين ماشين را براي رمزنگاري نامهها شرح ميدهد). بيش از دويستهزار عدد از اين ماشينها توليد شده و مورد استفاده بودند و هر يك از اپراتورها فهرستي از كدها داشتند كه به آن CodeBooks ميگفتند و اين فهرست به طور ماهيانه تغيير ميكرد.
در نهايت، روش مورد استفاده براي اين رمزنگاري در سال 1930 در انگليس توسط گروهي از محققان از جمله رياضيدان لهستاني ماريانراجوسکي و آلِنتورينگ از Bletchley Park و تحليل و شناسايي (شکسته)شد، اما عموم مردم در دهه 1970 از آن مطلع شدند، زيرا اين مسئله از لحاظ اهميت در سطح فوقسري طبقهبندي شدهبود.امروزه، به كمك كامپيوترهاي مدرن، روشهاي متقارن بسيار زيادي وجود دارد كه ميتوان آنها را در سطح امنيتي مناسبي ارزيابي كرد. بهعنوان مثال، روش AES (استاندارد پيشرفته رمزنگاري يا Rijndael كه توسط جونديمين و وينسنتريجمنت ارائه شد)، روش 3DES (يا Data Encryption Standardسه لايه يا استاندارد سه لايه رمزنگاري كه براساس كارهاي Horst Feistel ارائه شده) يا روش IDEA (سرنامData Encryption Algorithm International)، ازجمله الگوريتمهايي هستند كه ميتوان به آنها اشاره كرد. همه اين روشهاي رمزنگاري متقارن و پيشرفته بعد از دهه 1950 توسعه داده شده و پيادهسازي شدند. روشهاي رمزنگاري قبل از اين زمان به طور كلي به عنوان روشهاي كلاسيك شناخته ميشدند. اما تا سال 1970 طول كشيد تا متخصصان رمزنگاري راهحلي را براي مسئله مبادله كليد رمزنگاري، پيدا كنند (اين كار توسط ويتفيلدديفي، مارتينهلمن و رالفمرکل پيادهسازي شد). همچنين بر اساس همين ايده، مفهوم جديدي به نام كليدهاي نامتقارن توسط اديشمير، رانرايوست و لئونارد ادلمن در سال 1977 ارائه شد.
آنچه خواهيد آموخت |
- چگونگي استفاده از کليدهاي Gnu PG |
آنچه بايد بدانيد |
- اصول رمزنگاري متقارن و غيرمتقارن |
از لحاظ عملي نيز توليد كليد محرمانه از روي كليد عمومي يا بالعكس غيرممكن است. همچنين امكان رمزگشايي از پيام رمز شده با استفاده از كليدهاي مختلف غيرممكن است. به مورد دوم كه سعي در استفاده از رمزهاي تصادفي فراوان دارد، به اصطلاح حمله به روش Brute force ميگويند. استفاده از اين روش حتي در صورت استفاده از اطلاعات پيشفرض، به ميلياردها سال زمان نياز دارد تا رمز محرمانه شناسايي شود.
كليدهاي محرمانه و عمومي
رمزنگاري و رمزگشايي
شكل 1- در برنامه Enigmail با استفاده از دكمه OpenPGP امكان امضا يا رمزنگاري پيامها يا هر دو كار را به صورت همزمان دارد.
امضا
بهطورکلي دو روش اصلي نامتقارن وجود دارد كه روشهاي امني بهشمار ميروند و شما از آنها ميتوانيد استفاده كنيد. اين دو روش عبارتند از: RSA (سه حرف اول نام مخترعان آن، يعني Rivest ،Shamir ،Adleman) و روش ElGamal كه توسط طاهر الگمل ارائهشده است. علاوهبر اين براي امضاي ديجيتال، الگوريتم ديگري به نام DSA يا الگوريتم امضاي ديجيتال وجود دارد.
PGP ،OpenPGP و S/MIME
اولي يك بلاك داده است كه به روش متقارن رمزنگاري شده و دومي كليد متقارن مرتبط با بلاك داده مذكور است كه خود اين كليد به يكي از روشهاي نامتقارن (با استفاده ازكليد عمومي گيرنده پيام) رمزنگاري شدهاست. بهاين ترتيب، گيرنده اين دو خروجي ابتدا با استفاده از كليد محرمانه خود رمز متقارن مربوط به پيام را رمزگشايي و استخراج ميكند، سپس از كليد استخراجشده براي رمزگشايي داده ارسالي استفاده ميكند.بعد از اينكه همه اين الگوريتمها در اختيار عموم قرار گرفت، نخستين موردي كه اين تركيب از الگوريتمها را پيادهسازي كرده، برنامهاي به نام PGP (سرنام Pretty Good Privacy) بوده كه در سال 1991 توسط فيل زيمر من ارائه شد و استفاده از آن به مرور گسترش يافت و به يك ابزار تجاري تبديل شد. همه برنامههاي PGP به همراه كد مرجع خود ارائه نميشوند. به علاوه اجازه خروج برنامه PGP بهصورت برنامه كامپيوتري، از ايالات متحده صادر نشد (يك نسخه بينالمللي از اين برنامه با نام نسخه 5.0i وجود دارد).
در نهايت اين برنامه به صورت پرينتشده و در قالب كتاب به صورت قانوني از امريكا خارج شد. سپس اين كد در خارج از امريكا اسكن و به متن تبديل شد و بخشي از كد به نام مخترع آن به ثبترسيد. بهطور خلاصه، چون امكان بررسي همه قسمتهاي كد اين برنامه فراهم نشد، در نتيجه، اين دسته از برنامهها بهطوركامل قابل اعتماد نيستند. بهعنوان مثال، ممكن است راههاي نفوذ مخفي يا الگوريتمهاي خاصي در اين برنامهها وجود داشته باشد كه كاربران هيچ نوع اطلاعاتي در مورد آنها ندارند. استفاده از كدهاي رمزنگاري، به ميزان اعتماد شما به آنها بستگي دارد. براي رفع مشكلات مربوط به مجوز بهرهبرداري و مسائل مرتبط با حق اختراعات انحصاري برنامهها، ايده پيادهسازي برنامهاي به نام GnuPG توسط ورنر کورچ ارائه شد.
اين برنامه، استاندارد OpenPGP را پيادهسازي ميكند (RFC 2440 كه با نام PGP/MIME شناخته شدهاست). براساس روش PGP كه توسط فيل زيمرمن پيادهسازي شده، ايجاد شدهاست.اما اگر فقط يك استاندارد وجود داشت، كارها بسيار راحتتر ميشد. همچنين نسخهاي تحت عنوان S/MIME وجود دارد (MIME امن با شماره RFC 2822) که براي رمزنگاري از روشهايي استفاده ميكند كه در OpenPGP نيز استفاده ميشوند. اما هر دو استاندارد، كليد و ساختار پيام متفاوتي دارند. در نتيجه، با يكديگر ناسازگارند. به علاوه، مدل اعتمادسازي اين دو استاندارد نيز متفاوت است. در حالي كه OpenPGP امكان اعتمادسازي حجم گستردهاي از اطلاعات محيط وب را (web of trust) فراهم ميكند، در طرف مقابل روش S/MIME از X.509 نسخه سوم استفاده ميكند و مبتني بر تأييدنامههايي است كه به صورت كامل و دقيق براساس ساختار سلسله مراتبي، توليد ميشوند (استاندارد X.509، فرمتهاي استاندارد را براي كليدهاي عمومي و الگوريتم تأييد و اعتبارسنجي مسير و منبع آن كليد فراهم ميكند. براي اطلاعات بيشتر درباره اين استاندارد به سايت ويکيپديا مراجعه كنيد).
الگوريتمهاي Hash
هر چند كه بهاين ترتيب، بايد MD5 و SHA1 را بايد يك روش ناامن به حساب آورد، اما از آنجا كه اين دو مورد، بخشي از الگوريتمهاي DSS هستند، در نتيجه استفاده از آنها ادامه دارد و تا زماني كه اين مسئله تداوم داشتهباشد، در برنامههايي نظير GnuPG از الگوريتمهاي SHA1 و MD5 استفاده خواهدشد. الگوريتمهاي بهتري وجود دارد كه در GnuPGP پيادهسازي شدهاند. اما بهعنوان مثال، SHA256 به جاي DSS از RSA استفاده ميكند. متأسفانه به نظر ميرسد تا زماني كه يك رويكرد مشخص و جامع در اين مورد در نظر گرفته نشدهباشد، مجبور هستيم تا با اين مشكل كنار بياييم. البته، ميتوانيد كليدهاي GnuPG را طوري تنظيم کنيد كه از الگوريتم MD5 استفاده نكند. اما SHA-1 در استاندارد OpenPGP حالت اجباري دارد كه ميتوان با كم كردن اولويت استفاده از الگوريتمهاي Hash متعدد احتمال استفاده از اين الگوريتم را كاهش داد. اين مورد نيز بعدها بررسي خواهد شد.
منبع:ماهنامه شبکه
ارسال توسط کاربر محترم سایت : hasantaleb
ادامه دارد...
/ج