[IT狗][single sign on]OAuth2/OIDC安全考慮

Single sign on (SSO)坊間可能是用OAuth/OIDC。
但其實無論OAuth還是OIDC,其實都很易因為phishing website而出事。

唔係你個Mobile App用果時出事,而係當Malicious mobile app砌一個扮browser UI來模仿OAuth/OIDC flow中的authentication step的login page,就可能會出問題。

security問題:
(1) UI可以扮假既address bar,user唔可能用有冇address bar同個url黎分到係真定假。

(2) 由於agent(browser)係假扮,所以用PKCE code verifier (https://tools.ietf.org/html/draft-ietf-oauth-spop-15#section-1.1)呢種防止中間interception既方法係防唔到。因為佢從頭到尾都係假,而唔係interception。

我望過某d vendor網站,例如pingidentity (https://developer.pingidentity.com/en/resources/napps-native-app-sso.html)
佢都只係講用上面PKCE果種方法去防,其實真係唔夠,好易出事。

大約咁諗過,安全既做法,可能要好似blizzard battle.net authentication app果種先比較安全。

又或者用authorization code grant flow, 就可以有client secret exchange code for token果個step protect到。
但係如果mobile app係hardcode一個global app key都係出事。
(即係”user A”同”user B” mobile上同一隻app都係share同一條app key)
因為我係我部機度crack左條global key, 就可以用黎hack隻app。

所以如果每隻app install後各自dynamic register一個device specific的OAuth client (要係per device per user的), 之後操作都係用依個per device per user level既client id&secret, 行authorization code grant flow咁就應該較難被破解。(好似係)

但係, 經常出現login page, 其實user都可能被train到好易信任果個login page界面。phishing website都係可能會令user中伏。

Leave a Reply

Your email address will not be published.