All streams
Search
Write a publication
Pull to refresh
127
0
Send message
Так и Skype можно пустить через Tor. Только тамошние скорости убьют видео/аудиозвонки. Обычное следствие компромисса анонимности против быстродействия. Просто не очень честно писать «скайп должен умереть за то, что раскрывает IP», когда этим занимается в том числе Tox.
Skype до сих пор раскрывает ваши IP-адреса, включая локальный. По этим данным можно узнать ваше текущее местоположение и построить карту перемещений.

К слову, Tox как протокол также позволяет узнать IP-адрес, только гораздо проще.
С DNSSec ужасная идея. Почему криптоофицерам и Verisign должен довериться весь мир? Это очевидный провал с точки зрения безопасности. Спецслужбы не будут терзать криптосхемы, пока можно вежливо попросить Verisign сгенерировать внеплановый ZSK, который затем можно использовать в направленных mitm-атаках. Если до сих пор нельзя вежливо попросить — издать за пару дней поправку к закону (хотя с расплывчатыми формулировками законов уже давно всё можно и в США, и в России).

В остальном, описанная схема напоминает toxme.io, который при желании можно развернуть и на своём сервере. Отдельные клиенты, типа Antox даже по умолчанию в нём регистрируются. Только вот по мере роста популярности такие сервисы будут становиться всё более подверженными всем видам атак, свойственным централизованным сетям.
Ohhhh my. If you flipped my switch, that can only mean one thing…
С бинарными +, *, /, pwr(возведение в степень) и унарными -, fct (факториал), sfct (субфакториал), dfct (двойной факториал) получается ряд для [0 — 30], 32, 35, 36, 38, [41 — 57], [62 — 69], 72, 85, 88, 90, 92, [94 — 100].

Ответы
0: (2 * (0 * (1 + 6)))
1: dfct(2 + (-16))
2: (2 * (pwr(1, 6)))
3: (-(2 + 1) + 6)
4: (20 + (-16))
5: -(2 + -(1 + 6))
6: ((2 + (-1)) * 6)
7: (2 + ((-1) + 6))
8: (2 + (1 * 6))
9: (2 + (1 + 6))
10: (2 * ((-1) + 6))
11: (2 + sfct(-(fct(0) + 1) + 6))
12: (2 * (1 * 6))
13: (20 + -(1 + 6))
14: ((-2) + 16)
15: -(-(20 + 1) + 6)
16: (sfct(2) * 16)
17: (sfct(2) + 16)
18: (2 + 16)
19: (20 + -(pwr(1, 6)))
20: (20 * (pwr(1, 6)))
21: (20 + (pwr(1, 6)))
22: ((-2) + fct(-(fct(0) + 1) + 6))
24: fct(20 + (-16))
25: (20 + ((-1) + 6))
26: (20 + (1 * 6))
27: (20 + (1 + 6))
28: (-(20 * 1) + dfct(6))
29: -(20 + -(1 + dfct(6)))
30: (2 * dfct((-1) + 6))
32: (2 * 16)
35: (20 + dfct((-1) + 6))
36: (20 + 16)
38: (sfct(fct(2 + fct(0)) + (-1)) + (-6))
41: (-(2 + fct(0)) + sfct((-1) + 6))
42: ((-2) + sfct((-1) + 6))
43: (-(pwr(2, 0)) + sfct((-1) + 6))
44: sfct((-2) + (1 + 6))
45: (-(2 + 1) + dfct(6))
46: (-(2 * 1) + dfct(6))
47: -(2 + -(1 + dfct(6)))
48: dfct((2 + (-1)) * 6)
49: (2 + ((-1) + dfct(6)))
50: (2 + dfct(1 * 6))
51: (2 + (1 + dfct(6)))
52: (2 + (fct(0) + (1 + dfct(6))))
53: (fct(2 + fct(0)) + ((-1) + dfct(6)))
54: (fct(2 + 1) + dfct(6))
55: (fct(2 + fct(0)) + (1 + dfct(6)))
56: (dfct(2 + (fct(0) + 1)) + dfct(6))
57: (sfct(2 + (fct(0) + 1)) + dfct(6))
62: -(2 + -(pwr((fct(0) + 1), 6)))
63: -(sfct(2) + -(pwr((fct(0) + 1), 6)))
64: (pwr((2 * 1), 6))
65: (sfct(2) + (pwr((fct(0) + 1), 6)))
66: (2 + (pwr((fct(0) + 1), 6)))
67: (20 + ((-1) + dfct(6)))
68: (20 + dfct(1 * 6))
69: (20 + (1 + dfct(6)))
72: (fct(2 + (fct(0) + 1)) + dfct(6))
85: ((-20) + dfct(1 + 6))
88: (2 * sfct((-1) + 6))
90: (2 * (fct(0) + sfct((-1) + 6)))
92: (2 * (-(fct(0) + 1) + dfct(6)))
94: (2 * ((-1) + dfct(6)))
95: -(sfct(2) + -((fct(0) + 1) * dfct(6)))
96: (2 * dfct(1 * 6))
97: (sfct(2) + ((fct(0) + 1) * dfct(6)))
98: (2 * (1 + dfct(6)))
99: (dfct(fct(2 + fct(0)) + 1) + (-6))
100: (20 * ((-1) + 6))
Если трактовать задачу как «записать числа от 0 до 200, используя в формулах только цифры 2, 0, 1, 6 в этом порядке и знаки препинания, в том числе с повторением», то можно выйти на любое целое число через «~-» и «-~». -~2016 = 2017, ~-2016 = 2015, ~-~-2016 = 2014 и т. д.
В частности, 82 можно получить как -ceil(factorial((-2+0) * (~1)) / tan(6)), где tan возвращает тангенс в радианах. Сомнительное достижение.
Для примера установим, что 01 = 1, 016 = 16. Берём операции + − * / fct (факториал) и pwr (возведение в степень) и полным перебором получаем ответы для 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21, 24, 25, 26, 27, 32, 36, 62, 64, 66, 100
Ответы
0: (2 * (0 * (1 + 6)))
1: (2 + -(pwr(1, 6)))
2: (2 * (pwr(1, 6)))
3: (-(2 + 1) + 6)
4: (20 + (-16))
5: -(2 + -(1 + 6))
6: ((2 + (-1)) * 6)
7: (2 + ((-1) + 6))
8: (2 + (1 * 6))
9: (2 + (1 + 6))
10: (2 * ((-1) + 6))
12: (2 * (1 * 6))
13: (20 + -(1 + 6))
14: ((-2) + 16)
15: -(-(20 + 1) + 6)
16: (2 * (fct(0) + (1 + 6)))
18: (2 + 16)
19: (20 + -(pwr(1, 6)))
20: (20 * (pwr(1, 6)))
21: (20 + (pwr(1, 6)))
24: ((2 + (fct(0) + 1)) * 6)
25: (20 + ((-1) + 6))
26: (20 + (1 * 6))
27: (20 + (1 + 6))
32: (2 * 16)
36: (20 + 16)
62: -(2 + -(pwr((fct(0) + 1), 6)))
64: (pwr((2 * 1), 6))
66: (2 + (pwr((fct(0) + 1), 6)))
100: (20 * ((-1) + 6))


Расширим операции до логических |^&~ и целочисленного деления (//). Получаем ответы для [0 — 81], [83 — 86], 89, 90, 95, 96, 99, 100.
Ответы
0: (2 & 16)
1: (20 // 16)
2: (2 % 16)
3: (201 % 6)
4: (20 % 16)
5: ((2 + 1) ^ 6)
6: fct(201 % 6)
7: ((2 + 1) | 6)
8: (2 + (1 * 6))
9: (2 + (1 + 6))
10: (2 * ((-1) + 6))
11: ((~20) % 16)
12: ((-20) % 16)
13: ((~2) + 16)
14: ((-2) + 16)
15: -(2 + (~16))
16: (20 & 16)
17: -(2 | (~16))
18: (2 + 16)
19: -(2 ^ (~16))
20: (20 | 16)
21: (20 + (1 % 6))
22: ((20 * 1) | 6)
23: ((20 + 1) | 6)
24: fct(20 % 16)
25: (20 + ((-1) + 6))
26: (20 + (1 * 6))
27: ~(20 ^ (-16))
28: -(20 ^ (-16))
29: -(201 // (~6))
30: (20 | ((~1) * (~6)))
31: ~(2 * (-16))
32: (2 * 16)
33: (201 // 6)
34: -(2 * (~16))
35: ~((-20) + (-16))
36: (20 + 16)
37: -((-20) + (~16))
38: -((~20) + (~16))
39: ~(20 * ~(1 % 6))
40: -(20 * ~(1 % 6))
41: ~(fct(2 + 1) * (~6))
42: ((~20) * ~(1 % 6))
43: ~(20 + -(pwr((~1), 6)))
44: (20 + fct((~1) + 6))
45: (~(20 * (~1)) + 6)
46: (-(20 * (~1)) + 6)
47: ~((~2) * 16)
48: -((~2) * 16)
49: (~((~2) * (~1)) * (~6))
50: -(~((~20) * (~1)) + (~6))
51: ((~2) * (~16))
52: -(2 * ~(fct(0) + fct((~1) + 6)))
53: ~(~(20 // (~1)) * (-6))
54: (~(20 // (~1)) * 6)
55: ~(~(2 + fct(0)) * ((~1) * (~6)))
56: (~(fct(2 + fct(0)) + 1) * (~6))
57: ((~2) * ~(-((~0) + (~1)) * 6))
58: ~(fct(2 + fct(0)) + ~(pwr((~1), 6)))
59: ~((20 // (~1)) * 6)
60: -((20 // (~1)) * 6)
61: ~(2 + -(pwr((~1), 6)))
62: ~(2 + ~(pwr((~1), 6)))
63: -(2 + ~(pwr((~1), 6)))
64: (pwr((2 * 1), 6))
65: -(2 | ~(pwr((~1), 6)))
66: (2 + (pwr((~1), 6)))
67: -(2 ^ ~(pwr((~1), 6)))
68: -((~2) + ~(pwr((~1), 6)))
69: ~(-(20 // (~1)) * (~6))
70: ((20 // (~1)) * (~6))
71: ~((~2) * fct((~1) + 6))
72: -((~2) * fct((~1) + 6))
74: ~((~2) * -((~0) ^ fct((~1) + 6)))
75: ((~2) * ~(0 + fct((~1) + 6)))
76: ~(~(fct(2 + fct(0)) * (~1)) * (~6))
77: (~((-20) // (~1)) * (~6))
78: ((~2) * ~(fct(0) + fct((~1) + 6)))
79: ~(20 * -((~1) + 6))
80: (20 * ((~1) + 6))
81: (pwr((~2), ((~1) + 6)))
83: ~((~20) * ((~1) + 6))
84: (20 + (pwr((~1), 6)))
85: -(20 ^ ~(pwr((~1), 6)))
86: -((~20) + ~(pwr((~1), 6)))
89: ~(fct(2 + fct(0)) * ~((~1) * (~6)))
90: -(fct(2 + fct(0)) * ~((~1) * (~6)))
95: ~(~(2 + fct(0)) * fct((~1) + 6))
96: -(~(2 + fct(0)) * fct((~1) + 6))
99: ~(20 * (1 + (-6)))
100: (20 * ((-1) + 6))

Как видно, ближе к 100 начинаются проблемы, решаемые использованием других функций. Лично мне этот список функций неочевиден. Выше, например, используют sqrt. <sarcasm>Давайте зададим функцию, возвращающую порядковый номер перестановки чисел 2 0 1 6 с несколькими операторами</sarcasm>.

При проверке исключены варианты с большими степенями (дабы избежать out of memory при вычислении 20**(16!)), python-скрипт выложен на gist.
Когда пользователи скачивают *.torrent-файл с хэшами десятков альбомов, копий тоже нигде не остаётся. «Ущерб» будет посчитан для количества скачавших *.torrent-файл × общее количество файлов в раздаче. Пользователь может скачать для fair-use. Может скачать как обладатель лицензионной копии. Может скачать в /dev/null. Может скачать по ошибке. Может вообще не скачивать файлы с раздачи: он скачал *.torrent-файл, этого уже достаточно для предъявления миллиардных исков автору раздачи. В этом и есть абсурд.
На каждый болт инструмент найдётся более совершенный инструмент, о котором многим ещё предстоит узнать. Понятие «аргументированной критики» субъективно. Чем больше автор статьи напишет «аргументированных» пунктов, тем выше вероятность того, что он покажет провал в знаниях, тогда-то холивар и начнётся. Но всё же даже неудачная попытка сравнить две технологии несёт в себе какую-то новизну (хотя бы в комментариях), а вот вашу статью можно было опубликовать 20 лет назад и никто бы не заметил разницы.

И да, касательно PNG...
image
Во-первых, группа сайтов ТМ это профессиональная социальная сеть по определению (включает «лайки», подписки, избранное; используется для общения на профессиональные темы, обмена опытом и информацией, поиска и предложения вакансий и т. д.).

Во-вторых, на хабре есть замечательная страничка habrahabr.ru/ppa, через которую по открытому каналу передаются паспортные данные (включая фото), СНИЛС, ИНН, WebMoney с размером выводимых средств. Да, лично вас, как читателя, это не касается, но касается меня и многих других авторов.

В-третьих, любой крупный ресурс эксплуатирует доверие пользователей. Например, вы читаете через приложение на андроиде пост вашего любимого разработчика, в котором он даёт ссылку на apk разработанного приложения. В это время взломанный роутер или MITM заменяет все ссылки на вредоносную apk-обёртку. Как скоро вы вспомните, что все клиенты хабра на андроиде работают через HTTP с учётом того, что ни одно приложение не показывает протокол?

Резюмируя вышесказанное, я не вижу ни одного сценария применения протокола HTTP в интернете.

PS: deniskin, верни HTTPS на Geektimes!
всюду HTTPS используется (а тех, кто ленится настроить HTTPS — лично я стараюсь избегать, это говорит об ответственности

… написал artyums на http://geektimes.ru, на котором https когда-то был, да сплыл.
Запатентовали вместо того, чтобы сделать открытым стандартом? Так держать! Теперь для того, чтобы пройти перед Эппломобилем нужно будет провести рукой по горизонтали, перед самсунгомобилем — в любую сторону, перед теслой встать на четвереньки, а перед ламборджини широко раскрыть рот.
Это понятно. Я про то, что для машин за CloudFlare не допускается утечка IP-адреса. По этому скриншоту из статьи можно предположить, что где-то в интернете в открытом доступе есть пары IP-domain, некоторые из которых раскрывают реальные IP-адреса машин за экранами.
А кто-нибудь может подсказать, где IP-адреса регистрирующих машин «will be publicly logged»? Зачем это вообще и что делать пользователям CloudFlare?
Самая быстрая реализация для web, которую я нашёл — это asmCrypto

Тут пишут, что WebCrypto API в разы (если не на порядок) быстрее asmCrypto.
Проксировать трафик ВК в открытых сетях немного странное решение. Конкретно в этом случае гораздо проще перенаправить на https://vk.com. Встроенный аналог HTTPS Everywhere хотя бы на десяток самых популярных сайтов в разы бы повысил безопасность пользователей.
Из этого списка: army.net (внезапно), asia.com, ausi.com, ayna.com. Но smtp-пинги на имя snowden не проходят. Да и какой из этих сервисов даст 47 Гб? Так что свой сервер, наверно.

Information

Rating
Does not participate
Registered
Activity