The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Tails, opennews (ok), 18-Апр-14, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


16. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –3 +/
Сообщение от Пушистик (ok), 19-Апр-14, 01:08 
А оперативная память с перезаписью очищается или просто удаляется адресация?
Ответить | Правка | Наверх | Cообщить модератору

18. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от fi (ok), 19-Апр-14, 01:48 
а нафига? Если бы Сноудена взяли, то без компа пошел бы на зону.
Ответить | Правка | Наверх | Cообщить модератору

22. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –1 +/
Сообщение от Аноним (-), 19-Апр-14, 02:28 
> А оперативная память с перезаписью очищается или просто удаляется адресация?

Очищается только прямая адресация, а косвенная просто удаляется. </>

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

32. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –1 +/
Сообщение от Аноним (-), 19-Апр-14, 03:02 
> А оперативная память с перезаписью очищается или просто удаляется адресация?

Если записать новые значения поверх старых - очищается, куда ж она денется. А если только освободить регион памяти - его отдадут другим программам, а что там было - сохранится. По идее программы должны при инициализации прописывать в переменные значения которые задуманы програмером. Но не обязаны. И если кому захочется посмотреть "а что же там лежало до меня", сделав пару нехитрых фокусов это вполне может получиться.

Поэтому параноидальные криптографические программы перетирают ключи после того как они перестали быть нужны. А хреново реализованные, типа openssl, в паре с программами писанными теми кто в криптографии по нулям - теряют ключи и чувствительные данные. Как минимум в памяти системы, а если не повезло то и вот так вот, в сеть, если баг позволяет по памяти процесса пошариться.

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

35. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –1 +/
Сообщение от Led (ok), 19-Апр-14, 03:17 
>> А оперативная память с перезаписью очищается или просто удаляется адресация?
> Если записать новые значения поверх старых - очищается, куда ж она денется.
> А если только освободить регион памяти - его отдадут другим программам,
> а что там было - сохранится.

Откуда такие "познания"?

Ответить | Правка | Наверх | Cообщить модератору

38. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Аноним (-), 19-Апр-14, 06:15 
> Откуда такие "познания"?

Из факинг мануалов на malloc(), например. Это "неиницилизированная" память, которая вполне может содержать то что было раньше. В конкретной системе и т.п. это может быть и не так, но этого никто не *гарантирует*. Поэтому программы которые имеют дело с ценными вещами типа ключей шифрования - явным образом вытирают ключи, как только они перестали требоваться, чтобы исключить шансы получения подобных ситуаций. Ну это если их писали нормальные параноики, у которых ключи не текут черти-куда. Впрочем, особо параноидальные граждане помнится накодили вариант AES с хранением ключа в регистрах, чтобы ключ ну совсем никак не утекал из памяти, т.к. регистры не ее часть :).

Ответить | Правка | Наверх | Cообщить модератору

39. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Led (ok), 19-Апр-14, 06:48 
>> Откуда такие "познания"?
> Из факинг мануалов на malloc(), например. Это "неиницилизированная" память, которая вполне
> может содержать то что было раньше.

...в этом процессе. После завершения процесса память возвращается ядру (ядро помечает её как свободную). При выделении памяти новому процессу, ядро очищает выделяемые страницы (забивает их нулями). Дя параноиков есть grsecurity - там патч на предмет того, чтобы занулять страницы стразу после освобожнеия, а не при выделении.

Ответить | Правка | Наверх | Cообщить модератору

41. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –2 +/
Сообщение от linux must _RIP__ (?), 19-Апр-14, 09:13 
> При выделении памяти новому процессу, ядро очищает выделяемые страницы (забивает их нулями).

отсыпь мне такой же дури? или своего драгдиллера сдай..  не зануляется память - ибо дорого это.  а malloc не всегда использует /dev/zero для своей работы. ты путаешь с bss сегментами. а куча / стек вполне могут содержать что угодно - да и дорого это занулять все что не попадя.

hint. если убрать обнуление quota info для иноды когда квота не включена - можно нехило поднять производительность.

Ответить | Правка | Наверх | Cообщить модератору

49. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –1 +/
Сообщение от Пушистик (ok), 19-Апр-14, 11:23 
Хорошо, если этот дистр не использует накопитель для полной копии памяти в /proc, и для swap. А то пока на носителе нулями или рандомом (что гораздо быстрее) забьёшь всю инфу, много времени пройдёт.
Ответить | Правка | Наверх | Cообщить модератору

58. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +2 +/
Сообщение от Xasd (ok), 19-Апр-14, 13:39 
> не зануляется память - ибо дорого это

дорого это на каждый чих -- спрашивать память у ядра. но реальные программы так не делают, они РЕДКО спрашивают память у ядра (стараются использовать повторно то что уже спрашивали.. для этого существует в программах свой собственный манагер памяти) и именно по этой же причине -- операция освобождения памяти -- не возвращает память обратно ядру (манагер памяти -- оставляет освобождённый участок памяти у себя на прозапас, вместо того чтобы вернуть его ядру).

а вот занулить один разок участок памяти -- для ядра это не дорогая операция. с учётом того что эта операция производится не часто -- то она вообще не заметно влияет на производительность.

поэтому ядро -- как раз таки-зануляет память, перед тем как её выделить.

если ты в программе заиспользовал malloc и там вдруг оказался НЕпустой участок памяти -- тыг это тот самый участок который уже бывал в этой программе ранее, а не от другой программы.

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

64. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –2 +/
Сообщение от Пушистик (ok), 19-Апр-14, 15:32 
Если каждая прога будет для себя память резервировать на будущее прозапас, ничего хорошего из этого не выйдет. Так совесем без памяти остаться можно. После чего, система наглухо виснет.
Ответить | Правка | Наверх | Cообщить модератору

66. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +2 +/
Сообщение от Xasd (ok), 19-Апр-14, 16:25 
> Если каждая прога будет для себя память резервировать на будущее прозапас, ничего хорошего из этого не выйдет.

но ведь оно так и происходит.. и норм -- ни кто не жалуется (кроме пару стариков, рассказывающих о том что раньше трава была зелёнее :))

ды и чего жаловаться-то -- в компьютерах сейчас по 16G оперативки (в обычных компах, а не в самых крутых)..

> Так совесем без памяти остаться можно.

главное чтобы не было бы утечек памяти. а если утечка памяти есть -- то хоть  с манагером-памяти хоть без манагера-памяти -- всё равно результат будет плачевный.

Ответить | Правка | Наверх | Cообщить модератору

69. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –5 +/
Сообщение от Пушистик (ok), 19-Апр-14, 16:49 
4,6,8 GB обычно стоит. В 16 GB оперативы сейчас нет никакого смысла, и через 2 года не будет. Хотя, если хочется показать всем, на сколько ты крутой...
А вот проц помощнее поставить, это да и видяшку поновее, да покруче, чтобы графика в игрушках была покрасивше.
Ответить | Правка | Наверх | Cообщить модератору

89. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Аноним (-), 19-Апр-14, 22:09 
Никогда не приходилось запускать одновременно ~6 виртуалок? Два сервачка с репликация для тестов. И пару - четвёрку клиентов для проверки нагрузки и параллельных запросов? Это при открытом браузере со 100500 вкладок и Эклипсе. И неплохо бы, чтобы при этом осталось много памяти для индексирования содержимого диска, дабы ускорить доступ к наиболее часто используемым файлам.
Ответить | Правка | Наверх | Cообщить модератору

98. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –1 +/
Сообщение от Аноним (-), 20-Апр-14, 00:42 
> Никогда не приходилось запускать одновременно ~6 виртуалок?

Нет. Хотя моих скромных 8 гигов под это хватит. На рабочие станции беру по 4гб не парясь. Реально используется не больше 2гб.

Ответить | Правка | Наверх | Cообщить модератору

146. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от danfe (ok), 22-Апр-14, 15:05 
Давно уже 4/6/8 гигов мало, окститесь: ZFS + привычка монтировать /tmp и build scratch space как tmpfs (без ограничения размера) очень быстро приводят к выводу, что 16 — это минимум для комфортной работы сегодня.

Я вообще удивляюсь, например, почему матери на топовые амд'шные процы только до 32-х поддерживают, в то время как собрать домашний комп на относительно недорогом и старом i7-3930K можно и с 64-мя гигами.

Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

102. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Аноним (-), 20-Апр-14, 02:41 
>> Если каждая прога будет для себя память резервировать на будущее прозапас, ничего хорошего из этого не выйдет.

...
>> Так совесем без памяти остаться можно.
> главное чтобы не было бы утечек памяти. а если утечка памяти есть
> -- то хоть  с манагером-памяти хоть без манагера-памяти -- всё
> равно результат будет плачевный.

Звездец, я такого бреда как здесь давно не читал. Что вы курите?!

Итак. Программы резервируют ВИРТУАЛЬНУЮ память. Грубо говоря, они говорят операционке: "Дай мне 2 Гб памяти", а она тебе: "Держи, вот тебе начальный адрес этих 2 Гб". А на самом деле, ничего не дала. Это как вклад в банк. Вроде у тебя есть деньги, а на самом деле ими пользуются совсем другие люди (берущие в кредит). А вот реальное выделение страниц памяти начнётся, когда туда данные писать начнут. То есть равносильно, что ты из банка захотел часть денег забрать и он тебе возвращает те, которые в резерве есть.

Именно поэтому у вас может быть 10 прог, каждая из которых выделила себе по 4 Гб оперативки на компе, где стоит всего 2 ГБ. При этом ещё и свободно будет около половины оперативки.

Но, разумеется, если все процессы будут делать этой памяти memset, забивая нулями (очищая), то памяти всем не хватит, ибо понадобится сразу 40 Гб оперативки. Большая часть процессов просто будет убита и всё рухнет. Это как с банками. Если сразу все пользователи захотят забрать свои деньги, то банк не сможет их вернуть (резерв не такой уж и большой) и банк рухнет.

И да, если до кого-то не дошло ещё, по умолчанию malloc _не очищает память_. (man 3 malloc, первый абзац).

Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

105. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Led (ok), 20-Апр-14, 03:37 
> И да, если до кого-то не дошло ещё, по умолчанию malloc _не
> очищает память_. (man 3 malloc, первый абзац).

Ядро очищает.

Ответить | Правка | Наверх | Cообщить модератору

112. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –1 +/
Сообщение от Аноним (-), 20-Апр-14, 12:37 
Да? Можно поинтересоваться, в какой момент времени? Мне даже уже интересно узнать вашу логику.
Ответить | Правка | Наверх | Cообщить модератору

113. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –1 +/
Сообщение от Аноним (-), 20-Апр-14, 12:54 
> Да? Можно поинтересоваться, в какой момент времени? Мне даже уже интересно узнать
> вашу логику.

А, извиняюсь, проверил, действительно всё нулями забито, даже если я в 0-й байт что-то запишу (то есть выделится реальная страница). Если кому интересно, ниже тест.

gcc -o0 -std=c99 main.c -o main

#include <stdlib.h>
#include <stdio.h>

int main(int argv, char **args)
{
    char *m = NULL;
    for (int i = 0; i < 1000000; i++) {
        int size = 1024*8;
        m = malloc(size);
        m[0] = 13;
        for (int k = 1; k < size; k++) {
            if (m[k] != 0) {
                printf("Found! %c\n", m[k]);
            }
        }
    }
}

Тогда попутно вопрос, есть ссылка на доки, где это поведение описано?

Ответить | Правка | Наверх | Cообщить модератору

122. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Led (ok), 20-Апр-14, 20:12 
> Да? Можно поинтересоваться, в какой момент времени? Мне даже уже интересно узнать
> вашу логику.

Уроки учи, я репетиторством бесплатно не занимаюсь.

Ответить | Правка | Наверх | Cообщить модератору

118. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  –1 +/
Сообщение от Пушистик (ok), 20-Апр-14, 16:53 
Прога может запросить энное количество памяти и при этом её полностью заграбастать себе, хотя в реале её пользовать не будет.
А ОС будет думать, что вся эта память занята.
Об этом я и пишу.
Ответить | Правка | К родителю #102 | Наверх | Cообщить модератору

134. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +1 +/
Сообщение от odd.mean (ok), 21-Апр-14, 11:22 
А вы какие буквы (слоги?) в вышеприведённой дискуссии читали? Чётные, нечётные или случайные (или какой-то более интересный паттерн)?
Ответить | Правка | Наверх | Cообщить модератору

82. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от qux (ok), 19-Апр-14, 21:18 
> Если каждая прога будет для себя память резервировать на будущее прозапас, ничего
> хорошего из этого не выйдет. Так совесем без памяти остаться можно.
> После чего, система наглухо виснет.

Каждая не каждая, но отключить это уже не всегда можно.
https://www.kernel.org/doc/Documentation/vm/overcommit-accou...

Выставьте у себя на десктопе в 2 и поработайте. Если используете что-то на Qt, вот вам сразу, чтобы не искали: https://bugzilla.redhat.com/show_bug.cgi?id=877711

Если нет, то поделитесь опытом, самому интересно.

Ответить | Правка | К родителю #64 | Наверх | Cообщить модератору

80. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Led (ok), 19-Апр-14, 20:33 
>[оверквотинг удален]
> дорого это на каждый чих -- спрашивать память у ядра. но реальные
> программы так не делают, они РЕДКО спрашивают память у ядра (стараются
> использовать повторно то что уже спрашивали.. для этого существует в программах
> свой собственный манагер памяти) и именно по этой же причине --
> операция освобождения памяти -- не возвращает память обратно ядру (манагер памяти
> -- оставляет освобождённый участок памяти у себя на прозапас, вместо того
> чтобы вернуть его ядру).
> а вот занулить один разок участок памяти -- для ядра это не
> дорогая операция. с учётом того что эта операция производится не часто
> -- то она вообще не заметно влияет на производительность.

Особенно с учётом того, что эта операция происходит только перед попыткой записи в страницу памяти, до того вся выделенные ядром страницы - это ссылки на физическу zero-page, можешь читать их - хоть обчитайся.

Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

79. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Led (ok), 19-Апр-14, 20:26 
То, что ты идиот, и так давно известно
Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

123. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Аноним (-), 20-Апр-14, 20:25 
> отсыпь мне такой же дури? или своего драгдиллера сдай..  не зануляется
> память - ибо дорого это.  

В пингвине таки зануляется, специально проверил. Но этого никто не гарантировал и в других ОС это может быть и не так.

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

128. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Аноним (-), 20-Апр-14, 21:48 
Интересно, а что насчёт этого сказано в стандарте POSIX?
Ответить | Правка | Наверх | Cообщить модератору

129. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Led (ok), 20-Апр-14, 22:17 
> Интересно, а что насчёт этого сказано в стандарте POSIX?

Тяжело набрать 'man malloc' и прочитать?

При чём тут POSIX?

Если не слышал про MMU - сходи хоть на википедии почитай.

Ответить | Правка | Наверх | Cообщить модератору

94. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Аноним (-), 19-Апр-14, 23:08 
>> может содержать то что было раньше.
> ...в этом процессе.

А вот этого ^^^ никто IIRC никто не требует по стандартам, там честно говорят что память не инициализированная. И кто там как с ней поступил - довольно отдельный вопрос. Если некто достаточно умен чтобы чистить память - это хорошо, но что нам гарантирует именно такое поведение? Я какое-то требование на такое поведение упустил? В криптографии оптимизм - плохое качество. В общем случае данные остаются в памяти. То что конкретная система может быть и протрет их при выделении нулями - может быть. Но гарантий как я понимаю никаких.

> После завершения процесса память возвращается ядру (ядро помечает её как свободную).
> При выделении памяти новому процессу, ядро очищает выделяемые страницы (забивает их нулями).

Осталось только выяснить про какое именно ядро и какой ОС говорил благородный дон. Вообще с точки зрения программы (особенно портабельной, а у чистой алгоритмики наподобие криптографии нет причин не быть портабельной) глупо надеяться на какое-то конкретное поведение конкретного ядра - это при случае приведет к залету в стиле heartbleed если у юзера окажется "не та" система, версия ядра и прочее.

> Дя параноиков есть grsecurity - там патч на предмет того, чтобы занулять
> страницы стразу после освобожнеия, а не при выделении.

И это хорошая идея. Но наверное может потенциально тормознуть нечто. Но опять же, это ОС-специфичная штука. Программы которые шифруют что либо - в общем случае не должны надеяться на это и должны затирать ключи шифрования явным образом сами. К тому же им виднее всех когда ключ перестал требоваться.

Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

95. "Брюс Шнайер и Эдвард Сноуден используют Linux-дистрибутив Ta..."  +/
Сообщение от Led (ok), 19-Апр-14, 23:52 
>>> может содержать то что было раньше.
>> ...в этом процессе.
> А вот этого ^^^ никто IIRC никто не требует по стандартам, там
> честно говорят что память не инициализированная. И кто там как с
> ней поступил - довольно отдельный вопрос. Если некто достаточно умен чтобы
> чистить память - это хорошо, но что нам гарантирует именно такое
> поведение? Я какое-то требование на такое поведение упустил? В криптографии оптимизм
> - плохое качество. В общем случае данные остаются в памяти. То
> что конкретная система может быть и протрет их при выделении нулями
> - может быть. Но гарантий как я понимаю никаких.

Малыш, открою тебе секрет: исходники Linux общедоступны - там всё написано. Тебе недоступно, что вновь предоставленная процессу память - это ссылка на единую zero-page? Тогда не прогуливай школу.

>[оверквотинг удален]
>> При выделении памяти новому процессу, ядро очищает выделяемые страницы (забивает их нулями).
> Осталось только выяснить про какое именно ядро и какой ОС говорил благородный
> дон. Вообще с точки зрения программы (особенно портабельной, а у чистой
> алгоритмики наподобие криптографии нет причин не быть портабельной) глупо надеяться на
> какое-то конкретное поведение конкретного ядра - это при случае приведет к
> залету в стиле heartbleed если у юзера окажется "не та" система,
> версия ядра и прочее.
>> Дя параноиков есть grsecurity - там патч на предмет того, чтобы занулять
>> страницы стразу после освобожнеия, а не при выделении.
> И это хорошая идея.

Только если не доверяешь ядру и ядерным модулям - только они могут читать из физической памяти.

> Но наверное может потенциально тормознуть нечто.

Может. Ок. 3% оверхэд получается.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру