Android Developers enna

jdchathuranga

Well-known member
  • May 4, 2009
    568
    1,348
    93
    37
    Colombo
    shared eke login detatils watenw ne!
    මේකෙ තේරුම මොකද්ද

    shared API key එක ඇප් එක ඇතුලෙ තියනවා කියන එකද?

    Android app එක ඇතුලෙ එම්බෙඩ් කරන හැම දේම user knows කියන assumption එක කරනවා. encrypt කරත් වැඩක් නැහැ මොකද එතකොට කොහොමද key එක මේන්ටේන් කරන්නෙ කියන ප්‍රශ්නෙ එනවා

    ප්‍රශ්නෙ පැහැදිලිව කිවුවොතින් සොලූශන් කියන්න පුලුවන්



    login details shared pref වල සේවු කරගෙන next time auto login කරන්නද හදන්නෙ? එහෙනං ඒක පට්ටම වැරදි විදියක්

    OAuth 2.0/refresh token grant එක යූස් කරන්න පුලුවන්. login එකට password/code වගේ grant එකක් යූස් කරන්න පුලුවන්
    මේක ෆ්‍රේම්වර්ක් එකකින් කරන්නත් පුලුවන් වෙනම ප්‍රොඩක්ට් එකක් යූස් කරන්නත් පුලුවන් නැත්තං මේ ලොජික් ටික කෝඩ් කරන්නත් පුලුවන් ඒ තරං සංකීර්ණ නැහැ බැක්එන්ඩ් ලොජික් තමයි ගොඩක් තියෙන්නෙ


    login උනාම access_token/refresh_token දෙකක් ජෙනරේට් කරනවා ඒකෙන් තමයි සෙශන් එක හැඬල් කරන්නෙ. මේ දෙක තමයි ඇප් එක ඇතුලෙ තියාගෙන ඉන්නෙ
    මේක shared pref වල දාන්න පුලුවන් encrypted shared pref ලයිබ්‍රි තියනවා ඕන නං

    refresh token එකට ලොකු වැලිඩිටි ටයිම් එකක් තියනවා දවසක/සතියක වගේ
    access token එකට පොඩි වැලිඩිටි ටයිම් එකක් තියනවා විනාඩි ගානක වගේ

    access token එක දාල API කෝල් කරනවා, access token එක expire උනාම refresh token එක යවලා අලුත් access token එකක් ගන්න පුලුවන්, ඕන නං access token එකක් ගන්න හැම වෙලාවෙම refresh token එකේ වැලිඩිටි එකත් අප්ඩේට් කරන්න පුලුවන්(rotate refresh token),
    එතකොට ඇප් එක එක දිගට යූස් කරන කෙනෙක්ට දිගටම ඇප් එකෙන් ලොග් අවුට් වෙන්නෙ නැතිව යූස් කරන්න පුලුවන්

    මේ token වල ටයිප් එක jwt වෙන්න පුලුවන් opaque වෙන්න පුලුවන්. refresh token එක නං කොහොමත් opaque තමයි

    ටෝකන් issue කරන්නෙ scope එකකට, එතකොට අදාල නැති API හරි වැඩ හරි ටෝකන් එකෙන් කරන්න බැහැ

    (Consultation වැඩකදි මේ ටික කියලා දුන්නා නං $500ක විතර බිලක් දෙන්න තිවුනා )
     
    Last edited:

    Solo Rider

    Well-known member
  • Sep 4, 2020
    36,727
    1
    159,748
    113
    98
    කෑගල්ල
    Login details locally thiyaganna eka waradiy.
    Shared preference wala Nan komath thiyaganne ne.

    Eka parak log unama tokens 2 k hadanawa. ( Jwt mekata use karanwa )
    Eken thama session eka refresh karanne.

    E token unath plain widiyata save karanne ne
    Ewath secure storage eheka danne, ( encrypted shared )




    👍
    මේකෙ තේරුම මොකද්ද

    shared API key එක ඇප් එක ඇතුලෙ තියනවා කියන එකද?

    Android app එක ඇතුලෙ එම්බෙඩ් කරන හැම දේම user knows කියන assumption එක කරනවා. encrypt කරත් වැඩක් නැහැ මොකද එතකොට කොහොමද key එක මේන්ටේන් කරන්නෙ කියන ප්‍රශ්නෙ එනවා

    ප්‍රශ්නෙ පැහැදිලිව කිවුවොතින් සොලූශන් කියන්න පුලුවන්



    login details shared pref වල සේවු කරගෙන next time auto login කරන්නද හදන්නෙ? එහෙනං ඒක පට්ටම වැරදි විදියක්

    OAuth 2.0/refresh token grant එක යූස් කරන්න පුලුවන්. login එකට password/code වගේ grant එකක් යූස් කරන්න පුලුවන්
    මේක ෆ්‍රේම්වර්ක් එකකින් කරන්නත් පුලුවන් වෙනම ප්‍රොඩක්ට් එකක් යූස් කරන්නත් පුලුවන් නැත්තං මේ ලොජික් ටික කෝඩ් කරන්නත් පුලුවන් ඒ තරං සංකීර්ණ නැහැ බැක්එන්ඩ් ලොජික් තමයි ගොඩක් තියෙන්නෙ


    login උනාම access_token/refresh_token දෙකක් ජෙනරේට් කරනවා ඒකෙන් තමයි සෙශන් එක හැඬල් කරන්නෙ. මේ දෙක තමයි ඇප් එක ඇතුලෙ තියාගෙන ඉන්නෙ
    මේක shared pref වල දාන්න පුලුවන් encrypted shared pref ලයිබ්‍රි තියනවා ඕන නං

    refresh token එකට ලොකු වැලිඩිටි ටයිම් එකක් තියනවා දවසක/සතියක වගේ
    access token එකට පොඩි වැලිඩිටි ටයිම් එකක් තියනවා විනාඩි ගානක වගේ

    access token එක දාල API කෝල් කරනවා, access token එක expire උනාම refresh token එක යවලා අලුත් access token එකක් ගන්න පුලුවන්, ඕන නං access token එකක් ගන්න හැම වෙලාවෙම refresh token එකේ වැලිඩිටි එකත් අප්ඩේට් කරන්න පුලුවන්(rotate refresh token),
    එතකොට ඇප් එක එක දිගට යූස් කරන කෙනෙක්ට දිගටම ඇප් එකෙන් ලොග් අවුට් වෙන්නෙ නැතිව යූස් කරන්න පුලුවන්

    මේ token වල ටයිප් එක jwt වෙන්න පුලුවන් opaque වෙන්න පුලුවන්. refresh token එක නං කොහොමත් opaque තමයි

    ටෝකන් issue කරන්නෙ scope එකකට, එතකොට අදාල නැති API හරි වැඩ හරි ටෝකන් එකෙන් කරන්න බැහැ

    (Consultation වැඩකදි මේ ටික කියලා දුන්නා නං $500ක විතර බිලක් දෙන්න තිවුනා )

    ☝️
     

    hecker_thama

    Well-known member
  • Dec 27, 2022
    6,764
    6,979
    113
    මේකෙ තේරුම මොකද්ද

    shared API key එක ඇප් එක ඇතුලෙ තියනවා කියන එකද?

    Android app එක ඇතුලෙ එම්බෙඩ් කරන හැම දේම user knows කියන assumption එක කරනවා. encrypt කරත් වැඩක් නැහැ මොකද එතකොට කොහොමද key එක මේන්ටේන් කරන්නෙ කියන ප්‍රශ්නෙ එනවා

    ප්‍රශ්නෙ පැහැදිලිව කිවුවොතින් සොලූශන් කියන්න පුලුවන්



    login details shared pref වල සේවු කරගෙන next time auto login කරන්නද හදන්නෙ? එහෙනං ඒක පට්ටම වැරදි විදියක්

    OAuth 2.0/refresh token grant එක යූස් කරන්න පුලුවන්. login එකට password/code වගේ grant එකක් යූස් කරන්න පුලුවන්
    මේක ෆ්‍රේම්වර්ක් එකකින් කරන්නත් පුලුවන් වෙනම ප්‍රොඩක්ට් එකක් යූස් කරන්නත් පුලුවන් නැත්තං මේ ලොජික් ටික කෝඩ් කරන්නත් පුලුවන් ඒ තරං සංකීර්ණ නැහැ බැක්එන්ඩ් ලොජික් තමයි ගොඩක් තියෙන්නෙ


    login උනාම access_token/refresh_token දෙකක් ජෙනරේට් කරනවා ඒකෙන් තමයි සෙශන් එක හැඬල් කරන්නෙ. මේ දෙක තමයි ඇප් එක ඇතුලෙ තියාගෙන ඉන්නෙ
    මේක shared pref වල දාන්න පුලුවන් encrypted shared pref ලයිබ්‍රි තියනවා ඕන නං

    refresh token එකට ලොකු වැලිඩිටි ටයිම් එකක් තියනවා දවසක/සතියක වගේ
    access token එකට පොඩි වැලිඩිටි ටයිම් එකක් තියනවා විනාඩි ගානක වගේ

    access token එක දාල API කෝල් කරනවා, access token එක expire උනාම refresh token එක යවලා අලුත් access token එකක් ගන්න පුලුවන්, ඕන නං access token එකක් ගන්න හැම වෙලාවෙම refresh token එකේ වැලිඩිටි එකත් අප්ඩේට් කරන්න පුලුවන්(rotate refresh token),
    එතකොට ඇප් එක එක දිගට යූස් කරන කෙනෙක්ට දිගටම ඇප් එකෙන් ලොග් අවුට් වෙන්නෙ නැතිව යූස් කරන්න පුලුවන්

    මේ token වල ටයිප් එක jwt වෙන්න පුලුවන් opaque වෙන්න පුලුවන්. refresh token එක නං කොහොමත් opaque තමයි

    ටෝකන් issue කරන්නෙ scope එකකට, එතකොට අදාල නැති API හරි වැඩ හරි ටෝකන් එකෙන් කරන්න බැහැ

    (Consultation වැඩකදි මේ ටික කියලා දුන්නා නං $500ක විතර බිලක් දෙන්න තිවුනා )
    Login details locally thiyaganna eka waradiy.
    Shared preference wala Nan komath thiyaganne ne.

    Eka parak log unama tokens 2 k hadanawa. ( Jwt mekata use karanwa )
    Eken thama session eka refresh karanne.

    E token unath plain widiyata save karanne ne
    Ewath secure storage eheka danne, ( encrypted shared )





    👍


    ☝️
    emu64xa:/data/data/com.<snip>.app/shared_prefs # ls
    FirebaseAppHeartBeat.xml com.google.android.gms.appid.xml
    GTPlayerPurchases.xml com.google.firebase.auth.api.Store.W0RFRkFVTFRd+MTozODkwNDg4<snip>YjdhMGE4MGMwNjBmMGFk.xml
    OneSignal.xml io.invertase.firebase.xml
    OneSignalTriggers.xml
    emu64xa:/data/data/com.<snip>.app/shared_prefs #
    Ehema refresh token ekakk thiyenawa thama

    emu64xa:/data/data/com.<snif>.app/files # cat P
    PersistedInstallation.T05FU0lHT<snif>wNDI6YW5kcm9pZDpjNjgyYjgxNDRhOGRkNTJiYzFhZDYz.json
    PersistedInstallation.W0RFRkFVTFRd<snif>hMGE4MGMwNjBmMGFk.json
    5FU0lHTkFMX1NES19<snif>RhOGRkNTJiYzFhZDYz.json <
    {"Fid":"cEzwmO6kSf-TunvoWinKG7","Status":3,"AuthToken":"eyJhbGciOiJ<snif>ZHJvaWQ6YzY4MmI4MTQ0
    YThkZDUyYmMxYWQ2My<snif>b1dpbktHNyIsInByb2plY3ROdW1iZXIiOjc1NDc5NTYxNDA0Mn0.AB2LPV8wRQIhAO3vO0LPWQcN5
    MPHTqKkeTDaKDXaEMIM0eQOubFvxEdnAiBjq-_RIW829Mcxy5t8ZPGVZ860JFmPvQ6t3e_oMVKt8Q","RefreshToken":"3_AS3qfwJBOe<snif>LA1Dk3G
    wihvWQZ4r4f2iBm6o4vUJOU5006_Nudi68ggcIhaqN6hO_N9xKydov7RaoQ","TokenCreationEpochInSecs":1693<>2315,"ExpiresInSecs":604800}emu64xa:/data/data/com.echo
    nlabs.<snif>.app/files #

    Ai firebase use karanne meewa walata. hama ekkm mehemd?
    Hard corded APIs add karannema nedd? (Real world) :cautious:

    Android apk pentesting thm learn krnw. pelak labs wl nm insecure data, hardcorded apis thibba
     

    baba-chuti

    Well-known member
  • Feb 27, 2017
    7,477
    1
    10,376
    113
    Login details locally thiyaganna eka waradiy.
    Shared preference wala Nan komath thiyaganne ne.

    Eka parak log unama tokens 2 k hadanawa. ( Jwt mekata use karanwa )
    Eken thama session eka refresh karanne.

    E token unath plain widiyata save karanne ne
    Ewath secure storage eheka danne, ( encrypted shared )





    👍


    ☝️
    JWT token wunath dan decrypt karnna puluwan ne - https://jwt.io/
     

    hecker_thama

    Well-known member
  • Dec 27, 2022
    6,764
    6,979
    113
    JWT token wunath dan decrypt karnna puluwan ne - https://jwt.io/
    ow puluwn ooken admin account ekth take over karapu seen thiyenw

    Keychain eka thama most secure

    And accounts sync wenna ona android os ekath ekka. Hoda salary ona nm owa igena ganna
    hmm man podi podi labs tikakk kara kara inne.
    Evaye Hard coded APis thibba. Real world wenama seen ekk ned:(
    ------ Post added on Sep 4, 2023 at 6:23 PM
     

    baba-chuti

    Well-known member
  • Feb 27, 2017
    7,477
    1
    10,376
    113
    ow puluwn ooken admin account ekth take over karapu seen thiyenw


    hmm man podi podi labs tikakk kara kara inne.
    Evaye Hard coded APis thibba. Real world wenama seen ekk ned:(
    ------ Post added on Sep 4, 2023 at 6:23 PM
    samahra sites man JWT decrypt karla API key aran tiyei. but smahara sites wala JWT decrypt kalata hariyata wada kale na. mokak hari un thawa encryption key ekak danawa vage.
     

    mahadana_muththa

    Well-known member
  • Jan 5, 2020
    2,178
    2,708
    113
    ow puluwn ooken admin account ekth take over karapu seen thiyenw


    hmm man podi podi labs tikakk kara kara inne.
    Evaye Hard coded APis thibba. Real world wenama seen ekk ned:(
    ------ Post added on Sep 4, 2023 at 6:23 PM
    Oka dekak ban. Uba firebase authentication nam google firebase authentication ekama use karapan. Third party nam keychain ekata credentials dala account manager ekata account eka sync karapan.