Запрос Double Click в принципе довольно странен и может насторожить
Честно говоря, не настолько и странен. На моей памяти капча требовала всё больше странных действий, так что я не удивлюсь, если в скором будущем будет требоваться не только двойной клик, но и отжимания на камеру.
В уже упомянутом выше GrapheneOS есть возможность явно указать контакты, которые увидит приложение, называется «Contact Scopes». При этом приложение будет думать, что ему выдан доступ ко всей адресной книге. Ещё есть «Storage Scopes» для контроля доступа к файлам. https://grapheneos.org/usage#contact-scopes https://grapheneos.org/usage#storage-scopes
Я, например, прекрасно понимаю, почему Майкрософту в своё время было выгодно дискредитировать линуксы. Но вы ведь не огромная корпорация и вряд ли мечтаете о монополии. В чём ваша личная выгода говорить так, как вы говорите? Не рациональней ли говорить обратное?
что концепция операционной системы морально устарела
Скажите, а что такое «концепция операционной системы»? Вам до сих пор не даёт покоя микроядро, что ли? И даже если концепция действительно устарела и со временем придёт новая, будет откуда перетащить драйверы и софт.
А, вы про такие VPN. В моей голове дефолтные VPN-протоколы — это OpenVPN и Wireguard, и я очень удивился узнать, что они вдруг стали потенциально опасными.
А что если мы не только хотим знать, кто к нам пришел, но и узнать насколько пришедшее устройство защищено?
Это называется «аппаратная аттестация» и невозможно без аппаратных зондов, заложенных настолько глубоко, что без атомного микроскопа не дотянуться. Эппл такое любит и давно практикует в мобильных устройствах, но начиная с M-серии оно просочилось на десктоп. И хоть оно секьюрно просто до невозможности, мне почему-то ужасно не хочется торопиться в это светлое будущее.
А про какой именно вы VPN и какие именно уязвимости имеете в виду?
Просто, знаете, реализации TLS тоже не застрахованы от уязвимостей. И в SSH. Но почему-то «перестал быть точкой безопасного входа» именно VPN, построенный ровно на тех же самых криптографических принципах.
... по факту Вы обвиняете Майкрософт в том, что Вы невнимательно читали их документацию
Я-то прочитал документацию и в состоянии включить длинные пути в своём коде — но тысячи чужих приложений мне не подконтрольны. Я могу MSDN хоть вслух по ролям разыграть, это никак не поможет мне в ситуации, когда мой проект в визуалстудии не билдится, потому что где-то пути получились длинноваты.
Если я в чём-то и обвиняю Майкрософт, так это в том, что они не желают исправлять свои же легаси-косяки в своём же софте.
Я именно про длину полного пути (которая, окей, 260, а не 255 символов).
MAX_PATH (...) – это ограничение для ANSI-функций WinAPI
Нет, на W-функции оно тоже распространяется, если пути, которые вы в них передаёте, без префикса \\?\. Недавно это ограничение как бы отменили, но для этого приложения должны явно указать в манифесте, что они умеют в длинные пути:
Однако, Майкрософт сами как-то не очень стремятся добавлять поддержку длинных путей в свой софт:
«Проводник» на свежеобновлённой Windows 10 до сих пор полноценно с ними работать не умеет (показывает такие файлы, но не позволяет ничего с ними сделать),
приложения из Microsoft Office до сих пор отказываются открывать такие файлы (я сам не проверял, потому что давно уже их офисом не пользуюсь, но в интернете так пишут),
майкрософтовские же nmake и msbuild не умеют в длинные пути (я вот от них я уже сам неоднократно огребал). Как минимум, еще пару лет назад не умели, сейчас может научились.
Напомню, что основная мысль моего комментария была такая: несчастная функция popen, как бы ни была несовершенна, кровь мою ни разу не пила (а у меня со студенческих времён линукс – основная система на личных компах). В отличие от некоторых древних инженерных решений Майкрософта, которые умудряются портить мне жизнь спустя три десятка лет.
Ну нет, дефайнить min, max не было нормально уже тогда. Хуже было бы разве что задефайнить i и j.
А про длинные пути: другие системы ведь как-то справились. В какой ещё современной операционной системе штатный файловый менеджер до сих пор не умет работать с длинным путями?
оно и сейчас было бы уместно
Лимит в две с половиной сотни символов слишком мал. Ну, лично я хочу иметь возможность копировать каталоги, чекаутить репозитории, монтировать диски и сетевые шары в любой разумный каталог своей системы, не волнуясь о том, не превысит ли в результате какой-нибудь путь лимит майкрософта.
Скажите, а вы любите категоричные комментарии под своими текстами?
Например, такие, где в крайне категоричной форме утверждается, что ваша статья написана ради рекламы телеграм-канала, она не по тематике сайта, и что наличие в ней одновременно тезисов «моя категоричность объяснима» и «категоричность сотрудника неприемлема» — это фундаментальная ошибка атрибуции и двойные стандарты.
Взять хотя бы функцию popen сочиненную "гениальными" отцами-основателями
Можно подумать, в WinAPI мало гениального. Например, только абсолютные гении могли додуматься задефайнить min и max в Windows.h или захардкодить максимальную длину файлового пути (255 байтов хватит всем и навсегда!). Вы мне сейчас скажете, что я не понимаю и это другое, но функция popen мне пока что ни разу не создала проблем на ровном месте, в отличие от.
Т.е. перехватить одновременно оба не получиться.
Ну вы ведь знаете, что это можно сделать, просто не через popen, а через fork, dup2 и exec. Баш же как-то справляется.
Будто бы в целях дисциплины хватило бы и одних отступов.
Как мне казалось, обычно язык программирования или «free-form» (с фигурными скобками или begin/end), или «significant indentation». А тут химера какая-то. Хочется понять, ради чего там эти одинокие точки с запятой, не просто ж так их добавили в язык.
А где у вас там мнение? Я увидел одни только эмоции. С таким пренебрежением рассказываете на весь интернет про едва знакомого человека («снежинка» «с тараканами», «больше она у нас не работала», «полетела дальше на биржу труда»), что аж читать неприятно.
К слову, есть вполне себе легитимные причины хотеть конкретную клавиатуру — больные суставы, например.
Если новый работник за 10 минут решит правильно задачу над которой универовский профессор сидел 2 года (утрирую), то искать работу пойдёт профессор, а не новый работник.
Это гипотетическая ситуация или вы своими глазами такое видели? В моей реальности:
Никто не будет ждать два года, а подключат подмогу значительно быстрее.
Если задачу не могут решить два года и ничего не стряслось, значит, не очень важная задача.
Новопришедшие сотрудники крайне редко способны за десять минут решить то, над чем давно бьются старые.
Решение, придуманное посторонним человеком за десять минут, почти наверняка не учитывает всех требований, и, собственно, не является решением.
В конечном итоге все работают за деньги, которые платят за скорость и правильность. И не важно, хоть ты у инопланетян подсмотрел свое решение - это не важно.
Разным людями деньги платят за разное. Кому-то за скорость и правильность решения, кому-то за ответственность за результат, кому-то за красивые глаза. Если, в конечном счёте, неважно, как именно ты заработал деньги, в университетскую программу для разработчиков нужно срочно добавить курсы по современной моде, актёрскому мастерству и корпоративным интригам.
Решение состоит в том, чтобы [...] обсуждать [...] как chatgpt нам может помочь в создании лучшего решения.
Увы, но нет, это не будет работать. Какое такое «лучшее решение» найдёт при помощи ChatGPT студент, который не владеет базой по предмету и не в состоянии даже говорить с нейросетью на равных?
Кстати, вы себе вообще представляете такое занятие в академическом сеттинге? Вот рассказывет лектор, для примера, про признаки сходимости рядов или законы Кирхгофа — в каком именно месте рассказа ему нужно начать говорить про то, как правильно пользоваться языковыми моделями?
нужно студентам объяснять как правильно/наиболее эффективно его использовать
Нет никакой необходимости делать на этом акцент. Этому студенты и сами научатся.
Вот о чём бы вы рассказали студентам в семестровом курсе «Эффективное использование больших языковых моделей для решения задач {название близкой вашему сердцу дисциплины}»?
Рад слышать, что не потащили весь этот бред от французов. Хотя мне почему-то казалась, что я читал про эти дурные правила именно в контексте российской «Школы-21», буквально несколько лет назад.
либо я не понял требование
У них там есть такие пункты:
A structure’s name must start by s_.
An enum’s name must start by e_
Если им следовать, то, например, каждое упоминание типа структуры оказываются сразу с двумя префиксами — struct (требуется грамматикой C) и s_ (требуется кодстайлом E42).
В условиях отсутствует важная информация — сколько ожидается правил для фильтрации и есть ли в этих правилах какие-то структуры и закономерности, на которые можно опереться при оптимизации.
[...] преподаватели из моего института начали приставать ко мне с вопросами о "безопасной" передаче пароля
Не стоит так высокомерно отзываться о преподавателях, даже если они действительно бегают за вами и умоляют захешировать пароли (в чём я лично сомневаюсь). Иначе зачем вы у них учитесь?
Пример механизма защиты с солью:
В вашем протоколе (по крайней мере, в том виде, в котором вы его описали) есть фатальный недостаток. Если злоумышленник каким-либо способом получит базу данных с хешированными паролями, он сразу же, безо всякого брутфорса и радужных таблиц, сможет авторизоваться от имени любого пользователя системы.
Если я правильно понимаю, вы предлагаете следующую схему (иллюстрация вольным псевдокодом):
server:
# Генерируем «динамическую» соль.
dsalt = gen_random_salt()
session.dsalt = dsalt
send(dsalt)
client:
dsalt = recv()
# А тут уже соль «статическая», но разная для разных пользователей.
h = hash(kdf(password, salt, parameters), dsalt)
send(username, h)
server:
(username, h) = recv()
dsalt = session.dsalt
kdfSavedValue = db.getKdfValue(username)
hExpected = hash(kdfSavedValue, dsalt)
if h == hExpected:
allowAccess()
else:
denyAccess()
Здесь hash — некоторая стойкая хеш-функция с солью, kdf — функция формирования ключа с солью и параметрами (вы называете этот этап «хеширует свой пароль, как это делает сервер»).
Обратите внимание, что в этой схеме для вычисления hExpected не требуются ни соль, ни параметры KDF-функции, поскольку расчёт фактически перенесён с сервера на клиента, а проверяется уже готовый результат. А значит, если у злоумышленника есть слитая база с готовыми результатами, ему достаточно просто вычислить хеш и всё:
Честно говоря, не настолько и странен. На моей памяти капча требовала всё больше странных действий, так что я не удивлюсь, если в скором будущем будет требоваться не только двойной клик, но и отжимания на камеру.
В уже упомянутом выше GrapheneOS есть возможность явно указать контакты, которые увидит приложение, называется «Contact Scopes». При этом приложение будет думать, что ему выдан доступ ко всей адресной книге. Ещё есть «Storage Scopes» для контроля доступа к файлам.
https://grapheneos.org/usage#contact-scopes
https://grapheneos.org/usage#storage-scopes
А зачем?
Я, например, прекрасно понимаю, почему Майкрософту в своё время было выгодно дискредитировать линуксы. Но вы ведь не огромная корпорация и вряд ли мечтаете о монополии. В чём ваша личная выгода говорить так, как вы говорите? Не рациональней ли говорить обратное?
Скажите, а что такое «концепция операционной системы»? Вам до сих пор не даёт покоя микроядро, что ли? И даже если концепция действительно устарела и со временем придёт новая, будет откуда перетащить драйверы и софт.
А, вы про такие VPN. В моей голове дефолтные VPN-протоколы — это OpenVPN и Wireguard, и я очень удивился узнать, что они вдруг стали потенциально опасными.
Это называется «аппаратная аттестация» и невозможно без аппаратных зондов, заложенных настолько глубоко, что без атомного микроскопа не дотянуться. Эппл такое любит и давно практикует в мобильных устройствах, но начиная с M-серии оно просочилось на десктоп. И хоть оно секьюрно просто до невозможности, мне почему-то ужасно не хочется торопиться в это светлое будущее.
А про какой именно вы VPN и какие именно уязвимости имеете в виду?
Просто, знаете, реализации TLS тоже не застрахованы от уязвимостей. И в SSH. Но почему-то «перестал быть точкой безопасного входа» именно VPN, построенный ровно на тех же самых криптографических принципах.
Я-то прочитал документацию и в состоянии включить длинные пути в своём коде — но тысячи чужих приложений мне не подконтрольны. Я могу MSDN хоть вслух по ролям разыграть, это никак не поможет мне в ситуации, когда мой проект в визуалстудии не билдится, потому что где-то пути получились длинноваты.
Если я в чём-то и обвиняю Майкрософт, так это в том, что они не желают исправлять свои же легаси-косяки в своём же софте.
Я именно про длину полного пути (которая, окей, 260, а не 255 символов).
Нет, на W-функции оно тоже распространяется, если пути, которые вы в них передаёте, без префикса
\\?\
. Недавно это ограничение как бы отменили, но для этого приложения должны явно указать в манифесте, что они умеют в длинные пути:Однако, Майкрософт сами как-то не очень стремятся добавлять поддержку длинных путей в свой софт:
«Проводник» на свежеобновлённой Windows 10 до сих пор полноценно с ними работать не умеет (показывает такие файлы, но не позволяет ничего с ними сделать),
приложения из Microsoft Office до сих пор отказываются открывать такие файлы (я сам не проверял, потому что давно уже их офисом не пользуюсь, но в интернете так пишут),
майкрософтовские же nmake и msbuild не умеют в длинные пути (я вот от них я уже сам неоднократно огребал). Как минимум, еще пару лет назад не умели, сейчас может научились.
Напомню, что основная мысль моего комментария была такая: несчастная функция
popen
, как бы ни была несовершенна, кровь мою ни разу не пила (а у меня со студенческих времён линукс – основная система на личных компах). В отличие от некоторых древних инженерных решений Майкрософта, которые умудряются портить мне жизнь спустя три десятка лет.Ну нет, дефайнить
min
,max
не было нормально уже тогда. Хуже было бы разве что задефайнитьi
иj
.А про длинные пути: другие системы ведь как-то справились. В какой ещё современной операционной системе штатный файловый менеджер до сих пор не умет работать с длинным путями?
Лимит в две с половиной сотни символов слишком мал. Ну, лично я хочу иметь возможность копировать каталоги, чекаутить репозитории, монтировать диски и сетевые шары в любой разумный каталог своей системы, не волнуясь о том, не превысит ли в результате какой-нибудь путь лимит майкрософта.
Скажите, а вы любите категоричные комментарии под своими текстами?
Например, такие, где в крайне категоричной форме утверждается, что ваша статья написана ради рекламы телеграм-канала, она не по тематике сайта, и что наличие в ней одновременно тезисов «моя категоричность объяснима» и «категоричность сотрудника неприемлема» — это фундаментальная ошибка атрибуции и двойные стандарты.
Можно подумать, в WinAPI мало гениального. Например, только абсолютные гении могли додуматься задефайнить
min
иmax
вWindows.h
или захардкодить максимальную длину файлового пути (255 байтов хватит всем и навсегда!). Вы мне сейчас скажете, что я не понимаю и это другое, но функцияpopen
мне пока что ни разу не создала проблем на ровном месте, в отличие от.Ну вы ведь знаете, что это можно сделать, просто не через
popen
, а черезfork
,dup2
иexec
. Баш же как-то справляется.Будто бы в целях дисциплины хватило бы и одних отступов.
Как мне казалось, обычно язык программирования или «free-form» (с фигурными скобками или
begin
/end
), или «significant indentation». А тут химера какая-то. Хочется понять, ради чего там эти одинокие точки с запятой, не просто ж так их добавили в язык.Посмотрел на примеры кода в статье. Я правильно понимаю, что товарищи из 1С умудрились спроектировать язык, в котором одновременно:
обязательные отступы и ньюлайны,
обязательный end для каждой конструкции (причём в форме точки с запятой)?
Где-нибудь можно взглянуть на формальную грамматику этого ЯП?
А где у вас там мнение? Я увидел одни только эмоции. С таким пренебрежением рассказываете на весь интернет про едва знакомого человека («снежинка» «с тараканами», «больше она у нас не работала», «полетела дальше на биржу труда»), что аж читать неприятно.
К слову, есть вполне себе легитимные причины хотеть конкретную клавиатуру — больные суставы, например.
Это гипотетическая ситуация или вы своими глазами такое видели? В моей реальности:
Никто не будет ждать два года, а подключат подмогу значительно быстрее.
Если задачу не могут решить два года и ничего не стряслось, значит, не очень важная задача.
Новопришедшие сотрудники крайне редко способны за десять минут решить то, над чем давно бьются старые.
Решение, придуманное посторонним человеком за десять минут, почти наверняка не учитывает всех требований, и, собственно, не является решением.
Разным людями деньги платят за разное. Кому-то за скорость и правильность решения, кому-то за ответственность за результат, кому-то за красивые глаза. Если, в конечном счёте, неважно, как именно ты заработал деньги, в университетскую программу для разработчиков нужно срочно добавить курсы по современной моде, актёрскому мастерству и корпоративным интригам.
Увы, но нет, это не будет работать. Какое такое «лучшее решение» найдёт при помощи ChatGPT студент, который не владеет базой по предмету и не в состоянии даже говорить с нейросетью на равных?
Кстати, вы себе вообще представляете такое занятие в академическом сеттинге? Вот рассказывет лектор, для примера, про признаки сходимости рядов или законы Кирхгофа — в каком именно месте рассказа ему нужно начать говорить про то, как правильно пользоваться языковыми моделями?
Нет никакой необходимости делать на этом акцент. Этому студенты и сами научатся.
Вот о чём бы вы рассказали студентам в семестровом курсе «Эффективное использование больших языковых моделей для решения задач {название близкой вашему сердцу дисциплины}»?
Рад слышать, что не потащили весь этот бред от французов. Хотя мне почему-то казалась, что я читал про эти дурные правила именно в контексте российской «Школы-21», буквально несколько лет назад.
У них там есть такие пункты:
A structure’s name must start by s_.
An enum’s name must start by e_
Если им следовать, то, например, каждое упоминание типа структуры оказываются сразу с двумя префиксами —
struct
(требуется грамматикой C) иs_
(требуется кодстайлом E42).В условиях отсутствует важная информация — сколько ожидается правил для фильтрации и есть ли в этих правилах какие-то структуры и закономерности, на которые можно опереться при оптимизации.
Не стоит так высокомерно отзываться о преподавателях, даже если они действительно бегают за вами и умоляют захешировать пароли (в чём я лично сомневаюсь). Иначе зачем вы у них учитесь?
В вашем протоколе (по крайней мере, в том виде, в котором вы его описали) есть фатальный недостаток. Если злоумышленник каким-либо способом получит базу данных с хешированными паролями, он сразу же, безо всякого брутфорса и радужных таблиц, сможет авторизоваться от имени любого пользователя системы.
Если я правильно понимаю, вы предлагаете следующую схему (иллюстрация вольным псевдокодом):
Здесь
hash
— некоторая стойкая хеш-функция с солью,kdf
— функция формирования ключа с солью и параметрами (вы называете этот этап «хеширует свой пароль, как это делает сервер»).Обратите внимание, что в этой схеме для вычисления
hExpected
не требуются ни соль, ни параметры KDF-функции, поскольку расчёт фактически перенесён с сервера на клиента, а проверяется уже готовый результат. А значит, если у злоумышленника есть слитая база с готовыми результатами, ему достаточно просто вычислить хеш и всё:Что некоторые (многие?) примеры действительно слегка притянуты за уши и тянут на одну-две совы максимум. Не «отбитая дичь», а ожидаемое поведение.