Transcript A B
امضاء رقمي و پروتكلهاي احراز اصالت بهروز تركالداني [email protected] 1 فهرست مطالب • امضاء رقمي • پروتكلهاي احراز اصالت • آسيب پذيري پروتكل هاي رمزنگاري نسبت به حمالت 2 امضاء رقمي • چرا به امضاء رقمي نياز داريم؟ – جعل توسط گيرنده :گيرنده مي تواند يك پيغام جعلي را بسازد(با استفاده از كليد توافق شده) و آنرا به فرستنده نسبت دهد! – انكار توسط فرستنده :فرستنده مي تواند سناريوي فوق را بهانه قرار دهد و پيغام فرستاده شده را منكر شود! 3 امضاء رقمي • ويژگيها : – امكان تصديق هويت فرستنده ،زمان و تاريخ ارسال – تصديق محتويات پيغام – امكان تصديق توسط طرف سوم(در صورت بروز اختالف) 4 امضاء رقمي • نيازمنديها : – – – – – – 5 رشته بيتي توليد شده وابسته به پيام اصلي باشد. از اطالعات منحصر به فرستنده استفاده شود(جلوگيري از جعل و انكار) به سادگي محاسبه شود تشخيص و تاييد( )verifyآن آسان باشد جعل آن از نظر محاسباتي دست نيافتني باشد امكان ذخيره آن روي فضاي ديسك وجود داشته باشد. امضاء رقمي • مولفه ها : – الگوريتم توليد کليد()Key Generation Alg • بصورت تصادفی يک زوج کليد عمومی توليد می کند. – الگوريتم توليد امضاء()Signature Alg • پيغام و کليد خصوصی فرستنده را به عنوان ورودی می گيرد و امضاء را توليد می کند. – الگوريتم تاييد امضا ()Signature Verification Alg • امضاء و کليد عمومی فرستنده را به عنون ورودی می گيرد و تاييديه امضاء را به عنوان خروجی برمی گرداند. 6 نمونه امضاء رقمي 7 امضاء رقمي • انواع – مستقيم(: )Direct • ضعف :به امنيت كليد خصوصي فرستنده وابسته است – فرستنده می تواند ارسال پيغام را انکار کند – استفاده از timestampبه تنهايی کافی نيست .ممکن است در زمان ،Tکليد خصوصی فرستنده لو رفته باشد. – باواسط()Arbitrated • وجود يك سوم شخص مشكل تعلق پيغام به فرستنده را برطرف ميكند • امکان مراجعه به آن در صورت بروز اختالف 8 امضاء رقمي با واسط • سناريوي اول (رمز متقارن ،واسط پيام ها را مي بيند): XA : M, {IDX, h(M)}Kxa AY : {IDX, M, {IDX, h(M)}Kxa, T}Kay • عدم رعايت محرمانگي پيغام – امکان تبانی واسط با فرستنده يا گيرنده 9 امضاء رقمي با واسط • سناريوي دوم (رمز متقارن ،واسط پيام ها را نمي بيند): XA : IDX, {M}Kxy , {IDX, h({M}Kxy)}Kxa AY : {IDX, {M}Kxy, {IDX, h({M}Kxy)}Kxa, T}Kay – امکان تبانی واسط با فرستنده يا گيرنده 10 امضاء رقمي با واسط • سناريوي سوم (رمز نامتقارن ،واسط پيام ها را نمي بيند): XA : IDX, {IDX, {{M}KRx}KUy}KRx AY : {IDX, {{M}KRx}KUy , T}KRa – نياز به هيچ توافقي قبل از ارتباط نيست – در صورت لو رفتن كليد خصوصي ،xبرچسب زماني درست است – متن پيام در معرض ديد واسط يا شخص ديگر نيست. 11 پروتكلهاي احراز اصالت • احراز اصالت دو طرفه – هر دو طرف ارتباط بايد از هويت همديگر مطلع شوند. • احراز اصالت يک طرفه – الزم است تنها يک طرف ارتباط هويت خود را اثبات کند. – مورد استفاده :يک شخص يک پيام را در يک گروه عمومی منتشر می کند. 12 پروتكلهاي احراز اصالت • احراز اصالت مقدمه تبادل كليدهاي نشست است • محرمانگي و صحت زماني دو نياز اصلي پروتكل هاي تبادل كليد است. • دو خطر اساسی تبادل امن کليدهای نشست را تهديد می کند: – شنود – حمالت جعل و تكرار 13 پروتكلهاي احراز اصالت انواع حمالت جعل و تكرار ()Replay Attacks • : Simple Replayگرفتن پيغام و ارسال آن بعد از مدتي • : Logged Replayگرفتن پيغام و ارسال قبل از اتمام “پنجره زماني” • : Undetected Replayپيغام اصلي نمي رسد و فقط پيغام جعلي مي رسد • : Backward Replayپاسخ به پيغام ارسالي بجاي گيرنده – وقتي اتفاق مي افتد كه از رمزنگاري مرسوم استفاده مي كنيم و تفاوت بين پيغامهاي ارسالي و دريافتي با مقايسه محتواي آنها ممكن نيست 14 پروتكلهاي احراز اصالت روشهاي پايه مقابله با حمالت جعل و تكرار V – استفاده از اعداد متوالي()Sequence Number – استفاده از برچسب زماني()TimeStamp V )EK(Seq )EK(T P P – : Challenge/Responseقبل از ارسال هر پيغام ،فرستنده يک Nonceارسال می کند و انتظار دارد که گيرنده به آن پاسخ دهد. 15 N V )EK(N P احراز اصالت و تبادل كليد • استفاده از رمزنگاري متقارن – – سلسله مراتب دو اليه اي كليدها ()Session & Master keys مركز توزيع كليد ( )KDCمطمئن • • • 16 هر شخص كليد اصلي خود را با KDCبه اشتراك مي گذارد KDCكليد جلسه را توليد مي كند كليدهاي اصلي براي انتقال كليد جلسه به طرفين بكار مي رود يك مثال Needham-Schroeder پروتكل 1. 2. 3. 4. 5. A→KDC: KDC→A: A→B: B→A: A→B: • IDA , IDB , N1 {Ks, IDB, N1 ,{Ks , IDA}Kb,kdc }Ka,kdc {Ks , IDA}Kb,kdc {N2}Ks {f(N2)}Ks 17 پروتكل Needham-Schroeder • پروتكل فوق نسبت به Replay Attackآسيب پذير است – ممکن است کليد جلسه قبلی لو رفته باشد و بتوان جلسه جديدی تشکيل داد. • راه حل :اضافه كردن برچسب زماني 1. A→KDC: IDA , IDB 2. KDC→A: {Ks , IDB ,T ,{Ks ,IDA ,T}Kb,kdc }Ka,kdc 3. A→B: {Ks ,IDA ,T}Kb,kdc 4. B→A: {N2}Ks 5. A→B: {f(N2)}Ks 18 پروتكلهاي احراز اصالت • استفاده از رمزنگاري نامتقارن – طرفين نياز به دانستن كليد عمومي فعلي همديگر ندارند – كارگزار شناسايي( )ASعالوه بر توزيع کليد جلسه ،وظيفه ايجاد گواهي كليد عمومي را بر عهده دارد – مانند رمزنگاري مرسوم ،مي توان از برچسب زماني يا nonceاستفاده كرد 19 پروتكلهاي احراز اصالت كليد عمومي و برچسب زماني 1. A→AS : IDA , IDB 2. AS→A : {IDA ,KUa ,T }KRas , {IDB ,KUb ,T }KRas 3. A→B : {IDA,KUa,T}KRas ,{IDB,KUb,T}KRas,{{Ks,T}KRa }KUb مشكل :سنكرون بودن زمان سيستم هاي طرفين 20 پروتكلهاي احراز اصالت )Woo-Lam (پروتكلnonce • كليد عمومي و 1. A→KDC : IDA , IDB 2. KDC→A : {IDb ,KUb }KRkdc 3. A→B 4. B→KDC 5. KDC→B 6. B → A 7. A → B : {Na ,IDA }KUb : IDB , IDA , {Na }KUkdc : {IDA ,KUa}KRkdc , { {Na, KS, IDA ,IDB}KRkdc }KUb : { {Na ,KS, IDA ,IDB}KRkdc , Nb}KUa : {Nb}Ks 21 پروتكلهاي احراز اصالت • احراز اصالت يكطرفه – نمونه اي از مورد كاربرد E-mail : – نيازمنديها : • احراز اصالت(فرستنده) • محرمانگي – راه حل • رمزنگاري مرسوم • رمزنگاري با كليد عمومي 22 پروتكلهاي احراز اصالت • استفاده از رمزنگاري متقارن A KDC: IDA ,IDB , NA KDC A: {KS ,IDB ,NA ,{KS ,IDA}KB,kdc }KA,kdc A B: {KS, IDA }K B,kdc , {M}KS 23 پروتكلهاي احراز اصالت استفاده از كليد عمومي • – هدف :محرمانگي – هدف :احراز هويت – احراز هويت ،بدون اطالع طرفين از كليد عمومي يكديگر A B : {KS }KUb , {M}KS A B: M , {h(M)}KRA A B: M , {h(M) }KRA , {T ,IDA ,KUA}KRAS 24 پروتكلهاي احراز اصالت يك پروتكل سادة احراز اصالت دو طرفه NA 2 B N B , N A K AB AB 25 1 NB K A 3 رخنه پذيري پروتكلهاي احراز اصالت Oracle Session Attack : يك حملة نمونه 1 N1 N2 , N1K AB N2 A 2’ 2 1’ N3 , N2 K AB E B EA B 3 N2 K AB 26 رخنه پذيري پروتكلهاي احراز اصالت اصالح پروتكل ساده احراز اصالت دو طرفه NA B 2 AB 1 N AK ,NB K AB NB A 3 ! Parallel session attack ! Offset attack 27 انواع رخنهها در طراحي پروتكلها • كلمات عبور قابل حدس)(Password guessing flaws – كاربران كلمات عبور به اندازة كافي بزرگ يا تصادفي انتخاب نميكنند. • مثل پروتكل ( Kerberosنشست بعدي) يا پروتكلهاي login • رخنه ناشي از تازه نبودن اجزاء)(Freshless flaws – نفوذي ميتواند بجاي يك عامل ديگر ايفاي نقش نمايد. • مثل پروتكل NSSK • رخنه هاي اُراكل )(Oracle flaws –استفاده از يك عامل مجاز براي انجام برخي محاسبات و سوء استفاده از آنها • مثل پروتكل ( 3Passنشست بعدي) 28 انواع رخنهها در طراحي پروتكلها • رخنه هاي نوع )(Type flaws – تعابير مختلف از رشتههاي بيتي در پروتكل •مثل پروتكل Newman-Stabelbine • رخنه هاي مربوط به زمان )(Timing flaws – ساعت هاي غير همزمان • مثل پروتكل Kerberos • رخنه هاي مربوط به سيستم رمز )(Cryptosystem flaws • مثل پروتكل 3Pass 29 رخنة نوع • ضعف عوامل دريافت كننده پيام در تشخيص و تميز بين پيامهاي دريافتي ،عدم توانايي آنها در تطبيق پيام دريافتي با وضعيت خاصي از پروتكل يا ضعف در فرضيات مربوط به نحوة تطبيق پيام با وضعيت هاي خاص پروتكل – شناسايي پيام هاي پروتكل هاي مختلف در محيط اجراي چندين پروتكل – تشخيص پيام هاي مربوط به اجرا هاي مختلف يك پروتكل – تشخيص و شناسايي پيام هاي ارسالي در قدم هاي مختلف يك پروتكل – تشخيص و تفاوت قائل شدن بين تكه هاي پيام در يك قدم انتقال از پروتكل – تشخيص نوع پيام هاي اتميك از طريق انتساب هر كلمه مجزا به نوع خود 30 رخنة نوع Newman-Stabelbine • پروتكل احراز اصالت و توزيع كليد 1. A B: A, N a 2 . B S : B , A , Na , Tb kbs , Nb 3 . S A : B , N a , kab , Tb kas , A , kab , Tb kbs , Nb 4. A B : A , kab , Tb kbs , Nb kab 31 رخنة نوع • حمله به اين پروتكل بر اثر وجود رخنة نوع – جعل اصالت Aبراي Bو مشترك شدن يك كليد با وي توسط نفوذي 1 . EA B : A , Na 2 . B ES : B , { A , Na , Tb }kbs , Nb حذف 3. ) 4 . EA B : { A , Na ( = kab ) , Tb }kbs , { Nb }Na( = kab 32 رخنة اراكل Needham-Schroeder • پروتكل كليد عمومي A -> B: {Na, A}PUB B -> A: {Na, Nb}PUA A -> B: {Nb}PUB كليد عمومي هستندPUB وPUA نانس وNb وNa • 33 رخنة اراكل Session 1: A to X Session 2: X (as A) to B A -> X: {Na, A}PUX A(X) -> B: {Na, A}PUB B -> A(X): {Na, Nb}PUA X -> A: {Na, Nb}PUA A -> X: {Nb}PUX A(X) -> B: {Nb}PUB 34 پروتكل Three pass • پروتكل Three pass – Aو Bمي خواهند يك مقدار مخفي را با يكديگر مبادله كنند بدون اينكه از قبل كليد مشتركي داشته باشند. –فرض بر اين است كه تابع رمز مورد استفاده جابجائي پذير است يعني: 35 Three pass پروتكل :Three pass • مشكل پروتكل 36