關於mobile做authentication security

[itdog][mobile, security, oauth][其實IoT可能都關事(唔熟)]

關於mobile做authentication security問題。
之前可能講過, but我都再講多次, 重要野唔怕一講再講。

Mobile App裝o係Mobile,你就要預左好似frontend javascript咁赤裸俾人睇晒。
因為hacker可以crack mobile
=>拎到APK file
=>decompile做source code

我舉個例子,mobile app用OAuth Authorization Code Grant Flow做authentication。
好多人都係咁做,好多industrial專業engineer都可能係咁做。(就算vendor如pingIdentity, 佢地個網都係咁講架ja)

但以大眾做法,我(or hacker)好似上面咁講,decompile source code,拎到你hard code既client id同client secret。
拎到client id同secret,就有security位俾hacker利用。
玩法可能好多(e.g: phishing, 假client etc)。
實際security impact,視乎OAuth以至成個architecture﹑business flow擺位,以及token權力範圍。

其實就算做OAuth,都有較安全做法。
就係當mobile app install落部機時,立即dynamic registration去register一個per device既OAuth client。
reg完OAuth, 然後立刻將device client register到application的DB。
runtime時,device每次perform operation,都是以device名義去access server。
server side每次checking就要check token validity,同埋device authentication(對返DB record)。

consideration其實有幾個point不過skip費事太長氣。
淨係講最重要一點:

hacker就算crack左你個mobile app睇晒source code都冇用,因為每部device裝完機到runtime都會拎個dynamic client去,根本唔會有個hard code左既id/secret儲o係source code。

(其實玩 IoT 可能都係類似咁,起碼要有device registration, rather than only IoT app registration)

Leave a Reply

Your email address will not be published.