Состоялся (https://lists.cypherpunks.ru/pipermail/govpn-devel/2016-Janu... релиз свободного VPN-демона GoVPN 5.0, предназначенного для создания шифрованных, аутентифицированных и цензуроустойчивых каналов связи поверх UDP или TCP. Реализация ориентирована на высокую безопасность, простоту реализации и лёгкость чтения исходного кода. Программа полностью написана на языке Go и распространяется под лицензией GPLv3. Поддерживается работа в GNU/Linux и FreeBSD.
Для двусторонней несбалансированной (augmented) аутентификации сторон и согласования ключей используется аутентифицируемый по парольной фразе (https://en.wikipedia.org/wiki/Password-authenticated_key_agr... протокол DH-A-EKE (Diffie-Hellman (https://ru.wikipedia.org/wiki/%D0%9F%D1%... Augmented Encrypted Key Exchange (https://en.wikipedia.org/wiki/Encrypted_key_exchange)). Протокол имеет свойство нулевого неразглашения (https://en.wikipedia.org/wiki/Zero-knowledge_password_proof) при котором невозможна offline атака по словарю. Даже при компрометации БД сервера злоумышленник не сможет замаскироваться под клиента. Также имеется защита от атак повторного воспроизведения (https://ru.wikipedia.org/wiki/%D0%90%D1%... дешифровки перехваченного трафика даже при компрометации парольной фразы (свойство совершенной прямой секретности (https://ru.wikipedia.org/wiki/Perfect_forward_secrecy)). Кроме обеспечения конфиденциальности есть возможность скрывать размер сообщения и время их возникновения, путём генерирования постоянного шумового трафика.
Среди новшеств пятой версии, по-сравнению с четвёртой (https://www.opennet.dev/opennews/art.shtml?num=42993), можно отметить:- Появление опционального нешифрованного режима (http://www.cypherpunks.ru/govpn/Encless.html#Encless) работы: используя технологию Chaffing-and-Winnowing (https://en.wikipedia.org/wiki/Chaffing_and_winnowing) обеспечивается конфиденциальность и аутентичность передаваемых данных, но без использования шифрования как такового. Юрисдикции некоторых стран могут привлечь к ответственности за использование шифрования, могут принудить к выдаче ключей шифрования, но не ключей аутентификации или подписи. Этот режим может пригодится именно в подобных случаях: технически ничего кроме аутентификации не применяется к передаваемому трафику. Но этот режим требователен и к процессору и лишнему передаваемому трафику.
- Вместо алгоритма PBKDF2, используемого для хэширования парольных фраз, задействован Argon2d (https://password-hashing.net/#argon2) - победитель конкурса Password Hashing Competition.
- Множество мелких исправлений, упрощение конфигурирования на стороне сервера.
URL: https://lists.cypherpunks.ru/pipermail/govpn-devel/2016-Janu...
Новость: http://www.opennet.dev/opennews/art.shtml?num=43633
Самодписанный сертификат по ссылке. Действительно какие-то панки.
Не знаю как вы определяете кем подписан сертификат, но подписан он CAcert.org.
Cacert - это боль.
Да, к сожалению. Нельзя сказать, что Cacert совсем уж не взлетел. Но летит он как низко-низко.
свободный, безопасный, цензуроустойчивы - и демон?
Ну пытаются же выйти из пике:On Friday, 29th January 2016, the long-planned re-signing of CAcert’s root certificate will finally take place. This action has been overdue for quite some time now as several browser and OS vendors have dropped support for MD5-signed certificates or otherwise made such certificates unusable. The re-signing process [1] has been tested successfully at last FrOSCon
Твой любимый анальный зонд^W^WIE - не одобряет сертификат?
> Твой любимый анальный зонд^W^WIE - не одобряет сертификат?Наоборот: анальные зонды большинства юзеров не одобряют такой сертификат на моём бложике. То, что я поднимал для личного пользования (owncloud, webgit), прекрасно работает с любым сертификатом, хоть даже самоподписным. Итого, в нынешнем виде cacert не имеет смысла. А ведь когда-то я даже стал там полноценным Assurer-ом...
> Самодписанный сертификат по ссылке. Действительно какие-то панки.Мой Firefox 44 говорит Error code: sec_error_cert_signature_algorithm_disabled
Там не самоподписанный сертификат, а у корневого сертификата CAcert (ими был выдан сертификат панкам) используется MD5 для подписи!
http://wiki.cacert.org/FAQ/BrowserClients
"New versions of Firefox (as version 39.0 on Linux Ubuntu 14.10) don't permit importing of the CAcert Root cert (root.crt, root.der) as its signing algorithm MD5 is treated as obsolete and not secure. Simply use the add-on stated above."И так-то мозилловцы молодцы, а то
https://s3-eu-west-1.amazonaws.com/md5collisions/ship.jpg
https://s3-eu-west-1.amazonaws.com/md5collisions/plane.jpg
имеют хэш 253dd04e87492e4fc3471de5e776bc3d (вычисление этой коллизии стоило $0,65, см. http://natmchugh.blogspot.ru/2015/02/create-your-own-md5-col... ).
> Там не самоподписанный сертификат, а у корневого сертификата CAcert (ими был выдан
> сертификат панкам) используется MD5 для подписи!Все CA это бизнес и политика. MD5 это плохо, действительно. 29-го числа CAcert будет переподписывать свой корневой сертификат, так что проблема решится уже вот вот.
>обеспечивается конфиденциальность и аутентичность передаваемых данных, но без использования шифрованияЭто что за новый способ? Это как так конфиденциальность математики научились обеспечивать без шифрования?
Ошибка перевода мб: целостность и аутентичность(достоверность) без шифрования можно сделать
> Это что за новый способ? Это как так конфиденциальность математики научились обеспечивать
> без шифрования?Рон Ривест ещё в 1998 году научился. Ссылка в тексте новости приведена.
А вы, как разработчик этого.. ну вообщем этого на Go, проверили его теорию? Доказали или опровергли ее прежде, чем заюзать?
Каюсь, не слышал до этого о технологии. Подскажите, а ключ к алгоритму по вылову нужных битов по Диффи-Хеллману получается или там как-то по-своему?
Честно, читал английскую википедию - не смог разобраться из-за языкового барьера.
> Каюсь, не слышал до этого о технологии. Подскажите, а ключ к алгоритму
> по вылову нужных битов по Диффи-Хеллману получается или там как-то по-своему?
> Честно, читал английскую википедию - не смог разобраться из-за языкового барьера.Самое понятное объяснение я видел собственно в статье Ривеста самого:
http://people.csail.mit.edu/rivest/chaffing-980701.txtЕсли коротко, то суть не хитра: кроме просто нужного нам сообщения отсылаем ещё одно или несколько вместе с ним, но снабжаем их MAC-ами. У нужного нам сообщения MAC будет валиден, отличен от остальных. Да, он зашумляет канал -- собственно это и называется chaffing, а процесс отсеивания неинтересующих нас данных -- winnowing. Если предположить что сообщение имеет размер один бит, то мы всегда можем отсылать по два бита (0 и 1), снабжая одного из них валидным MAC-ом. Для внешнего наблюдателя это поток 010101 с MAC-ами (рандомом) -- он не знает какие биты "валидны", за счёт чего и получается конфиденциальность.
Он же ещё сразу предлагает тут подумать об использовании All-or-nothing-transformation для оптимизации. Перед тем как применить chaffing, мы преобразуем (это преобразование не использует никаких ключей, не имеет никакой секретности) его в AONT package и от него только часть используем для chaffing. Не "сломав" chaffing-and-winnowing, мы не сможет из-за AONT преобразования получить хотя бы даже часть оригинального сообщения. В GoVPN в качестве AONT используется OAEP (есть не одна работа доказывающая что OAEP является AONT-ом отличным) с 128-бит рандомной строчкой дополнительной. И chaffing применяется не ко всему пакету, а только к 128-бит его.
Спасибо за развернутый ответ, но вопрос был в том, как распознать - валиден MAC или нет.
> Каюсь, не слышал до этого о технологии. Подскажите, а ключ к алгоритму
> по вылову нужных битов по Диффи-Хеллману получается или там как-то по-своему?Да, ключ получается из Диффи-Хеллмана. Это так и осталось прежним, ведь DH не является и не использует шифрование.
Спасибо.В таком случае вижу только смену схему кодирования (новое - невостребованное старое), которая к тому же далеко не самая защищенная. Видимо, сделано для бедолаг, которым не повезло не владеть своим прокси.
Это, в смысле, типа М-последовательности? Зашумляем сообщение?
Судя по всему, минус только один - go.
И в чём минус Go?
Его не любят местные хипстеры, которым шашечки.
Хипстеры его как раз очень любят.
Он про таких как ты - про местных.
> И в чём минус Go?Для крипты - в непредсказуемом поведении. Крипто полагается на аккуратное управление поведением базовых примитивов, чтобы предотвратить утечки по побочным каналам и прочие проблемы. Но на go это не получится, один только сборщик мусора все испортит. Но автор не в курсе.
Рассейские Ыгсперды в IT - беда похуже классических "дорог и дураков" :(Ладно, смотри жабу - там есть вся крипта какая надо, и вся _сертифицированна_ ... Или там GC посконно православный и на ей - можно?
> _сертифицированна_ ... Или там GC посконно православный и на ей - можно?DES тоже сертифицированный. Был. И dual-ec DRBG. Пользуйся наздоровье.
Тормознутость=прожорливость, отсутствие контроля за памятью.
Что вам мешает выделить кусок памяти (new([xxxx]byte) в Go, аналогичен malloc() в C) и работать и крутится в нём? Для garbage collector он не интересен, не трогает его, всё под вашим контролем остаётся. Более того, при этом спокойно можно отключить сам gc, если один раз выделили память и только в ней и крутитесь.Утечки данных по сторонним каналам возникают когда поведение (тормоза например) зависит от криптографических операций. GC может непредсказуемо останавливать выполнение программы, но делает это независимо от ключей или того что у вас там происходит. Он ничем не отличается от планировщика ОС. Поэтому на Go нет проблем написать код который бы был константным по времени выполнения, точно так же как и на C.
Так что доводов что в Go отсутствует контроль за памятью вы не привели. Если хотите: можете контролировать. Можете и GC включать/выключать в нужных местах.
>Что вам мешаетТы всерьёз думаешь что он пробовал, искал но не вышло?!
Да брось, оно хорошо если пару - другую снипетов прям на из веб сайте запустило и ОППА! - выводы готовы!
Я к тому, что GO тут вообще лишняя сущность.Раз в нём нет явных malloc+free то и говорить и возможности контроля памяти я бы поостерёгся.
С вашим подходом получается что вообще любой высокоуровневый язык программирования это лишняя сущность, ведь контроль же зачастую теряется полный над происходящим. Завидую вашему количеству времени доступного для программирования на ассемблере, без лишних сущностей.
Сергей, ассемблер -- это тоже лишняя сущность. Необходимость компиляции исходных текстов портит всё крипто непредсказуемостью поведения компилятора. Настоящие программисты паяют свои программы сразу в железе.
Нормальные криптографы не ленятся проверить что генерируют на их код компиляторы. Но для посетителей опеннета это слишком сложно.
В том, что авторы этой поделки позиционируют себя как крутые шифропанки, а сами не осилили написать это на С - с полным контролем выделения памяти в кучу, полным контролем над стеклом вызовов и т.д.
а че С++ уже не модно ?
да и все это лабуда, профи пишут на асме
Профи пишут на том, что наиболее соответствует поставленной задаче. Есть такая штука как сроки. Можешь посвятить полжизни для написания и отладки идеального кода на асме, но кому он к тому времени уже будет нужен?
> В том, что авторы этой поделки позиционируют себя как крутые шифропанки,
> а сами не осилили написать это на СЯ видел даже на perl-е ... если это гарантированно разорвет Ыгспрду пердак, пожалуй найду и выложу :)
А где клиент и сервис к нему?
Выглядит как судорожная поппытка напихать побольше новых технологий - шоб було. Особенно Argon2 умиляет - хрень, о которой за пределами сайтов авторов и PHC ни одного упоминания в интернете.
Больше новостей - больше денег.
>Юрисдикции некоторых стран могут привлечь к ответственности за использование шифрования, могут принудить к выдаче ключей шифрования, но не ключей аутентификации или подписи. Этот режим может пригодится именно в подобных случаях: технически ничего кроме аутентификации не применяется к передаваемому трафику.Я боюсь, что этой лажей ни один суд из потенциальных стран не разведёшь. Ибо по сути это тоже самое шифрование, просто делается другим способом. Шифрование - это преобразование информации в целях сокрытия от третих лиц. Именно это здесь и делается. А то, что в википедии написано, что это не так - это греет душу только шифропанкам, у которых избыток свободного времени и недостаток женского внимания.
Нормальная отмазка. Хотя все равно придется объяснять с какой целью использовался VPN, не с политическими ли. Даже если на руках у спрашивающего будет отчет по логам.Стандартная процедура Системы - если уж попал в жернова, то отработают.
> Если речь о демократическом либеральном государствеЯн Мёрдок
> 19:30 полиция приезжает на вызов
> 20:30 повторный вызов
> Устраивает драку с полицией и получает от неё в бубен.Пропущено: баба-полицейская снимает с него трусы. Даже не знаю, какая была в этом необходимость. Проверяла насколько соответствует реальности выражение "пьяный в ж--у?"
> Утро: ... Потом его накрывает и он пускает себе пулю в лоб.
> -----
> Я уже это видел. И не раз. Сосед, который топором ломает дверь.
> Менты его скручивают. Через пару дней у соседа белая горячка, он
> носится по подъезду с охотничьим ружьём, а менты оцепили дом и
> ждут когда эта пьяная тв---рь отстреляет всех чертей (или прострелет себе
> башку).Я не знаю, что видел ты, но все случаи, когда подобное видел я - граждане имели приличный шлейф приводов, задержаний, вызовов милиции от соседей и вели специфический образ жизни. Мутация за сутки из приличного гражданина в агрессивного дегенерата выглядит крайне подозрительно. А вот произвол полиции, который уже вызывал массовые волнения и ранее, выглядит вполне вероятным. Но даже если предположить, что в результате психического расстройства Мёрдок таки скатился, возникает вопрос: как такого гражданина вернули в общество без помощи специалистов?
навскидку даже в такой версии есть слабые места, не говоря уже, что есть и другие версии.
>> баба-полицейская снимает с него трусы
> И как поступит адекватный трезвый человек в данной ситуации? Я не считаю,
> что написать сообщение в твиттер, а затем застрелиться - это адекватно.тут мы подходим со своими понятиями, со своими линейками и мерами. что такое позор, как человек его переживает и как он поступит в этом случае - вопрос сложный. я же указал на другой аспект: колоссальный разрыв между разрекламированным "демократическим обществом" и "демократической полицией" и напрашивающимися выводами из известной нам информации. при самой благостной для полиции версии и при максимальном переносе ответственности на Мёрдока разрыв между рекламой и событиями очень даже есть. Хотя, конечно, делать какие-то выводы "из-за бугра" в качестве "так всё и было" я бы не стал.
опять же непонятно, кто писал в твиттер и кто затем стёр. и зачем. но для любителей расписать о том, какая плохая полиция в тоталитарном мордоре и как всё хорошо "там", повод задуматься.
> 1. в семье не без урода. Отдельные действия конкретных людей бросают тень на правоохранительную систему США, но это не означает что она вся такая.Странно. А в России - говорят?
> Но бутылки в задницы никто не засовывает.
Руки засовывают. И не только в задницы - у женщин например и другие места есть. Ролики сам поищешь?
> И бегать по беговой дорожке без штанов, напевая "Путин мой лучший друг" тоже.
Зато бабы прилюдно спускают с задержанных трусы.
> 2. в США, в отличие от РФ, разрешено владение огнестрельным оружием, поэтому у полиции значительно ниже порог его применения.
Как к этому относятся трусы Мёрдока?
> Полиции разрешено применять оружие
> если подозреваемый просто не подчинился их требованиям
> по статистике белые составляют 55% населения страны, но совершают лишь 15%
> Отсюда полицейская инструкция: по чёрным и латинос стрелять первыми.оправдание - оно как дырка в ж--е - есть у всех.
Но зачем снимать трусы с Мёрдока?
> в полиции всё равно большинство составляют белые. Отсюда любое убийство рассматривается
> чёрным большинством как расистское.Но ведь Мёрдок белый, он и возмутился: зачем бабе было снимать трусы с белого?
Ну не смешите. Вы думаете, если с верхов поступит приказ взять диссидента Х , Х - сможет откупиться, а сотрудники которым поручено взять за деньги в местный гулаг отправятся ??
Не смешите мои тапки.Получите в ответ на свое предложение раз-два по морде и все. В крайнем случае, взятку возьмут и все равно посадят , бггг
> Стандартная процедура Системы - если уж попал в жернова, то отработают.Васильеву так отработали что она по ГУМу гуляет. Попытки отработать чаек ведут к встречной отработке, все сыкуют, отработка заканчивается.
К чайкам у швейцарской прокуратуры нет претензий, как ни странно. Попытки "расследований" здесь - просто самопиар и накопившаяся на языке у ФБК грязь, которую неохота глотать - вот и выплевывают многоадресно. Один выстрел Рагозина в ногу чего стОит...
> Чайка покрывал швейцарскую организованную преступность? Нет.
> Чайка разворовывал швейцарские бюджетные деньги? Нет.
> Чайка крышевал швейцарский незаконный игорный бизнес? Нет.
> Почему у швейцарской прокуратуры должны быть к нему претензии?оказывается преступникам нужно подавать в иностранные суды! у них к ним претензий нет - их граждан не грабили, не убивали. ты нашёл золотую жилу!
Помни Бута бро! :)
В аском суде вынесли приговор не ам-цу, по делам сделанным не в амке, с не-амцами и напрямую не против амцев. А всё равно сидит, XXI век - кто сильный, тот и прав!
спасибо большое за ваш труд!
> Some jurisdictions can force user to reveal his encryption keys.Ну так и отдаем им постоянные ключи с чистой совестью, других все-равно нет. Временные ключи perfect forward secrecy это не раскроет - они никогда и не попадали на диск. Удачи в расшифровке. Юридически мы чисты - ключи отдали. Если очень просят - можем на словах пересказать прмиерное содержимое траффика, как максимум.
Спасибо, работает сутками без rehandshake-a,где openvpn режется на рукопжатии сразу...
> Спасибо, работает сутками без rehandshake-a,где openvpn режется на рукопжатии сразу...Так VPN, насколько я знаю, режут по симметричности трафика на фаерволе. А тут добавлением случайного шума делают трафик явно несимметричным - и вуаля, не отличить от обычного просмотра сайтов...
Скорее всего просто малопопулярное и не попало в сигнатуры DPI системам.
А может и действительно хорошо маскируется, SoftEther же до сих пор не режется DPI, ходит себе под SSL и ходит куда хочет и откуда хочет.
опция -noise не использовалась.
А если обрыв связи? IP внешний от провайдера сменился? реконнект будет?
> This Connection is UntrustedЧего-то недоверяю я им.
Sergey, а можно такое, но только на С? Ну или на С++?
Любой каприз за ваши деньги.
> Sergey, а можно такое, но только на С? Ну или на С++?Можно, вопрос трудозатрат (как верно заметили -- денег :-)). Я не вижу в этом смысла и сильного стоящего profit-а. Разве что запустить это на 32-bit или там ARM/MIPS железках слабых?
Всё же зависит от целей. На Go, например, он никогда не вылезет за пределы локалхоста небольшой кучки хипстеров. И производительность такого ПО тоже является определяющим фактором.> Разве что запустить это на 32-bit или там ARM/MIPS железках слабых?
Это, например, домашние роутеры на которых сейчас легко можно поднимать разные с/c++ туннели.
> На Go, например, он никогда не вылезет за пределы локалхоста небольшой кучки хипстеров.Не - ну раз целый ТЫ сказал, то да - расходимся пацаны :)
> И производительность такого ПО тоже является определяющим фактором.
Да? И сколько у тебя апстрим? Целый 1МB нейбойсь ? :-) С таким и поделка в 3 строки на (прости **!) руби справится :)
Там где нужен реальный жёсткий байтодрочЪ (типо LUKS) - там и так С\С++. Тут - НЕ нужен! Но это школию просто так не понять :)
Для даунов, Go переводит в машинный код и оптимизирует код как и GCC правда он это делает на самом себе (в Go представлении).
> Всё же зависит от целей. На Go, например, он никогда не вылезет
> за пределы локалхоста небольшой кучки хипстеров. И производительность такого ПО тоже
> является определяющим фактором.Работаю в Tier 1 ISP. Пишем на Go софт для внутреннего использования. Автор, расскажи мне ещё что-нибудь про локалхосты хипстеров, у тебя так интересно получается.
"Информация о подлинности этого веб сайта отсутствует"Так предупреждает Firefox об opennet.ru.
видимо opennet.ru хостится на серверах АНБ)
увы, нет, иначе на нём была бы приличная реклама, и он бы не пропадал на месяц при поломке железа