بله بله من می دانم "پروتکل های خود را منفجر کنید مگر اینکه متخصص باشید". لازم نیست که به من دروغ بگید فقط می خواهم بدانم که آیا این ایده نقص وجود دارد و اگر کسی چنین کاری را قبلا انجام نداده است
انگیزه این است که می خواهم توانایی تأیید هویت کاربران را داشته باشم. من می دانم که راه حل استاندارد این است که کلمه عبور هلو را بخورند. اما من این واقعیت را دوست ندارد که رمز عبور خود را به سرور ارسال کند تا آن را بررسی کند. چه کسی در مورد گوش دادن طرف سرویس گیرنده می تواند رمز عبور را رمزگذاری و ارسال کند، اما من آن را دوست ندارم، زیرا ممکن است نکته کلید رمزگشایی من و کسی که ترافیک وب قبلی را ثبت کرده است بتواند تمامی رمزهای عبور را محاسبه کند. تأیید اعتبار یک مشکل جدید نیست، بنابراین من بیشتر در مورد جوانب مثبت و منفی راه حل های معمول قرار نمی گیرم.
ایده من
برای هر کاربر (a) سرور یک کلید عمومی (g ^ x_a) و رمز عبور رمزگذاری شده با آن کلید عمومی (g ^ {x_a} * p_a) را ذخیره می کند. کلید خصوصی مربوطه یا فورا از بین رفت و یا (هنوز بهتر) هرگز محاسبه نشده است. فرآیند احراز هویت به شرح زیر است:
-
کاربر آلیس می خواهد برای تأیید اعتبار
-
سرور باب یک کلید عمومی موقت عمومی G ^ t (دوباره بدون یک کلید خصوصی مرتبط) تولید می کند. باب این کلید موقت عمومی را در داده های آلیس خود افزایش می دهد. در نتیجه g ^ t * g ^ {x_a} = g ^ {t + x_a} = g ^ {x_a} 'و g ^ t * g ^ {x_a} * p_a = g ^ {t + x_a} * p_a = g ^ {x_a} '* p_a. باب از کلید عمومی موقت دور می شود و تنها با یک کلید عمومی جدید (g ^ {x_a} ') و رمز عبور آلیس رمزگذاری شده با این کلید است. او کلید جدیدی برای آلیس می فرستد.
-
آلیس کلید دریافت شده توسط باب از آن برای رمزگذاری رمز عبور خود استفاده می کند. او مقدار رمزگذاری شده را به باب می فرستد.
-
باب آلیس را تصدیق می کند اگر مقدار داده شده مطابقت با آنچه که در ضبط داشته است باشد.
برای recap
-
هیچ وقت سرور یا یک هکر پایگاه داده رمزگشایی نمی کند. با کلید های خصوصی ردیابی رمزنگاری کلید عمومی به طور موثری مانند هش کار می کند.
-
از آنجا که هر کاربر با یک کلید متفاوت رمزگذاری شده است، کلمه عبور به طور مؤثری گرم می شود. جدول رنگین کمان اینجا کار نمی کند
-
یک هکر با تصویر قبلی از پایگاه داده می تواند ارزش های آینده g ^ x_a * p_a را با گوش دادن به ترافیک وب به دست نمی آورد، زیرا این امر نیاز به کشف کلید موقت دارد (که نیازمند حل مجله گسسته است). بنابراین یک تصویر پایگاه داده نشتی اجازه نمیدهد که مهاجم خود را مجبور به جعل هویت کاربران کند.
-
هیچ سرور یا مشتری هیچ کلید خصوصی برای مدیریت ندارد. فقط مشتری نیاز به نگه داشتن اطلاعات مخفی و اطلاعات مخفی را می توان انسان قابل خواندن است.
-
(معایب) مهاجم یک پنجره کوچک از زمان بین مراحل 2 و 4 دارد که می تواند به سرور نفوذ کند و با استفاده از داده هایی که پیدا کرده است، یک کاربر را جعل هویت کند.