تاکنون پروتکلهای زیادی به منظور احراز اصالت موجودیتها به یکدیگر پیشنهاد شدهاند. این پروتکلها به مرور و با توجه به حملات مطرح شده به آنها ارتقا یافتهاند. در ادامه چند روش احراز اصالت استاندارد که در ISO 9798-2 توصیف شدهاند و از رمز متقارن استفاده میکنند، بیان خواهند شد. برخی پروتکلهای مذکور در استاندارد به طرف سوم مورد اعتماد نیاز دارند که در ادامه به آنها اشاره نشده و تنها چهار پروتکل توصیف خواهند شد که به طرف سوم مورد اعتماد نیاز ندارند. از این چهار پروتکل، دو پروتکل احراز اصالت یک موجودیت به دیگری (احراز اصالت یک طرفه) و دو پروتکل دیگر احراز اصالت هر دو موجودیت به یکدیگی (احراز اصالت متقابل) را توصیف میکنند. لازم به ذکر است که پروتکلهایی که در ادامه بیان خواهند شد، نسبت به پروتکلهای مذکور در استاندارد تا حدی سادهسازی شدهاند ولی کلیت پروتکلها تغییری نکردهاند.
در پروتکلها موجودیتهای A و B باید پیش از انجام احراز اصالت یک کلید احراز اصالت محرمانه KAB با هم توافق کرده باشند. از این کلید میتوان برای انجام احراز اصالتهای مکرر استفاده نمود. پروتکلها به یک پارامتر متغیر با زمان از قبیل مهر زمانی، عدد دنباله یا یک عدد تصادفی نیاز دارند. احتمال تکرار این پارامترها در طول دوره زمانی استفاده از کلید KAB بسیار کم (احتمال صفر یا نزدیک صفر) میباشد. در پروتکلهایی که از مهر زمانی یا عدد دنباله استفاده میشود، برای احراز اصالت یک طرف به طرف دیگر تنها به یک مرتبه ارسال پیام و برای احراز اصالت متقابل دو طرف به هم به دو پیام نیاز است. اگر از چالش و پاسخ با به کارگیری اعداد تصادفی استفاده شود، برای احراز اصالت یک طرف به طرف دیگر به دو گذر پیام و برای احراز اصالت متقابل دو طرف به هم به سه یا چهار گذر پیام نیاز است.
1) احراز اصالت یک طرفه
در احراز اصالت یک طرفه هویت یکی از دو طرف برای دیگری احراز میگردد:
احراز اصالت یک گذری: مدعی A فرایند احراز اصالت را آغاز میکند و هویت خود را برای وارسی کننده B احراز میکند. پروتکل احراز اصالت در شکل زیر نشان داده شده است:
TokenAB دارای فرم زیر است:
EKAB رمزگذاری توسط کلید KAB را نشان میدهد. مدعی A از عدد دنباله NA یا پارامتر متغیر با زمان TA استفاده میکند. B نیز شناسه موجودیت B میباشد. وجود پارامتر B در TokenAB اختیاری است. شناسه B برای این منظور است که حملهگر از TokenAB استفاده نکند تا خود را به جای موجودیت B به A احراز اصالت کند. اگر جلوی این حمله به روشی دیگر گرفته شد نیازی به پارامتر B نیست. بنابراین روش احراز اصالت به صورت زیر است:
- A TokenAB را برای B ارسال میکند.
- B TokenAB را رمزگشایی میکند. صحت پارامتر B در صورت وجود و همچنین مهر زمانی یا عدد دنباله را مورد وارسی قرار میدهد. در صورت صحت پارامترها هویت موجودیت A برای B احراز میگردد.
احراز اصالت دو گذری: در این پروتکل اصالت هویت مدعی A توسط وارسی کننده B که فرایند را آغاز میسازد، احراز میشود. در پروتکل از عدد تصادفی RB استفاده میشود. پروتکل در شکل زیر نشان داده شده است:
TokenAB ارسال شده توسط مدعی A برای وارسی کننده B دارای فرم زیر است:
وجود شناسه B در TokenAB اختیاری است. بنابراین روش احراز اصالت به صورت زیر است:
- B عدد تصادفی RB را برای A ارسال میکند.
- A TokenAB را برای B ارسال میکند.
- B TokenAB را رمزگشایی میکند. صحت پارامتر B در صورت وجود و همچنین تساوی RB موجود در پیام اول و RB رمزگشایی شده در TokenAB را وارسی میکند. در صورت صحت پارامترها هویت موجودیت A برای B احراز میگردد.
2) احراز اصالت متقابل
در احراز اصالت متقابل هویت هر دو طرف برای یکدیگر احراز میگردد. پروتکلهای مذکور در بخشهای قبلی به ترتیب به صورت مکانیزمهای زیر تغییر می یابند:
احراز اصالت دو گذری: در این پروتکل از مهر زمانی یا عدد دنباله استفاده میشود. پروتکل در شکل زیر نشان داده شده است:
TokenAB دارای فرم زیر است:
TokenBA دارای فرم زیر است:
وجود شناسه B در TokenAB و شناسه A در TokenBA اختیاری است. بنابراین روش احراز اصالت به صورت زیر است:
- B TokenBA را برای A ارسال میکند.
- این پیام وارسی میشود (صحت شناسه A در صورت وجود و همچنین مهر زمانی TB یا عدد دنباله NB وارسی میشود.).
احراز اصالت سه گذری: در پروتکل از اعداد تصادفی استفاده میشود. پروتکل در شکل زیر نشان داده شده است:
TokenAB و TokenBA دارای فرم زیر هستند.
و
وجود RB در TokenBA از استخراج TokenBA با استفاده از Token AB جلوگیری میکند. وجود شناسه B در TokenAB اختیاری است. بنابراین روش احراز اصالت به صورت زیر است.
- B عدد تصادفی RB را برای A ارسال میکند.
- A TokenAB را برای B ارسال میکند.
- B TokenAB را رمزگشایی میکند. صحت پارامتر B در صورت وجود و همچنین تساوی RB ارسال شده به A در مرحله 1 و RB رمزگشایی شده در TokenAB را وارسی میکند. در صورت صحت پارامترها هویت موجودیت A برای B احراز میگردد.
- B TokenBA را برای A ارسال میکند.
- ATokenBA را رمزگشایی میکند و تساوی RB دریافت شده از B در مرحله 1 با RB رمزگشایی شده در TokenBA و همچنین تساوی RA ارسال شده به B در مرحله 2 با عدد تصادفی RA موجود در TokenBA را وارسی میکند. در صورت صحت پارامترها هویت موجودیت B برای A احراز میگردد.