Jump to content

Удаление архива, если был введен неправильный пароль более 5 раз


Bryant-24
 Share

Recommended Posts

Добрый день!

Возможна ли следующая логика работы архиватора (или любого другого контейнера, позволяющая хранить данные на съемном носителе, предоставляемые только путем введения пароля):

после подряд 5 неправильных попыток введения пароля данные в этом контейнере автоматически уничтожались? :huh:

Link to comment
Share on other sites

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

Короче, идея нежизнеспособна.

  • Like 1
Link to comment
Share on other sites

Короче, идея нежизнеспособна.

А что скажете в целом о надежности от взлома архива? Мне кажется применяя даже самый сложный пароль, использующий максимально большую степень защиты (большой и маленький регистр букв, цифры и прочее...) времени на подбор такого пароля все же не такой большой, тем более это будет выполнять машина.

Link to comment
Share on other sites

Короче, идея нежизнеспособна.

Да ладно? Генерируем сотню ключей, шифруем с помощью пяти из них симметричным алгоритмом содержимое архива. Шифруем алгоритм смены ключа сетью Петри. При каждой последующей попытке перешифровываем содержимое. Если вначале будут идти правильные ключи, то содержимое можно будет восстановить, в противном случае уже ничего не поможет.

Link to comment
Share on other sites

Мне кажется применяя даже самый сложный пароль, использующий максимально большую степень защиты (большой и маленький регистр букв, цифры и прочее...) времени на подбор такого пароля все же не такой большой, тем более это будет выполнять машина.

Зря так кажется, на брутфорс 12-ти значного пароля, где каждый из символов имеет 36 вариантов, при скорости перебора в 1 000 000 паролей в секунду займет порядка 150 253 лет. Не думаю, что есть столько времени. Гораздо эффективнее применять терморектальный криптоанализ.

И это еще известно сколько символов в пароле, а если неизвестно то перебор паролей от 6-ти до 12-ти символов, вообще займет времени больше чем жизненный цикл вселенной :)

Link to comment
Share on other sites

И это еще известно сколько символов в пароле, а если неизвестно то перебор паролей от 6-ти до 12-ти символов, вообще займет времени больше чем жизненный цикл вселенной :)

С радужными таблицами это можно сделать гораздо быстрее. Главное винтами запастись...

Link to comment
Share on other sites

При каждой последующей попытке перешифровываем содержимое.
Что значит перешифровываем? Распаковываем и запаковываем с другими ключами?

Суть задачи в том, что можно пять раз ввести неправильный пароль, чтобы архив удалился. Например, четыре раза неправильный, а один правильный — это приемлемо. Решение с перелопачиванием всего архива на каждой из пяти попыток — это издевательство над пользователем и его винчестером.

при скорости перебора в 1 000 000 паролей в секунду
мы переместимся в далёкое прошлое, ага

http://www.xakep.ru/post/60692/ неплохо бы следить за новостями.

Link to comment
Share on other sites

может необязательно использовать архив? Есть спец программы для этого. создают хранилище - шифруют. там же и подобные настройки что делать если пароль был введен неверно.

Link to comment
Share on other sites

мы переместимся в далёкое прошлое, ага http://www.xakep.ru/post/60692/ неплохо бы следить за новостями.

Опять же это частный случай, у них уже есть в наличии серьезная база. Я же говорю о прямом брутфорсе.

Link to comment
Share on other sites

Забавно, что некто не предложил держать число попыток и хэш пароля на удаленном сервере и проверять его там или вариант где и сам архив хранится на сервере(в таком случаи проблем с удалением быть не должно 100%). Ну, а если сервер не доступен то архив вовсе не открывался бы.

Подобная практика давно используется для хранения SaveData у производителя игр Ubisoft например.

Link to comment
Share on other sites

Забавно, что некто не предложил держать число попыток и хэш пароля на удаленном сервере и проверять его там или вариант где и сам архив хранится на сервере(в таком случаи проблем с удалением быть не должно 100%). Ну, а если сервер не доступен то архив вовсе не открывался бы.

Подобная практика давно используется для хранения SaveData у производителя игр Ubisoft например.

Если это standalone приложение - то это неприемлемо. Сегодня пообщался со своими ребятами, вывод только один - кроме как держать ключ на серверах, ничего другого не поможет.

Link to comment
Share on other sites

Если это standalone приложение - то это неприемлемо.

Ну если предположить ситуацию что есть некие материалы которые важно хранить на машине которая не подключена к глобальной сети. То и тут есть варианты:

1) Простая настройка терминального доступа с правом на чтение.

2) Скажем у вас есть небольшая бронированная комната наполненная напалмом в которой будем хранить гала графический носитель. Нам понадобится устройство меж сетевое с прошивкой которое будет контролировать доступ и в случаи 5 неудач подожжет напалм.

P.S. Я лично за вариант с напалмом. Готов помочь ТС с оборудованием как комнаты так и прошивкой сетевого устройства.

Link to comment
Share on other sites

может необязательно использовать архив? Есть спец программы для этого. создают хранилище - шифруют. там же и подобные настройки что делать если пароль был введен неверно.
А если мы запишем такой файл на CD/DVD или просто выставим права только на чтение?
Забавно, что некто не предложил держать число попыток и хэш пароля на удаленном сервере и проверять его там или вариант где и сам архив хранится на сервере(в таком случаи проблем с удалением быть не должно 100%). Ну, а если сервер не доступен то архив вовсе не открывался бы.
Что у тебя с русским языком? У меня кровь из глаз пошла.

Ты считаешь, что сейчас на каждом компьютере есть интернет? А если файл понадобился так, где его нет?

Хранить на сервере? А если архив в несколько гигабайт, а интернет через спутник с помегабайтной оплатой? А если dial-up? А если госорганизация? Ну хотя там-то вряд ли будут использовать подобные продукты от неизвестно кого.

Link to comment
Share on other sites

Забавно, что некто не предложил держать число попыток и хэш пароля на удаленном сервере и проверять его там или вариант где и сам архив хранится на сервере(в таком случаи проблем с удалением быть не должно 100%). Ну, а если сервер не доступен то архив вовсе не открывался бы.
Что у тебя с русским языком? У меня кровь из глаз пошла.

Ты считаешь, что сейчас на каждом компьютере есть интернет? А если файл понадобился так, где его нет?

Хранить на сервере? А если архив в несколько гигабайт, а интернет через спутник с помегабайтной оплатой? А если dial-up? А если госорганизация? Ну хотя там-то вряд ли будут использовать подобные продукты от неизвестно кого.

С русским у меня не чего, я собственно его в институте учил, а что? Все перечисленное дальше не как, не сказывается на существовании того же google disk(у него теже проблемы но он же есть!), объем всего лишь в несколько гигабайт зачастую является не существенным. Для standalone лучшее что можно сделать это локальную сеть с терминальным доступом и отсутствием доступа к хранилищу.

Если честно удаление файла после 5 неудач это попахивает паранойей...

Link to comment
Share on other sites

С русским у меня не чего
Можно я это на башорг отправлю?
Если честно удаление файла после 5 неудач это попахивает паранойей...
А я сразу сказал, что идея не очень.

Автор, а нельзя ли ознакомиться с задачей, которую ты пытаешься решить столь странным способом?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Обсуждения

    • Вы отучились на бухгалтера или программиста? Почему спрашиваю. Я финансист, бухгалтер. Естественно, в свое время отучился на курсах 1С, но как экономист. Поэтому могу помочь с развитием именно в этом направлении, так как опыт огромный. 
    • Всем привет.Не так давно начал изучать верстку.И кароче захотел создать слайдер на основе html css без js. Застрял булеты работают и стрелки также но только стрелки становяться видимы когда первый раз нажал на булет.До этого их никак немогу настроить.   <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <style>         .wrapper{             width: 700px;             height: 400px;             margin:0 auto;             border:5px solid green;             border-radius: 20px;             overflow: hidden;             position: relative;         }         .container{             width: 600px;             height: 300px;             border: 5px solid green;             border-radius: 20px;             margin: 20px auto;         }         .slider__items{             display: none;         }         .bullets{             display: flex;             position: absolute;             left:100px;             bottom:30px;         }         .bullets__items{             width: 50px;             height: 15px;             border:2px solid green;             border-radius: 20px;             background-color: lightgreen;             margin: 0 20px;         }             .images{             display: flex;         }         .images__items{             width: 600px;             height: 300px;             border-radius: 20px;             margin-right: 55px;         }               .arrows__prev{             background-image: url(./img/next.png);             background-size: contain;             width: 40px;             height: 40px;             position: absolute;             top:150px;             left: 2px;         }         #slide1:checked ~ .images .image1{             margin-left: 0;         }         #slide2:checked ~ .images .image2{             margin-left: -655px;         }         #slide3:checked ~ .images .image3{             margin-left: -1310px;         }         #slide4:checked ~ .images .image4{             margin-left: -1965px;         }         #slide5:checked ~ .images .image5{             margin-left: -2620px;         }         #slide1:checked ~ .arrow__next .img2,         #slide2:checked ~ .arrow__next .img3,         #slide3:checked ~ .arrow__next .img4,         #slide4:checked ~ .arrow__next .img5,         #slide5:checked ~ .arrow__next .img1{             display: block;             background-image: url(./img/next.png);             background-size: contain;             width: 40px;             height: 40px;             position: absolute;             top:150px;             right: 2px;                 }         #slide1:checked ~ .arrow__prev .img5,         #slide2:checked ~ .arrow__prev .img1,         #slide3:checked ~ .arrow__prev .img2,         #slide4:checked ~ .arrow__prev .img3,         #slide5:checked ~ .arrow__prev .img4         {             display: block;             background-image: url(./img/prev.png);             background-size: contain;             width: 40px;             height: 40px;             position: absolute;             top:150px;             left: 2px;                 }     </style> </head> <body>     <div class="wrapper">         <div class="container">             <div class="slider">                 <input type="radio" name="slider" class="slider__items" id="slide1">                 <input type="radio" name="slider" class="slider__items" id="slide2">                 <input type="radio" name="slider" class="slider__items" id="slide3">                 <input type="radio" name="slider" class="slider__items" id="slide4">                 <input type="radio" name="slider" class="slider__items" id="slide5">                                 <div class="bullets">                     <label for="slide1" class="bullets__items"></label>                     <label for="slide2" class="bullets__items"></label>                     <label for="slide3" class="bullets__items"></label>                     <label for="slide4" class="bullets__items"></label>                     <label for="slide5" class="bullets__items"></label>                 </div>                 <div class="arrow__next">                     <label for="slide1" class="arrows__item img1"></label>                     <label for="slide2" class="arrows__item img2"></label>                     <label for="slide3" class="arrows__item img3"></label>                     <label for="slide4" class="arrows__item img4"></label>                     <label for="slide5" class="arrows__item img5"></label>                 </div>                 <div class="arrow__prev">                     <label for="slide1" class="arrows__item img1"></label>                     <label for="slide2" class="arrows__item img2"></label>                     <label for="slide3" class="arrows__item img3"></label>                     <label for="slide4" class="arrows__item img4"></label>                     <label for="slide5" class="arrows__item img5"></label>                 </div>                 <div class="images">                     <img src="./img/1.jpg" alt="" class="images__items image1">                     <img src="./img/2.jpg" alt="" class="images__items image2">                     <img src="./img/3.jpg" alt="" class="images__items image3">                     <img src="./img/4.jpg" alt="" class="images__items image4">                     <img src="./img/5.jpg" alt="" class="images__items image5">                 </div>             </div>         </div>     </div> </body> </html>
    • Актуально, до сих пор актуально. Много кричали, что SEO умирает и умерло. Ничего подобного, СЕО живее всех живых и по-прежнему работает. 
    • Мне нужен такой результат : Не понимаю почему background не применяется вокруг иконок:   Сам код: Html: css: Html: <section class="finish"> <div class="container"> <h2 class="finish_header">По окончании обучения Вы сможете!</h2> <div class="finish_divider"></div> <div class="finish_wrapper"> <finish_item> <div class="finish_round"> <img src="/icons/finish/1 (1).png" alt="" class="finish_icon"> </div> <div class="finish_descr">Создать свой сайт или блог</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/2.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Создать свой сайт или блог</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/3.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Обеспечить ему медленный, но верный рост в ТОП</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/4.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Достигнуть стабильного прироста посетителей</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/5.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Достигнуть стабильного прироста посетителей</div> </finish_item> </div> </div> </section>   Css: .finish .finish_wrapper { margin-top: 41px; display: flex; justify-content: space-between; } .finish .finish_wrapper .finish_item { width: 204px; } .finish .finish_wrapper .finish_item .finish_round { width: 115px; height: 115px; background-color: #b4e2ff; border-radius: 8px; } .finish_descr { font-family: Roboto; font-size: 17px; line-height: 20px; font-weight: 300; color: #efefef; Спасибо!   Уже решил, спасибо! У меня CSS селектор вида:.finish .finish_wrapper .finish_item .finish_roundА должен быть:.finish .finish_wrapper finish_item .finish_roundТ.е. без точки перед finish_item, так как это не класс, а элемент
    • Есть вопрос по макету. (psd) Макет более 80мб. На форуме не выложишь. Где лучче залить файл и выложить ссылку на него? (Гугл диск подойдет?) Может у кого, знающего найдется 10 минут, чтоб ответить на вопрос по верстке?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy