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