在mobile app上較OAuth/OIDC安全的authentication protocol design

前言

在上篇 OAuth/OIDC在mobile app生態上是防不勝防的security漏洞 提及到,OAuth/OIDC那種做法的flow是近乎不可能保障mobile app usage的生態安全。
其實關鍵問題在於,整個authentication過程中,是需要使用login username/password,從而無可避免被惡意agent capture credential。

Redesign?

那要根本地解決,就可能需要重新設計一個針對mobile app的authentication flow,而當中避免在login過程中需要到login credentail。其中一個可行做法,就是web-pre-authentication。

Web-pre-authentication + mobile app device one time registration

我所謂的web-pre-authentication的意思是,把authentication先在web application上安全地做好。
繼而在mobile app install的時候,就只需要做一次one time device registration就可以讓mobile app以後能自動登入。
這樣的design就能避免mobile app在runtime時login的危險流程。
而另一個關鍵位就是如何把identiy/token之類從安全的web side轉移到相對不安全的mobile app環境之上。

web-to-mobile的implementations

這web-to-mobile的流程,我至少設想到三個implementation flow,而三種flow各有長短,分別能support不同use case。

1) scan QR code
2) Manually input code
3) Server push code

實際上這些flow都有些特別針對security的tricky design考量過,但也許遲些我有時間劃一些flow diagram/sequence diagram,才能比較好的去說明整個design。

Leave a Reply

Your email address will not be published.