تاکنون پروتکل‌‏‏های زیادی به منظور احراز اصالت موجودیت‌‏ها به یکدیگر پیشنهاد شده‌اند. این پروتکل‌‏‏ها به مرور و با توجه به حملات مطرح شده به آن‏ها ارتقا یافته‌اند. در ادامه چند روش احراز اصالت استاندارد که در 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 نیست. بنابراین روش احراز اصالت به صورت زیر است:

  1. A TokenAB را برای B ارسال می‏‌کند.
  2. B TokenAB را رمزگشایی می‏‌کند. صحت پارامتر B در صورت وجود و همچنین مهر زمانی یا عدد دنباله را مورد وارسی قرار می‏‌دهد. در صورت صحت پارامترها هویت موجودیت A برای B احراز می‏‌گردد.

احراز اصالت دو گذری: در این پروتکل اصالت هویت مدعی A توسط وارسی‏ کننده B که فرایند را آغاز می‏‌سازد، احراز می‏‌شود. در پروتکل از عدد تصادفی RB استفاده می‌‏شود. پروتکل در شکل زیر نشان داده شده است:


TokenAB ارسال شده توسط مدعی A برای وارسی کننده B دارای فرم زیر است:

وجود شناسه B در TokenAB اختیاری است. بنابراین روش احراز اصالت به صورت زیر است:

  1. B عدد تصادفی RB را برای A ارسال می‏‌کند.
  2. A TokenAB را برای B ارسال می‏‌کند.
  3. B TokenAB را رمزگشایی می‏‌کند. صحت پارامتر B در صورت وجود و همچنین تساوی RB موجود در پیام اول و RB رمزگشایی شده در TokenAB را وارسی می‏‌کند. در صورت صحت پارامترها هویت موجودیت A برای B احراز می‏‌گردد.

2) احراز اصالت متقابل

در احراز اصالت متقابل هویت هر دو طرف برای یکدیگر احراز می‏‌گردد. پروتکل‏‌های مذکور در بخش‏‌های قبلی به ترتیب به صورت مکانیزم‌‏های زیر تغییر می یابند:

احراز اصالت دو گذری: در این پروتکل از مهر زمانی یا عدد دنباله استفاده می‏‌شود. پروتکل در شکل زیر نشان داده شده است:

TokenAB دارای فرم زیر است:

TokenBA دارای فرم زیر است:

وجود شناسه B در TokenAB و شناسه A در TokenBA اختیاری است. بنابراین روش احراز اصالت به صورت زیر است:

  1. B TokenBA را برای A ارسال می‏‌کند.
  2. این پیام وارسی می‏‌شود (صحت شناسه A در صورت وجود و همچنین مهر زمانی TB یا عدد دنباله NB وارسی می‏‌شود.).

احراز اصالت سه گذری: در پروتکل از اعداد تصادفی استفاده می‏‌شود. پروتکل در شکل زیر نشان داده شده است:

TokenAB و TokenBA دارای فرم زیر هستند.

و

وجود RB در TokenBA از استخراج TokenBA با استفاده از Token AB جلوگیری می‏‌کند. وجود شناسه B در TokenAB اختیاری است. بنابراین روش احراز اصالت به صورت زیر است.

  1. B عدد تصادفی RB را برای A ارسال می‏‌کند.
  2. A TokenAB را برای B ارسال می‏‌کند.
  3. B TokenAB را رمزگشایی می‌‏کند. صحت پارامتر B در صورت وجود و همچنین تساوی RB ارسال شده به A در مرحله 1 و RB رمزگشایی شده در TokenAB را وارسی می‏‌کند. در صورت صحت پارامترها هویت موجودیت A برای B احراز می‏‌گردد.
  4. B TokenBA را برای A ارسال می‌‏کند.
  5. ATokenBA را رمزگشایی می‌کند و تساوی RB دریافت شده از B در مرحله 1 با RB رمزگشایی شده در TokenBA و همچنین تساوی RA ارسال شده به B در مرحله 2 با عدد تصادفی RA موجود در TokenBA را وارسی می‌‏کند. در صورت صحت پارامترها هویت موجودیت B برای A احراز می‏‌گردد.