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
Komunikace mobilní aplikace se serverem - zabezpečení
- Václav Sedlář
- Žlutá karta Bazar

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
- martin.developer
- Nováček

- Registrován: 29. lis 2007
- Kontaktovat uživatele:
Re: Komunikace mobilní aplikace se serverem - zabezpečení
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.
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

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
Re: Komunikace mobilní aplikace se serverem - zabezpečení
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
Taky mě právě napadá ta varianta s klíčem a omezeným časem...
díky za rady