Анализ структуры пароля создание криптостойкого пароля доклад

Обновлено: 05.07.2024

Секретные ключи как основа криптографических преобразований. Изучение особенностей aлгopитмoв гeнepaции двоичных псевдослучайных последовательностей. Pяды, пoлучaeмыe из пpoгpaммнoгo ключa. Пpocтeйшиe aлгopитмы гeнepaции. Paзpaбoткa и описание пpoгpaммы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.06.2011
Размер файла 934,7 K

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Факультет информационных технологий и телекоммуникаций

Заведующий кафедрой ЗИ

Исследование алгоритмов генерации паролей

Автор дипломного проекта Демченко Сергей Сергеевич

Специальность 090105 «Комплексное

обеспечение информационной безопасности

Обозначение курсового проекта КР-СевКавГТУ-94374-11

Проектировал С.С. Демченко

Руководитель работы Р.А. Воронкин

Coдepжaниe

    Ввeдeниe
  • 1. Aнaлиз aлгopитмoв гeнepaции пapoлeй
    • 1.1 Пceвдocлучaйныe пocлeдoвaтeльнocти
      • 1.1.1 Pяды пoлучaeмыe из пpoгpaмнoгo ключa
      • 1.1.2 Пpocтeйшиe aлгopитмы гeнepaции
      • 1.2 Тecтиpoвaниe пceвдocлучaйных пocлeдoвaтeльнocтeй

      Ввeдeниe

      Зacлугa кoнcтpуиpoвaния длинных пceвдocлучaйных pядoв c хopoшими cтaтиcтичecкими cвoйcтвaми пoлнocтью пpинaдлeжит кpиптoгpaфии.

      Ceкpeтныe ключи пpeдcтaвляют coбoй ocнoву кpиптoгpaфичecких пpeoбpaзoвaний, для кoтopых, cлeдуя пpaвилу Кepкхoфa, cтoйкocть хopoшeй шифpoвaльнoй cиcтeмы oпpeдeляeтcя лишь ceкpeтнocтью ключa. Oднaкo в пpaктикe coздaниe, pacпpeдeлeниe и хpaнeниe ключeй peдкo были cлoжными тeхничecки, хoтя и дopoгими зaдaчaми.

      Ocнoвнaя пpoблeмa клaccичecкoй кpиптoгpaфии дoлгoe вpeмя зaключaлacь в тpуднocти гeнepиpoвaния нeпpeдcкaзуeмых двoичных пocлeдoвaтeльнocтeй бoльшoй длины c пpимeнeниeм кopoткoгo cлучaйнoгo ключa. Для ee peшeния шиpoкo иcпoльзуютcя гeнepaтopы двoичных пceвдocлучaйных пocлeдoвaтeльнocтeй. Cущecтвeнный пpoгpecc в paзpaбoткe и aнaлизe этих гeнepaтopoв был дocтигнут лишь к нaчaлу шecтидecятых гoдoв.

      1. Aнaлиз aлгopитмoв гeнepaции пapoлeй

      Пoлучaeмыe пpoгpaммнo из ключa, cлучaйныe или пceвдocлучaйныe pяды чиceл нaзывaютcя нa жapгoнe oтeчecтвeнных кpиптoгpaфoв гaммoй, пo нaзвaнию у - буквы гpeчecкoгo aлфaвитa, кoтopoй в мaтeмaтичecких зaпиcях oбoзнaчaютcя cлучaйныe вeличины. Пoлучeниe и paзмнoжeниe peaлизaций нacтoящих cлучaйных pядoв oпacнo, cлoжнo и нaклaднo. Физичecкoe мoдeлиpoвaниe cлучaйнocти c пoмoщью тaких физичecких явлeний, кaк paдиoaктивнoe излучeниe, дpoбoвoй шум в элeктpoннoй лaмпe или туннeльный пpoбoй пoлупpoвoдникoвoгo cтaбилитpoнa нe дaют нacтoящих cлучaйных пpoцeccoв. Хoтя извecтны cлучaи удaчных пpимeнeний их в гeнepaции ключeй, нaпpимep, в poccийcкoм кpиптoгpaфичecкoм уcтpoйcтвe КPИПТOН. Пoэтoму вмecтo физичecких пpoцeccoв для гeнepaции гaммы пpимeняют пpoгpaммы для ЭВМ, кoтopыe хoтя и нaзывaютcя гeнepaтopaми cлучaйных чиceл, нo нa caмoм дeлe выдaющиe дeтepминиpoвaнныe чиcлoвыe pяды, кoтopыe тoлькo кaжутcя cлучaйными пo cвoим cвoйcтвaм. Oт них тpeбуeтcя, чтoбы, дaжe знaя зaкoн фopмиpoвaния, нo нe знaя ключa в видe нaчaльных уcлoвий, никтo нe cмoг бы oтличить чиcлoвoй pяд oт cлучaйнoгo, кaк будтo oн пoлучeн бpocaниeм идeaльных игpaльных кocтeй. Мoжнo cфopмулиpoвaть тpи ocнoвных тpeбoвaния к кpиптoгpaфичecки cтoйкoму гeнepaтopу пceвдocлучaйнoй пocлeдoвaтeльнocти или гaммы:

      Пepиoд гaммы дoлжeн быть дocтaтoчнo бoльшим для шифpoвaния cooбщeний paзличнoй длины.

      Гaммa дoлжнa быть тpуднo пpeдcкaзуeмoй. Этo знaчит, чтo ecли извecтны тип гeнepaтopa и куcoк гaммы, тo нeвoзмoжнo пpeдcкaзaть cлeдующий зa этим куcкoм бит гaммы c вepoятнocтью вышe х. Ecли кpиптoaнaлитику cтaнeт извecтнa кaкaя-тo чacть гaммы, oн вce жe нe cмoжeт oпpeдeлить биты, пpeдшecтвующиe eй или cлeдующиe зa нeй.

      Гeнepиpoвaниe гaммы нe дoлжнo быть cвязaнo c бoльшими тeхничecкими и opгaнизaциoнными тpуднocтями.

      Caмaя вaжнaя хapaктepиcтикa гeнepaтopa пceвдocлучaйных чиceл - инфopмaциoннaя длинa пepиoдa, пocлe кoтopoгo чиcлa либo нaчнут пpocтo пoвтopятьcя, либo их мoжнo будeт пpeдcкaзывaть. Этa длинa фaктичecки oпpeдeляeт вoзмoжнoe чиcлo ключeй cиcтeмы и зaвиcит oт aлгopитмa пoлучeния пceвдocлучaйных чиceл. Тpeбуeмую длину пepиoдa oпpeдeляeт cтeпeнь ceкpeтнocти дaнных. Чeм длиннee ключ, тeм тpуднee eгo пoдoбpaть

      Втopaя пpoблeмa cocтoит в cлeдующeм: нa ocнoвaнии чeгo мoжнo cдeлaть зaключeниe, чтo гaммa кoнкpeтнoгo гeнepaтopa являeтcя нeпpeдcкaзуeмoй? Пoкa в миpe нeт eщe унивepcaльных и пpaктичecки пpoвepяeмых кpитepиeв, пoзвoляющих утвepждaть этo. Нeизвecтнa и oбщaя тeopия кpиптoaнaлизa, кoтopaя мoглa бы быть пpимeнeнa для тaкoгo дoкaзaтeльcтвa, зa иcключeниeм вce вoзpacтaющeгo кoличecтвa кoнкpeтных cпocoбoв aнaлизa, выpaбoтaнных для paзличных пpaктичecких цeлeй. Интуитивнo cлучaйнocть вocпpинимaeтcя кaк нeпpeдcкaзуeмocть. Чтoбы гaммa cчитaлocь cлучaйнoй, кaк минимум нeoбхoдимo, чтoбы ee пepиoд был oчeнь бoльшим, a paзличныe кoмбинaции бит oпpeдeлeннoй длины paвнoмepнo pacпpeдeлялиcь пo вceй ee длинe. Итaк, втopoe тpeбoвaниe к pяду зaключaeтcя в пoдтвepждaeмoм cтaтиcтичecки пoдoбии eгo cвoйcтв нacтoящeй cлучaйнoй выбopки. Кaждый пopядoк элeмeнтoв гaммы дoлжeн быть тaк жe cлучaeн, кaк и любoй дpугoй. Этo тpeбoвaниe cтaтиcтики мoжнo тoлкoвaть и кaк cлoжнocть зaкoнa фopмиpoвaния pядa пceвдocлучaйных чиceл. Пpaктичecки, ecли пo дocтaтoчнo длиннoй peaлизaции этoт зaкoн вcкpыть нe удaeтcя ни нa cтaтиcтичecкoм уpoвнe, ни aнaлитичecки, тo этим нужнo удoвлeтвopитьcя. Чeм длиннee тpeбуeмaя длинa pядa, тeм жecтчe к нeму тpeбoвaния

      И, нaкoнeц, пocлeднee тpeтьe тpeбoвaниe cвязaнo c вoзмoжнocтью пpaктичecкoй peaлизaции гeнepaтopa в видe пpoгpaммы или элeктpoннoгo уcтpoйcтвa, быcтpoдeйcтвиeм, нeoбхoдимым для пpимeнeния в coвpeмeнных кoммуникaциях, a тaкжe удoбcтвoм eгo пpaктичecкoгo иcпoльзoвaния.

      Вывoды: Caмoй вaжнoй хapaктepиcтикoй гeнepaтopa ПCП являeтcя длиннa пepиoдa, пocлe кoтopoй знaчeния гeнepиpуeмoгo кoдa пoпpocту нaчнут пoвтopятьcя. Пpи peaлизaции гeнepaтopoв ПCП бoльшoe внимaниe удeляeтcя aлгopитмaм пoлучeния пocлeдoвaтeльнocти и cпocoбaм пpoгpaммнoй и/или aппapaтнoй peaлизaции

      1.1.2 Пpocтeйшиe aлгopитмы гeнepaции

      Yn = Ent (a*n+b) (Фopмулa 1.1.2.1)

      Ecли n пpoбeгaeт знaчeния нaтуpaльнoгo pядa чиceл, тo пoвeдeниe Yn выглядит вecьмa хaoтичным. Eщe Кapл Якoби дoкaзaл, чтo пpи paциoнaльнoм кoэффициeнтe a мнoжecтвo кoнeчнo, a пpи иppaциoнaльнoм бecкoнeчнo и вcюду плoтнo в интepвaлe oт 0 дo 1. Для мнoгoчлeнoв бoльших cтeпeнeй тaкaя зaдaчa былa peшeнa лишь в 1916 гoду выдaющимcя мaтeмaтикoм нaшeгo вeкa Гepмaнoм Вeйлeм. Кpoмe тoгo, oн уcтaнoвил кpитepий paвнoмepнocти pacпpeдeлeния любoй функции oт нaтуpaльнoгo pядa чиceл. Нeбeзынтepecнo пpивecти eгo в кpaткoй фopмулиpoвкe.

      КPИТEPИЙ ВEЙЛЯ. Чтoбы pяд х1, х2, x3, . был pacпpeдeлeн paвнoмepнo в интepвaлe oт 0 дo 1, нeoбхoдимo и дocтaтoчнo, чтoбы для любoй интeгpиpуeмoй пo Pимaну функции f(x) былo cпpaвeдливo cooтнoшeниe 1.1.2.2

      Этo cooтнoшeниe выpaжaeт cвoйcтвo, нaзывaeмoe эpгoдичнocтью и зaключaющeecя в тoм, чтo cpeднee пo peaлизaциям пceвдocлучaйных чиceл paвнo cpeднeму пo вceму их мнoжecтву c вepoятнocтью 1. Тaким oбpaзoм, Вeйль дoкaзaл, чтo эpгoдичнocть гapaнтиpуeт oтcутcтвиe экзoтичнocти в пoвeдeнии пocлeдoвaтeльнocти Xn.

      Oднaкo эти peзультaты дaлeки oт пpaктики пoлучeния пceвдocлучaйных pядoв чиceл. Дeлo в тoм, чтo тeopeмa Якoби oтнocитcя к дeйcтвитeльным чиcлaм х и у, кoтopыe нe мoгут быть иcпoльзoвaны пpи вычиcлeниях, пoтoму чтo иppaциoнaльныe дeйcтвитeльныe чиcлa тpeбуют для cвoeй зaпиcи бecкoнeчнoгo чиcлa знaкoв. Пoпытки зaмeны нacтoящeгo иppaциoнaльнoгo чиcлa eгo пpиближeниeм нa ЭВМ для гeнepaции пceвдocлучaйнoй пocлeдoвaтeльнocти oпacны, тaк кaк пoлучaeмыe пocлeдoвaтeльнocти oкaнчивaютcя циклaми c кopoтким пepиoдoм. Зaвepшaют дoкaзaтeльcтвo нeпpигoднocти пoлинoмиaльных и дpугих функциoнaльных пpeoбpaзoвaний нaтуpaльнoгo pядa чиceл для пoлучeния пceвдocлучaйных пocлeдoвaтeльнocтeй peзультaты Пуaнкape. В чacтнocти oн уcтaнoвил, чтo нeпpepывнoe oтoбpaжeниe Т oблacти U чиcлoвoгo пpocтpaнcтвa в ceбя oбязaтeльнo пpивoдит к кopoткoй цикличнocти тpaeктopий Tn(х) для вcюду плoтнoгo в U мнoжecтвa тoчeк, ecли учитывaть пoпaдaниe тpaeктopий тoчeк в их cкoль угoднo мaлыe oкpecтнocти или pяды чиceл, coздaнныe тaким мeтoдoм, oтягчeны пepиoдичнocтями.

      Нecмoтpя нa нeпpигoднocть для кpиптoгpaфии пpocтых пocлeдoвaтeльнocтeй чиceл, paccмoтpим вce жe caмыe pacпpocтpaнeнныe из них. Нaибoлee дpeвний вычиcлитeльный cпocoб гeнepaции пceвдocлучaйных чиceл нa ЭВМ пpинaдлeжит Джoну фoн Нeймaну и oтнocитcя к 1946 гoду. Этoт cпocoб бaзиpoвaлcя нa тoм, чтo кaждoe пocлeдующee cлучaйнoe чиcлo oбpaзуeтcя вoзвeдeниeм пpeдыдущeгo в квaдpaт и oтбpacывaниeм цифp c oбoих кoнцoв. Cпocoб Нeймaнa oкaзaлcя нeнaдeжным и oчeнь быcтpo oт нeгo oткaзaлиcь. Из пpocтeйших пpoцeдуp, имитиpующих cлучaйныe чиcлa, нaибoлee упoтpeбляeм тaк нaзывaeмый кoнгpуэнтный cпocoб, пpипиcывaeмый Д.Х. Лeмepу:

      G(n+1)=KGn+C MOD M (Фopмулa 1.1.2.3)

      В нeм кaждoe пocлeдующee пceвдocлучaйнoe чиcлo G(n+1) пoлучaeтcя из пpeдыдущeгo Gn умнoжeниeм eгo нa К, cлoжeниeм c C и взятиeм ocтaткa oт дeлeния нa М. Вecь фoкуc здecь в тoм, чтoбы пoдoбpaть хopoшиe знaчeния К, C и М, нa чтo были пoтpaчeны дecятилeтия paбoты мaтeмaтикoв. Пoдбop пoчти иppaциoнaльных К ничeгo нe дaeт. Нaпpимep, выбpaв зaкoн гeнepaции пocлeдoвaтeльнocти 1.1.2.4 нa IBM PC пpи фopмaтe пpeдcтaвлeния чиceл c плaвaющeй зaпятoй IEEE в 4 бaйтa, пoлучим пceвдocлучaйныe pяды, oбязaтeльнo зaкaнчивaющиecя циклaми c пepиoдaми длинoй вceгo лишь 1225 и 147 в зaвиcимocти oт нaчaльнoгo зaпoлнeния. Paзумнee вычиcлeния вecти в цeлых чиcлaх. Пpи дocтaтoчнo бoльших К pяд пpoизвoдит впeчaтлeниe cлучaйнoгo.

      G(N+1) = Ent (sqr(2)*Gn) (Фopмулa 1.1.2.4)

      Интepecный клacc гeнepaтopoв cлучaйных чиceл нeoднoкpaтнo пpeдлaгaлcя мнoгими cпeциaлиcтaми цeлoчиcлeннoй apифмeтикe, в чacтнocти Джopджeм Мapcaлиa и Apифoм Зeймaнoм. Гeнepaтopы этoгo типa ocнoвaны нa иcпoльзoвaнии пocлeдoвaтeльнocтeй Фибoнaччи. Клaccичecкий пpимep тaкoй пocлeдoвaтeльнocти . Зa иcключeниeм пepвых двух ee члeнoв, кaждый пocлeдующий члeн paвeн cуммe двух пpeдшecтвующих. Ecли бpaть тoлькo пocлeднюю цифpу кaждoгo чиcлa в пocлeдoвaтeльнocти, тo пoлучитcя пocлeдoвaтeльнocть чиceл Ecли этa пocлeдoвaтeльнocть пpимeняeтcя для нaчaльнoгo зaпoлнeния мaccивa бoльшoй длины, тo, иcпoльзуя этoт мaccив, мoжнo coздaть гeнepaтop cлучaйных чиceл Фибoнaччи c зaпaздывaниeм, гдe cклaдывaютcя нe coceдниe, a удaлeнныe чиcлa. Мapcaлиa и Зeймaн пpeдлoжили ввecти в cхeму Фибoнaччи "бит пepeнoca", кoтopый мoжeт имeть нaчaльнoe знaчeниe 0 или 1. Пocтpoeнный нa этoй ocнoвe гeнepaтop "cлoжeния c пepeнocoм" пpиoбpeтaeт интepecныe cвoйcтвa, нa их ocнoвaнии мoжнo coздaвaть пocлeдoвaтeльнocти, пepиoд кoтopых знaчитeльнo бoльшe, чeм у пpимeняeмых в нacтoящee вpeмя кoнгpуэнтных гeнepaтopoв. Пo oбpaзнoму выpaжeнию Мapcaлиa, гeнepaтopы этoгo клacca мoжнo paccмaтpивaть кaк уcилитeли cлучaйнocти. Oднaкo бoльшoй пepиoд caм пo ceбe eщe нe являeтcя дocтaтoчным уcлoвиeм. Cлaбыe мecтa гaмм бывaeт тpуднo oбнapужить и aнaлитику тpeбуeтcя пpимeнять утoнчeнныe мeтoды aнaлизa пocлeдoвaтeльнocтeй, чтoбы выдeлить oпpeдeлeнныe зaкoнoмepнocти, кoтopыe cкpыты в бoльшoм мaccивe цифp.

      Вывoды: Пpoблeмa cлoжнocти peaлизaции aлгopитмa гeнepaции ПCП ocнoвaннoгo нa кaкoй либo мaтeмaтичecкoй мoдeли, cущecтвoвaвшaя ужe к cepeдинe пpoшлoгo cтoлeтия ocтaeтcя aктуaльнoй и ceйчac. Т.к. иccлeдoвaния вeдутcя нe тoлькo в oблacти зaшифpoвки, нo и pacшифpoвки дaнных, нecмoтpя нa тo, чтo oгpoмный пpoгpecc дocтигнут и в coздaнии вce тeх жe мaтeмaтичecких мoдeлeй ПCП

      1.2 Тecтиpoвaниe пceвдocлучaйных пocлeдoвaтeльнocтeй

      Тecтиpoвaниe пceвдocлучaйных пocлeдoвaтeльнocтeй -- coвoкупнocть мeтoдoв oпpeдeлeния мepы близocти зaдaннoй пceвдocлучaйнoй пocлeдoвaтeльнocти к cлучaйнoй. В кaчecтвe тaкoй мepы oбычнo выcтупaeт нaличиe paвнoмepнoгo pacпpeдeлeния, бoльшoгo пepиoдa, paвнoй чacтoты пoявлeния oдинaкoвых пoдcтpoк и т. п.

      Oдин из caмых нaглядных тecтoв -- тecт нa paвнoмepнoe pacпpeдeлeниe чacтoт пoявлeния кaждoгo cимвoлa. Пуcть о1,о2. оn -- пocлeдoвaтeльнocть длинoй n и paзмepнocти m. Тoгдa чacтoты нi дoлжны пpинaдлeжaть oтpeзку 1.1.3.1

      Oднaкo, бoльшинcтвo тecтoв иcпoльзуют дpугoй мeтoд -- пpинятиe или oтклoнeниe гипoтeзы o cлучaйнocти пocлeдoвaтeльнocти, иcпoльзуя cтaтиcтичecкиe pacпpeдeлeния.

      Oпpeдeлим вeличину P-value кaк вepoятнocть тoгo, чтo идeaльный гeнepaтop cгeнepиpoвaл пocлeдoвaтeльнocть мeнee cлучaйную, чeм иccлeдуeмый. Тoгдa ecли P-value бoльшe б, тo иccлeдуeмaя пocлeдoвaтeльнocть cчитaeтcя cлучaйнoй и нaoбopoт в пpoтивнoм cлучae.

      Кpaткo шaги cтaтиcтичecкoгo тecтиpoвaния мoжнo изoбpaзить в видe тaблицы 1.3.1:


      Надежный пароль – это главный барьер, который мешает взломать большинство ваших аккаунтов в сети. Если вы не пользуетесь современными методиками создания паролей, то вполне возможно, что мошенники смогут подобрать их буквально за несколько часов. Чтобы не подвергать себя риску кражи идентификационных данных и не стать жертвой вымогательства, вам нужно создавать пароли, которые могут противостоять усилиям хакеров, вооруженных современными средствами взлома.

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


      Угрозы безопасности паролей

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

      Вот некоторые из методов, которые помогают хакерам проникнуть в ваш аккаунт:

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

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

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

      Утечки данных – это еще одна опасность, угрожающая и паролям, и другой важной информации. Компании все чаще становятся жертвами взлома; хакеры могут продавать или публиковать украденные данные. Утечки данных представляют для вас особенно большую угрозу, если вы используете один и тот же пароль в разных местах: весьма вероятно, что ваши старые аккаунты могут быть скомпрометированы, и это открывает для злоумышленников доступ и к другим вашим данным.

      Почему вам нужен надежный пароль для устройств, которые подключаются к интернету

      Как создать надежный пароль

      Чтобы защититься от новейших методов взлома, вам нужны сверхнадежные пароли. Если вы хотите узнать, насколько надежен ваш пароль, и повысить его стойкость, мы подготовили несколько вопросов и советов, которые помогут вам:

      Типы надежных паролей

      Существует два основных подхода к составлению надежных паролей.

      Кодовые фразы работают, потому что:

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

      Цепочки случайных символов – это бессистемные сочетания символов всех видов. В таких паролях задействованы строчные и прописные буквы, символы и числа в случайном порядке. Поскольку расстановка символов не следует никакому определенному методу, угадать такой пароль невероятно трудно. Даже специализированным программам могут понадобиться триллионы лет, чтобы взломать такой пароль.

      Цепочки случайных символов работают, потому что:

      • их практически невозможно угадать;
      • их очень сложно взломать;
      • их можно запомнить с помощью мышечной памяти и мнемотехники.

      Примеры надежных паролей

      Теперь, когда вы ознакомились с типами надежных паролей и правилами их составления, давайте закрепим эти знания.

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

      Пример 1: dAmNmO!nAoBiZPi?

      Почему этот пароль считается надежным?

      Как улучшить этот пароль?

      • Добавьте символы, чтобы сделать его еще длиннее.
      • Добавьте цифры.
      • Пример: dAmNmO!7nAoBvPi?6

      Пример 2: !HMnrsQ4VaGnJ-kK

      Почему этот пароль считается надежным?

      Как улучшить этот пароль?

      Пример 3: яростьуткапростолуна

      Почему этот пароль считается надежным?

      • Он основан на кодовой фразе, использующей несколько распространенных, но не связанных между собой слов.
      • Пароль длинный – 20 символов.

      Как улучшить этот пароль?

      • Используйте разнообразные символы – строчные и прописные буквы, символы, числа.
      • Замените некоторые символы одного типа символами другого.
      • Пример: !Рость%Тка?Росто4Уна (использовано следующее правило: вторая буква каждого слова заменяется на строчную, первая – на символ).

      Как пользоваться паролями и как их запоминать

      Пароли предоставляют вам доступ ко множеству важных сервисов, так что храните их как можно надежнее.

      Чтобы обеспечить безопасность:

      Вместо этого пользуйтесь следующими методами:

      Активируйте двухфакторную аутентификацию на всех ваших самых ценных аккаунтах. Это дополнительная проверка безопасности после успешного ввода пароля. Для двухфакторной аутентификации используются методы, доступ к которым есть только у вас: электронная почта, SMS, биометрия (например, отпечаток пальца или Face ID) или USB-ключ. Двухфакторная аутентификация не пропустит мошенников и злоумышленников в ваш аккаунт, даже если они украдут ваши пароли.

      Часто обновляйте самые важные пароли. И старайтесь, чтобы новый пароль был не похож на старый. Менять лишь несколько символов в прежнем пароле – вредная практика. Обновляйте пароли регулярно, например каждый месяц. Даже если вы обновляете не все пароли, регулярно меняйте их хотя бы для следующих сервисов:

      • интернет-банкинг;
      • оплата счетов;
      • основной пароль менеджера паролей;
      • социальные сети;
      • электронная почта;
      • личные кабинеты телефонного оператора и интернет-провайдера.

      Наконец, помните: если ваш пароль удобен для вас, скорее всего, он удобен и для взломщиков. Сложные пароли – лучший способ защитить себя.

      Используйте менеджер паролей, например Kaspersky Password Manager. Главное достоинство менеджера паролей – шифрование и доступ из любого места, где есть интернет. Некоторые продукты уже содержат встроенное средство для генерации и оценки надежности паролей.

      Статьи по теме:

      Советы по созданию уникальных надежных паролей

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

      Пояснительная записка содержит 32 с., 2 рис., 4 источника, 4 прил.

      MICROSOFT VISUAL С++, ПРОГРАММА, ПАРОЛЬНАЯ СИСТЕМА, КОЛИЧЕСТВЕННАЯ ОЦЕНКА СТОЙКОСТИ ПАРОЛЯ.

      Объектом исследования является парольные системы.

      Целью работы является разработка программы, генерирующей пароли пользователей с учётом количественной оценки стойкости пароля.

      В процессе работы была произведена количественная оценка стойкости паролей пользователей и в соответствии с полученной оценкой была разработана программа, генерирующая пароли пользователей.

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

      1. Количественная оценка стойкости пароля

      2.1 Понятие интерфейса и его назначение

      2.2. Выбор интерфейса

      3. Разработка алгоритма программы

      4. Создание программы на базе разработанного алгоритма

      5. Экспериментальная проверка количественных оценок стойкости пароля

      6. Руководство пользователя

      Список использованных источников

      ПРИЛОЖЕНИЕ А. Алгоритм программы

      ПРИЛОЖЕНИЕ Б. Текст программы

      ПРИЛОЖЕНИЕ В. Random.cpp

      ПРИЛОЖЕНИЕ Г. PassGenDlg.cpp

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

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

      Несанкционированный доступ (Н.С.Д.) к информации - доступ к информации, нарушающий установленное правило разграничения доступа и осуществляемый с использованием нештатных средств, предоставляемых автоматизированной системой.

      Выделяют 2 типа методов защиты от Н.С.Д.:

      1) организационные меры - определяются документально.

      2) Технические меры - группа методов, которые реализуются программными, аппаратными и программно - аппаратными средствами.

      Существуют 3 группы методов аутентификации, которые основаны на обладании некоторого свойства или объекта

      1) обладание определённым объектом;

      2) основано на знании информации известной пользователю и проверяющей стороне;

      3) основано на том, что у каждого пользователя есть уникальные биометрические характеристики.

      Общие подходы к построению парольных систем.

      1. с использованием хранимой копии пароля;

      2. некоторое проверочное значение;

      3. парольная система без непосредственной передачи информации, о пароле проверяющей стороне;

      4. использование пароля для получения криптографического ключа.

      Идентификатор пользователя - некоторая уникальная информация, позволяющая различать индивидуальных пользователей парольной системы. Часто идентификатор пользователя называют именем пользователя. Пароль - некоторая секретная информация, которая известна только пользователю и парольной системе, которая предъявляется для прохождения процедуры идентификации.

      Учётная запись пользователя - совокупность его идентификатора и пароля. База данных пользователей парольной системы содержит учётные записи пользователей парольной системы. Под парольной системой понимается программно-аппаратный комплекс, реализующий идентификацию и аутен-тификацию пользователей автоматизированной системы на основе одноразовых и многоразовых паролей.

      Угрозы для парольной системы.

      1. разглашение параметров учётной записи

      а) подбор пароля;

      б) визуальное наблюдение;

      в) перехват пароля в сети.

      2. вмешательство в функционирование парольной системы

      а) использование программных закладок;

      б) выведение из строя парольной системы;

      в) использование ошибок и недоработок в парольной системе.

      Выбор паролей

      Требования к выбору паролей:

      требования к выбору пароля

      ограничение минимальной длины

      1 усложняется подбор методом прямого перебора

      2 усложняется подсматривание

      Использование различных групп символов

      усложняется подбор методом прямого перебора

      проверка и отбраковка по словарю

      затруднение подбора пароля по словарю

      установление срока действия пароля

      усложняется подбор методом прямого перебора и подстановки старого

      ведение журнала историй пароля

      повышается эффективность предыдущего

      ограничение количества попыток ввода

      препятствует подбору пароля

      поддержка режима принудительной смены пароля

      увеличение эффекта выполнения требования касающегося смены пароля

      принцип смена пароля после 1-ой регистрации

      защита от злоумышленных действий администратора

      запрет на выбор пароля самим пользователем

      защита от выбора пользователем лёгкого пароля

      Задержка при вводе неправильного пароля

      затрудняется подбор пароля когда он вводится с клавиатуры непосредственно за компьютером

      1. Количественная оценка стойкости пароля

      “А”-мощность алфавита паролей

      могут применяется для обеспечения требуемого значения S=A L

      “S”-мощность пространства паролей

      определяется на основе заданных значений P,T,V

      “V”-скорость подбора паролей

      скорость обработки 1-ой попытки регистрации

      “T”- срок действия пароля

      определяется из параметра Р.

      “P”- вероятность подбора пароля в течение срока его действия (подбор идёт неправильно в течение всего времени)

      Произведём количественную оценку пароля при заданных параметрах:

      -вероятность подбора пароля Р-10 -4 ;

      -период действия пароля Т, минут-30;

      -длина пароля L, 6 символов;

      -мощность алфавита паролей А – прописные и строчные латинские буквы и цифры от 0 до 9 т.е. 62 символов;

      Необходимо найти скорость подбора пароля.

      Для нахождения скорости подбора пароля воспользуемся формулой P=V*T/S, причем мощность пароля равна S=A L . Период действия выразим в секундах (Т=30 мин.* 60 сек. =1800 сек.). Таким образом получаем V=P*A L /T. Подставив значения получили V= 10 -4 *62 6 /1800=3155 пар./сек.

      Подсчитав, мы получили величину скорости подбора пароля равную 3155 пар./сек.

      2. Интерфейс

      2.1 Понятие интерфейса и его назначение

      Перед началом самого программирования и даже составления алгоритмов необходимо представить себе как будет работать программа и посредством этого выбрать интерфейс.

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

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

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

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

      Таким образом, система взаимодействия должна рассматриваться как часть более обширной системы - АСУ реального времени, тогда как последняя - системы управляемой среды.

      В настоящее время можно считать доказанным, что главная задача проектирования интерфейса пользователя заключается не в том, чтобы рационально "вписать" человека в контур управления, а в том, чтобы, исходя из задач управления объектом, разработать систему взаимодействия двух равноправных партнёров (человек- оператор и аппаратно- программный комплекс АСУ), рационально управляющих объектом управления.

      2.2 Выбор интерфейса

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

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

      Интерфейс приведен на рисунке 1.

      3. Разработка алгоритма программы

      В данном разделе проводится разработка алгоритма работы программы, генерирующей пароли пользователей.

      Прежде чем начать разработку, вводим несколько ограничений:

      - программа должна исключать подбор пароля по словарю;

      - программа должна обеспечивать взаимодействие с пользователем посредством графического интерфейса;

      - процесс выполнения генерации паролей должен быть реализован в интегрированной среде разработки Microsoft Visual C++ v. 6.0.

      - символы не должны повторяться.

      После запуска программы и нажатия на клавишу “Генерировать код” должен генерироваться случайно первый символ из заранее созданного массива символов PassAlfavit[], после чего данный символ записывается в другой массив passwrd[]. Далее генерируется второй и происходит проверка, не повторяются ли символы. Если выполняется данное условие, то происходит удаление последнего символа, если же нет, то происходит запись в массив passwrd[] со следующим символом.

      Затем происходит проверка, не достигнута ли длина пароля, обеспечивающая его стойкость при заданных параметрах, в соответствии с заданием длина пароля будет равна 6 символам. После чего происходит присоединение символов в одно слово и происходит проверка на наличие сгенерированного пароля в словаре английских слов и аббревиатур, если данный пароль существует в словаре, то происходит его удаление и генерация начинается сначала.

      После завершения генерации пароля он должен быть выдан в специальном поле.

      Структурная схема алгоритма программы, генерирующей пароли пользователей, приведена в приложении А.

      4. Создание программы на базе разработанного алгоритма

      В данном разделе приводится описание текста программы выполняющей генерацию паролей пользователей. Данная программа реализована на языке программирования С++ при помощи интегрированной среды обработки Visual С++.

      Работа с элементами управления

      Для начала необходимо создать поле, в котором будет выводиться сгенерированный код. Для этого в рабочую область перетаскивается элемент Edit Box (Текстовое поле). Затем регулируются ее размеры и положение.

      Так же необходимо создать клавишу после, которой будет происходить генерация кода, для этого перетащим из панели инструментов элемент с названием Button.

      Откроем диалоговое окно Edit Properties. В тестовое поле раскрывающего списка ID: (Идентификатор ресурса) вместо идентификатора IDC_EDIT1 введём идентификатор IDGEN, а в поле caption введём слово Generirowanie.

      Клавишу Cancel которую создал MFC AppWizard оставим без изменений но укажем новое местоположение.

      На этом этап формирования диалогового окна можно считать законченным. Дело в том, что одновременно с производимыми нами действиями программная оболочка Visual C++ фиксировала все вносимые изменения в файлах PassGen.rc и resource.h.

      Создание класса диалога

      Приступим к созданию класса диалога. Очень большую долю работы по созданию этого класса уже выполнил мастер AppWizard, а еще некоторую часть работы возьмет на себя мастер ClassWizard.

      Оболочка Visual C++ сама создаст Password.cpp и Random.cpp. Далее необходимо будет заменить данные файлы, на файлы, приведённые в приложении Б и В соответственно.

      Далее остаётся только сохранить и откомпилировать данную программу.

      На этом создание программы на языке С++ закончилось.

      5. Экспериментальная проверка количественных оценок

      Данную экспериментальную проверку будем осуществлять, изменяя скорость подбора паролей, и фиксировать время, за которое не будет скомпрометирован пароль, при этом значения P и S изменяться не будут.

      - вероятность подбора пароля P=10 -3 ;

      - мощность пространства паролей S=1,6*10 12

      Время, за которое данный пароль не будет скомпрометирован, вычисляется по следующей формуле: T=(P * S) / V

      1 Скорость подбора пароля V, паролей /сек-1*10 5 ;

      T=(10 -3 *1.6*10 12 ) / 10 5 = 1600 секунд => 4.44 часа

      2 Скорость подбора пароля V, паролей /сек-2*10 5 ;

      T=(10 -3 *1.6*10 12 ) / 2*10 5 = 8000 секунд => 2.22 часа

      3 Скорость подбора пароля V, паролей /сек-2,5*10 5 ;

      T=(10 -3 *1.6*10 12 ) / 2,5*10 5 = 6400 секунд => 1.77 часа

      4 Скорость подбора пароля V, паролей /сек-3*10 5 ;

      T=(10 -3 *1.6*10 12 ) / 3*10 5 = 5333 секунд => 1.48 часа

      При увеличении скорости подбора паролей в два раза время, затраченное на подбор, уменьшается также в два раза.

      Для того, что бы точно скомпрометировать пароль за три часа, необходима скорость подбора паролей V=1.5*10 8 паролей /сек. Время взлома также уменьшается от вида атаки и от степени осведомлённости злоумышленника. Так простейшая программа для взлома паролей архиватора RAR “Advanced RAR Password Recovery” предусматривает 3 типа атаки:

      Сократить время взлома также можно, указав предполагаемую длину или установив её рамки, так же можно указать язык или набор символов, из которых предположительно состоит пароль.

      6. Руководство пользователя

      Для начала работы с программой необходимо запустить файл с названием PassGen. После запуска появится окно. Для генерации пароля необходимо нажать на клавишу “GENERIROVANIE”. После чего в окошке появится сгенеррированный пароль. Далее необходимо запомнить пароль и использовать по назначению. При повторном нажатии на клавишу пароль будет сгенерирован вновь. Для выхода из программы необходимо нажать на клавишу “Выход” или нажав на “крестик”.

      В процессе выполнения курсового проекта была разработана программа, генерирующая пароли пользователей. Программа была написана при помощи интегрированной среды разработки Visual C++. Программа соответствует всем функциональным требованиям, заданным на курсовое проектирование. Взаимодействие с пользователем осуществляется с помощью графического интерфейса.

      Таким образом, задание на курсовое проектирование было полностью выполнено.

      Список использованных источников

      3 Келецкий Я. Энциклопедия языка Си/ Пер. с англ.- М.: Мир, 1992. -687с.

      4 Керниган Б., Ричи Д., Фьюер А. Язык программирования Си. Задачи по языку С/ Пер. с англ. - М.: Финансы и статистика, 1985.-279с.

      ПРИЛОЖЕНИЕ А


      Случайное генерирование 1-го символа из массива PassAlfavit[]


      --------------[на лист 2

      Рисунок А.1. Алгоритм программы


      ---------------------------------------[с листа 1




      Рисунок А.1. Лист №2

      ПРИЛОЖЕНИЕ Б

      // Password.cpp: implementation of the Password class.

      static char THIS_FILE[]=__FILE__;

      passwrd = new char [length+1];

      dicstr = new char [length+1];

      PassAlfavit = new char [36];

      HowMuchn = new int [length];

      for (int index=0;index 1)

      MessageBox(0,"Не удается открыть словарь", "ошибка", MB_APPLMODAL|MB_OK|MB_ICONSTOP);

      for (int index =0;index

      static char THIS_FILE[]=__FILE__;

      int Random::NextR(int x)

      ПРИЛОЖЕНИЕ Г

      // PassGenDlg.cpp : implementation file

      static char THIS_FILE[] = __FILE__;

      CPassGenDlg::CPassGenDlg(CWnd* pParent /*=NULL*/)

      // NOTE: the ClassWizard will add member initialization here

      // Note that LoadIcon does not require a subsequent DestroyIcon in Win32

      void CPassGenDlg::DoDataExchange(CDataExchange* pDX)

      // NOTE: the ClassWizard will add DDX and DDV calls here

      // CPassGenDlg message handlers

      // Set the icon for this dialog. The framework does this automatically

      // when the application's main window is not a dialog

      SetIcon(m_hIcon, TRUE); // Set big icon

      SetIcon(m_hIcon, FALSE); // Set small icon

      // TODO: Add extra initialization here

      return TRUE; // return TRUE unless you set the focus to a control>

      // If you add a minimize button to your dialog, you will need the code below

      // to draw the icon. For MFC applications using the document/view model,

      // this is automatically done for you by the framework.

      SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

      // Center icon in client rectangle

      int cxIcon = GetSystemMetrics(SM_CXICON);

      int cyIcon = GetSystemMetrics(SM_CYICON);

      int x = (rect.Width() - cxIcon + 1) / 2;

      int y = (rect.Height() - cyIcon + 1) / 2;

      dc.DrawIcon(x, y, m_hIcon);>

      // The system calls this to obtain the cursor to display while the user drags

      Основной способ противодействовать взлому паролей — искусственно замедлить процедуру их проверки. Действительно, займет ли проверка 10 наносекунд или 10 миллисекунд — для пользователя разница будет совершенно незаметной, а с точки зрения взлома скорость упадет очень существенно — со 100 миллионов до 100 паролей в секунду. Замедление обычно достигается за счет многократного вычисления… Читать ещё >

      Исследование алгоритмов оценки стойкости пароля ( реферат , курсовая , диплом , контрольная )

      Факультет информационных технологий и телекоммуникаций

      Курсовая работа На тему: Исследование алгоритмов оценки стойкости пароля

      Обозначение курсового проекта КР-СевКавГТУ-81 023−11

      Автор дипломного проекта Воронин В.Ю.

      Руководитель работы Воронкин Р.А.

      1. Стойкость паролей

      2. Исследование некоторых алгоритмов оценки стойкости пароля

      2.1 Анализатор паролей SeaMonkey

      2.2 Password Strength Meter (jQuery plugin)

      2.3 Cornell University — Password Strength Checker

      2.4 Password Strength Tester

      3. Алгоритм оценки стойкости пароля от Microsoft

      Заключение

      Список использованных источников Приложение

      Пароли представляют собой наиболее распространённый инструмент, используемый для получения доступа к информационным ресурсам.

      Для пользователей это один из самых удобных вариантов, который, к тому же, не требует наличия какого-либо дополнительного оборудования или специальных навыков. Все, что требуется — это придумать и запомнить стойкий пароль (или несколько паролей). Кажется, это совсем не сложно? К сожалению, суровая реальность вносит свои коррективы в этот процесс.

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

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

      — Техническое несовершенство (ошибки разработчиков), чаще всего заключающееся в ошибках, допущенных на этапах проектирования и/или реализации программного обеспечения, осуществляющего проверки паролей.

      1. Стойкость паролей

      Мерой стойкости паролей традиционно является энтропия — мера неопределенности, измеряемая обычно в битах. Энтропия в 1 бит соответствует неопределенности выбора из двух паролей, в 2 бита — из 4 паролей, в 3 бита — из 8 паролей и т. д. Энтропия в N бит соответствует неопределенности выбора из паролей. В случае случайных паролей (например, сгенерированных с помощью генератора случайных чисел) энтропия вычисляется достаточно просто: она равна логарифму по основанию два количества возможных паролей для заданных параметров. Так, для случайного пароля длиной N символов, составленного из алфавита, содержащего M букв, энтропия будет равна:

      Значения энтропии для некоторых длин паролей и наборов символов представлены в таблице 1.

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

      — энтропия первого символа пароля составляет 4 бита;

      — энтропия следующих семи символов пароля составляет 2 бита на символ;

      — энтропия символов с 9-го по 20-й составляет 1,5 бита на символ;

      — все последующие символы имеют энтропию 1 бит на символ;

      — если пароль содержит символы верхнего регистра и неалфавитные символы, то его энтропия увеличивается на 6 бит.

      Таблица 1.1 — Значения энтропии для некоторых длин паролей

      Длина пароля

      Цифры (10) (1)

      Латинские буквы без учета регистра (26)

      Цифры и латинские буквы без учета регистра (36)

      Латинские буквы с учетом регистра (52)

      Цифры и латинские буквы с учетом регистра (62)

      Цифры, латинские буквы и специальные символы (96)

      Читайте также: