360 likes | 548 Views
امضاء رقمي و پروتكلهاي احراز اصالت. بهروز تركلاداني ladani@eng.ui.ac.ir. 1. فهرست مطالب. امضاء رقمي پروتكلهاي احراز اصالت آ سيب پذيري پروتكل هاي رمزنگاري نسبت به حملات. امضاء رقمي. چرا به امضاء رقمي نياز داريم؟
E N D
امضاء رقمي و پروتكلهاي احراز اصالت بهروز تركلاداني ladani@eng.ui.ac.ir 1
فهرست مطالب • امضاء رقمي • پروتكلهاي احراز اصالت • آسيب پذيري پروتكل هاي رمزنگاري نسبت به حملات
امضاء رقمي • چرا به امضاء رقمي نياز داريم؟ • جعل توسط گيرنده : گيرنده مي تواند يك پيغام جعلي را بسازد(با استفاده از كليد توافق شده) و آنرا به فرستنده نسبت دهد! • انكار توسط فرستنده : فرستنده مي تواند سناريوي فوق را بهانه قرار دهد و پيغام فرستاده شده را منكر شود!
امضاء رقمي • ويژگيها : • امكان تصديق هويت فرستنده، زمان و تاريخ ارسال • تصديق محتويات پيغام • امكان تصديق توسط طرف سوم(در صورت بروز اختلاف)
امضاء رقمي • نيازمنديها : • رشته بيتي توليد شده وابسته به پيام اصلي باشد. • از اطلاعات منحصر به فرستنده استفاده شود(جلوگيري از جعل و انكار) • به سادگي محاسبه شود • تشخيص و تاييد(verify) آن آسان باشد • جعل آن از نظر محاسباتي دست نيافتني باشد • امكان ذخيره آن روي فضاي ديسك وجود داشته باشد.
امضاء رقمي • مولفه ها : • الگوريتم توليد کليد(Key Generation Alg) • بصورت تصادفی يک زوج کليد عمومی توليد می کند. • الگوريتم توليد امضاء(Signature Alg) • پيغام و کليد خصوصی فرستنده را به عنوان ورودی می گيرد و امضاء را توليد می کند. • الگوريتم تاييد امضا(Signature Verification Alg) • امضاء و کليد عمومی فرستنده را به عنون ورودی می گيرد و تاييديه امضاء را به عنوان خروجی برمی گرداند.
امضاء رقمي • انواع • مستقيم(Direct) : • ضعف : به امنيت كليد خصوصي فرستنده وابسته است • فرستنده می تواند ارسال پيغام را انکار کند • استفاده از timestamp به تنهايی کافی نيست. ممکن است در زمان T، کليد خصوصی فرستنده لو رفته باشد. • باواسط(Arbitrated) • وجود يك سوم شخص مشكل تعلق پيغام به فرستنده را برطرف ميكند • امکان مراجعه به آن در صورت بروز اختلاف
امضاء رقمي با واسط • سناريوي اول (رمز متقارن، واسط پيام ها را مي بيند): • XA : M, {IDX, h(M)}Kxa • AY : {IDX, M, {IDX, h(M)}Kxa, T}Kay • عدم رعايت محرمانگي پيغام • امکان تبانی واسط با فرستنده يا گيرنده
امضاء رقمي با واسط • سناريوي دوم (رمز متقارن، واسط پيام ها را نمي بيند): • XA : IDX, {M}Kxy , {IDX, h({M}Kxy)}Kxa • AY : {IDX, {M}Kxy, {IDX, h({M}Kxy)}Kxa, T}Kay • امکان تبانی واسط با فرستنده يا گيرنده
امضاء رقمي با واسط • سناريوي سوم (رمز نامتقارن، واسط پيام ها را نمي بيند): • XA : IDX, {IDX, {{M}KRx}KUy}KRx • AY : {IDX, {{M}KRx}KUy , T}KRa • نياز به هيچ توافقي قبل از ارتباط نيست • در صورت لو رفتن كليد خصوصي x، برچسب زماني درست است • متن پيام در معرض ديد واسط يا شخص ديگر نيست.
پروتكلهاي احراز اصالت • احراز اصالت دو طرفه • هر دو طرف ارتباط بايد از هويت همديگر مطلع شوند. • احراز اصالت يک طرفه • لازم است تنها يک طرف ارتباط هويت خود را اثبات کند. • مورد استفاده : يک شخص يک پيام را در يک گروه عمومی منتشر می کند.
پروتكلهاي احراز اصالت • احراز اصالت مقدمه تبادل كليدهاي نشست است • محرمانگي و صحت زماني دو نياز اصلي پروتكل هاي تبادل كليد است. • دو خطر اساسی تبادل امن کليدهای نشست را تهديد می کند: • شنود • حملات جعل و تكرار
پروتكلهاي احراز اصالت انواع حملات جعل و تكرار (Replay Attacks) • Simple Replay : گرفتن پيغام و ارسال آن بعد از مدتي • Logged Replay : گرفتن پيغام و ارسال قبل از اتمام “پنجره زماني” • Undetected Replay : پيغام اصلي نمي رسد و فقط پيغام جعلي مي رسد • Backward Replay : پاسخ به پيغام ارسالي بجاي گيرنده • وقتي اتفاق مي افتد كه از رمزنگاري مرسوم استفاده مي كنيم و تفاوت بين پيغامهاي ارسالي و دريافتي با مقايسه محتواي آنها ممكن نيست
پروتكلهاي احراز اصالت P EK(Seq) V روشهاي پايه مقابله با حملات جعل و تكرار • استفاده از اعداد متوالي(Sequence Number) • استفاده از برچسب زماني(TimeStamp) • Challenge/Response : قبل از ارسال هر پيغام، فرستنده يک Nonce ارسال می کند و انتظار دارد که گيرنده به آن پاسخ دهد. EK(T) P V N P V EK(N)
احراز اصالت و تبادل كليد • استفاده از رمزنگاري متقارن • سلسله مراتب دو لايه اي كليدها (Session & Master keys) • مركز توزيع كليد (KDC) مطمئن • هر شخص كليد اصلي خود را با KDC به اشتراك مي گذارد • KDC كليد جلسه را توليد مي كند • كليدهاي اصلي براي انتقال كليد جلسه به طرفين بكار مي رود
يك مثال • پروتكل Needham-Schroeder 1.A→KDC:IDA , IDB , N1 2. KDC→A: {Ks, IDB, N1 ,{Ks , IDA}Kb,kdc }Ka,kdc 3.A→B: {Ks , IDA}Kb,kdc 4.B→A: {N2}Ks 5.A→B: {f(N2)}Ks
پروتكل 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
پروتكلهاي احراز اصالت • استفاده از رمزنگاري نامتقارن • طرفين نياز به دانستن كليد عمومي فعلي همديگر ندارند • كارگزار شناسايي(AS) علاوه بر توزيع کليد جلسه، وظيفه ايجاد گواهي كليد عمومي را بر عهده دارد • مانند رمزنگاري مرسوم، مي توان از برچسب زماني يا nonce استفاده كرد
پروتكلهاي احراز اصالت كليد عمومي و برچسب زماني 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 مشكل : سنكرون بودن زمان سيستم هاي طرفين
پروتكلهاي احراز اصالت • كليد عمومي و nonce (پروتكل Woo-Lam) 1. A→KDC : IDA , IDB 2. KDC→A : {IDb ,KUb }KRkdc 3. A→B : {Na ,IDA }KUb 4. B→KDC : IDB , IDA , {Na }KUkdc 5. KDC→B : {IDA ,KUa}KRkdc , { {Na, KS, IDA ,IDB}KRkdc }KUb 6. B → A : { {Na ,KS, IDA ,IDB}KRkdc , Nb}KUa 7. A → B : {Nb}Ks
پروتكلهاي احراز اصالت • احراز اصالت يكطرفه • نمونه اي از مورد كاربرد : E-mail • نيازمنديها : • احراز اصالت(فرستنده) • محرمانگي • راه حل • رمزنگاري مرسوم • رمزنگاري با كليد عمومي
پروتكلهاي احراز اصالت • استفاده از رمزنگاري متقارن A KDC :IDA ,IDB , NA KDC A: {KS ,IDB ,NA ,{KS ,IDA}KB,kdc }KA,kdc A B:{KS, IDA }KB,kdc , {M}KS
پروتكلهاي احراز اصالت • استفاده از كليد عمومي • هدف : محرمانگي A B:{KS }KUb , {M}KS • هدف : احراز هويت A B:M , {h(M)}KRA • احراز هويت ، بدون اطلاع طرفين از كليد عمومي يكديگر A B: M , {h(M) }KRA , {T ,IDA ,KUA}KRAS
1 B A 2 3 پروتكلهاي احراز اصالت • يك پروتكل سادة احراز اصالت دو طرفه
1 EA B A 2 1’ EB 2’ 3 رخنه پذيري پروتكلهاي احراز اصالت • يك حملة نمونه:Oracle Session Attack
1 B A 2 3 رخنه پذيري پروتكلهاي احراز اصالت • اصلاح پروتكل ساده احراز اصالت دو طرفه • Parallel session attack ! • Offset attack !
انواع رخنهها در طراحي پروتكلها • كلمات عبور قابل حدس(Password guessing flaws) • كاربران كلمات عبور به اندازة كافي بزرگ يا تصادفي انتخاب نميكنند. • مثل پروتكل Kerberos (نشست بعدي) يا پروتكلهاي login • رخنه ناشي از تازه نبودن اجزاء(Freshless flaws) • نفوذي ميتواند بجاي يك عامل ديگر ايفاي نقش نمايد. • مثل پروتكل NSSK • رخنههاي اُراكل (Oracle flaws) • استفاده از يك عامل مجاز براي انجام برخي محاسبات و سوء استفاده از آنها • مثل پروتكل 3Pass (نشست بعدي)
انواع رخنهها در طراحي پروتكلها • رخنه هاي نوع (Type flaws) • تعابير مختلف از رشتههاي بيتي در پروتكل • مثل پروتكل Newman-Stabelbine • رخنه هاي مربوط به زمان (Timing flaws) • ساعت هاي غير همزمان • مثل پروتكل Kerberos • رخنه هاي مربوط به سيستم رمز (Cryptosystem flaws) • مثل پروتكل 3Pass
رخنة نوع • ضعف عوامل دريافت كننده پيام درتشخيص و تميز بين پيامهاي دريافتي، عدم توانايي آنها در تطبيق پيام دريافتي با وضعيت خاصي از پروتكل يا ضعف در فرضيات مربوط به نحوة تطبيق پيام با وضعيت هاي خاص پروتكل • شناسايي پيام هاي پروتكل هاي مختلف در محيط اجراي چندين پروتكل • تشخيص پيام هاي مربوط به اجرا هاي مختلف يك پروتكل • تشخيص و شناسايي پيام هاي ارسالي در قدم هاي مختلف يك پروتكل • تشخيص و تفاوت قائل شدن بين تكه هاي پيام در يك قدم انتقال از پروتكل • تشخيص نوع پيام هاي اتميك از طريق انتساب هر كلمه مجزا به نوع خود
رخنة نوع • پروتكل احراز اصالت و توزيع كليد Newman-Stabelbine
رخنة نوع • حمله به اين پروتكل بر اثر وجود رخنة نوع • جعل اصالت A براي B و مشترك شدن يك كليد با وي توسط نفوذي 1 . EAB : A , Na 2 . B ES: B , { A , Na , Tb}kbs , Nb 3. حذف 4 . EAB : { A , Na( = kab ) , Tb}kbs, { Nb }Na( = kab )
رخنة اراكل • پروتكل كليد عمومي Needham-Schroeder • A -> B: {Na, A}PUB • B -> A: {Na, Nb}PUA • A -> B: {Nb}PUB • Na و Nb نانس و PUA و PUB كليد عمومي هستند
Session 1: A to X A -> X: {Na, A}PUX X -> A: {Na, Nb}PUA A -> X: {Nb}PUX Session 2: X (as A) to B A(X) -> B: {Na, A}PUB B -> A(X): {Na, Nb}PUA A(X) -> B: {Nb}PUB رخنة اراكل
پروتكل Three pass • پروتكل Three pass • A و B مي خواهند يك مقدار مخفي را با يكديگر مبادله كنند بدون اينكه از قبل كليد مشتركي داشته باشند. • فرض بر اين است كه تابع رمز مورد استفاده جابجائي پذير است يعني:
پروتكل Three pass • مشكل پروتكل Three pass: