| SLAPO_OTP(5) | File Formats Manual | SLAPO_OTP(5) |
نام (NAME)
slapo-otp - ماژول اورلی رمز عبور یکبار مصرف برای slapd
خلاصه دستور (SYNOPSIS)
moduleload otp.la
توضیحات (DESCRIPTION)
ماژول otp امکان استفاده از احراز هویت با رمز عبور یکبار مصرف مبتنی بر زمان (معروف به «سبک احراز هویتکننده» یا authenticator-style) و رمز عبور یکبار مصرف مبتنی بر HMAC را در کنار گذرواژهٔ استاندارد LDAP برای احراز هویت دومرحلهای فراهم میکند.
با این ماژول، کاربران برای احراز هویت، گذرواژهٔ خود را همراه با رمز عبور یکبار مصرف در ادامهٔ آن، در اعلان گذرواژه وارد میکنند.
رمز عبور مورد نیاز برای احراز هویت کاربر، بر اساس یک شمارنده (در مورد TOTP، زمان جاری) و کلیدی که در مدخل LDAP کاربر به آن ارجاع داده شده است محاسبه میشود. از آنجا که رمز عبور بر مبنای زمان یا تعداد دفعات استفاده است، بهصورت دورهای تغییر میکند. این رمز پس از یک بار استفاده، دیگر قابل استفادهٔ مجدد نیست، بنابراین خطرات کیلاگرها و نگاه دزدکی از پشت سر (shoulder-surfing) خنثی میشوند. از یک برنامهٔ تلفن همراه، مانند Google Authenticator یا YubiKey (یک prover)، میتوان برای محاسبهٔ رمز عبور یکبار مصرف فعلی کاربر که بهصورت یک عدد (معمولاً ششرقمی) بیان میشود، استفاده کرد.
بهعنوان روشی جایگزین، این مقدار میتواند توسط برنامهٔ دیگری که به کلید کاربر دسترسی دارد محاسبه شده و از طریق پیامک یا کانال دیگری به کاربر تحویل داده شود. هنگام احراز هویت، کاربر صرفاً کدی را که توسط اثباتکننده (prover) ارائه شده است به انتهای گذرواژهٔ خود میافزاید.
این پیادهسازی با RFC 4226 HOTP HMAC-Based One Time Passwords و RFC 6238 TOTP Time-based One Time Passwords سازگار است و شامل پشتیبانی از الگوریتمهای HMAC مبتنی بر SHA-1، SHA-256 و SHA-512 میباشد.
کلید HMAC مورد استفاده در محاسبهٔ OTP در مدخل oathOTPToken که در مدخل LDAP کاربر به آن ارجاع داده شده ذخیره میشود، و پارامترها در مدخل LDAP با نام oathOTPParams که در توکن به آن ارجاع شده است نگهداری میشوند.
پیکربندی (CONFIGURATION)
هنگامی که ماژول روی پایگاهداده پیکربندی شد، اتصالهای سادهٔ (simple binds) LDAP را برای کاربرانی که مدخل LDAP آنها دارای هر یک از کلاسهای شیء مشتقشده از oathOTPUser باشد رهگیری میکند. مشخصههایی که کاربر و راز مشترک را پیوند میدهند عبارتند از:
- oathTOTPToken: <dn>
- برای oathTOTPUser اجباری است؛ نشان میدهد که مدخل نامبرده برای نگهداری راز مشترک رمز عبور یکبار مصرف مبتنی بر زمان و آخرین گذرواژهٔ استفادهشده تعیین شده است.
- oathHOTPToken: <dn>
- برای oathHOTPUser اجباری است؛ نشان میدهد که مدخل نامبرده برای نگهداری راز مشترک رمز عبور یکبار مصرف و آخرین گذرواژهٔ استفادهشده تعیین شده است.
- oathTOTPParams: <dn>
- برای oathTOTPToken اجباری است؛ نشان میدهد که مدخل نامبرده برای نگهداری پارامترهای تولید راز مشترک رمز عبور یکبار مصرف مبتنی بر زمان تعیین شده است: طول و الگوریتم مورد استفاده برای آن، و همچنین طول هر گام زمانی و دورهٔ مهلت (grace period).
- oathHOTPParams: <dn>
- برای oathHOTPToken اجباری است؛ نشان میدهد که مدخل نامبرده برای نگهداری پارامترهای تولید راز مشترک رمز عبور یکبار مصرف تعیین شده است: طول و الگوریتم مورد استفاده برای آن، و همچنین تعداد مجاز رمزهای عبور قابل نادیده گرفتن (skip).
بخشهای زیر از طرحوارهٔ (schema) OATH-LDAP پیادهسازی شدهاند.
مشخصههای عمومی:
- oathSecret: <data>
- راز مشترک در اینجا بهصورت بایتهای خام ذخیره میشود.
- oathOTPLength: <length>
- طول رمز عبور، معمولاً ۶.
- oathHMACAlgorithm: <OID>
- شناسه شیء (OID) الگوریتم درهمسازی مورد استفاده، طبق تعریف در RFC 8018. الگوریتمهای پشتیبانیشده شامل SHA1، SHA224، SHA256، SHA384 و SHA512 هستند.
مشخصههای HOTP:
- oathHOTPLookAhead: <number>
- تعداد توکنهای متوالی HOTP که میتوان آنها را نادیده گرفت.
- oathHOTPCounter: <number>
- ترتیب آخرین توکن HOTP که با موفقیت توسط کاربر استفاده شده است.
مشخصههای TOTP:
- oathTOTPTimeStepPeriod: <seconds>
- طول دورهٔ گام زمانی برای محاسبهٔ TOTP.
- oathTOTPLastTimeStep: <number>
- ترتیب آخرین توکن TOTP که با موفقیت توسط کاربر استفاده شده است.
- oathTOTPTimeStepWindow: <number>
- تعداد دورههای زمانی پیرامون زمان فعلی که هنگام بررسی گذرواژهٔ ارائهشده توسط کاربر آزموده میشوند.
- oathTOTPTimeStepDrift: <number>
- اگر کلاینت توکن صحیح را ارائه نکرد اما توکن همچنان با oathTOTPTimeStepWindow مذکور در بالا همخوانی داشت، این مشخصه انحراف فعلی را برای جبران انحراف تدریجی ساعت دستگاه کلاینت ثبت میکند.
همچنین ببینید (SEE ALSO)
قدردانی (ACKNOWLEDGEMENTS)
این اثر توسط Ondřej Kuzník و Howard Chu از Symas Corporation برای گنجاندن در نرمافزار OpenLDAP توسعه یافته است.
این اثر از طرحوارهٔ OATH-LDAP توسعهیافته توسط Michael Ströder استفاده مجدد میکند.
| 2018/6/29 | SLAPO-OTP |