{"id":152,"date":"2012-05-01T17:57:07","date_gmt":"2012-05-01T16:57:07","guid":{"rendered":"http:\/\/www.jbahillo.com\/?p=152"},"modified":"2012-06-11T09:33:58","modified_gmt":"2012-06-11T08:33:58","slug":"la-inseguridad-de-android","status":"publish","type":"post","link":"https:\/\/www.jbahillo.com\/?p=152","title":{"rendered":"La inseguridad de Android"},"content":{"rendered":"<p>Buenas tardes:<br \/>\nSi bien el otro d\u00eda hablaba de la poca seguridad f\u00edsica que ofrece <a href=\"http:\/\/www.jbahillo.com\/whats-app\/\" title=\"WhatsApp\" target=\"_blank\">WhatsApp<\/a>, hoy le toca a Android en general. Recordemos que hab\u00edamos comentado cuando habl\u00e1bamos del WhatsApp, que en Android las aplicaciones usaban SQLite como motor de almacenamiento de ajustes y datos, y que esto provocaba que pudi\u00e9semos recuperar de ellas, datos que en principio no deber\u00edan constar, por haber sido borrados.<br \/>\n La siguiente pregunta es, pro tanto, es esto un problema exclusivo de esta aplicaci\u00f3n o lo es tambi\u00e9n de cualquier otra aplicaci\u00f3n?. La respuesta es que de TODAS (o al menos la inmensa mayor\u00eda).<br \/>\nLa ra\u00edz del problema viene indicada (entre l\u00edneas) en la FAQ de SQLite:<\/p>\n<p><code>When you delete information from an SQLite database, the unused disk space is added to an internal \"free-list\" and is reused the next time you insert data. The disk space is not lost. But neither is it returned to the operating system.<\/code><\/p>\n<p><code>Cuando borras informaci\u00f3n de una base de datos SQLite, el espacio en disco libre se a\u00f1ade a una lista libre interna, de donde toma el espacio que necesita la pr\u00f3xima vez que a\u00f1ades informaci\u00f3n. El espacio en disco no se pierde, pero tampoco se devuelve al sistema operativo.<\/code><\/p>\n<p>De aqui que de igual modo que podemos acceder a mensajes borrados del WhatApp, lo podemos hacer a sms o mms borrados, llamadas eliminadas del historial, o incluso, a contrase\u00f1as de acceso a determinados servicio, como por ejemplo Twitter o Facebook, que las mantienen en esta base de datos, cifrados en md5.<\/p>\n<p>\u00bfComo solucionar esto? Debemos tener en cuenta que son dos los problemas que hemos mencionado: la posibilidad de recuperar datos que ya no deb\u00edan figurar, y y la posibilidad de acceder a datos sensibles como contrase\u00f1as.<\/p>\n<p>Para el primer caso, a priori la manera ser\u00eda muy sencilla, y consistir\u00eda en hacer una llamada al comando <a href=\"http:\/\/www.sqlite.org\/lang_vacuum.html\" title=\"VACUUM\" target=\"_blank\">VACUUM<\/a>, que b\u00e1sicamente reconstruye la base de datos con la informaci\u00f3n actual, reduciendo su tama\u00f1o y haciendo as\u00ed m\u00e1s complicada la recuperaci\u00f3n de estos datos que no deber\u00edan figurar.<\/p>\n<p>Para el segundo, lo m\u00e1s correcto, ser\u00eda habilitar la compresi\u00f3n, que en el caso de SQLite se puede hacer con <a href=\"http:\/\/www.hwaci.com\/sw\/sqlite\/see.html\" title=\"AES\" target=\"_blank\">AES<\/a> de hasta 256 bits a trav\u00e9s de la Extensi\u00f3n de Encriptado de SQLite.<\/p>\n<p>Esperemos que los desarrolladores de aplicaciones para Android empiecen a tener estos peque\u00f1os detalles en cuenta a la hora de desarrollar sus aplicaciones, sobre todo aprovechando que la mayor parte de ellos est\u00e1n redise\u00f1ando las mismas para adaptarlas al framework de Android Ice Cream Sandwich<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Buenas tardes: Si bien el otro d\u00eda hablaba de la poca seguridad f\u00edsica que ofrece WhatsApp, hoy le toca a Android en general. Recordemos que hab\u00edamos comentado cuando habl\u00e1bamos del WhatsApp, que en Android las aplicaciones usaban SQLite como motor&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/www.jbahillo.com\/?p=152\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":21,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[33,1,38],"tags":[131,36,34,37],"class_list":["post-152","post","type-post","status-publish","format-standard","hentry","category-android","category-seguridad","category-sql","tag-android","tag-encriptacion","tag-sqlite","tag-vacuum"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p74T96-2s","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/posts\/152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=152"}],"version-history":[{"count":7,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/posts\/152\/revisions"}],"predecessor-version":[{"id":426,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/posts\/152\/revisions\/426"}],"wp:attachment":[{"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}