¿Por qué los sistemas operativos no eliminaron los archivos de forma segura desde el principio? ¿Y por qué todavía no hacen esto?

87

Después de décadas de escuchar que "eliminar" realmente no hace que los datos sean imposibles de recuperar, tengo que preguntar ¿POR QUÉ el sistema operativo no se corrigió hace mucho tiempo para hacer lo que debería haber estado haciendo todo el tiempo? ¿Cuál es el problema? ¿No puede el sistema simplemente arrastrar en el fondo la sobreescritura y cualquier otra cosa que suceda? ¿Por qué necesitamos utilidades adicionales para hacer lo que siempre pensamos que estaba sucediendo? ¿Cuál es la motivación de los desarrolladores de sistemas operativos para NO corregir este problema?

ADICION: Esta no es una pregunta tecnológica, porque claramente es posible eliminar cosas de forma segura, o de lo contrario no habría herramientas disponibles para hacerlo. Es una pregunta de política: si algunas personas creen que es importante y deberían formar parte del sistema operativo, ¿por qué no es parte del sistema operativo? Muchas cosas se han agregado a los sistemas operativos a lo largo de los años, y esta podría ser una de ellas. Y ES un tema importante, o no habría habido artículos e historias sobre el tema durante aproximadamente 3 décadas. ¿Qué pasa con la inercia? Solo haz lo correcto.

    
pregunta 15.01.2016 - 15:19
fuente

11 respuestas

106

En lugar de otra respuesta "Estás equivocado porque" me gustaría adoptar un enfoque ligeramente diferente:

Los primeros sistemas operativos de computadoras fueron escritos por programadores para programadores. Cualquiera que programe y sepa qué punteros son, entiende que "eliminar" un puntero no elimina lo que señala: están separados.

Eso no significa que eliminar no elimine realmente. Ese puntero se ha ido. Tratar de usarlo después de "borrarlo" (liberar la memoria, volver a encuadernar el nombre) puede provocar que sucedan cosas malas.

Pero la historia continúa y ahora los usuarios finales que tienen un concepto diferente de eliminar (como usted) están en la imagen. Ellos (y usted) tienen expectativas que son no irrazonables (cualquier otra cosa que se diga en este hilo).

Pero eliminar nunca significará (para una computadora) lo que crees que debería: hay razones tanto técnicas (detalladas bastante bien en otras respuestas) como sociales (45 años de inercia).

El sistema operativo moderno (y estoy incluyendo * nix) resume muchas cosas para usted: ya no necesita ser un experto en computadoras para poseer / operar una computadora de la misma manera que ya no necesita ser mecánico. poseer / operar un automóvil. El precio que pagas es que esas abstracciones son leaky : hay una desconexión fundamental que nunca puede ser superada. Un "documento" de computadora no es realmente un documento, un "escritorio" no es un escritorio, una "ventana" no es una ventana, etc.

    
respondido por el Jared Smith 15.01.2016 - 17:14
fuente
249

Debido a las siguientes razones:

  • Rendimiento: ocupa recursos que destruyen archivos. Imagina una aplicación que usa cientos o miles de archivos. Sería una gran operación eliminar de forma segura cada uno.
  • Desgaste adicional en las unidades.
  • A veces, la capacidad de recuperar un archivo es una característica del sistema operativo (por ejemplo, Papelera, Papelera de reciclaje, Copia de sombra de volumen).
  • Como señaló Xander, a veces el mecanismo de almacenamiento físico se extrae del sistema operativo (por ejemplo, SSD o unidades de red).
respondido por el SilverlightFox 15.01.2016 - 15:29
fuente
97

No tiene que corregirse porque no es un error.

Los punteros al archivo se eliminan y el área que ocupa el archivo se marca como espacio libre. La unidad luego sobrescribe esta área en su propio tiempo. Está puramente allí para ahorrar desgaste en el disco. Después de todo, los dispositivos de almacenamiento (especialmente los SSD) tienen un número limitado de veces que pueden escribir antes de fallar. La mayoría de los usuarios no apreciarían la falla de su unidad después de 6 meses.

Existen soluciones seguras con las herramientas disponibles para limpiar de forma segura el espacio libre en un disco duro.

    
respondido por el Virtual Anomaly 15.01.2016 - 16:12
fuente
75

Parece que tienes un problema de redacción con el término eliminar y una expectativa errónea sobre lo que debería hacer la funcionalidad.

Puede consultar la definición simple en el sitio web de Merriam-Webster:

  

eliminar : para eliminar (algo, como palabras, imágenes o archivos de computadora) de un documento, grabación, computadora, etc.

El objetivo de la función de eliminar es eliminar los objetos seleccionados de su ubicación actual. Se pueden mover a otra ubicación temporal (la papelera de basura) para evitar cualquier pérdida accidental, o el espacio que ocuparon podría marcarse como libre.

Compare esto con la definición de borrar por ejemplo:

  

erase : para eliminar (algo que se haya grabado) de una cinta (como una cinta de video o una cinta de audio) o un disco de computadora; también: para eliminar material grabado de (una cinta o disco)

     

: para eliminar (algo escrito) frotando o raspando para que ya no se pueda ver

     

: para eliminar algo escrito desde (una superficie)

Este realmente va a un nivel inferior, aquí no solo estamos eliminando el archivo de la carpeta, estamos eliminando los datos del archivo del disco, y en esta sutileza se encuentra la diferencia.

Borrar es la palabra que más puede encontrar en el mundo de Windows. En el mundo de Unix, puede encontrar borrado que describe el proceso desde un punto de vista más técnico. :

  

limpiar : para limpiar o secar (algo) con una toalla, tu mano, etc.

     

: para eliminar (algo) frotando

     

: para mover (algo) sobre una superficie

¿Por qué los sistemas operativos no hacen esto de forma predeterminada? Por varias razones:

  • Los usuarios domésticos comunes no necesitan dicha función, todo lo que necesitan es simplemente eliminar un archivo de una carpeta o, en el caso de unidades externas, asegurarse de que se limpie por completo (formato "lento" en términos simples ). Rara vez necesitan borrar un único archivo específico.

  • Los usuarios domésticos comunes en realidad no desean dicha función. Verá que el valor predeterminado no es solo no borrar el archivo, sino que tampoco lo elimina: en su lugar, se mueve a la papelera porque los usuarios domésticos esperan que su sistema operativo pueda guardarlos en caso de una manipulación incorrecta. A menudo tiene que usar una combinación de teclas específica (Shift + Del) para eliminar un archivo sin pasar por la papelera.

  • Finalmente, tal opción puede no ser fácil o incluso imposible de implementar. La evolución tecnológica ha agregado varias capas lógicas y físicas en torno a sus datos reales:

    • Algunos sistemas operativos toman instantáneas regulares del contenido del sistema de archivos, en tal caso su archivo podría estar incluido en una o varias de estas instantáneas. Puede ser complicado garantizar el correcto borrado de archivos en tales condiciones sin poner en peligro la integridad de las instantáneas.

    • Como se mencionó en otras respuestas y comentarios, para aumentar la vida útil de su dispositivo de almacenamiento, existe un nivel de abstracción entre el almacenamiento real y cómo lo ve el sistema operativo. En tal caso, si bien el sistema operativo puede hacer todo lo posible para garantizar que los datos del archivo se eliminen en el nivel del sistema de archivos, no tiene ninguna forma de garantizar que se haya borrado efectivamente en el nivel de almacenamiento.

Por un lado, tiene el sistema operativo que explota en términos de archivos (para simplificar) pero realmente no le importa el almacenamiento de bytes, en el otro lado tiene el firmware del dispositivo de almacenamiento que explica en términos de bytes pero no sabe nada. sobre los archivos y cómo se configura realmente el sistema de archivos.

Entonces, ¿esto significa que todo está perdido y debemos esperar un futuro improbable para que el sistema de archivos se implemente de forma nativa en el firmware del dispositivo de almacenamiento? No, pero lo que debe hacer depende de su preocupación real:

  • Si su inquietud es sobre los datos a nivel de su sistema de archivos, entonces tiene un software de terceros disponible que le agregará una nueva opción de borrado / borrado a sus menús contextuales. Sin embargo, debe asegurarse manualmente de que las copias de estos archivos no estén presentes en ninguna copia de seguridad y copia de seguridad del sistema de archivos, ya que esto requiere una decisión caso por caso que el sistema operativo no puede hacer por usted (no desea el asistente de borrado de su sistema operativo). para atornillar tu respaldo o para ayudarte, ¿verdad?).

  • Si su preocupación es sobre los datos almacenados físicamente en su dispositivo de almacenamiento, use el cifrado del sistema de archivos. Esto asegurará que los posibles datos de "fugas" debidos a la nivelación del desgaste y al manejo inadecuado de los bloques no puedan ser explotados por cualquiera que tenga en sus manos su dispositivo de almacenamiento.

respondido por el WhiteWinterWolf 15.01.2016 - 16:53
fuente
12

Por razones de rendimiento. Eliminar el archivo del índice y declarar que la zona donde estaba el archivo ahora es gratis y se puede reutilizar es mucho más eficiente que borrar todos los datos de esa zona.

    
respondido por el Benoit Esnard 15.01.2016 - 15:22
fuente
8

No todos están de acuerdo con su definición de lo que debería significar "eliminar".

Para el 99.9% de los usuarios, no les preocupa que alguien esté buscando información. Quieren espacio para almacenar más episodios de Teletubbies torrent. Para la mayoría de las personas, simplemente no haber reservado el espacio para el archivo es suficiente.

Luego está el grupo de personas de las que eres parte, que quieren borrar el archivo para que no pueda recuperarse. Sin embargo, ¿consideró correctamente las copias en caché del archivo que pueden estar en otra parte de su disco duro? En realidad, puede ser difícil asegurarse de que algo se elimine por completo. Para alguien que quiere una característica como esta, es posible que ya haya equilibrado las preguntas de seguridad, pero ¿cree que el 99.9% lo hizo?

Finalmente, considera a los que realmente se preocupan por borrar sus secretos. El proceso estándar del gobierno es tirar los discos duros en un molinillo. ¿Por qué? ¿Sabía que cuando borra el archivo, algunas de las propiedades magnéticas del disco mantienen sus datos accesibles? El cabezal del disco duro no puede acceder a él, pero saque el plato y póngalo en un costoso lector magnético, que puede extraer datos.

Si el gobierno desea reutilizar el disco duro, el proceso estándar es un borrado 7 veces, donde se escribe 7 veces en cada sector del disco. Usualmente solo usan el molinillo, porque este proceso es tan intensivo mecánicamente que la mayoría de los discos ni siquiera sobreviven al encuentro.

¿Qué significa 'eliminar' de todos modos?

EDITAR: Intenté dibujar algunos puntos y dejar que otros dibujen las líneas, pero parece que podría ayudarme a dibujar la línea también. La seguridad siempre implica compromisos. Pocas personas entienden la seguridad lo suficientemente bien como para elegir correctamente el nivel de compromiso. Para aquellos que pueden, puedes dividir a las personas en tres categorías. Hay una categoría de personas que están menos preocupadas por la seguridad y odiarán un producto por ofrecer más seguridad de la que quieren al precio de la facilidad de uso. Hay una categoría de personas que están más preocupadas por la seguridad que usted, y se sentirán frustradas por la falta de seguridad en el producto. Finalmente, hay una categoría con usted, que está contenta con ese balance.

Si todos tienen su propia definición de lo que es "suficientemente seguro", hacer que los archivos de borrado "correctos" desde el principio sean más difíciles de lo que parece.

    
respondido por el Cort Ammon 16.01.2016 - 18:14
fuente
6

En realidad estás arruinando dos procedimientos diferentes : la eliminación y limpieza segura . La primera es solo una operación estándar dependiente de FS, una determinada y estandarizada . El segundo, el borrado seguro , tiene muchos enfoques, grados de protección contra la quiebra, estándares, etc. Debido a este hecho, es lógicamente correcto, que si necesita la segunda categoría de uno, eres responsable de seleccionar y activar un mecanismo adecuado en tu propia situación única . No hay una implementación común y estandarizada en cada caso / tarea / entorno para el borrado seguro.

    
respondido por el Alexey Vesnin 16.01.2016 - 22:53
fuente
6

Por la misma razón que los recolectores de basura del mundo real no destruyen todo antes de tirarlo a su camión.

Hay dos razones principales por las que las personas pueden deshacerse de objetos o información:

  1. Desean evitar su uso por cualquier otra persona (o quizás alguna persona o personas específicas).

  2. No creen que los elementos tengan suficiente valor para nadie como para justificar el costo de mantenerlos o de encontrar a alguien para quien puedan ser útiles.

Los que se están deshaciendo de las cosas por la primera razón deberían destruirlas para inutilizarlas, pero para aquellos que se están deshaciendo de las cosas por la segunda razón, es preferible minimizar los gastos restantes restantes asociados con los artículos. en cuestión. Debido a que las computadoras generan una gran cantidad de información que se volverá inútil después de un tiempo relativamente corto, y porque, para la mayoría de las computadoras, es poco probable que gran parte de la información cause daño a alguien si se libera, en muchos casos hay pocos beneficios para Destruyendo deliberadamente la información. Es suficiente para garantizar que cualquier espacio que haya ocupado la información esté disponible para ser reutilizado cuando sea necesario.

    
respondido por el supercat 21.01.2016 - 18:10
fuente
2

¿Por qué los sistemas operativos no eliminaron los archivos de forma segura desde el principio?

¿Se refiere al inicio de la eliminación o al inicio de los sistemas operativos? Los primeros sistemas operativos intentaban concentrarse en los avances tecnológicos, como almacenar cosas en discos duros en lugar de disquetes o tarjetas perforadas. No era necesario que el sistema operativo hiciera nada especial para hacer imposible recuperar los datos de las unidades de disquete. (Lo siento, solo me divierto un poco hurgando en la fiabilidad de las unidades de disquete). En aquellos días, la capacidad de "guardar" era una gran cosa. Para realizar el mantenimiento de archivos, como poder "eliminar", puede ser una opción de menú oculta y rara vez utilizada. "Eliminar de forma segura" parecería una tontería para las personas que simplemente podrían tirar el disco o grabarlo primero. ¿Por qué usar la unidad de disquete ruidosa, que tenía velocidades mucho más bajas de lo que estamos acostumbrados hoy en día, para esperar medio minuto o más solo para que pueda sobrescribir las unidades con ceros? En el día en que nadie entendió lo que era un "doble clic", porque ni siquiera tenían un mouse y, por lo tanto, ni siquiera hicieron un solo clic, y pensaron que "copiar y pegar" era una tecnología súper avanzada, que atraían a la gente. incluso entender el propósito hubiera sido bastante desafiante.

Luego, cuando aparecieron los discos duros, los sistemas operativos simplemente hicieron lo más sencillo, que es utilizar el mismo código de computadora que se ha demostrado confiable para las unidades de disquete.

Y ES un tema importante, o no habría habido artículos e historias sobre el tema durante aproximadamente 3 décadas.

En realidad, esto puede ser más una reflexión sobre los objetivos del periodismo para escribir cosas que las personas puedan encontrar interesantes, o puede ser el resultado de esfuerzos educativos. Mucha gente simplemente no entiende que eliminar no es permanente, y es bueno que las personas entiendan las cosas, por lo que la educación es algo positivo. Esto no significa que se deba cambiar el comportamiento predeterminado de softare.

 Si algunas personas sienten que es importante y deberían ser parte del sistema operativo, ¿por qué no es parte del sistema operativo?

Porque algunas personas sienten que no es importante. Aunque la limpieza puede ser mucho más útil para algunas personas (que son, por supuesto, gratuitas y bienvenidas a limpiar (en lugar de eliminar) si así lo desean), diferentes personas pueden tener diferentes prioridades. Yo, por un lado, elimino cosas para tener espacio en disco disponible en lugar de espacio en disco usado, y acelerar acciones que afectan a todos los archivos (como copiar todo el espacio en disco usado en un disco duro), por lo que no necesito para ver los nombres de los archivos antiguos, y para que no abra accidentalmente un archivo antiguo cuando quiero un archivo nuevo. Eliminar es una forma efectiva de ocultar datos no deseados (como datos antiguos) del software para que el software no use esos datos no deseados. Antes de comenzar a realizar copias de seguridad de los datos de manera más confiable, en realidad aprecié la posibilidad ocasional de usar un software de recuperación que pudiera "recuperar" los datos. Como han expresado otros, la limpieza puede causar desaceleraciones adicionales y "desgaste" adicional. Dado que mis computadoras no han estado en presencia de personas que me preocupan, pueden revisar mis datos eliminados para tratar de aprender algo que esperaba que fuera secreto, limpiar para mí nunca ha sido una gran prioridad para mí. Con todo esto en mente, en respuesta a su última afirmación, "Simplemente haga lo correcto", creo que la eliminación ha sido lo "correcto" para mis escenarios de uso con mucha más frecuencia que la limpieza. Creo que la razón simple más grande, que responde a muchas de sus preguntas, es que identificar qué comportamiento es lo "correcto" para la mayoría de los escenarios podría no ser tan sencillo como le está dando crédito.

    
respondido por el TOOGAM 19.01.2016 - 20:20
fuente
2
  

¿Y por qué todavía no hacen esto?

Las otras respuestas han respondido por qué no se hizo en el pasado (rendimiento, expectativas del usuario, etc.), así que solo agregaré una nota sobre por qué todavía no se ha hecho. Uno de los problemas es que la eliminación segura solo se considera una solución de seguridad parcial: eliminará una copia del archivo, pero la mayoría de las aplicaciones modernas dejarán huellas sustanciales detrás: búferes de historial (deshacer), copias de respaldo, etc. reunido. También existe el problema de los archivos a los que se accede antes de que se eliminen (por ejemplo, usted iba a eliminar ese archivo en su unidad de forma segura, pero alguien robó la unidad antes de que tuviera la oportunidad). Por estas razones, los sistemas operativos modernos en su lugar han implementado un cifrado completo para el almacenamiento del usuario, lo que hace innecesaria la eliminación segura. Con los datos de usuario cifrados, aunque la unidad retiene la imagen de un archivo "eliminado", todos los rastros de ese archivo (y todos los demás archivos) están ocultos para un atacante que no tiene la clave de descifrado. Chrome OS, Android y iOS ahora están cifrando los datos del usuario de manera predeterminada, por lo que, al menos en estos sistemas, hay poca necesidad de eliminar archivos individuales de forma segura.

    
respondido por el bain 19.01.2016 - 22:34
fuente
1

Otras respuestas son buenas y han cubierto la pregunta completamente a nivel técnico. Pero creo que se solicita otra respuesta que tiene una visión diferente del problema, ya que (IMHO) esta pregunta no es realmente una pregunta técnica (preguntar por qué algo no se hizo de manera diferente es más una decisión comercial que técnica).

La pregunta se pregunta por qué el sistema operativo no elimina realmente los datos. El fabricante del sistema operativo puede hacer que haga lo que quiera. Ciertamente, no hay razón para que alguien no pueda construir un sistema operativo que pueda eliminar los datos. Pero ¿por qué lo harían? Intente cambiar la pregunta, ¿por qué alguien construiría un sistema operativo que elimine datos cuando sea fácil descargar una utilidad que lo haga por usted? Además, generalmente es la filosofía de que los sistemas operativos deben ser minimalistas y solo deben contener las características necesarias para el funcionamiento de la computadora.

No estoy tratando de ser duro con mi respuesta, lo que estoy diciendo es que la pregunta parece ser hecha desde una perspectiva equivocada y faltan conocimientos preliminares.

    
respondido por el Celeritas 22.01.2016 - 08:26
fuente

Lea otras preguntas en las etiquetas