الگوریتم های نامتقارن توصیه شده برای JWT

من تأیید JWT را برای یک سرویس وب جدید اجرا میکنم و مطمئن نیستم که کدام الگوریتم نامتقارن را انتخاب کند. من در اطراف جستجو کرده ام و هیچ توصیه و یا روشنی را پیدا نکرده ام. با توجه به اسناد PyJWT: https://pyjwt.readthedocs.io/en/latest/algorithms.html چند الگوریتم متفاوت برای انتخاب وجود دارد.

من می خواهم از یک الگوریتم که امن (البته) ، سربار کم است و اثبات آینده است. کدام الگوریتم متناسب با لایحه است؟

چگونه الگوریتم YouTube کار می کند؟

با بیش از یک میلیارد کاربر و میلیاردها ساعت ویدئو، این واقعیت که الگوریتم YouTube موفق به ارائه آنچه شما می خواهید تماشا کنید هنگام بازدید از سایت، نشان دهنده مهندسی نرم افزار است. بنابراین، چگونه کار می کند؟

پاسخ کوتاه: هیچ کس جزئیات را نمی داند حتی حتی یوتیوب. الگوریتم YouTube با استفاده از یادگیری ماشین برای نشان دادن فیلم ها، به این معنی است که هیچ قواعد مجموعه ای وجود ندارد که بتوانیم به آنها بگوئیم. علاوه بر این، گوگل به هیچ وجه به ما نگوید، زیرا این امر منجر به استفاده از آنها می شود.

آنچه ما می دانیم

وقتی یک مدل یادگیری ماشین را آموزش می دهید، و سپس خروجی های پیشنهادی خود را در مورد چگونگی درست آنها ارزیابی کنید.

در اینجا یک مثال بسیار قابل مقایسه است. می گویند شما می خواهید برای آموزش یک AI به تفاوت بین تصاویر گربه ها و سگ ها بگویید. اساسا شما می توانید AI دسته ای از عکس های گربه ها و سگ ها را انتخاب کنید، شروع به انتخاب کنید، و اگر آن را به درستی پاسخ دهید، آن را درست کنید. هرچه بیشتر درست شود، بهتر است در انتخاب انتخاب شود. نتیجه یک ماشین است که می تواند گربه ها و سگ ها را شناسایی کند. این آموزش از یک متریک استفاده می کند که نتیجه آن محکومیت می شود؛ در مورد ما، گربه-متر، یا آنچه که درصد از تصویر در واقع گربه است.

Metric YouTube uses time watch -چطور کاربران طولانی در این ویدئو باقی بمانند. این به این معنی است که یوتیوب نمی خواهد افرادی را که در حال جستجو برای تماشای فیلم ها هستند را تماشا کنند، زیرا کار بیشتر در پایان آنها و زمان کمتری برای تماشا انجام می شود.

این خیلی بیشتر از "مدت زمان تماشای یک ویدیو" گرچه. الگوریتم فاکتورهای مختلفی را در نظر می گیرد و بر آن ها را برآورده می کند: احتباس بیننده، برداشت به کلیک ها، تعامل بیننده و برخی دیگر از عوامل پشت صحنه که هرگز آن را نمی بینیم. یوتیوب سپس این عوامل را به نمایه شما متصل می کند تا بتواند ویدیوهایی را که بیشتر احتمال دارد روی آنها کلیک کنید، نشان می دهد.

چه اتفاقی می افتد از این

اگر شما یوتیوب مشتاق هستید، دو چیز مهم برای کار کردن هستند به حداکثر رساندن مدت زمان نمایش شما و به حداکثر رساندن میزان کلیک خود را. نگاهی به هرم هرم زیر کلیک کنید.

YouTube ویدیوی شما را به یک دسته از افراد، روی صفحه اصلی و در برگه پیشنهاد شده نشان می دهد. در حساب من، من تقریبا 750 هزار نمایش را تجربه کرده ام. این به نظر بسیار خوبی است، اما فقط یک درصد از این افراد روی ویدیوی شما کلیک کنید. این کسری به میزان کیبورد شما نامیده می شود و به عنوان یک درصد اندازه گیری می شود (در نمونه من می توانید ببینید که من دارای میزان کلیک با نرخ 4.0٪ است). شکل مشاهدات تعداد واقعی افرادی را که روی آن کلیک کرده اند نشان می دهد.

پس از آنکه کسی روی ویدیو کلیک می کند، یوتیوب میزان زمان صرف شده برای تماشای فیلم ها را اندازه گیری می کند.

شما می توانید ببینید که چرا بسیاری از سازندگان YouTube از clickbait استفاده می کنند عناوین و ریز عکسها (برای گرفتن این کلیک ها) و ویدیوهای طولانی و کشیده شده (تا زمان نگهداری). اینها دو ویژگی بسیار آزار دهنده بسیاری از سازندگان YouTube هستند، اما هی، الگوریتم را سرزنش می کنند.

یک مطالعه موردی

نگاهی به دو کانال بزرگ که روشهای مختلفی برای مقابله با الگوریتم دارند، نگاهی بیندازیم. اولین فناوری اولیه است که یک کانال توسط یک مرد اجرا می شود که به بیابان می رود و چیزهایی را بدون ابزار ایجاد می کند. تمام فیلم های او بسیار طولانی هستند، اما سطح خوبی از تعامل در طول این دوره را حفظ می کنند – کاملا موفقیت آمیز است، زیرا هیچ روایت وجود ندارد. این واقعیت بدین معنی است که او احتمالا طول عمر متوسط ​​بسیار بالا دارد، که در الگوریتم خوب است.

چون او فقط یک ماه یک ویدیو می سازد، شگفت آور است که او بیش از 8 میلیون مشترک دارد. این احتمالا به این علت است که زمان طولانی بین فیلم ها باعث ایجاد احساس جدیدی می شود که قطعه بعدی آن را می گیرد. فیلم های او نمادین هستند، و هر زمان که آنها در خوراک خود نشان می دهند، تقریبا همیشه روی آنها کلیک می کنم. من حدس می زنم که دیگران احساس مشابهی داشته باشند، بنابراین او احتمالا دارای یک نرخ بالای کلیک است.

کانال دوم یک رویکرد کوچک به نظر می رسد. BCC Trolling، یک کانال "لحظات خنده دار" Fortnite، کلیپ ها را از پخش کننده های محبوب می گیرد و آنها را به فیلم های روزانه تبدیل می کند. در سال گذشته، این الگوریتم را تسلط داده و به 7.3 میلیون مشترك شلیک كردند. برای به حداکثر رساندن زمان تماشای، کلیپ ویدئوی عنوان را در قسمت وسط ویدیو قرار می دهند و مردم را مجبور به تماشای آن می کنند تا قبل از آمدن به کلیپ که روی آن کلیک کرده اند، اساسا آنها را در ویدیو بچرخانند. از این رو، زمان تماشای آنها بالاتر است.

آنها همچنین در ریز عکسها و عناوین clickbait عالی هستند، قرار دادن * NEW * در کلاهبرداریهای بسیاری از ویدیوها، و همیشه با ریز عکسها رنگارنگ که معمولا سفارشی ساخته شده و اغلب بسیار گمراه کننده اما آنها clickbait واضح نیستند؛ فیلم ها بر روی عنوان قرار می گیرند، اما این فقط کافی است که افراد را به کلیک برساند.

این مهمترین چیزی است که از BCC برداشته میشود: اگر میخواهید ریز عکسها را کلیک کنید، این کار را با ذکاوت انجام دهید. دروغ نادرست در عنوان اغلب مردم را خشمگین می کند و ممکن است اثر متفاوتی داشته باشد.

در هر صورت، باید آنچه را برای شما کار می کنید پیدا کنید و از مزایای آن استفاده کنید. به خاطر داشته باشید زمان تماشای و نرخ کلیک را در پیش بگیرید، اما به فرمت خود نگاه نکنید و اجازه ندهید که الگوریتم محتوای شما را دیکته کند.

رمزنگاری – تصور کنید من یک الگوریتم سریع برای فاکتورسازی اولیه پیدا کردم. چه کاری باید بکنم؟ چه کسی تماس بگیرد؟

من اغلب با اعداد اول بازی می کنم، فقط برای سرگرمی. تصور کنید، یک الگوریتم را به طور تصادفی پیدا کردم که تعداد اعداد را به قطعات اصلی آنها تقسیم می کند دقیقا همانطور که سرعت آن ها را اولویت بندی می کند. من می دانم این به شدت بعید است. اما تصور میکنم که انجام دادم تصور کنید که معتبر بودن روش جدیدی از "پارامتر ریاضی" برای اثبات آن وجود دارد.

حالا، تا آنجا که من آن را درک می کنم، پیامدهای زیادی در رمزنگاری وجود دارد.

بنابراین، آنچه باید انجام دهید سپس؟ فقط اطلاعات را در یک مجله ریاضی منتشر کنید و بسیاری از کسب و کارهای سراسر جهان را تهدید می کند که به طور ناگهانی به حمله حمله می کنند؟ یا با NSA تماس بگیرید؟

چه کسی مسئول هر گونه اقدام خواهد بود؟ و اگر کسی در همه کارها انجام دهد چه می کند؟

وب سایت – دلیل عدم اجرای الگوریتم های خود / پیاده سازی

چگونه می توان در مورد امنیت بیشتر بدانیم، اگر چنین چیزی را اجرا نکنیم و از گسل های او یاد بگیریم؟!

البته تلاش برای پیاده سازی آن یک راه خوب برای یادگیری است، اما تنها اگر شما برای آزمایش و بررسی توسط کارشناسان مقابله کنید و آن را به عنوان بیان کنید، بدون اینکه سعی کنید از آن در تولید استفاده کنید.

مشکل بزرگی در اینجا این است که "تجربه یادگیری" ممکن است اتفاق بیفتد، تنها پس از اینکه موفق شدید حمله کنید. (شما ممکن است بر این باور داشته باشید چیزی را آموخته اید در حالی که فقط یاد گرفته اید حفره های امنیتی بزرگی برای شرکتتان ایجاد کنید)

بسیاری از مردم ممکن است به سادگی متوجه نشوند که آنها بسیار عجیب و غریب هستند. باید این الگوریتم را اجرا کند، من یاد می گیرم و سپس توابع خوبی را برای استفاده مجدد از آن استفاده خواهم کرد، ساده تر از افزودن کتابخانه های بزرگ است که به نظر می رسد برای آنچه که من می خواهم پیچیده است. "

به طور کلی،" مجددا چرخ "جالب است به عنوان یک تجربه یادگیری، تا زمانی که آن را در sandbox نگه می دارد ، و / یا توسط کارشناسان تا آنجا که مورد نیاز است مورد بررسی قرار بررسی.

اگر شما یک الگوریتم مرتب سازی را به طرز بدی پیاده سازی کنید، پس بیشترین خطر شما این است که یک برنامه عملکرد ضعیف ایجاد کرده یا حتی ممکن است یک اشکال داشته باشد که به یک مسئله امنیتی منجر شود. (توجه داشته باشید که مسئله عملکرد می تواند فاجعه آمیز باشد، اگر مشتری به آن بستگی دارد، شاید حتی به اندازه یک نقص امنیتی باشد)

اگر یک الگوریتم رمزنگاری را به خوبی اجرا کنید، احتمالا احتمالا رخنه. و افرادی که این کار را انجام می دهند، به احتمال زیاد بسیار سختگیرانه عمل می کنند. و این اغلب برای هر مشتری (و خودتان) بسیار مشکل است

TLDR؛

با استفاده از اسباب بازی های رمزنگاری Sandbox شما در دنیای حرفه ای واقعی می تواند عواقب بسیار تند و زننده برای مشتریان شما داشته باشد.

بله، شما می توانید از آن یاد بگیرند، اما بهتر است هشدار دادن به همه کسانی که به نظر می آیند اطلاعاتی ندارند که شما نباید با تولید رمزنگاری بازی کنید.

رمزگذاری – مدت زمان طولانی برای شکستن رمز عبور قوی که هکر الگوریتم را نمی داند

برخی از نوع هکر فقط SQL-تزریق وب سایت ما، گرفتن هش رمز عبور مدیریت. او را نیمی از روز به دست آورد تا بدون دانستن SALT (آن را بداند که ما از "sha256" استفاده می کنیم، زیرا opensource). در حال حاضر او قهرمان در چشم رئیس شد، در حالی که ما شبیه یک شوخی (او فقط مقدار کمی از دلار برای سرگرم کننده دریافت).

اکنون، بدیهی است، ما باید الگوریتم را به چیزی غیر قابل پیش بینی تبدیل کنیم و یک رمز عبور قوی مدیر، به غیر از پچ کردن سوراخ sql-injy.

چه چیزی برای هکرهای آینده برای شکستن گذرواژه معلق از حداقل 10 علامت ، نامعلوم الگوریتم و عامل / هزینه (برای او) است؟ فرض کنید آنها دارای 10-20 دستگاه قدرتمند ترک خوردگی (رایانه قوی با GPU خوب) هستند. یا چطور در مورد سازمان قوی نظیر NSA، LOL؟

P / S: من بسیاری از موضوعات مشابه مانند:

برآورد زمان برای شکستن کلمات عبور با استفاده از bcrypt

چگونه ما زمان برداشتن یک هش با استفاده از تکنیک های نیروی بی رحمانه برآورد کنیم

اما هنوز ، من هیچ نظری ندارم که چگونه آن را ارزیابی کنیم.