en
Feedback
401 Unauthorized: аутСнтификация ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ

401 Unauthorized: аутСнтификация ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ

Open in Telegram

Канал ΠΏΡ€ΠΎ IAM ΠΈ всС, Ρ‡Ρ‚ΠΎ рядом: - аутСнтификация - session management - access control Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ посты ΠΏΡ€ΠΎ API ΠΈ InfoSec Π§Π°Ρ‚: @unauthz401 Автор: @andreukuznetsov

Show more
349
Subscribers
No data24 hours
+47 days
+2430 days

Data loading in progress...

Attracting Subscribers
May '25
May '25
+13
in 0 channels
April '25
+50
in 0 channels
Get PRO
March '25
+144
in 1 channels
Get PRO
February '250
in 0 channels
Get PRO
January '25
+3
in 0 channels
Get PRO
December '240
in 0 channels
Get PRO
November '240
in 0 channels
Get PRO
October '24
+13
in 0 channels
Get PRO
September '240
in 0 channels
Get PRO
August '24
+33
in 0 channels
Get PRO
July '240
in 0 channels
Get PRO
June '24
+22
in 0 channels
Get PRO
May '240
in 0 channels
Get PRO
April '240
in 0 channels
Get PRO
March '24
+63
in 0 channels
Get PRO
February '240
in 0 channels
Get PRO
January '24
+12
in 0 channels
Date
Subscriber Growth
Mentions
Channels
14 May0
13 May+4
12 May0
11 May0
10 May0
09 May+1
08 May+1
07 May0
06 May+2
05 May+1
04 May+2
03 May0
02 May+1
01 May+1
Channel Posts
+1
RAID_OAuch_Exploring_Security_Compliance_in_the_OAuth_2_0_Ecosystem.pdf8.80 KB

2
OAuch OAuch - это open-source инструмСнт, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ соблюдСниС Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ Π² области бСзопасности для OAuth 2.0/OIDC-совмСстимых IdP (Ρ‡ΠΈΡ‚Π°ΠΉ - authorization server), Ρ‚Π΅ΠΌ самым подсвСчивая Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ³Ρ€ΠΎΠ·Ρ‹. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ IdP с самим OAuth-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ насколько IdP Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π½ΠΎΠΉ стСпСни ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ ΠΈΠ· ряда Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π£ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² Π΅ΡΡ‚ΡŒ нСсколько ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… исслСдований, Ρ€Π΅ΡˆΠΈΠ» ΠΈΡ… ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΠΎ Ρ…Ρ€ΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΡ‚Π°Ρ‚ΡŒΡ - это β€œOAuch: Exploring Security Compliance in the OAuth 2.0 Ecosystem”, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° ΠΎΠ½Π° Π±Ρ‹Π»Π° Π΅Ρ‰Π΅ осСнью 2022 Π³ΠΎΠ΄Π°, Π° учитывая, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρ‹ прСдоставляли срок Π² 1 Π³ΠΎΠ΄ для исправлСния уязвимостСй, само исслСдованиС Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π³ΠΎΠ΄ΠΎΠΌ Ρ€Π°Π½Π΅Π΅. Π­Ρ‚ΠΎ пСрвая Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ исслСдованиС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… IdP, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ сам инструмСнт ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… основана Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°. Авторы поставили довольно Π°ΠΌΠ±ΠΈΡ†ΠΈΠΎΠ·Π½ΡƒΡŽ Ρ†Π΅Π»ΡŒ - ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ OAuth-Π»Π°Π½Π΄ΡˆΠ°Ρ„Ρ‚Π° Π·Π° счСт провСдСния Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… IdP Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ соотвСтствия рСкомСндациям OAuth Π² части ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности с дальнСйшим прСдоставлСниСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ IdP. Авторы взяли для исслСдования 100 ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ доступных IdP, Π²Ρ‹Π΄Π΅Π»ΠΈΠ² 75 ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 10 000, Π° ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ 25 - ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ 1 000 000 списка доступных API Π² ProgrammableWeb (ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² 23 Π³ΠΎΠ΄Ρƒ закрылся). МодСль ΡƒΠ³Ρ€ΠΎΠ· основана Π½Π° RFC 6819, Π½ΠΎ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ. OAuch ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ тСст-кСйсов Π² соотвСтствиС рСкомСндациям, Ρ‚Π°ΠΊ Π² исслСдовании участвовало 113 тСстов. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹-спСцификации описаны достаточно Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΎ, поэтому созданиС тСст-кСйсов Π½Π° ΠΈΡ… основС Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ слоТным. ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ OAuch провСряСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сами IdP, ΠΈ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ³Ρ€ΠΎΠ·Ρ‹ для RP, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ уязвимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹, Π½ΠΎ Π½Π΅ относятся ΠΊ OAuth. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ использованиС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… authorization grants. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 94% IdP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈ authorization code grant ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1% - device code grant (хотя Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ 1% Π² Π΄Π°Π½Π½ΠΎΠΌ случаС - Π½Π΅ совсСм Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅). Π’ΠΎΠΎΠ±Ρ‰Π΅ Π°Π½Π°Π»ΠΈΠ· ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ 97/100 IdP ΠΈΠΌΠ΅Π»ΠΈ хотя Π±Ρ‹ ΠΎΠ΄Π½Ρƒ Π½Π΅Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ (ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡ‚ сСбя Ρ‚ΡƒΡ‚ добавлю, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ кСйсы выглядят нСсколько спСцифично). И соотвСтствСнно Π½ΠΈ ΠΎΠ΄ΠΈΠ½ IdP Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π» ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΠΈΡˆΡƒΡ‚, Ρ‡Ρ‚ΠΎ Π² срСднСм IdP Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈ 20% ΠΎΡ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΈΠ· спСцификаций ΠΈ 33% ΠΎΡ‚ всСх Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ отмСчаСтся, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΈΠ· Best Current Practices (BCP), Π° Π½Π΅ ΠΈΠ· основного Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° OAuth 2.0 ΠΈΠΌΠ΅Π»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° (!) ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ идСя свСдСния всСх спСцификаций Π² ΠΎΠ΄ΠΈΠ½ Π³ΠΈΠ³Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ OAuth 2.1 ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ свой смысл. Π₯отя, Π±ΡƒΠ΄Ρƒ чСстСн: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ врСмя прочтСния Π±ΠΎΠ»Π΅Π΅ 2 часов. ΠŸΡ€ΠΈ всСй ΠΌΠΎΠ΅ΠΉ Π²Π΅Ρ€Π΅ Π² чСловСчСство, ΠΌΠ½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ свСдСния всСго Π² ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ сильно большС людСй Π΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ станут ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒβ€¦ ΠžΡ‡Π΅Π½ΡŒ интСрСсно Π±Ρ‹Π»ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ провСдСния исслСдования Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 21% IdP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈ PKCE. А строгоС сравнСниС зарСгистрированных URL для redirect URI выполняли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 53% IdP… Π’Π°ΠΊΠΆΠ΅ Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΌΡ‹ΡΠ»ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я согласСн: RP cannot be expected to make the best security decisions Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, IdP Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠžΠ»ΡŒΡˆΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ числС Π² ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»Π΅Π½ΠΈΠΈ строгих Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ RP, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ Ρ‚Π΅Ρ… Π±Ρ‹Π»ΠΎ мСньшС шансов Π²Ρ‹ΡΡ‚Ρ€Π΅Π»ΠΈΡ‚ΡŒ сСбС Π² Π½ΠΎΠ³Ρƒ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π°Π²Ρ‚ΠΎΡ€Ρ‹ приходят ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, что… OAuth-экосистСма Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² довольно ΠΏΠ»Π°Ρ‡Π΅Π²Π½ΠΎΠΌ состоянии, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ IdP Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ€Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹. Π’Π°ΠΊΠΆΠ΅ Π² рядС случаСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π±Ρ‹Π»ΠΈ Π² курсС, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΠΎΠ±Π»ΡŽΠ΄Π°ΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ€Ρ‹, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ряду ΠΏΡ€ΠΈΡ‡ΠΈΠ½ (Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎΠ½ΠΈ пСрСчислСны) Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΈ ΠΆΠΈΡ‚ΡŒ с этим. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ посмотрим Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· Π΄Π²Π° Π³ΠΎΠ΄Π° спустя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ измСнилось Π·Π° это врСмя. ΠšΡΡ‚Π°Ρ‚ΠΈ, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ OAuch Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅, интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‹. #security #oauth #paper
203
3
Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² PWA (Ρ‡Π°ΡΡ‚ΡŒ 2) ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ пост Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ PIN ΠΈ passkeys. ΠŸΠΎΠΏΡ€ΠΎΠ±Ρƒ+2
Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² PWA (Ρ‡Π°ΡΡ‚ΡŒ 2) ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ пост Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ PIN ΠΈ passkeys. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ наглядно это Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, взяв для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊ Онлайн. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊ Онлайн ΠΊΠ°ΠΊ Ρ€Π°Π· Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ PWA, Π²ΠΎΡ‚ ΠΈΡ… манифСст. БобствСнно, послС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊ Онлайн ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ (PIN) для Π΄Π°Π½Π½ΠΎΠ³ΠΎ устройства, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π°Π»Π΅Π΅. β€”β€”β€” πŸ–Ό Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ Π² постС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² порядкС упоминания Π² тСкстС. β€”β€”β€” βž‘οΈΠŸΡ€ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π° отправляСтся запрос /pin/begin (ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ 1). βž‘οΈΠ—Π° Π½ΠΈΠΌ слСдуСт запрос /pin/logon (ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ 2). ➑️И Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΆΠ΅ выполняСтся запрос ΠΊ /app/auth, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сСрвСрная Ρ‡Π°ΡΡ‚ΡŒ устанавливаСт Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΡƒΠΊΠΈ. Но Ρ‡Ρ‚ΠΎ это Π·Π° β€œsrp_” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π³Π΄Π΅ наш PIN Π² запросах? Будя ΠΏΠΎ всСму, Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊ Онлайн ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Secure Remote Password protocol (SRP). ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ (zero-knowledge proof), ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сам PIN Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ пСрСдаСтся ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρƒ связи. На эту Ρ‚Π΅ΠΌΡƒ Π΅ΡΡ‚ΡŒ нСслоТная ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π° Ρ…Π°Π±Ρ€Π΅, которая ΠΏΡ€ΠΈ этом наглядно ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Π’ Π½Π΅ΠΉ, кстати, ΠΌΡ‹ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π’Π°ΠΊΠΆΠ΅ Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊ Онлайн ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ passkey, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π΅Π³ΠΎ ΠΏΡ€ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… Π²Ρ…ΠΎΠ΄Π°Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ WebAuthn. ➑️Вогда, СстСствСнно, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ SRP ΡƒΠΆΠ΅ Π½Π΅Ρ‚, Π° Π΅ΡΡ‚ΡŒ запрос ΠΈΠ· authentication ceremony (ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ 3). βž‘οΈΠ”Π°Π»Π΅Π΅ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ послС запроса ΠΊ /app/auth ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΡƒΠΊΠΈ. Π§Ρ‚ΠΎ здСсь ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ? Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· описанного процСсса, данная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запросов Π½Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ особо Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ OAuth flow. БоотвСтствСнно, Π²ΠΏΠΎΠ»Π½Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Π½Π΅ OAuth/OIDC. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π² Ρ…ΠΎΠ΄Π΅ экспСримСнтов выявлСно, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании PWA с дСсктопа Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊ Онлайн, ΠΏΠΎΠΌΠΈΠΌΠΎ passkey, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π» ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π΅Ρ‰Π΅ ΠΈ OTP ΠΈΠ· SMS, Ρ‡Π΅Π³ΠΎ Π½Π΅ происходило ΠΏΡ€ΠΈ тСстировании с мобильного устройства. Π”Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΡƒΠΆΠ΅ Π½Π΅ стал, ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ влияСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ (fingerprint). ΠŸΡ€ΠΈ использовании passkeys Π΅ΡΡ‚ΡŒ ΠΈ нюанс. WebAuthn Π½Π΅ позволяСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ для user verification Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ использован: это нСльзя ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π½Π°Ρ‡Π°Π»Π΅ Ρ†Π΅Ρ€Π΅ΠΌΠΎΠ½ΠΈΠΈ, нСльзя ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ Π² authenticator data. БоотвСтствСнно, со стороны прилоТСния (relying party, RP Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… WebAuthn) ΠΌΡ‹ Π½Π΅ смоТСм ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ, использовал Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ для подтвСрТдСния своСй identity Π½Π° устройствС Π±ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ ΠΈΠ»ΠΈ распознаваниС Π»ΠΈΡ†Π°) ΠΈΠ»ΠΈ ΠΆΠ΅ просто Π²Π²Π΅Π» систСмный PIN для Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ устройства (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅Π½ Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ β€œ0000”). Если интСрСсно ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ user verification ΠΈ user presence Π² WebAuthn, ΠΌΠ½Π΅ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ ΡΡ‚Π°Ρ‚ΡŒΡ WebAuthn User Verification & User Presence for Passkeys. Π’ΠΎΠΎΠ±Ρ‰Π΅ сама спСцификация прСдусматриваСт ряд Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ (extensions). Π’Π°ΠΊ сущСствуСт ΠΈ User Verification Method Extension (uvm), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π· Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ RP ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ использованного ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ verification method. НапримСр, здСсь явно зарСгистрированы Ρ‚Π°ΠΊΠΈΠ΅ значСния ΠΊΠ°ΠΊ USER_VERIFY_FINGERPRINT ΠΈΠ»ΠΈ USER_VERIFY_PASSCODE. Однако, ΠΊ соТалСнию, Π² Chrome Ρ‚Π°ΠΊΠΎΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ =( НС ΠΌΠ΅Π½Π΅Π΅ интСрСсно ΠΈ обоснованиС, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π½Π΅ поддСрТиваСтся, взятоС ΠΏΠΎ ссылкС Π²Ρ‹ΡˆΠ΅: Experiences such as "this website only works with my left index finger" and "I can't log into this website while wearing a mask" are not things that we wish to support. They damage the experience, and thus reputation, of modern authentication in general and encourage people to stick with passwords. #iam_general
356
4
Как Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» профСссор Ѐарнсворт ΠΈΠ· Π€ΡƒΡ‚ΡƒΡ€Π°ΠΌΡ‹: "Good news, everyone!" πŸ“† Π£ΠΆΠ΅ 23 мая Π±ΡƒΠ΄Ρƒ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π½Π° PHDays Π² МосквС с Π΄ΠΎΠΊΠ»Π°Π΄ΠΎ
Как Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» профСссор Ѐарнсворт ΠΈΠ· Π€ΡƒΡ‚ΡƒΡ€Π°ΠΌΡ‹: "Good news, everyone!" πŸ“† Π£ΠΆΠ΅ 23 мая Π±ΡƒΠ΄Ρƒ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π½Π° PHDays Π² МосквС с Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠΌ "Π’ΠΎΠΊΠ΅Π½Ρ‹ доступа ΠΈ API Gateway: ΠΊΠ°ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ запросов" β€” [ссылка Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄] (рСбята ΠΈΠ· ΠΎΡ€Π³ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° PHDays прислали ΠΈ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ "ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ Π±Π»ΠΎΠ³Π΅Ρ€ΡΠΊΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ" (дословно!), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΅Π΅ Ρ‚ΠΎΠΆΠ΅ прикрСпляСм ΠΊ посту) πŸ“† А всСго Ρ‡Π΅Ρ€Π΅Π· нСдСлю послС, 31 мая, я ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡΡŒ Π² Новосибирск, Π³Π΄Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ»ΡŽ с Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ Π½Π° πŸŽ™ CodeFest 15 β€” [ссылка Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄] Π’ Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ использования API Gateway ΠΊΠ°ΠΊ части Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ API security-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² контСкстС Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ доступа ΠΈ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅ΠΌ, Π° Π΅ΡΡ‚ΡŒ Π»ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΈΠ· Π½ΠΈΡ…. Π’Π°ΠΊΠΆΠ΅ обсудим, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия access token ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ API Gateway ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ вопросС. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, ΠΊΡ‚ΠΎ ΡƒΠΆΠ΅ спланировал ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄ ΠΈ просто ΠΏΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ-ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ. А ΠΊΡ‚ΠΎ ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚, Π²ΠΎΡ‚ Π²Π°ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ²ΠΎΠ΄ 😊 #announce #my_talk #api #iam_general
385
5
ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ исслСдования Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π°Ρ‚Π°ΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ: https://habr.com/ru/articles/880544/ Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ вСрсия Π½Π° английском языкС Π½Π° Medium. #my_publication
437
6
Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² PWA (Ρ‡Π°ΡΡ‚ΡŒ 1) Progressive Web Apps (PWA) - это Π²Π΅Π±-прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π° счСт использования Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… API ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ UX ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ стандартных возмоТностСй Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π’ случаС ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΏΠΎ сути Ρ‚Π°ΠΊΠΈΠ΅ PWA Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ выглядящими максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎ ΠΊ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ прилоТСниям. Π― Π²ΠΎΠΎΠ±Ρ‰Π΅ Π΄Π°Π²Π½ΠΎ с Π½Π°Π΄Π΅ΠΆΠ΄ΠΎΠΉ ΡΠΌΠΎΡ‚Ρ€ΡŽ Π½Π° использованиС PWA Π² ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Ρ… для Π½ΠΈΡ… случаях. НапримСр, для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ½ΠΊΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π³Π΄Π΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ слоТныС вычислСния ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ. Π’Π°ΠΊΠΆΠ΅ PWA ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ ΠΈ Π² связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°ΠΌΠΈ: Π² послСдниС Π³ΠΎΠ΄Ρ‹ ΠΎΠ½ΠΈ стали Π² Ρ‚ΠΎΠΌ числС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ ΠΈ Π² банковской отрасли Π Π€ Π² связи с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ряда Π±Π°Π½ΠΊΠΎΠ² ΠΈΠ· сторов. Π”ΠΎΠ»Π³ΠΎΠ΅ врСмя ΠΈΡ… использованиС ΠΊΠ°ΠΊ полная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ прилоТСниям Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄ вопросом ΠΈΠ·-Π·Π° особСнностСй ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Apple: Safari Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» push-увСдомлСния Π² PWA, Ρ‡Ρ‚ΠΎ Π½Π΅ Π΄Π°Π²Π°Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ "Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ…" ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄Π°ΠΆΠ΅ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π»ΠΎ Π³ΠΎΡ€ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° костыли Π²Ρ€ΠΎΠ΄Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π² мСссСндТСры вмСсто этого для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ iOS. Однако Π² 2023 Π³ΠΎΠ΄Ρƒ ΠΈ Apple ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π»Π° Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΏΡƒΡˆΠ΅ΠΉ. ΠŸΡ€Π°Π²Π΄Π°, ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠ±ΠΈΠ² PWA для ΠΆΠΈΡ‚Π΅Π»Π΅ΠΉ EU =( Π‘ использованиСм PWA ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хочСтся ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠ°ΠΊ ΠΈ Π² мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π’ Ρ‚ΠΎΠΌ числС ΠΈ Π² части Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, вСдь всС Π·Π½Π°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ это "Π»ΡŽΠ±ΡΡ‚". Π’ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях ΡˆΠΈΡ€ΠΎΠΊΠΎ распространён ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄ΠΎΠ² для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΠΉ refresh token, сохраняСмый Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ОБ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π°Π»Π΅Π΅. PWA Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚. Нюанс Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ PWA, ΠΏΡ€ΠΈ всСм ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ API, доступа ΠΊ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌ систСмы Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚. ВСхничСски это всС Ρ‚Π΅ ΠΆΠ΅ Π²Π΅Π±-прилоТСния с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΈΡ… особСнностями ΠΈ ограничСниями. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΡ‡Π΅Π½ΡŒ интСрСсно ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ сСйчас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π°Ρ… Π½Π΅ ΠΈ Π½Π΅ Π·Π°ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΈ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, access token (Π² случаС OAuth) совсСм Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΠΌ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, Ρ€Π°Π· это Π²Π΅Π±-прилоТСния, Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ извСстныС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ для обновлСния access token, присущиС ΠΈΠΌ. НапримСр: 1. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ refresh token ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ… клиСнтской части (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ localStorage) 2. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ refresh token ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² HttpOnly-cookie (Π² Ρ‚ΠΎΠΌ числС с Π΄Ρ€ΡƒΠ³ΠΈΠΌ path) 3. ОбновлСниС Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· SSO Однако, ΠΏΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π°ΠΆΠ½ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Π²ΠΈΠ΄Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ identity ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ…ΠΎΠ΄Π° - Π²Ρ€ΠΎΠ΄Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² WebAuthn Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ User Verification. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. Π’ Π½ΠΈΡ… ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ ΠΌΡ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· выполняСм Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½ΠΎ ΡƒΠΆΠ΅ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, такая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ спСцифичныС Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, использованиС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ "ΠΏΡ€ΠΎΡ‰Π΅" для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ PIN-ΠΊΠΎΠ΄ для устройства ΠΈ использованиС passkeys (Ρ‡Π΅Ρ€Π΅Π· WebAuthn) Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части посмотрим Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΡƒΠΆΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. #iam_general
374
7
Навигация ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρƒ ⛔️ Π—Π΄Π΅ΡΡŒ описаны основныС Ρ‚Π΅ΠΌΡ‹, освСщаСмыС Π½Π° ΠΊΠ°Π½Π°Π»Π΅, с использованиС Ρ…ΡΡˆΡ‚Π΅Π³ΠΎΠ². #iam_general β€” ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΡ€ΠΎ Identity & Access Management #oauth β€” всС, Ρ‡Ρ‚ΠΎ касаСтся OAuth ΠΈ OIDC #security β€” ΠΏΡ€ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ #api β€” ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ интСграция API #jwt β€” ΠΏΡ€ΠΎ JWT ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π½ΠΈΠΌΠΈ #article β€” ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источников #paper β€” ΠΏΠΎΠ»Π½ΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½Π°ΡƒΡ‡Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ #book β€” ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΎΠ±Π·ΠΎΡ€Ρ‹ ΠΊΠ½ΠΈΠ³ #video β€” ΠΎΠ±Π·ΠΎΡ€Ρ‹ Π²ΠΈΠ΄Π΅ΠΎ-ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ², выступлСний #my_publication β€” ΠΌΠΎΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ #my_talk β€” ΠΌΠΎΠΈ выступлСния, Π΄ΠΎΠΊΠ»Π°Π΄Ρ‹ #announce β€” объявлСния ΠΎ выступлСниях, событиях Для просмотра всСх постов, относящихся ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ поиск ΠΏΠΎ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Ρ…ΡΡˆΡ‚Π΅Π³Ρƒ. Бписок Ρ‚Π΅Π³ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития ΠΊΠ°Π½Π°Π»Π°.
312
8
(ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ поста) Π—Π΄Π΅ΡΡŒ я совсСм Π½Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΌ Π°Π²Ρ‚ΠΎΡ€Π°. Π‘Ρ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС Ρ‚Π°ΠΊ просто ΠΈ красиво. Π’ выступлСнии приводятся Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (1️⃣), Π½Π° Π½ΠΈΡ… Π½Π°ΠΏΠΈΡˆΡƒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ (1️⃣). 1️⃣: We can remove all OAuth 2.0 functionality from the frontend application 1️⃣: НС ΠΌΠΎΠ³Ρƒ сСбС ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Ρ€Π½ΠΎ. ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ бэкСнд, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас рСализация authorization code flow с сСрвСрной Ρ‡Π°ΡΡ‚ΡŒΡŽ. Однако клиСнтская Ρ‡Π°ΡΡ‚ΡŒ всС Π΅Ρ‰Π΅ участвуСт: authorization request выполняСтся ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π° Π½Π΅ с бэкСнда. Authorization response возвращаСтся Ρ‚Π°ΠΊ ΠΆΠ΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Π”Π°, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ token request ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Π΅Ρ‚ (ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ), Π½ΠΎ это Π½Π΅ являСтся всСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½Π° ΠΌΠΎΠΉ взгляд. 1️⃣: Now we can reduce the attack surface from the full APIs that the token had access to to only the endpoints that the BFF exposes 1️⃣: ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° здСсь Π² Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌ сравнСнии. Автор сравниваСт Π²Ρ‹Π·ΠΎΠ² API Ρ‡Π΅Ρ€Π΅Π· шлюз Π² Π²ΠΈΠ΄Π΅ BFF с прямым Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ сСрвиса. Но Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… систСмах ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ сСрвисы ΠΈ Π½Π΅ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π°Ρ€ΡƒΠΆΡƒ Π³ΠΎΠ»ΠΎΠΉ ΠΆΠΎΠΏΠΎΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. ΠŸΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° API Gateway, Π½Ρƒ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прокси. Π”Π° ΠΈ сам access token скорСС всСго ограничиваСтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ scopes. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ приносит фактичСской Ρ€Π°Π·Π½ΠΈΡ†Ρ‹: эндпоинты, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ клиСнтская Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, всС Ρ‚Π°ΠΊ ΠΆΠ΅ доступны, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ здСсь β€œBFF”. И доступ ΠΊ Π½ΠΈΠΌ всС Ρ‚Π°ΠΊ ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½. Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ смыслС здСсь Π½Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄ снаруТи: сам access token ΠΈΠ»ΠΈ Π½Π΅ΠΊΡƒΡŽ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π½Π°Π΄ Π½ΠΈΠΌ. 1️⃣: The BFF observes all the API requests from a client, and can perform rate-limiting, anomaly detection, preventing data extraction and so on 1️⃣: Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° совсСм Π½Π΅ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ прямого доступа ΠΊ API, Π²ΠΎΡ‚ Π³Π΄Π΅ Π²ΠΈΠΆΡƒ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρƒ понятий. Π‘ Ρ‡Π΅ΠΌ здСсь сравниваСтся использованиС описанного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°? Π‘ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ клиСнтская Ρ‡Π°ΡΡ‚ΡŒ, Π½Π΅Ρ‚ своСго бэкСнда, Π° сСрвисы со всСми эндпоитнами выставлСны β€œΠ½Π°Ρ€ΡƒΠΆΡƒβ€ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ? Π― Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΡŽ, Ρ‡Ρ‚ΠΎ такая рСализация Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ для Π½Π΅Π΅ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π΅Ρ‚ особого смысла Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ β€œΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈβ€, здСсь by design Π΅Π΅ Π½Π΅ особо Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΎ. Для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ НЀВ ΠΊ надСТности ΠΈ Π˜Π‘ Ρ…ΠΎΡ‚ΡŒ сколько-Ρ‚ΠΎ Π²Π°ΠΆΠ½Ρ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΌΡ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π² любом случаС. А здСсь ΠΆΠ΅ снова ΠΌΡ‹ пытаСмся ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ уровня абстракции. Confidential client Π² Ρ†Π΅Π»ΠΎΠΌ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ BFF ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ шлюз. Π’ ΠΈΡ‚ΠΎΠ³Π΅ всС подводится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с BFF Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Волько Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π² сравнСнии с Ρ‡Π΅ΠΌ. Автор поднял ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ части выступлСния, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ΄Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ BFF ΠΊΠ°ΠΊ сСрвСрной части ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ запросы, Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ всСго Ρ‚ΠΎΠ³ΠΎ скоупа упомянутых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π”Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ доступными с клиСнтской части Π½Π΅Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π΄Π°. Но Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ с Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ, способным ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ OAuth flow, сами собой здСсь Π½Π΅ Ρ€Π΅ΡˆΠ°Ρ‚ΡΡ. ΠΡ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ Π½Π΅ особо Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сам access token для доступа ΠΊ API. Π•ΠΌΡƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ интСрфСйс с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ абстракциСй - Π΄Π° Ρ€Π°Π΄ΠΈ Π±ΠΎΠ³Π°. ΠΡ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ authorization code, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ своСму сСрвСру, Π³Π΄Π΅ ΡƒΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π΅Π³ΠΎ самому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. ΠŸΡ€ΠΈ сСрвСрном Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΡ€ΠΈ этом Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ session ID Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅: это Π±ΡƒΠ΄Π΅Ρ‚ всСго лишь Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Set-Cookie, ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΌΡ‹ Ρƒ Π½Π΅Π³ΠΎ Π½Π΅ написали. ΠšΡΡ‚Π°Ρ‚ΠΈ, скоро ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΏΡ€ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ говорится, stay tuned. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ, описывая BFF ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ всСх ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π°Π²Ρ‚ΠΎΡ€ добавляСт, Ρ‡Ρ‚ΠΎ: That’s as good as it gets. We can’t do better Π‘Ρ‡ΠΈΡ‚Π°ΡŽ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ довольно спорным. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π΅ΡΡ‚ΡŒ ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, ΠΈ всС ΠΆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ β€œdo better”. Π’Π°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎ Π»ΠΈ BFF Π² Π΄Π°Π½Π½ΠΎΠΌ случаС - Best Friend Forever? #video #oauth
318
9
Π’ΠΈΠ΄Π΅ΠΎ The insecurity of OAuth 2.0 in frontends - Philippe de Ryck - NDC Security 2023 Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ выступлСниС ΠΎΡ‚ Philippe De Ryck, ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π». Π—Π΄Π΅ΡΡŒ Π°Π²Ρ‚ΠΎΡ€ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΏΡ€ΠΎ вопросы бСзопасности клиСнтских частСй ΠΏΡ€ΠΈ использовании OAuth. Π’ Π΄ΠΎΠΊΠ»Π°Π΄Π΅ отмСчаСтся популяризация ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ клиСнтской части. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π½Π° JavaScript, поэтому Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ возмоТности исполнСния врСдоносного JS Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ΠΎ: πŸ”΅Π‘ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ third-party скриптом πŸ”΅ XSS Π‘ΠΏΡ€Π°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ упоминаСтся Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ уходящая ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ наличия XSS, с отсылкой Π½Π° статистику HackerOne, Π³Π΄Π΅ XSS ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ мСстС. Π’ OWASP top 10 2021 3 ΠΏΡƒΠ½ΠΊΡ‚ Injection Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя XSS (кстати, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ являСтся Broken Access Control) Автор ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², доступных клиСнтской части Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, XSS нСсСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ риск β€œΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡ токСнов” (token exfiltration). Для сниТСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ риска ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΌΠ΅Ρ€Ρ‹ Π²ΠΈΠ΄Π° сниТСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ refresh-Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² вмСстС с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π”Π°Π»Π΅Π΅ Π°Π²Ρ‚ΠΎΡ€ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΏΡ€ΠΎ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ€, Ссли Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ всС Π΅Ρ‰Π΅ доступны с клиСнтской части. БобствСнно ΠΎΠ± этом ΠΎΠ½ писал Π΅Ρ‰Π΅ Π΄Π°Π²Π½ΠΎ Π² своих ΡΡ‚Π°Ρ‚ΡŒΡΡ…. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρƒ Π°Π²Ρ‚ΠΎΡ€ Π²ΠΈΠ΄ΠΈΡ‚ Π² нСдооцСнСнности возмоТностСй врСдоносного JS, Ρ‡Ρ‚ΠΎ довольно справСдливо. ЕстСствСнно, врСдоносный JS выполняСтся Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ контСкстС ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ всС Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Говорится ΠΏΡ€ΠΎ фокус ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΊΡ€Π°ΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΡƒΡΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΌΡ‹ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π΅ΠΌ слона Π² ΠΊΠΎΠΌΠ½Π°Ρ‚Π΅. ΠΡ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ прилоТСния. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ эффСктивный Π²Π΅ΠΊΡ‚ΠΎΡ€ Π°Ρ‚Π°ΠΊΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ Π½ΠΎΠ²Ρ‹Ρ…, Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ согласСн с этим высказываниСм, Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ вопрос стал ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ‡Π°Ρ‰Π΅. ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² с Ρ‚.Π½. β€œsilent flow”, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ iframe с URL authorization request с prompt=none ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ authorization response Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ Ρ‡Π΅Ρ€Π΅Π· postMessage. ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ исполнСния своСго JS, ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свой собствСнный EventListener Π½Π° событиС β€œmessage”, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ iframe ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π² Π½ΠΎΠ²Ρ‹ΠΉ OAuth flow, ΠΏΠΎΡ…ΠΈΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ authorization code с дальнСйшим ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π½Π° Π΅Π³ΠΎ основС. Π•Ρ‰Π΅ Ρ€Π°Π· Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ. Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π΅Π΅ ΠΏΡ€ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ web message response mode Ρ‚ΠΎΠΆΠ΅ писал Π½Π΅Π΄Π°Π²Π½ΠΎ, разбирая Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½Π° ΠΏΠΎΡ€Ρ‚Π°Π»Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Spotify. Π’Π°ΠΊΠΆΠ΅ приводится ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΌΡ‹ΡΠ»ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ использованиС proof-of-possession, Π² частности DPoP, Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС. ΠΡ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ срСдствами Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ JS ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΈΠ½ΠΊΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΊ своим DPoP-сСкрСтам. Говорится ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ люди ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ€Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹, Π½Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ root cause, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ приводится использованиС service worker, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° запросов. А Π·Π°Ρ‚Π΅ΠΌ Π°Π²Ρ‚ΠΎΡ€ дСмонстрируСт нСдостатки Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² возмоТности дСрСгистрации service worker. Однако Π΄Π°Π»Π΅Π΅ это всС подводится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ OAuth-flow, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, упоминаСтся, Ρ‡Ρ‚ΠΎ Ссли Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ URL Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ самом origin прилоТСния, Ρ‚Π°ΠΊΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π°Ρ‚Π°ΠΊ всС Π΅Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹. И Π² качСствС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ здСсь прСдлагаСтся использованиС backend-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€ΠΎΠ»ΡŒ confidential client ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° сСбС всю Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ. Π’ΠΎ Ρ‡Ρ‚ΠΎ Π² контСкстС OAuth принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ β€œBackend-for-Frontend (BFF)”. ΠŸΡ€ΠΈ этом Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π΅ сами Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ session ID: Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ BFF создаСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ сСссию для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. (ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ см. Π½ΠΈΠΆΠ΅) #video #oauth
266
10
ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π΅Π»ΠΎΠΌ ΠΏΠΎΡ…Π²Π°ΡΡ‚Π°ΡŽΡΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π²Π΅Ρ‡Π° появился Π² Π—Π°Π»Π΅ Π‘Π»Π°Π²Ρ‹ Π±Π°Π³Π±Π°ΡƒΠ½Ρ‚ΠΈ ЯндСкса. К ΠΊΠΎΠ½Ρ†Ρƒ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π° Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΎΠΌ 27
ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π΅Π»ΠΎΠΌ ΠΏΠΎΡ…Π²Π°ΡΡ‚Π°ΡŽΡΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π²Π΅Ρ‡Π° появился Π² Π—Π°Π»Π΅ Π‘Π»Π°Π²Ρ‹ Π±Π°Π³Π±Π°ΡƒΠ½Ρ‚ΠΈ ЯндСкса. К ΠΊΠΎΠ½Ρ†Ρƒ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π° Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΎΠΌ 27 мСстС Π² ΠΎΠ±Ρ‰Π΅ΠΌ спискС πŸ’ͺ ΠŸΡ€ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½ΡƒΡŽ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ ΠΊΠ°Π½Π°Π»Π°, Ρ‚ΠΎΠΆΠ΅ Π½Π°ΠΏΠΈΡˆΡƒ, Π½ΠΎ ΠΏΠΎΠΏΠΎΠ·ΠΆΠ΅.
306
11
Identity Fabrics (Ρ‡Π°ΡΡ‚ΡŒ 2) ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ обсуТдСниС Ρ‚Π΅ΠΌΡ‹ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ поста. ΠŸΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ концСпция Time Phases. Π—Π΄Π΅ΡΡŒ Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π³+1
Identity Fabrics (Ρ‡Π°ΡΡ‚ΡŒ 2) ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ обсуТдСниС Ρ‚Π΅ΠΌΡ‹ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ поста. ΠŸΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ концСпция Time Phases. Π—Π΄Π΅ΡΡŒ Π°Π²Ρ‚ΠΎΡ€Ρ‹ говорят, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½Π΅Π΅ выдСляли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Deploy-Time (ΠΊΠΎΠ³Π΄Π° доступ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ identity ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ»ΠΈΡΡŒ) ΠΈ Run-Time (ΠΊΠΎΠ³Π΄Π° доступ примСнялся). ОбновлСнная ΠΆΠ΅ модСль Π²Π²ΠΎΠ΄ΠΈΡ‚ ΡƒΠΆΠ΅ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°Π·Ρ‹ (с Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ…): 1️⃣ Admin-Time 2️⃣ Real-Time (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Session Initialization ΠΈ Session Management) 3️⃣ Post-Event Time Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π΅Π΅ см. ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1 (Π² порядкС прикрСплСния ΠΊ посту). Π—Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ? Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈ рассмотрСнии capabilities для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π° ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ time phase (ΠΈΠ»ΠΈ нСсколько ΠΈΡ…). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ расписываСтся IAM Reference Architecture. Π‘Π°ΠΌΠ° идСя прСдставлСна Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (см. ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2) Π’Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ 4 Π΄ΠΎΠΌΠ΅Π½Π°: 1️⃣ Administration 2️⃣ Analytics & Risk 3️⃣ Authentication 4️⃣ Authorization 5 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ: 1️⃣ Core 2️⃣ Privileged 3️⃣ Extended 4️⃣ Integrations 5️⃣ API И ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Foundation Layer, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ обСспСчиваСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ IAM-инфраструктуры. А Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· capabilities - самая объСмная Ρ‡Π°ΡΡ‚ΡŒ. ΠŸΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π΅Π΅ оказалось интСрСсно, особСнно ΠΏΡ€ΠΎ Ρ‚Π΅ аспСкты, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π΅ довСлось ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ. ЕдинствСнно, Таль Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ API здСсь написали ΠΌΠ°Π»ΠΎ. И Π² ΠΊΠΎΠ½Ρ†Π΅ указываСтся ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ. ΠŸΠΎΠ΄Ρ‹Ρ‚ΠΎΠΆΠΈΠΌ. Identity Fabric Π΅ΡΡ‚ΡŒ концСпция (ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°) ΠΈ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° выстраиваниС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ (экосистСмы) IAM Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прСдприятия (enterprise). Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π΅ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ части, Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π² соврСмСнных IT-Π»Π°Π½Π΄ΡˆΠ°Ρ„Ρ‚Π°Ρ…. ΠŸΡ€ΠΈΠ²Π½ΠΎΡΠΈΡ‚ Π»ΠΈ ΠΎΠ½ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ΅? НС сказал Π±Ρ‹. Однако ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ комплСксный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² Ρ‚ΠΎΠΌ числС Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ стратСгии каТСтся интСрСсным. Π‘Ρ‹Π» Π±Ρ‹ я ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Π±Ρ‹ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прСдприятия ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. IAM Reference Architecture показалась достойной внимания. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с функциями IAM Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… компаниях, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ вопросы Π±ΡƒΠ΄ΡƒΡ‚ Π²Π°ΠΌ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹. Но ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ ΠΎΠ±Ρ‰ΠΈΠΉ взгляд ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π·Π°ΡˆΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΠΈ взгляда ΠΏΠΎΡ€ΠΎΠΉ. Π“Π΄Π΅ это всС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ? Π’ΡƒΡ‚ ΠΌΠΎΠΈ мысли Π² Ρ†Π΅Π»ΠΎΠΌ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡˆΡƒΡ‚ сами Π°Π²Ρ‚ΠΎΡ€Ρ‹. Вобишь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ снаряду для создания стратСгии трансформации ΠΈ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. А Π΅Ρ‰Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ такая информация ΠΈΠ· IAM Reference Architecture ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈ для формирования Ρ€ΠΎΠ°Π΄ΠΌΠ°ΠΏΠ° ΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ capabilities.
312
12
Identity Fabrics (Ρ‡Π°ΡΡ‚ΡŒ 1) ΠŸΡ€ΠΈΡˆΠ»Π° Ρ‚ΡƒΡ‚ Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° European Identity and Cloud Conference 2025, Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄+1
Identity Fabrics (Ρ‡Π°ΡΡ‚ΡŒ 1) ΠŸΡ€ΠΈΡˆΠ»Π° Ρ‚ΡƒΡ‚ Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° European Identity and Cloud Conference 2025, Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄Ρ‹ Ρ‚Π°ΠΌ Π½Π° повСсткС ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Identity Fabrics. Π‘Ρ‚Π°Π»ΠΎ интСрСсно ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Π² Ρ‡Π΅ΠΌ ΠΆΠ΅ ΠΎΠ½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΈ Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² Π½Π΅ΠΉ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅, ΠΊΡ€ΠΎΠΌΠ΅ красивых Π½Π°Π·Π²Π°Π½ΠΈΠΉ. Об этом, собствСнно, ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ. Как пСрвоисточник, вводящий Ρ‚Π°ΠΊΠΎΠ΅ понятиС, нашСл ΡΡ‚Π°Ρ‚ΡŒΡŽ Π΅Ρ‰Ρ‘ 2020 Π³ΠΎΠ΄Π° Leveraging Identity Fabrics on Your Way Towards Cloud Based IAM (ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π·Π° ΠΏΠ΅ΠΉΠ²ΠΎΠ»Π»ΠΎΠΌ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ здСсь Π½Π΅ ΠΌΠΎΠ³Ρƒ, ΠΎΠ΄Π½Π°ΠΊΠΎ доступ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… бСсплатного trial-ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°). Π’ΡƒΡ‚ Π½Π°ΠΌ говорится ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ β€œΡ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ IAM-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ соврСмСнным Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ индустрии”, это ΠΈ бСрСтся Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ вводится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: Identity Fabrics are a concept that serves as a viable foundation for enterprise architectures for Identity and Access Management (IAM) that serve the business demand. They provide the capabilities required for supporting the business use cases, based on a well-defined set of services that are built in a modern architecture. These services aim at providing access for everyone (and everything) to every service and system, in a controlled manner. As such they can serve as the conceptual foundation for sustainably transforming existing IAM infrastructures into a future-proof basic technology. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΈΡˆΡƒΡ‚: It serves as the logical architecture that unites different services and delivers the capabilities required by the enterprise. БоставныС части ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ 1 (Π² порядкС прикрСплСния ΠΊ посту). А дальшС приводится ряд довольно пространных шагов (Π±Π΅Π· Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π°), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ привСсти читатСля ΠΊ свСтлому Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌΡƒ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, это нСкая вводная ΡΡ‚Π°Ρ‚ΡŒΡ, которая ΠΏΠΎ сути ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ β€œΠ·Π° всС Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ² всСго плохого”. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠΊΠΎΠΉ обратился ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π· Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρƒ: The 2025 Identity Fabric and IAM Reference Architecture (модСль доступа аналогичная). Π’ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ IAM Reference Architecture 2025, которая provides a detailed and modular framework for designing, evolving, and integrating IAM capabilities. It offers a clear separation of functional layers and capabilities to ensure consistency, adaptability, and scalability across organizations of varying industries and sizes И Identity Fabric 2025, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ serves as a strategic framework for building flexible, service-oriented IAM ecosystems. Unlike traditional IAM frameworks, the Identity Fabric focuses on creating a cohesive service delivery model that integrates identity management capabilities into broader enterprise strategies. А вмСстС ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ²Π»ΡΡ‚ΡŒΡΡ основой, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ»Π½Ρ‹ΠΉ спСктр IAM-вопросов для построСния комплСксных систСм. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ аспСкты: 1️⃣ Building Block-Based Structure 2️⃣ Comprehensive Identity Coverage 3️⃣ Dynamic Authorization 4️⃣ Integrated Compliance 5️⃣ Support for Zero Trust 6️⃣ Strengthened Privileged Access Management 7️⃣ API and Interoperability Focus 8️⃣ Scalability Across Sectors Π”Π°Π»Π΅Π΅ разбираСтся сама концСпция Identity Fabrics Ρ‡Π΅Ρ€Π΅Π· освСщСниС основных Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: 1️⃣ Human and Non-Human Identities 2️⃣ Target Systems 3️⃣ Core of the Identity Fabric: Capabilities, Services, and Tools 4️⃣ Integration of Legacy Systems 5️⃣ Support for Digital Services and API Connectivity Π‘ΠΌ. ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2. Говорится ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Identity Fabric - это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСхничСский Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Π½ΠΎ ΠΈ стратСгичСская двиТущая сила (enabler). Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Π° ΠΈ связь с упомянутой IAM Reference Architecture. ΠŸΠΈΡˆΡƒΡ‚, Ρ‡Ρ‚ΠΎ capabilities - ΠΈ Π΅ΡΡ‚ΡŒ ΡΠ²ΡΠ·ΡƒΡŽΡ‰Π΅Π΅ Π·Π²Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Identity Fabric Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π΅Ρ€Ρ…Π½Π΅ΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… Π²Π΅Ρ‰Π°Ρ…, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ IAM Reference Architecture ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ тСхничСскиС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ capability. Π§Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡ‡ΡŒ эффСктивной Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… уровнях ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρƒ ΠΎΡ‚ стратСгичСских аспСктов ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΌ имплСмСнтациям. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΡƒΡŽ идСю Time Phases, Π° Ρ‚Π°ΠΊΠΆΠ΅ саму IAM Reference Architecture.
368
13
ΠšΡΡ‚Π°Ρ‚ΠΈ, запись ΠΌΠΈΡ‚Π°ΠΏΠ° ΡƒΠΆΠ΅ доступна: πŸ“Œ YouTube πŸ“Œ VK Π’ΠΈΠ΄Π΅ΠΎ πŸ“Œ Rutube Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡŽ с выступлСния.
401
14
Π‘Ρ‚Π°Ρ‚ΡŒΡ Β«Account hijacking using β€œdirty dancing” in sign-in OAuth-flowsΒ» БСгодня Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡŽ Account hijacking using β€œdirty dancing” in sign-in OAuth-flows ΠΎΡ‚ исслСдоватСля Frans RosΓ©n. Π‘Ρ‚Π°Ρ‚ΡŒΡ Π²Ρ‹ΡˆΠ»Π° Π΅Ρ‰Π΅ Π² 2022 Π³ΠΎΠ΄Ρƒ, ΠΎΠ΄Π½Π°ΠΊΠΎ я с Π½Π΅ΠΉ ознакомился Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°. ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ, Π½ΠΎ ΠΌΠ½Π΅ показалось, Ρ‡Ρ‚ΠΎ читаСтся прям тяТСло: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ·-Π·Π° ΠΌΠ°Π½Π΅Ρ€Ρ‹ повСствования ΠΈΠ»ΠΈ ΠΈΠ·-Π·Π° обилия тонкостСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ клиСнтских частСй Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π‘Π½Π°Ρ‡Π°Π»Π° для Π·Π°Ρ‚Ρ€Π°Π²ΠΊΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ основныС response types ΠΈ response modes Π² OAuth. Π”Π°Π»Π΅Π΅ Π°Π²Ρ‚ΠΎΡ€ рассказываСт, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π» ΠΈΡΠΊΠ°Ρ‚ΡŒ уязвимости, связанныС с postMessage, ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ: сдСлал Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Chrome для упрощСния Π°Π½Π°Π»ΠΈΠ·Π°. Π Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΡ‚ΠΈΠΊΠΈ для прСрывания OAuth flow, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ использованиС authorization response (ΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ³ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сам). Или, ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€ ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚, "non-happy paths". Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ…: 1. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ³ΠΎ значСния state 2. ИзмСнСниС response type/response mode для authorization request 3. ИзмСнСния рСгистра для redirect URI 4. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ (path) для значСния redirect URI 5. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ query-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ redirect URI 6. ИспользованиС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ…, Π½ΠΎ "Π·Π°Π±Ρ‹Ρ‚Ρ‹Ρ…" redirect URI ΠšΡΡ‚Π°Ρ‚ΠΈ, отмСчаСтся полСзная Π΄Π΅Ρ‚Π°Π»ΡŒ для случаСв с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ redirect URI: Please also note that using response_type=code this quirk is harder to exploit. In a proper OAuth-dance using code, in the last step to acquire the access token from the service provider, the redirect_uri must also be provided for validation to the service-provider. If the redirect_uri that was used in the dance is mismatching the value that the website sends to the provider, no access token will be issued. However, using any other response type, like token or id_token this last-step validation is not needed since the token was provided directly in the redirection. Π’ Π°Π±Π·Π°Ρ†Π΅ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π° нСбольшая ошибка: ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ redirect_uri пСрСдаСтся Ρ‚.Π½. identity provider (aka authorization server), Π° Π½Π΅ "service-provider", ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Π½ΠΎ ΡΡƒΡ‚ΡŒ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π° Π²Π΅Ρ€Π½ΠΎ. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ это ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² OAuth 2.1 этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ· token request с Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ обоснованиСм. Π”Π°Π»Π΅Π΅ Π°Π²Ρ‚ΠΎΡ€ ΠΏΠΈΡˆΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ собрал Π½Π°Π±ΠΎΡ€ сайтов с Ρ‚Π°ΠΊΠΈΠΌΠΈ non-happy paths ΠΈ стал ΠΈΡ… ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ дальшС. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡΡ катСгоризация URL-leaking gadgets - Ρ‚Π°ΠΊ Π°Π²Ρ‚ΠΎΡ€ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ URL c ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ authorization response. 1. postMessage-listeners, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ origin ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ location.href Π½Π°Π·Π°Π΄ Π² parent.window 2. КСйс Reddit: XSS Π½Π° стороннСм Π΄ΠΎΠΌΠ΅Π½Π΅, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ URL с authorization response с основного Π΄ΠΎΠΌΠ΅Π½Π° 3. Third-party скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° страницС redirect URI ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΡƒΠ΄Π°-Π»ΠΈΠ±ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ URL с authorization response Π’Π°ΠΊΠΆΠ΅ Π°Π²Ρ‚ΠΎΡ€ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ тСорСтичСский Π³Π°Π΄ΠΆΠ΅Ρ‚, примСнСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ Π½Π΅ встрСтил: postMessage-listener, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ проксируСт ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ сообщСния своСму opener. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π°Π²Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π°Ρ‚Π°ΠΊ, страница, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ authorization response (redirect URI), Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ third-party рСсурсы ΠΈΠ»ΠΈ ссылки Π½Π° сторонниС сайты. Π’Π°ΠΊΠΆΠ΅ говорится ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ использования Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… response types/response modes. ΠŸΡ€ΠΈ этом Π°Π²Ρ‚ΠΎΡ€ справСдливо ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ использованиС PKCE Π½Π΅ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… Π°Ρ‚Π°ΠΊ. ____ Π’ ΠΈΡ‚ΠΎΠ³Π΅ для мСня Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ†Π΅Π½Π½Ρ‹ΠΌ стало описаниС способов для прСрывания OAuth flow: я Π½Π΅ Π΄ΡƒΠΌΠ°Π» Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π΅ ΠΏΡ€ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Π°ΠΊΡ‚ΠΈΠΊΠΈ, Π° ΠΏΡ€ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΈ Π½Π΅ Π·Π½Π°Π» совсСм. Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠΏΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ посыл Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ использования third-party скриптов Π½Π° страницах redirect URI ΠΈ ΠΏΡ€ΠΎ Π»ΠΈΠΌΠΈΡ‚Ρ‹ Π² Π·Π°Ρ‰ΠΈΡ‚Π΅, прСдоставляСмой PKCE.
375
15
ecom.teсh x keycloak community meetup 13 ΠΌΠ°Ρ€Ρ‚Π° Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽ Π½Π° ΠΌΠΈΡ‚Π°ΠΏΠ΅ Ρƒ рСбят ΠΈΠ· ecom.tech, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ совмСстно с русскоязы+2
ecom.teсh x keycloak community meetup 13 ΠΌΠ°Ρ€Ρ‚Π° Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽ Π½Π° ΠΌΠΈΡ‚Π°ΠΏΠ΅ Ρƒ рСбят ΠΈΠ· ecom.tech, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ совмСстно с русскоязычным keycloak-сообщСством. Моя Ρ‚Π΅ΠΌΠ° ΠΈΠ΄Π΅Ρ‚ Π² самом Π½Π°Ρ‡Π°Π»Π΅ ΠΈ стартуСт сразу Π² 18:00. ПоднимСм вопрос ΠΎ Ρ‚ΠΎΠΌ, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ refresh-Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Π² Π²Π΅Π±-прилоТСниях, ΠΈ Ссли Π½ΡƒΠΆΠ½ΠΎ, Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Рассмотрим саму ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ трСбуСтся Ρ€Π΅ΡˆΠΈΡ‚ΡŒ. ΠžΠ±ΡΡƒΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ здСсь Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ (спойлСр: Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ использованиС refresh-Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²), ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ сами ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹: Ρ‡Ρ‚ΠΎ это, Π·Π°Ρ‡Π΅ΠΌ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈΡΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. А Ρ‚Π°ΠΊΠΆΠ΅ сравним рассмотрСнныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности. Π—Π²ΡƒΡ‡ΠΈΡ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, объСмно ΠΈ Π°ΠΌΠ±ΠΈΡ†ΠΈΠΎΠ·Π½ΠΎ для ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ получаса, Π½ΠΎ постараСмся ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎ-максимуму πŸ˜‰ Когда: 13 ΠΌΠ°Ρ€Ρ‚Π°, 18:00–20:15 МБК Π€ΠΎΡ€ΠΌΠ°Ρ‚: online ВсСго Π±ΡƒΠ΄Π΅Ρ‚ 3 Ρ‚Π΅ΠΌΡ‹: πŸ”΅18:00-18:45 β€” ​​«Refresh token Π² Π²Π΅Π±-прилоТСниях: Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ?Β» (ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΌΠΎΡ‘ выступлСниС) πŸ”΅18:45-19:30 β€” «ВСрнистый ΠΏΡƒΡ‚ΡŒ OAuth: ΠΎΡ‚ 2.0 ΠΊ 2.1Β», Π˜Ρ€ΠΈΠ½Π° Π‘Π»Π°ΠΆΠΈΠ½Π°, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ Π˜Π‘ Π² ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π“Π°Π·ΠΏΡ€ΠΎΠΌ Π˜Π”, co-owner Solutions of Security. CпСциализация Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ для Π˜Π‘ Π½Π° Π±Π°Π·Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ FW, Proxy, NGFW, IDM, IAM, API-Gateway, IDS/IPS ΠΈ Π΄Ρ€. πŸ”΅19:30-20:15 β€” Β«Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ микросСрвисов: ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ уязвимостСй Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈΒ», АлСксСй ΠœΠΎΡ€ΠΎΠ·ΠΎΠ², Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ AppSec Π² ecom.teсh Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅, надСюсь, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ интСрСсно. БСсплатно ΠΈ Π±Π΅Π· смс, Π½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ рСгистрация всС ΠΆΠ΅ Π½ΡƒΠΆΠ½Π°.
519
16
ΠšΡ‚ΠΎ Ρ…ΠΎΡ‚Π΅Π» ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ устроСна аутСнтификация Π½Π° ΠΏΠΎΡ€Ρ‚Π°Π»Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Spotify πŸ™‹β€β™‚οΈ? Π Π°Π½Π΅Π΅ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ использованиС web message response mode, Π° developer.spotify.com ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСгодня Π² Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠ΅ "Π° ΠΊΠ°ΠΊ Ρƒ Π½ΠΈΡ…" рассмотрим использованиС ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ response mode Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: https://telegra.ph/Autentifikaciya-na-developerspotifycom-01-22 А Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… прилоТСниях, ΠΏΡƒΡΡ‚ΡŒ ΠΈ с black box ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ большС понимания, Ρ‡Ρ‚ΠΎ происходит Π²ΠΎΠΊΡ€ΡƒΠ³, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, подмСчая ΠΊΠ°ΠΊ ΠΏΠ»ΡŽΡΡ‹, Ρ‚Π°ΠΊ ΠΈ минусы.
422
17
Web message response mode, ΠΈ receiver origin vs redirect URI Π˜Ρ‚Π°ΠΊ, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ пост ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ Π½Π° мысли ΠΏΡ€ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ redirect URI ΠΈ receiver origin. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² случаС web message response mode Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ authorization response ограничиваСтся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… origin. Π’Π°ΠΊ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ возмоТности выполнСния врСдоносного JS Π½Π° любой ΠΈΠ· страниц прилоТСния с Ρ‚Π΅ΠΌ ΠΆΠ΅ origin Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ смоТСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ отправляСмыС authorization server Π² postMessage-сообщСнии ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ authorization response. Однако насколько Π²Π΅Ρ€Π½ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании redirect-based flows Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ смоТСт "Π΄ΠΎΡ‚ΡΠ½ΡƒΡ‚ΡŒΡΡ" Π΄ΠΎ authorization response Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² саму страницу redirect URI? ВсС ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ выдСлСнная страница redirect URI Π΄Π°Ρ€ΠΎΠ²Π°Π½Π° Π½Π°ΠΌ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΅Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ пустой, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (Π΄Π°ΠΆΠ΅ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ вопросом). Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Но достаточно Π»ΠΈ этого, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ authorization response Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ нСдоступСн Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ, "ΠΏΠΎΡΠ΅Π»ΠΈΠ²ΡˆΠ΅ΠΌΡƒΡΡ" Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ? Π£Π²Ρ‹, Π½Π΅Ρ‚. На самом Π΄Π΅Π»Π΅, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ самого origin, Π° Π½Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ. Основная ΡΡƒΡ‚ΡŒ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π°Ρ‚Π°ΠΊΠ°Ρ… Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ способом authorization request Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ доступом ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ authorization response. ДСйствуя Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ origin, Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΏΠΎΠΌΠΈΠΌΠΎ установки ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ событий "message", способы это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. НапримСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ iframe ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Как извСстно, Π² соврСмСнных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… сущСствуСт Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Same-origin policy (SOP), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ взаимодСйствиС страниц, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ origins. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π½Π° страницС https://alice.com, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с origin https://bob.com, ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ доступа ΠΊ Π΅Π³ΠΎ содСрТимому, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ location. Π—Π΄Π΅ΡΡŒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ лСТащая Π² основС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… OAuth flow redirect-based ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° callback. Если Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ создаст iframe ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ c адрСсом authorization request, послС выполнСния Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚Π° Π½Π° адрСс redirect URI origin Ρƒ страницы Π² ΠΎΠΊΠ½Π΅/Ρ„Ρ€Π΅ΠΉΠΌΠ΅ измСнится Π½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ с origin страницы Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π­Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ location для извлСчСния ΠΈΠ· Π½Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² authorization response, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ допустимо Π² Ρ€Π°ΠΌΠΊΠ°Ρ… SOP. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ фактичСски Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для случая с web message ΠΌΡ‹ это осознаСм Π±ΠΎΠ»Π΅Π΅ явно, Π° для redirect-based flows ΠΎΠ± этом ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ задумываСмся. А ΡΡƒΡ‚ΡŒ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΎΠ΄Π½Π°: модСль бСзопасности Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… основана Π½Π΅ Π½Π° путях (paths), Π° Π½Π° origins. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ я всС Ρ€Π°Π²Π½ΠΎ настороТСнно ΠΎΡ‚Π½ΠΎΡˆΡƒΡΡŒ ΠΊ использованию postMessage. Π­Ρ‚ΠΎ для мСня являСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΠ΅ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎ ΠΈΠ· ΠΌΠΈΡ€Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°: Ссли ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· этого, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‚Π°ΠΊ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π˜Π½Π°Ρ‡Π΅ слишком ΠΌΠ½ΠΎΠ³ΠΎ мСст, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΆΠ΅Ρ‡ΡŒΡΡ.
426
18
ΠŸΡ€ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ response modes Π² OAuth БпСцификация OAuth 2.0 Multiple Response Type Encoding Practices (ΠΎΠ½Π° крохотная, Π½Π΅ ΠΏΠΎΠ»Π΅Π½ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ), ΠΊΡ€ΠΎΠΌΠ΅ описания использования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… response types, Π²Π²ΠΎΠ΄ΠΈΡ‚ Π΅Ρ‰Π΅ ΠΈ понятиС Response Mode: The Response Mode determines how the Authorization Server returns result parameters from the Authorization Endpoint. Non-default modes are specified using the response_mode request parameter. If response_mode is not present in a request, the default Response Mode mechanism specified by the Response Type is used. Π‘Π°ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ рСгистрируСт всСго Π΄Π²Π° значСния для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° response_mode: - query; - fragment. Однако Ρ‚ΡƒΡ‚ ΠΆΠ΅ отмСчаСтся, Ρ‡Ρ‚ΠΎ See OAuth 2.0 Form Post Response Mode [OAuth.Post] for an example of a specification that defines an additional Response Mode. Note that it is expected that additional Response Modes may be defined by other specifications in the future, including possibly ones utilizing the HTML5 postMessage API and Cross Origin Resource Sharing (CORS). И Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π²Ρ‹ΡˆΠ΅ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ, ΠΌΡ‹ часто встрСчаСм ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅: - form_post; - web_message. Form post response mode прСдставляСт собой ΠΎΡ‚Π²Π΅Ρ‚ Π² Π²ΠΈΠ΄Π΅ HTML-страницы с Ρ„ΠΎΡ€ΠΌΠΎΠΉ, которая ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы Ρ‡Π΅Ρ€Π΅Π· User Agent автоматичСски отправляСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ authorization response Π½Π° адрСс redirect URI (<form method="post" action="https://site.com/callback">). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· POST-запрос ΠΊ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ эндпоинту. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π½ΠΎΠ²Ρ‹ΠΉ: Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ со Π²Ρ€Π΅ΠΌΠ΅Π½ SAML POST Binding. Web message response mode ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² authorization response Ρ‡Π΅Ρ€Π΅Π· postMessage API. Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ (popup) ΠΈΠ»ΠΈ ΠΆΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ iframe URL с адрСсом authorization request. Π’ ΠΎΡ‚Π²Π΅Ρ‚ authorization server Ρ‚Π°ΠΊ ΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ HTML-страницу, которая срСдствами JS отправляСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ authorization response Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ. Π’ΠΎΠΎΠ±Ρ‰Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ response mode Π½Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π» особо спСцифицирован, ΠΎΠ΄Π½Π°ΠΊΠΎ это Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π΅ΠΌΡƒ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… имплСмСнтациях. ΠŸΡ€ΠΎ Π½Π΅ особо спСцифицирован: ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡ‚ΡƒΡ…ΡˆΠΈΡ… Π΄Ρ€Π°Ρ„Ρ‚Π°, ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½Π½ΠΎ говоря, Π² Π·Π°Ρ‡Π°Ρ‚ΠΎΡ‡Π½ΠΎΠΌ состоянии: πŸ”΅OAuth 2.0 Web Message Response Mode Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠ³Ρƒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ довольно ΡΡ‚Ρ€Π°Π½Π½ΡƒΡŽ схСму "Relay Mode". Π‘Π°Π·ΠΎΠ²ΠΎ стоит ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Unauthenticated Window Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ origin, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это страница, принадлСТащая authorization server. Π‘ Ρ‚Π°ΠΊΠΈΠΌ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ PoC, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΎΠ΄Π½Π°ΠΊΠΎ шаг 7 Unauthenticated window obtains the window object of the Message Target Window via the MessageEvent object in the Relay Response and send Authorization Response as a Web Message. выглядит Π½Π΅Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² соврСмСнных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… ΠΈΠ·-Π·Π° Same-Origin Policy, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·-Π·Π° нСвозмоТности ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² сообщСнии ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ window Π±Π΅Π· сСриализации, ΠΊΠ°ΠΊ это прСдлагаСтся. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ Π²ΠΈΠΆΡƒ возмоТности Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ сообщСний ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ°ΠΌΠΈ. Однако Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽ ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΈΡ… Π·Π½Π°Π½ΠΈΠΉ JS Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ схСму. πŸ”΅OAuth 2.0 Web Message Response Mode for Popup- and Iframe-based Authorization Flows Π‘ΠΎΠ°Π²Ρ‚ΠΎΡ€ Π΄Ρ€Π°Ρ„Ρ‚Π°, кстати, являСтся Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ²ΡˆΠ΅ΠΉΡΡ ΠΌΠ½Π΅ магистСрской диссСртации, ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΆΠ΅ писал. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ³Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ Ρ†ΠΈΡ‚Π°Ρ‚Ρƒ Π² Security Considerations: In flows using the web message response mode, the confidentiality of the authorization response is scoped to the postMessage's receiver origin that does not contain a path. Thus, cross-site scripting (XSS) vulnerabilities on any path within the web application's origin will leak the authorization response to the attacker. ΠŸΡ€ΠΎ это ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… постах. Π”Π°Π²Π½ΠΎ провСряли, ΠΊΠ°ΠΊΠΈΠ΅ response modes ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ваш authorization server? ЗаглянитС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² /.well-known/openid-configuration, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это отраТаСтся ΠΈ Ρ‚Π°ΠΌ.
367
19
Top 10 web hacking techniques of 2024 ΠΎΡ‚ PortSwigger (Ρ‡Π°ΡΡ‚ΡŒ 2) НС ΠΌΠ΅Π½Π΅Π΅ интСрСсно Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ списку Π½ΠΎΠΌΠΈΠ½Π°Π½Ρ‚ΠΎΠ² ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π½Π΅ вошСдшиС Π² Ρ‚ΠΎΠΏ. 4️⃣ POST to XSS: Leveraging Pseudo Protocols to Gain JavaScript Evaluation in SSO Flows ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания Π² качСствС значСния redirect URI URI-схСм (ΠΈΠ»ΠΈ ΠΆΠ΅ псСвдопротоколов) Π°-ля javascript: Π² сочСтании с form post response mode ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ XSS ΡƒΠΆΠ΅ Π½Π° сторонС самого authorization server (Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ). 5️⃣ Zoom Session Takeover - Cookie Tossing Payloads, OAuth Dirty Dancing, Browser Permissions Hijacking, and WAF abuse Last but not least, ΠΌΠ½Π΅ каТСтся, ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» нСзаслуТСнно ΠΎΠ±Π΄Π΅Π»ΠΈΠ»ΠΈ. ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½, кстати, Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π±Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎ ΠΈ упомянутая ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ Web Cache Deception Π² chat.openai[.]com. βœοΈΠΠ²Ρ‚ΠΎΡ€Ρ‹ нашли ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ cookie-based XSS Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (reflection) значСния ΠΊΡƒΠΊΠΈ с CSP nonce, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΏΠΎ ΠΈΡ… словам ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π½Π° всСх страницах всСх ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² zoom.us. Однако ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ XSS Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Ρ‘ Π½Π°ΠΉΡ‚ΠΈ подходящий Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, cache poisoning, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ΄Π½Π°ΠΊΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС. βœοΈΠ—Π΄Π΅ΡΡŒ Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ использованию cookie tossing, Ρ‡Ρ‚ΠΎΠ±Ρ‹ "ΠΏΡ€ΠΎΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ" ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ Π½Π° ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π΅ ΠΊΡƒΠΊΡƒ Π½Π° основной Π΄ΠΎΠΌΠ΅Π½, Ρ‡Ρ‚ΠΎ обСспСчило ΠΈΠΌ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ XSS Π½Π° Π½Π΅ΠΌ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²Ρ€ΠΎΠ΄Π΅ Zoom ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ мноТСство ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², Π°ΡƒΠ΄ΠΈΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ всСгда ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅ΡΡ‚ΠΈΡΡŒ. МногиС ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сами ΠΏΠΎ сСбС Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ цСнности, ΠΈ XSS Π½Π° Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ сильно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ. Однако, это Π½Π΅ всСгда Ρ‚Π°ΠΊ. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π°Π²Ρ‚ΠΎΡ€Ρ‹ нашли POST-based XSS Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΈ использовали Π΅Π΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ XSS ΡƒΠΆΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅Π½Π΅ основном. βœοΈΠ”Π°Π»Π΅Π΅, ΡƒΠΆΠ΅ имСя Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выполнСния JS Π½Π° основном Π΄ΠΎΠΌΠ΅Π½Π΅, выполняСтся ΠΊΡ€Π°ΠΆΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² authorization response со страницы redirect URI ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ session ID Π½Π° ΠΈΡ… основС. βœοΈΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎ использованиС Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ Zoom Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для Π°ΡƒΠ΄ΠΈΠΎ- ΠΈ Π²ΠΈΠ΄Π΅ΠΎ-встрСч, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡ… Π²Π΅Π±-Π²Π΅Ρ€ΡΠΈΡŽ zoom, ΡƒΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π΄Π°Π½Ρ‹ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° использованиС ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π°. Cookie-based Π½Π°Ρ‚ΡƒΡ€Π° Ρƒ XSS Π² Π΄Π°Π½Π½ΠΎΠΌ случаС обСспСчила Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ постоянство (persistence) Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ JS, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ использовали для дСмонстрации возмоТности Π·Π°Ρ…Π²Π°Ρ‚Π° Π°ΡƒΠ΄ΠΈΠΎ- ΠΈ Π²ΠΈΠ΄Π΅ΠΎ-ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° устройствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΅Π³ΠΎ Π½Π° сСрвСр Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ. ✏️ВакТС продСмонстрирована Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ – ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π·Π° счСт использования ΠΊΡƒΠΊ – ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ использованиС WAF ΠΏΡ€ΠΎΡ‚ΠΈΠ² самих Zoom: ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΡƒΠΊΡƒ с ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄ΠΎΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ WAF, Ρ‡Ρ‚ΠΎ ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ "Π·Π°Π±Π°Π½ΠΈΡ‚" доступ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊΠΎ всСму сайту ΠΈΠ»ΠΈ – это ΠΊΡ€ΡƒΡ‡Π΅ всСго – ΠΊ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½Ρ‹ΠΌ страницам Π·Π° счСт использования Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° path Ρƒ ΠΊΡƒΠΊΠΈ. Π’ΠΎΡ‚ это ΠΏΡ€Π°Π²Π΄Π° Π²Π°Ρƒ, ΠΊΠ°ΠΊ ΠΏΠΎ ΠΌΠ½Π΅, Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ интСрСсно. Глядя Π½Π° всС это, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π½ΡΡ‚ΡŒΡΡ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ: ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΎΠΉ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ Π½Π° основС Π½Π΅Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… прСдвзятых ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΎΠΊ! Π§Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ: - ВсС Π΅Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Π°Ρ‚Π°ΠΊΠ°ΠΌ Π² контСкстС OAuth ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π½Π΅ пСрСстаСт Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ - НСмало ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ "OAuth Dirty Dancing", Ρ‡Ρ‚ΠΎ отсылаСтся ΠΊ извСстной ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎΡ‚ Frans RosΓ©n (ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ, кстати, скоро ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° ΠΊΠ°Π½Π°Π»Π΅) - XSS ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ "still alive & kickin'" - НСоТиданно Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ cookie tossing Π’ Ρ†Π΅Π»ΠΎΠΌ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽ интСрСсноС Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊ с ΠΊΡ€Π°ΠΆΠ΅ΠΉ authorization response ΠΈ дальнСйшим Π΅Π³ΠΎ использованиСм для получСния account takeover - Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ вСсны смоТСм Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ эту Ρ‚Π΅ΠΌΡƒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‚ΠΎΡ‡Π½ΠΎ Π»ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ΅Ρ€Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ‚Π°ΠΊ эффСктивны. ЕстСствСнно, Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСтС Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΡƒΡŽ сторону, Π½ΠΎ ΠΈ Ссли вашСй Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ являСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСм. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈ ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ стоит (ΠΈΠ»ΠΈ Π½Π΅ стоит) Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒΡΡ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ сами ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, стоящиС Π·Π° Π°Ρ‚Π°ΠΊΠ°ΠΌΠΈ ΠΈ уязвимостями.
431
20
Top 10 web hacking techniques of 2024 ΠΎΡ‚ PortSwigger (Ρ‡Π°ΡΡ‚ΡŒ 1) Π‘Π±Ρ‹Π»Π°ΡΡŒ моя ΠΌΠ΅Ρ‡Ρ‚Π°, Ρ…ΠΎΡ‚ΡŒ Ρ€Π°Π· ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽ здСсь Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ свСТСС. Π‘ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π²ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡƒΠΆΠ΅ ΡΡ‚Π°Π²ΡˆΠΈΠΉ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½Ρ‹ΠΌ Ρ‚ΠΎΠΏ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΈ рСсчСрчСй Π² области Π˜Π‘ Π·Π° 2024 Π³ΠΎΠ΄ ΠΏΠΎ вСрсии PortSwigger. Π”Π°Ρ‚Π° оглашСния Π±Ρ‹Π»Π° извСстна Π·Π°Ρ€Π°Π½Π΅Π΅, поэтому я успСл ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ 😈. А здСсь Ρ…ΠΎΡ‡Ρƒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ интСрСсныС с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΊΠ°Π½Π°Π»Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹. 1️⃣ Hijacking OAUTH flows via Cookie Tossing - 10 мСсто Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΠΈ - это, ΠΊ соТалСнию, Π²ΠΎΠ΄Π°. Однако здСсь мСня сильно повСсСлила Ρ„Ρ€Π°Π·Π° "Revisiting GitPod". Когда я занимался исслСдованиСм вопроса Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ для WebSocket, Π½Π°Ρ…ΠΎΠ΄ΠΈΠ» ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΎΡ‚ Ρ‚Π΅Ρ… ΠΆΠ΅ snyk.io ΠΏΡ€ΠΎ интСрСсный кСйс с раскруткой Cross-Site WebSocket Hijacking (CSWH) Π΄ΠΎ RCE Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ GitPod. Π’Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π· Π±Ρ‹Π» нюанс Π² использовании ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² .gitpod.io для ΠΎΠ±Ρ…ΠΎΠ΄Π° SameSite. Показалось Π·Π°Π±Π°Π²Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρ‹ снова Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ ΠΊ Π±Π΅Π΄Π½ΠΎΠΌΡƒ GitPod ΠΈ снова Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… нашли, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΠΏΡΡ‚ΡŒ Π·Π° счСт ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². 2️⃣ ChatGPT Account Takeover - Wildcard Web Cache Deception - 9 мСсто Π§ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π½Π°Π» Π±ΠΎΠ»Π΅Π΅ Π³ΠΎΠ΄Π° обратят Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΡƒΠΆΠ΅ освСщался здСсь Ρ€Π°Π½Π΅Π΅ - ΠΊΠ°ΠΊ Ρ€Π°Π· Π²ΠΎ врСмя своСй ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. 3️⃣ OAuth Non-Happy Path to ATO - 8 мСсто ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ΡΡ довольно Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΊΡ€Π°ΠΆΠ΅ authorization response для случая, ΠΊΠΎΠ³Π΄Π° страница с redirect URI Π² случаС "нСуспСха" ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° запроса Referer Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° Location, Ρ‡Ρ‚ΠΎ способствуСт Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚Ρƒ. Автор ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠΊΠΈΠ΄Ρ‹Π²Π°Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Referer Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΡƒΡŽΡΡ Π² распространСнии части URI fragment ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚Π° (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Π΅Ρ… ΠΆΠ΅ query-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²). На этом Π² самом Ρ‚ΠΎΠΏΠ΅ всС, Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ постС посмотрим ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π½Π° ΠΌΠΎΠΉ взгляд, достойныС внимания ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.
369
401 Unauthorized: аутСнтификация ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ - Statistics & analytics of Telegram channel @unauthz