{"id":8972,"date":"2015-10-02T11:41:10","date_gmt":"2015-10-02T14:41:10","guid":{"rendered":"https:\/\/king.host\/blog\/?p=8972"},"modified":"2024-06-04T07:53:39","modified_gmt":"2024-06-04T10:53:39","slug":"seguranca-mobile-no-android-devcon","status":"publish","type":"post","link":"https:\/\/king.host\/blog\/tecnologia\/seguranca-mobile-no-android-devcon\/","title":{"rendered":"Seguran\u00e7a Mobile no Android DevCon"},"content":{"rendered":"<p>O colaborador Paulo Henrique dos Santos participou do <a href=\"http:\/\/androidconference.imasters.com.br\/\" target=\"_blank\" rel=\"noopener\">Android DevCon<\/a>, um dos principais eventos da \u00e1rea mobile, reunindo cerca de 800 desenvolvedores de todo o Brasil. Paulo destaca e compartilha nesse post o que viu na palestra \u201cSeguran\u00e7a de aplica\u00e7\u00f5es Android\u201d ministrada pelo Bruno Oliveira \u2013 Engenheiro de Seguran\u00e7a da RedHat.<\/p>\n<p>Um dos pontos abordados na palestra foi o armazenamento externo de dados. Caso seja necess\u00e1rio armazenar dados externos e sua aplica\u00e7\u00e3o use criptografia nos dados, o palestrante aconselhou a utiliza\u00e7\u00e3o de bibliotecas de criptografia como : javax.crypto, BouncyCastle, keyczar.<\/p>\n<p><strong>Exemplo de algoritmo de chave sim\u00e9trica:<\/strong><\/p>\n<p>SecureRandom.getInstance(&#8220;SHA1PRNG&#8221;).nextBytes(ivBytes);<br \/>\nKeyGenerator kGen = KeyGenerator.getInstance(&#8220;AES&#8221;);<br \/>\nkGen.init(128);<br \/>\nbyte[] secretKey = kGen.generateKey().getEncoded();<br \/>\nbyte[] text = &#8220;plain text&#8221;.getBytes();<br \/>\nAlgorithmParameterSpec ivSpec = new IvParameterSpec(ivBytes);<br \/>\nSecretKeySpec newKey = new SecretKeySpec(secretKey, &#8220;AES&#8221;);<br \/>\nCipher cipher = Cipher.getInstance(&#8220;AES\/CBC\/PKCS5Padding&#8221;);<br \/>\ncipher.init(Cipher.ENCRYPT_MODE, newKey, ivSpec);<br \/>\nbyte[] cipherText = cipher.doFinal(text);<\/p>\n<p>Outra possibilidade \u00e9 a valida\u00e7\u00e3o por password, neste caso o palestrante aconselhou o uso da biblioteca pbkdf2 , que pode ser usada da seguinte maneira:<\/p>\n<p>SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(&#8220;PBKDF2WithHmacSHA1&#8221;);<br \/>\nKeySpec spec = new PBEKeySpec(&#8220;123&#8221;.toCharArray(), salt, 10000, 256);<br \/>\nbyte[] derivedKey = keyFactory.generateSecret(spec).getEncoded();<\/p>\n<p>Al\u00e9m disso, o palestrante chamou a aten\u00e7\u00e3o a um ponto importante: &nbsp;o lado do servidor. \u00c9 comum hoje em dia, ainda mais em redes m\u00f3veis, a utiliza\u00e7\u00e3o de redes sem fio compartilhadas. Os dados trocados dessa forma podem ser interceptados na rede e decodificados se n\u00e3o forem bem tratados. Nesses casos para ter uma conex\u00e3o realmente segura com o servidor, \u00e9 necess\u00e1rio utilizar um endere\u00e7o certificado (HTTPS).<\/p>\n<p>Aqui na KingHost disponibilizamos diretamente em seu painel de controle uma ferramenta para contrata\u00e7\u00e3o de certificados SSL. Para acess\u00e1-la basta voc\u00ea ir ao seu painel de controle, selecionar o seu dom\u00ednio e clicar no \u00edcone \u2018Certificados SSL\u2019.<\/p>\n<p>Conhe\u00e7a mais sobre <a href=\"https:\/\/king.host\/blog\/2015\/09\/voce-sabe-para-que-serve-e-como-funciona-o-certificado-ssl\/\" target=\"_blank\" rel=\"noopener\">como funcionam os certificados SSL<\/a> atrav\u00e9s deste link.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O colaborador Paulo Henrique dos Santos participou do Android DevCon, um dos principais eventos da \u00e1rea mobile, reunindo cerca de 800 desenvolvedores de todo o Brasil. Paulo destaca e compartilha nesse post o que viu na palestra \u201cSeguran\u00e7a de aplica\u00e7\u00f5es Android\u201d ministrada pelo Bruno Oliveira \u2013 Engenheiro de Seguran\u00e7a da RedHat. Um dos pontos abordados [&hellip;]<\/p>\n","protected":false},"author":253,"featured_media":8976,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1179,8],"tags":[],"class_list":["post-8972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimento","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/8972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/users\/253"}],"replies":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/comments?post=8972"}],"version-history":[{"count":1,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/8972\/revisions"}],"predecessor-version":[{"id":32627,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/8972\/revisions\/32627"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/media\/8976"}],"wp:attachment":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/media?parent=8972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/categories?post=8972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/tags?post=8972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}