Komunikace mobilní aplikace se serverem - zabezpečení

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Komunikace mobilní aplikace se serverem - zabezpečení

Příspěvek od Václav Sedlář »

Ahoj, chtěli bychom vytvořit jednu mobilní aplikaci, která se bude připojovat na na náš server kde bude nějaké api a server bude odesílat aplikaci nějaká data. řešíme teď ale jeden problém - potřebujeme zajistit, aby k api přistupovala pouze naše aplikace.

Jediné, co mě ale zatím napadá je generování nějakého tokenu v mobilní aplikaci, ale nevím, zda je to dostatečné řešení. Případně zda nehrozí riziko, že se z aplikace dá vyčíst, jak se token generuje a ověřuje.

Máte s tím někdo zkušenosti? Jaké řešení se dnes používá? Jde nám zjednodušeně o to, aby nám nikdo nevybíral db prostým zasíláním požadavků na naše api...

Aplikace nebude odesílat žádná soukromá data (hesla, username apod...). App bude prozatím pro Android, ale v budoucnu bude i pro další platformy...

Díky
martin.developer
Nováček
Nováček
Uživatelský avatar
Registrován: 29. lis 2007
Kontaktovat uživatele:

Re: Komunikace mobilní aplikace se serverem - zabezpečení

Příspěvek od martin.developer »

Na straně aplikace i serveru bych vytvořil algoritmus, který vytvoří klíč (časově omezený, ideálně co request to klíč), který se bude posílat při požadavku z aplikace na API a bude se kontrolovat. Pokud jde o REST API tak ideálně aby sedělo za HTTPS aby nešla odposlouchat komunikace.
Dá se to řešit komplexněji, ale ve většině případech toto stačí.

Jasně, vytáhnout to z aplikace půjde, sice bude záležet na použité technologii v aplikaci, například Java v Androdiu půjde lépe vykrást než-li na iOS Objective-C, ale pokud se kód obfuskuje a algoritmus na tvorbu klíče bude chytře navržen, tak je to slušné zabezpečení.

Pokud tedy aplikaci píšete v Javě na Android, tak bych třeba zvážil že by se ten algoritmus napsal v C++ a Java by si klíč generovala pomocí C++ logiky, která bude méně čitelnější než-li Java.
Pamatujte si, kde jste byli, když jste Vy začínali. To změní Váš pohled na lidi, jenž začínají teď!
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: Komunikace mobilní aplikace se serverem - zabezpečení

Příspěvek od Václav Sedlář »

Aplikaci píše kolega pro Android... já dělám php api na serveru...

Taky mě právě napadá ta varianta s klíčem a omezeným časem...

díky za rady
Odpovědět

Zpět na „Programování a web“