زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت مطالب تازه مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم

با استفاده از اینترنت و رایانه ، گذرواژه\u200cهای بیشتر و بیشتری داریم. اینها کلمه عبور و ورود به صندوق پستی ، اسکایپ ، سایتهایی است که ما در آن ثبت نام کرده ایم (VKontakte ، همکلاسی ها و غیره) ، و کاربران پیشرفته تری نیز از رمزهای عبور برای برنامه های مختلف ، کلمات عبور FTP ، کلیدهای مجوز و اینها استفاده می کنند. این لیست می تواند برای مدت طولانی ادامه یابد. هرچه تعداد رمزهای عبور بیشتری داشته باشیم (البته به آنها نیز وارد شوید) بدیهی تر این است که ما به نوعی حافظه مطمئن برای آنها احتیاج داریم. البته می توانیم یک اسناد .txt ایجاد کنیم و همه چیز را در آنجا ضبط و ذخیره کنیم. ممکن است با خواندن این سطرها فکر کنید: "من همین کار را می کنم ، چرا بد است؟" ممکن است بد نباشد ، اما راحت نیست ، علاوه بر این روش بهتری برای ذخیره گذرواژها نیز وجود دارد. من مطمئن هستم که شما آن را دوست دارید. این روش است با استفاده از یک مدیر رمزعبور به نام KeePass. مزایای آن چیست؟

1) کلیه رمزهای عبور شما در برنامه ای قرار دارد که به طور قابل اطمینان در برابر ترک رمز محافظت می شود و در عین حال با الگوریتم AES رمزگذاری می شوند (رمزنگاری بلوک 128 بیتی با استفاده از یک کلید 256 بیتی). هنگام ورود به برنامه ، باید یک رمز عبور وارد کنید ، در غیر این صورت دسترسی در دسترس نیست. توصیه می شود که رمز عبور حداقل از 20 کاراکتر تشکیل شده باشد ، اگر کرکر بخواهد چنین پسوردی را انتخاب کند ، چندین دهه طول خواهد کشید. به سختی کسی علاقه ای به انتخاب چنین رمز عبور طولانی دارد.
2) رابط کاربر پسند برنامه ، می توانید گروه ها را با گذرواژه ها ترکیب کنید (برای مثال ، گروه شبکه های اجتماعی ، گروه Mail).
3) عملکرد خودکار - برنامه می تواند به طور خودکار وارد یک رمز ورود و رمز عبور شود.
4) نسخه قابل حمل KeePass به شما امکان می دهد تمام رمزهای عبور خود را به راحتی در یک درایو فلش حمل کنید.
5) یک سازنده رمز عبور در KeePass وجود دارد ، بنابراین اکنون نیازی نیست که خودتان آنها را اختراع کنید. ژنراتور رمز عبور همچنین حاوی تنظیمات اضافی است که به شما امکان می دهد مشخص کنید که کدام شخصیت ها از آنها استفاده کنند یا از آنها استفاده نکنند و چند بار باید با همان رمز عبور رخ دهند.

اینها مزایای اصلی هستند. حال بیایید ببینیم که چگونه با برنامه KeePass کار کنیم. بیایید با نصب و Russification KeePass شروع کنیم. (در پایان این مقاله برنامه KeePass را بارگیری کنید). نصب بصری است ، بنابراین ما در آن ساکن نخواهیم شد. پس از نصب ، برنامه باید روسی شود. برای این کار ، در بایگانی که بارگیری کرده اید ، پرونده "روسی" را پیدا کنید و با برنامه نصب شده آن را در پوشه کپی کنید. معمولاً مسیر این است: "C / Programm Files / KeePass رمز عبور ایمن". اما بسته به تنظیمات شما ممکن است روش دیگری وجود داشته باشد.

سپس برنامه را اجرا کنید. در اولین پرتاب آن چنین پنجره ای وجود خواهد داشت:

از ما سؤال می شود که آیا می توان بروزرسانی های خودکار را فعال کرد یا خیر. البته این کار باید انجام شود ، بنابراین گزینه اول را انتخاب می کنیم: "فعال کردن (توصیه)". پنجره اصلی برنامه را خواهیم دید:

KeePass هنوز به زبان انگلیسی است و شما باید Russification را انجام دهید. برای تکمیل آن ، به: مشاهده / تغییر زبان بروید. تصویر صفحه:

در اینجا روسی را انتخاب می کنیم

به این ترتیب Russification of KeePass پیش می رود.

و اکنون ما شروع به ایجاد پایگاه داده رمز عبور خود می کنیم. برای انجام این کار ، روی: File / New یا فقط Ctrl + N کلیک کنید.

ما برای بانک اطلاعاتی خود نامی آورده ایم و روی "ذخیره" کلیک می کنیم. توجه داشته باشید که در آنجا پایگاه داده رمز را ذخیره می کنید ، زیرا از این پس تمام رمزهای عبور شما در اینجا ذخیره می شود. به عنوان مثال ، اگر می خواهید پایگاه داده رمز عبور را به رایانه دیگری منتقل کنید ، باید این فایل را کپی کنید. ممکن است موقعیت های دیگری وجود داشته باشد که به یک فایل پایگاه داده رمز عبور نیاز داشته باشید. بنابراین ، آن را در جایی ذخیره کنید که به راحتی بتوانید آن را پیدا کنید. این نکته مهم را خیلی با دقت انجام دهید.

در اینجا باید یک رمزعبور اساسی را بیابیم که هنگام ورود به برنامه استفاده خواهد شد. باید حداقل 20 کاراکتر باشد ، همانطور که در ابتدای مقاله ذکر شد. از گذرواژه کمتر از 20 کاراکتر نباید استفاده شود. تعداد کاراکترهای موجود در پسورد را ذخیره نکنید. اکنون این تنها رمز عبور شما باید به خاطر داشته باشید ، دیگران در برنامه ذخیره می شوند. همچنین کادر کنار "پرونده اصلی" را علامت بزنید ، بدون آن ، حتی با دانستن رمز عبور ، دیگر نمی توانید وارد برنامه شوید. اگر کسی سعی در انجام این کار داشته باشد ، این مرحله شکستن بانک اطلاعاتی رمزعبور را دشوارتر می کند. این نوع محافظت در KeePass استفاده می شود. روی "جدید" کلیک کنید

در اینجا نام فایل اصلی را تنظیم کرده و آن را ذخیره می کنیم. به یاد داشته باشید که در آن ذخیره کنید. پرونده پایگاه داده رمز عبور و پرونده کلیدی دو پرونده اصلی هستند که برای ورود به پایگاه داده رمز عبور لازم هستند. شما نباید آنها را گم کنید ، در غیر اینصورت برای بازگشت دسترسی به رمزهای عبور ذخیره شده در KeePass کار نمی کند.

در این پنجره باید عدد تصادفی تولید کنید. اگرچه پیچیده به نظر می رسد ، اما بسیار ساده است. مکان نما را روی ناحیه خاکستری حرکت دهید و این باعث ایجاد تعداد تصادفی می شود. "چه مدت می توان موش را بر روی ناحیه خاکستری سوار کرد؟" - تو پرسیدی. توجه داشته باشید که در زیر یک منطقه خالی وجود دارد (پیکان دوم به آن اشاره دارد). ماوس را بطور تصادفی حرکت دهید تا این منطقه پر شود.

نتیجه چه باید باشد؟ تصویر صفحه را مشاهده کنید:

ما می بینیم که تعداد بیت ها 256 است ، به این معنی که همه کار را به درستی انجام دادیم و اکنون روی "OK" کلیک کنید. کلید ما آماده است!

اکنون نیز در اینجا ، همه چیز آماده است. تأیید را کلیک کنید

در پنجره "ایجاد یک پایگاه داده جدید رمز عبور" بر روی "OK" کلیک کنید.

همه چیز آماده است و در تصویر می بینیم که KeePass چگونه به نظر می رسد.

همانطور که در ابتدای مقاله ذکر شد ، رمزهای عبور را می توان در این برنامه به گروهها طبقه بندی کرد. در آن ، به طور پیش فرض ، گروه هایی برای ذخیره رمزهای عبور و ورودی های رمز عبور آزمایش از قبل ایجاد شده اند. در سمت چپ گروه ها قرار دارند و در سمت راست رمزعبورها قرار دارند. البته ما نیازی به سوابق آزمایشی نداریم. آنها را حذف کنید.

همچنین گروه را حذف کنید. اگر گروه هایی که از قبل وجود دارند برای شما مناسب هستند ، شما نمی توانید آنها را حذف کنید. گروه های موجود را حذف خواهیم کرد و گروه های جدیدی را ایجاد خواهیم کرد. برای حذف یک گروه ، بر روی آن راست کلیک کرده و مورد "حذف گروه" را انتخاب کنید.

بنابراین ، گروه ها حذف شده اند ، و اکنون ما گروه های جدیدی را ایجاد می کنیم. برای انجام این کار ، به ویرایش / افزودن گروه بروید

نام گروه را وارد کنید. بگذارید در این گروه رمزهای عبور برای صندوق پستی خود ذخیره کنیم. ما گروه رمزهای عبور را "نامه" می نامیم. تصویر صفحه:

همانطور که مشاهده می کنید ، ما گروهی از رمزهای عبور را ایجاد کردیم که با نام Mail ایجاد کردیم. یک نام صحیح انتخاب شده ، درک این موضوع را که رمزهای ذخیره شده در آنجا تعلق دارند ، آسانتر می کند. نتیجه گیری: اسامی دوستانه به ما بسپارید و سوابق مورد نیاز خود را آسانتر و سریعتر خواهید یافت.

کار بعدی ضبط در یک گروه است. همانطور که قبلاً حدس زده اید ، ورود و پسورد ایمیل و همچنین برخی موارد مفید دیگر در رکورد ذخیره می شود. ما کمی بیشتر در مورد آنها صحبت خواهیم کرد. حال بیایید ببینیم چگونه می توان ورودی را به یک گروه اضافه کرد. برای انجام این کار ، به "ویرایش / افزودن ورودی ..." بروید

ما پنجره "افزودن ضبط" را باز کرده ایم

فرم را پر می کنیم ، 1) نام ورودی را پیدا می کنیم ، 2) نام ورود است ، 3) رمز عبور را که از قبل وجود دارد را پاک می کنیم و شخصی را که برای نامه پستی استفاده می کنیم وارد می کنیم ، همچنین می توانید یک پیوند به صفحه ای تنظیم کنید که در آن شما نیاز به ورود به سیستم و رمز عبور و نظرات بیشتری بنویسید در نظرات می توانیم به سؤال امنیتی یا برخی داده های دیگر که در هنگام ثبت نام ارائه داده ایم ، به طور کلی تمام آنچه نیاز داریم ، بیان کنیم. به عنوان مثال:

این همان چیزی است که سابقه ایجاد شده به نظر می رسد.

به هر حال ، ورود به سیستم (در KeePass به آن نام داده می شود) مانند ستاره مخفی می شود. برای انجام این کار ، به تب View رفته و مورد مناسب را انتخاب کنید.

بیایید کار انجام شده را خلاصه کنیم. ما یک رکورد اضافه کردیم و این کافی است تا درک کنیم که این روند چگونه پیش می رود. اکنون شما به طور مشابه تمام رمزهای عبور خود را نیز به این برنامه منتقل می کنید. بنابراین ، پایگاه خود را ایجاد خواهید کرد و قادر خواهید بود به راحتی و به سرعت ترکیب ترکیبی از ورود و کلمه عبور مورد نیاز خود را پیدا کنید.

چگونه اکنون ورود و رمز ورود را از رکورد خارج کنیم؟ روی رکورد راست کلیک کنید. تصویر صفحه را مشاهده کنید:

یک منو ظاهر شده است با بررسی دقیق آن می توانید مشاهده کنید که می توانید نام را کپی کنید ، رمز عبور را کپی کنید ، ورودی را تغییر دهید و حذف کنید. اینها اساسی ترین کارکردها هستند. اما یکی دیگر از ویژگی های بسیار مفید دیگر به نام "Start Auto Dial" وجود دارد. چگونه از آن استفاده کنیم؟ ابتدا مکان نما را در قسمت ورود به فرم در سایت قرار دهید و سپس به سوابق بروید و "شروع خودکار شماره گیری" را انتخاب کنید. برنامه به طور خودکار نام کاربری و رمز عبور را وارد می کند.

نکته مفید دیگری که KeePass در اختیار دارد ، تولید کننده رمز عبور است. امیدوارم همه بدانند چیست و چرا مورد نیاز است. در تب ابزار قرار دارد. همه چیز آنجا بصری است ، فکر می کنم تشخیص آن دشوار نخواهد بود.

این می تواند تکمیل شود. بهترین آرزوها برای شما.

آیا می توان به طریقه ترک KeePass و ادغام کلمات عبور اشاره کرد؟

اگر کسی نمی داند KeePass چیست ، به طور خلاصه - این یک برنامه مدیر رمز عبور است که به شما امکان می دهد یک رمز عبور اصلی را با یادآوری ذخیره کنید. می توانید اطلاعات بیشتر در مورد مدیران رمز عبور را در مورد ما بخوانید.

تا همین اواخر ، هک کردن KeePass غیرممکن بود ، اما روز دیگر شخصی Denis Andzakovic یک ابزار رایگان KeeFarce را در شبکه قرار داد ، که به یک مهاجم اجازه می دهد رمزهای یک مدیر رمز عبور محبوب را سرقت کند.

KeeFarce را به صورت رایگان در این لینک مستقیم بارگیری کنید.

هک کردن KeePass با KeeFarce

برای کرک کردن مدیر رمز عبور KeePass و ادغام گذرواژه\u200cها ، باید باز باشد ، یعنی به طوری که کاربر با ورود به سیستم رمزعبور وارد شوید تا مدتی برنامه را ببندد.

استفاده از KeeFarce بسیار ساده است. فقط پرونده ها را در پوشه KeePass کپی کنید:

  • BootstrapDLL.dll
  • KeeFarceDLL.dll
  • Microsoft.Diagnostic.Runtime.dll

و فایل اجرایی KeeFarce.exe را اجرا کنید


پس از شروع ، برنامه به روند KeePass در حال اجرا تزریق می کند. سپس ابزار تمام رمزهای عبور موجود در پرونده csv را به پوشه appdata صادر می کند.

چگونه خود را از هک KeePass محافظت کنید

اول از همه ، رایانه خود را برای trojans () بررسی کنید ، زیرا اگر مهاجمی از راه دور به رایانه شما دسترسی داشته باشد یا دسترسی فیزیکی داشته باشد در حالی که مدیر رمز عبور را باز کرده و به طور خلاصه کامپیوتر را ترک کرده است ، می توانید این طرح را اجرا کنید.

نکته دوم و مهم این است که مدیر رمز عبور را برای مدت طولانی باز نکنید. ما وارد برنامه شدیم ، نام کاربری و رمزعبور لازم را بیرون کشیدیم ، وارد سایت شدیم و بلافاصله مدیر را بستیم. می توانید اطلاعات بیشتر در مورد پیکربندی مناسب KeePass را در مقاله "" "بخوانید. به هر حال ، من در مورد این تهدید صحبت کردم و توصیه کردم زمان لازم برای بستن خودکار برنامه در زمان بیکار شدن ، قبل از ظاهر شدن این ابزار ، کاهش یابد.

در مورد سایر مدیران رمزعبور چطور؟

این آسیب پذیری (نه تنها این ابزار) همچنین می تواند برای سرقت رمزهای عبور از دیگر برنامه های ذخیره رمز عبور نیز استفاده شود. من فکر می کنم به زودی تعداد کمی از این ابزارها ، چه جداگانه و چه در برنامه های مختلف مخرب ، ساخته نمی شوند.

آیا باید از استفاده از مدیران رمز عبور امتناع کنم؟

تو تصمیم بگیر. من شخصاً معتقدم با استفاده صحیح از KeePass و بهداشت صحیح رایانه ، مشکلی ایجاد نمی شود.

در یکی از فیلم های قبلی ، من قبلاً در مورد برنامه ای برای ذخیره ایمن رمزهای عبور صحبت کرده ام. اما در نتیجه آزمایشات مشخص مشخص شد که ذخیره رمزهای عبور در آن چندان بی خطر نیست ، اما این امر در مورد نسخه کلاسیک این برنامه صدق می کند. بنابراین ، در این ویدئو ، نسخه حرفه ای KeePass را در نظر خواهیم گرفت. علاوه بر این ، آن را به عنوان نسخه کلاسیک رایگان است. اگر این اولین بار است که در مورد این برنامه می شنوید ، توصیه می کنم ابتدا به بررسی من برای نسخه کلاسیک بپردازید تا سوالات غیر ضروری نداشته باشید.

و بنابراین ، ما در این درس چه خواهیم کرد:

بیایید نسخه کلاسیک رمز عبور KeePass Safe را از طریق Key Logger کرک کنیم.

ما پایه را از نسخه کلاسیک به نسخه حرفه ای وارد می کنیم.

تفاوت های اصلی و نوآوری ها را در نظر بگیرید؛

و سعی کنید Logger Key را با نسخه حرفه ای هک کنید.

و اول از همه ، اجازه دهید به وب سایت برنامه نویسان برنامه www.keepass.info \\ بارگیری برویم. ما هر دو نسخه را با فرمت قابل حمل بارگیری خواهیم کرد ، زیرا من یک پایگاه داده را با رمزهای عبور بر روی فلش مموری حمل می کنم ، بنابراین برنامه مشاهده آنها نیز باید از یک درایو فلش شروع شود ، بدون اینکه آن را در سیستم عامل نصب کنید.

من قبلاً این کار را کردم ، و همچنین یک پایگاه داده تست برای نسخه کلاسیک ایجاد کردم. در حال حاضر ، من یک برنامه جاسوسی LanAgent دارم که روی سیستم من اجرا می شود. این برنامه متعلق به Loggers Key است ، یعنی برنامه هایی که تمام اقدامات کاربر را بر روی رایانه ضبط می کنند. بنابراین ، اکنون می فهمیم که چگونه این برنامه با اطمینان از رمزهای عبور ما محافظت می کند!

ما نسخه کلاسیک را راه اندازی می کنیم و بانک اطلاعاتی ایجاد شده را در آن باز می کنیم ، رمز عبور پایگاه داده را وارد کرده و وارد وب سایت Rutracker.org می شویم.

حال بیایید ببینیم که LanAgent چگونه قادر به رهگیری ، بروزرسانی سیاههها بوده است و می بینیم که این برنامه هم در کلید master و هم از ورود و رمز ورود سایت Rutracker رهگیری کرده است. حتی اگر سعی کنیم داده ها را از طریق کلیپ بورد وارد کنیم ، برنامه همچنین محتویات بافر را رهگیری می کند. از طرف دیگر ، رمز عبور بانک اطلاعاتی بی فایده است اگر مهاجم چیزی برای استفاده از آن نداشته باشد ، یعنی. پایه در درایو فلش ما قرار دارد. اما در این شرایط برنامه ها می توانند محتویات فلش مموری یا پرونده هایی را که در پس زمینه قابل دسترسی بودند کپی کنند و بنابراین ، به طور نامرئی برای ما ، می توان از پایگاه داده کپی کرد و تمام رمزهای عبور را با استفاده از کلید اصلی باز کرد!

به طور کلی ، نتیجه گیری زیر را می توان نتیجه گرفت ، نسخه کلاسیک مناسب است به منظور اینکه رمزهای عبور را به شکلی کاملاً باز نگه ندارید ، اما هنگام استفاده از نرم افزارهای جاسوسی ، کمکی نخواهد کرد. و برای خلاص شدن از این شکاف ، نسخه حرفه ای به ما کمک می کند!

1) برنامه را برای کار راحت تر Russify کنید ( www. نگهدار. اطلاعات \ ترجمه ها \ روسی \\ 2.28 \\ از برنامه با پوشه جدا شوید.چشم انداز \ تغییر دادن زبان \ روسی)

2) یک پایه جدید ایجاد کنید ( پرونده \\ جدید \\ مسیر و نام را مشخص کنید \\ گذرواژه اصلی را تنظیم کنید)

3) داده ها را از پایگاه داده قدیمی انتقال دهید تا همه چیز به صورت دستی هدایت نشود ( پرونده \\ واردات \\نگهدار 1. ایکس \\ مسیر را برای پایگاه داده قدیمی مشخص کنید \\ خوب \\ گذرواژه را به پایگاه داده وارد کنید \\ شناسه های جدید)

اکنون در این نسخه چیزهای جدید و جالب را در نظر بگیرید. من تمام نوآوری ها را در نظر نمی گیرم ، زمان زیادی می برد ، اما به نظر من روی جالب ترین ها متمرکز می شوم:

1) وارد کردن رمز اصلی در حالت محافظت شده ، که به شما امکان می دهد هنگام وارد کردن رمز اصلی ، عملکرد Logger Key را مسدود کنید ( سرویس \\ تنظیمات \\ امنیت \\ رمز ورود اصلی را در حالت امن وارد کنید)

2) ژنراتور رمز عبور با توجه به پیچیدگی انتخابی ، بلافاصله 30 گذرواژه ایجاد می کند. که از نظر شما می توانید ، از نظر شما ، سخت ترین را انتخاب کنید.

3) زبان شماره گیری خودکار نسبت به نسخه کلاسیک ساده تر است. من در بررسی نسخه کلاسیک درباره او صحبت نکردم ، بنابراین بیایید ببینیم که چگونه می تواند کمک کند!

به طور پیش فرض ، ترتیب توالی زیر دستورات در هنگام ورود خودکار انجام می شود. قسمت فعال ورود به سیستم ، TAB ، رمز عبور و ENTER وارد می شود. این دنباله را می توان مشاهده کرد اگر ورود را باز کنید \\ شماره گیری خودکار \\ از دنباله زیر استفاده کنید. و این گزینه در بیشتر موارد مناسب است ، زیرا به ورودی روتراکر نزدیک می شود.

با این وجود ، برای ورود نامه از طریق سایت www.mail.ru مناسب نیست. از آنجا که کادر تست من در mail.ru نیست ، اما bk.ru است ، می توانید الگوریتم ورودی فردی برای این سایت وارد کنید (USERNAME) (TAB) (رمز عبور) (TAB) (پایین) (پایین) (پایین) (پایین) (TAB) (وارد).

لیست دستورات در اینجا آورده شده است ، اگرچه به زبان انگلیسی نیز هست ، راهنمایی نیز وجود دارد ، اما در صورت تمایل می توانید آنرا بفهمید. از تمرین خودم ، بعضی اوقات توصیه می کنم از تیم استفاده کنم (DELAY 1000)این دستور تأخیر بین تیمهاست. فقط اتفاق می افتد که با اینترنت کند ، مرورگر وقت لازم برای قبول توالی دستورات را ندارد ، بنابراین به فکر زمان نیاز دارد ، در این شرایط این دستور کمک می کند (5000 - 5 ثانیه تأخیر).

4) عارضه مضاعف مجموعه - با این روش برنامه به طور صریح داده ها را وارد نمی کند ، بخشی از نام کاربری و رمز عبور را از کلیپ بورد می گیرد و قسمت با کاراکترها وارد می شود.

حالا بیایید بررسی کنیم که آیا LanAgent می تواند رمزهای عبور ما را فاش کند !؟ همانطور که می بینید ، هیچ چیزی نمی تواند بیرون کشیده شود ، و بنابراین ، این برنامه به طور کامل کار می کرد و اکنون از رمزهای عبور شما تا حد امکان محافظت می شود!

  • آموزش

روز دیگر ، من نیاز به پیاده سازی رمزگشایی پایگاه داده KeePass داشتم. من از این واقعیت ناراحت شدم که یک سند منفرد و یک مقاله واحد با اطلاعات جامع در مورد الگوریتم رمزگشایی برای پرونده های .kdb و .kdbx با در نظر گرفتن تمام تفاوت های ظریف وجود ندارد. این باعث شد که من این مقاله را بنویسم.


در حال حاضر 2 نسخه KeePass وجود دارد:

  • KeePass 1.x (فایلهای .kdb تولید می کند)؛
  • KeePass 2.x (فایلهای .kdbx تولید می کند).

ساختار پرونده با پایگاه داده KeePass (.kdb ، .kdbx) از 3 قسمت تشکیل شده است:

  • امضا (رمزگذاری نشده)؛
  • عنوان (رمزگذاری نشده است)؛
  • داده ها (رمزگذاری شده)

رمزگشایی پایگاه داده KeePass

ترتیب دهی:
  1. امضای پایگاه داده را بخوانید.
  2. عنوان پایگاه داده را بخوانید.
  3. ما یک کلید اصلی تولید می کنیم.
  4. ما پایگاه داده را رمزگشایی می کنیم.
  5. یکپارچگی داده ها را بررسی کنید.
  6. اگر پرونده فشرده شد ، آن را باز کنید.
  7. رمزهای عبور را رمزگشایی می کنیم.

موارد 5 ، 6 و 7 فقط مربوط به پرونده های .kdbx است!

امضا
BaseSignature (4 بایت)

امضای اول برای پرونده های .kdb و .kdbx یکسان است. او می گوید که این پرونده یک پایگاه داده KeePass است:

  • 0x9AA2D903
VersionSignature (4 بایت)

امضای دوم نسخه KeePass را نشان می دهد و بنابراین برای پرونده های .kdb و .kdbx متفاوت است:

  • 0xB54BFB65 - KeePass 1.x (پرونده .kdb).
  • 0xB54BFB66 - KeePass 2.x پیش از انتشار (پرونده .kdbx).
  • 0xB54BFB67 - KeePass 2.x پس از انتشار (پرونده .kdbx).
FileVersion (4 بایت)

فقط فایلهای .kdbx یک امضای سوم دارند و شامل نسخه پرونده هستند. برای پرونده های .kdb ، این اطلاعات در هدر بانک اطلاعات موجود است.


بنابراین ، در KeePass 1.x ، طول امضا 8 بایت و در KeePass 2.x 12 بایت است..

عنوان

بعد از امضای دیتابیس ، هدر شروع می شود.

هدر KeePass 1.x

سربرگ پرونده .kdb از قسمتهای زیر تشکیل شده است:

  1. پرچم ها (4 بایت): این قسمت نشان می دهد که هنگام ایجاد پرونده از انواع رمزگذاری استفاده شده است:
    • 0x01 - SHA256؛
    • 0x02 - AES256؛
    • 0x04 - ARC4؛
    • 0x08 - Twofish.
  2. نسخه (4 بایت): نسخه پرونده.
  3. Master Seed (16 بایت): برای ایجاد یک کلید اصلی استفاده می شود.
  4. رمزگذاری IV (16 بایت): برای رمزگشایی داده ها استفاده می شود.
  5. تعداد گروه ها (4 بایت): تعداد کل گروه ها در دیتابیس.
  6. تعداد مدخل ها (4 بایت): تعداد کل ورودی های پایگاه داده.
  7. محتویات هش (32 بایت): داده های رمزگشایی شده هش.
  8. Transform Seed (32 بایت): برای ایجاد یک کلید اصلی استفاده می شود.
  9. Transform Rounds (4 بایت): برای ایجاد یک کلید اصلی استفاده می شود.
هدر KeePass 2.x

پرونده های B.kdbx ، هر قسمت هدر از 3 قسمت تشکیل شده است:

  1. شناسه فیلد (1 بایت): مقادیر ممکن از 0 تا 10 است.
  2. طول داده (2 بایت).
  3. داده ([طول داده] بایت)

هدر پرونده .kdbx از قسمتهای زیر تشکیل شده است:

  • ID \u003d 0x01 نظر: این قسمت می تواند در عنوان نمایش داده شود ، اما در پایگاه داده من نبود.
  • ID \u003d 0x02 رمزنگاری ID: UUID روش رمزگذاری مورد استفاده را نشان می دهد (برای مثال ، برای AES 256 UUID \u003d).
  • ID \u003d 0x03 پرچم های فشرده سازی: شناسه الگوریتمی که برای فشرده سازی بانک اطلاعاتی استفاده می شود:
    • 0x00: هیچکدام
    • 0x01: GZip.
  • ID \u003d 0x04 Master Seed: برای ایجاد یک کلید اصلی استفاده می شود.
  • ID \u003d 0x05 Transform Seed: برای ایجاد یک کلید اصلی استفاده می شود.
  • ID \u003d 0x06 Transform Round: برای ایجاد یک کلید اصلی استفاده می شود.
  • ID \u003d 0x07 رمزگذاری IV: برای رمزگشایی داده ها استفاده می شود.
  • ID \u003d 0x08 Protected Stream Key: برای رمزگشایی رمزهای عبور استفاده می شود.
  • ID \u003d 0x09 Bytes Start Bytes: 32 بایت اول از پایگاه داده رمزگشایی شده. آنها برای تأیید صحت داده های رمزگشایی شده و درست بودن کلید master استفاده می شوند. این 32 بایت به طور تصادفی در هر بار تغییر در فایل ذخیره می شود.
  • ID \u003d 0x0A Inner Random Stream ID: شناسه الگوریتم مورد استفاده برای رمزگشایی رمزهای عبور:
    • 0x00: هیچکدام
    • 0x01: ARC4؛
    • 0x02: Salsa20.
  • ID \u003d 0x00 End Header: آخرین فیلد عنوان پایگاه داده ، که پس از آن خود پایگاه داده شروع می شود.
تولید کلید اصلی

تولید کلید اصلی در 2 مرحله انجام می شود:

  1. تولید کلید ترکیبی؛
  2. کلید اصلی را بر اساس یک کلید کامپوزیت تولید کنید.
1. تولید کلید ترکیبی

الگوریتم هش SHA256 برای تولید کلید کامپوزیت استفاده می شود. جداول زیر کد شبه تولید کلید کامپوزیت را نشان می دهد که بر اساس آن از نسخه KeePass استفاده می شود و برای رمزگشایی پایگاه داده (فقط رمز عبور ، فقط کلید پرونده یا همه با هم) به چه ورودی نیاز است:


KeePass 1.x



KeePass 2.x



توجه شما را به این نکته جلب می کنم که اگر چندین نهاد نیاز به رمزگشایی بانک اطلاعاتی (به عنوان مثال رمزعبور و کلید پرونده) دارید ، ابتدا باید هش را از هر موجودیت دریافت کنید ، و سپس آنها را به هم وصل کنید (concat) و هش را از توالی ترکیبی بگیرید.

2. تولید کلید اصلی مبتنی بر یک کلید کامپوزیت
  1. باید رمزگذاری کلید کامپوزیت با استفاده از الگوریتم AES-256-ECB به دست آمده در بالا.
    • به عنوان کلید مورد نیاز برای استفاده از Transform Seed از هدر.
    • این رمزگذاری باید بارهای Transform Rounds (از سرصفحه) انجام شود.
  2. با استفاده از SHA256 هش را از کلید کامپوزیت رمزگذاری شده دریافت می کنیم.
  3. ما استاد بذر را از سربرگ با هش دریافت شده متصل می کنیم.
  4. با استفاده از SHA256 از توالی ترکیبی هش می گیریم - این کلید اصلی ماست!

کد شبه

void GenerateMasterKey () (// رمزگذاری کلیدهای کامپوزیت TransformRounds برای (int i \u003d 0؛ i< TransformRounds; i++) { result = encrypt_AES_ECB(TransformSeed, composite_key); composite_key = result; }

// دریافت هش از کلید رمزگذاری شده کامپوزیت hash \u003d sha256 (کامپوزیت_کی)؛ // ترکیب هش حاصل با قسمت MasterSeed از کلید header \u003d concat (MasterSeed ، هش)؛ // هش را از توالی ترکیب شده در بالا master_key \u003d sha256 (کلید) دریافت کنید؛

رمزگشایی داده ها KeePass 1.x

بلافاصله پس از هدر ، خود پایگاه داده رمزگذاری شده شروع می شود. الگوریتم رمزگشایی به شرح زیر است:

  1. کل پرونده باقیمانده رمزگشایی
  2. با استفاده از SHA256 از داده های رمزگشایی شده هشی می شویم ( بایت پاراگراف قبلی را در نظر نمی گیرد).
  3. بررسی کنید که هش دریافت شده با قسمت Content Hash از سرصفحه مطابقت دارد:
    • اگر هش مطابقت دارد ، پس ما با موفقیت رمزگذاری پایگاه داده خود را! می توانید داده های رمزگشایی شده را به عنوان یک پرونده .xml ذخیره کنید و اطمینان حاصل کنید که همه ورود به سیستم با رمزهای عبور به طور صحیح رمزگشایی شده اند ،
    • اگر هش مطابقت نداشته باشد ، به این معنی است که یا گذرواژه اشتباه یا پرونده کلید ارائه شده است ، یا داده خراب شده است.

کد شبه

bool DecryptKeePass1x () (// طول بانک اطلاعاتی رمزگذاری شده را تعیین کنید // (اندازه پرونده - اندازه امضا - اندازه سرصفحه) db_len \u003d file_size - sign_size - header_size؛

// رمزگشایی داده رمزگشایی شده_data \u003d رمزگشایی_AES_256_CBC (master_key ، EncryptionIV ، encryted_data)؛ // تعداد بایت های "اضافی" اضافی \u003d decryelled_data را بیابید؛ // دریافت هش از داده ها (به استثنای بایت اضافی!) content_hash \u003d sha256 (رمزگشایی شده_داده [:( db_len - اضافی)])؛ // بررسی کنید که هش دریافت شده با برگه if (ContentHash \u003d\u003d content_hash) در قسمت ContentHash مطابقت داشته باشد؛ دیگر به دروغ برگردید؛

رمزگشایی داده ها KeePass 2.x

بلافاصله پس از پایان قسمت Header از سرصفحه ، خود پایگاه داده رمزگذاری شده شروع می شود. الگوریتم رمزگشایی به شرح زیر است:

  1. کل پرونده باقیمانده رمزگشایی با استفاده از الگوریتم AES-256-CBC.
    • به عنوان کلید ، از کلید اصلی تولید شده در بالا استفاده کنید.
    • ما از رمزگذاری IV از عنوان به عنوان بردار اولیه استفاده می کنیم.
  2. آخرین بایت های پایگاه داده رمزگشایی شده اضافی هستند - این چندین بایت یکسان در انتهای پرونده (padding) است. برای از بین بردن تأثیر آنها ، باید آخرین بایت پایگاه داده رمزگشایی شده را بخوانید - این تعداد بایت "اضافی" است که در آینده نباید مورد توجه قرار گیرد.
  3. بررسی کنید که 32 بایت اول از پایگاه داده رمزگشایی با قسمت Stream Start Bytes هدر مطابقت دارد:
    • اگر داده ها مطابقت داشته باشند ، ما کلید اصلی درست را تولید کردیم ،
    • اگر داده ها مطابقت نداشته باشند ، به این معنی است که یا رمزعبور اشتباهی تهیه شده است ، فایل کلیدی یا WUA یا داده خراب شده است.
  4. اگر مورد قبلی موفقیت آمیز بود ، 32 بایت اول را کنار بگذارید. قسمت Compression Flags of header را بررسی کنید. اگر از فشرده سازی پرونده GZip استفاده شده است ، سپس داده ها را باز کنید.
  5. ما به بررسی صحت داده ها می پردازیم. داده ها به بلوک ها تقسیم می شوند ، حداکثر اندازه بلوک 1024 * 1024 است. هر بلوک داده با یک عنوان شروع می شود. ساختار هدر به شرح زیر است:
    • Block ID (4 بایت): تعداد بلوک از 0 شروع می شود.
    • بلوک هش داده ها (32 بایت)؛
    • اندازه بلوک (4 بایت).
  6. بنابراین ، روش به شرح زیر است:
    • عنوان بلوک را بخوانید.
    • داده های بلوک را بخوانید.
    • با استفاده از SHA256 ، هش را از داده های بلاک دریافت می کنیم.
    • بررسی کنید که هش از هدر مطابقت دارد.
  7. ما توالی اقدامات از پاراگراف قبلی را برای هر بلوک داده انجام می دهیم. اگر داده ها در همه بلوک ها ذخیره شده باشد ، ما تمام هدرهای بلوک را برش می دهیم ، و دنباله حاصل پایگاه داده رمزگشایی شده است.
  8. توجه: حتی در پرونده رمزگشایی .kdbx رمزهای عبور قابل رمزگذاری هستند.
  9. ما داده های رمزگشایی و فشرده شده را به عنوان یک فایل .xml ذخیره می کنیم.
  10. ما در آن همه گره ها با نام "Value" ، صفت "محافظت شده" ، مقدار این ویژگی "True" را می یابیم و مقادیر این گره ها را می گیریم. اینها هنوز رمزهای عبور رمزگذاری شده هستند.
  11. رمزهای عبور رمزگذاری شده را با استفاده از الگوریتم base64decode رمزگشایی کنید.
  12. در قسمت Inner Random Stream ID از هدر ، ما به الگوریتمی که برای رمزگذاری رمزهای عبور استفاده می شود ، می پردازیم. در مورد من ، آن Salsa20 بود.
  13. ما یک توالی 64 بایت شبه تصادفی با استفاده از الگوریتم Salsa20 تولید می کنیم:
    • به عنوان کلید ، ما از هش از قسمت Protected Stream Key هدر به دست آمده با استفاده از SHA256 استفاده می کنیم.
    • به عنوان وکتور اولیه سازی ، از توالی 8 بایت ثابت 0xE830094B97205D2A استفاده می کنیم.
  14. مهم: با استفاده از این دنباله 64 بایت ، می توانید دقیقا رمزگشایی کنید 64 کاراکتر به منظور رمزهای رمزگشایی شده به یکدیگر پیوستند. اگر این کار برای رمزگشایی همه گذرواژه\u200cها کافی نیست ، باید دنباله شبه تصادفی زیر را تولید کنید و به رمزگشایی گذرواژه\u200cها و غیره ادامه دهید. پایان یافت
  15. برای به دست آوردن رمز عبور نهایی ، باید رمزعبور XOR را با استفاده از base64decode با دنباله شبه تصادفی به دست آمده در پاراگراف رمزگذاری شده رمزگشایی کنید (دنباله اقدامات با وضوح بیشتری در شبه کد در زیر ارائه می شود).
  16. خیلی مهم: رمزهای عبور باید به ترتیب رمزگشایی شوند! این در دنباله ای است که در پرونده xml ارائه می شود.
  17. ما در پرونده xml همه گره ها با نام "Value" ، صفت "محافظت شده" ، مقدار این ویژگی "True" را می یابیم:
    • مقدار ویژگی را با "False" جایگزین کنید.
    • مقدار گره با رمز رمزگذاری شده جایگزین می شود.
  18. و فقط اکنون ما به طور کامل رمزگذاری شده KeePass 2.x پایگاه داده را گرفتیم! هورای! \u003d)

کد شبه

bool DecryptKeePass2x () (// طول بانک اطلاعاتی رمزگذاری شده را تعیین کنید // (اندازه پرونده - اندازه امضا - اندازه سرصفحه) db_len \u003d file_size - sign_size - header_size؛

// رمزگشایی داده های رمزگشایی شده_data \u003d رمزگشایی_AES_256_CBC (master_key ، EncryptionIV ، encryted_data)؛ // تعداد بایت های اضافی اضافی \u003d decryelled_data را بیابید؛ db_len - \u003d اضافی؛ // بررسی کنید که 32 بایت اول از پایگاه داده رمزگشایی شده // با قسمت StreamStartBytes هدر مطابقت دارد اگر (StreamStartBytes! \u003d decryelled_data) نادرست باشد؛ // این 32 بایت db_len - \u003d 32؛ decryelled_data + \u003d 32؛ // اگر قسمت فشرده سازی پرونده فشرده شده است ، قسمت CompressionFlag را بررسی کنید. // بررسی یکپارچگی داده ها در حالی که (db_len\u003e (BlockHeaderSize)) (// خواندن هدر بانک اطلاعاتی block_data \u003d decryelled_data؛ decryelled_data + \u003d BlockHeaderSize؛ db_len - \u003d BlockHeaderSize؛ if (block_data.blockDataSize \u003d\u003d 0) (break؛) // get block data hash hash \u003d sha256 (decryelled_data)؛ // بررسی کنید که هش دریافت شده با هش از هدر مطابقت دارد اگر (block_data.blockDataHash \u003d\u003d هش) (pure_data + \u003d رمزگشایی_داده ؛ رمزگشایی_داده + \u003d block_data.blockDataSize؛ db_len. \u003d block) ؛) other (Return false؛)) // داده رمزگشایی شده و رمزگشایی شده را به عنوان پرونده xml xml \u003d pure_data.ToXml () ذخیره کنید. // دریافت هش از قسمت ProtectedStreamKey از کلید هدر \u003d sha256 (ProtectedStreamKey)؛ // الگوریتم Salsa20 IV_SALSA \u003d 0xE830094B97205D2A را الگوریتم اولیه کنید. salsa.setKey (کلید)؛ salsa.setIv (IV_SALSA)؛ stream_pointer \u003d 0؛ key_stream \u003d salsa.generateKeyStream ()؛ // رمزگشایی گذرواژه\u200cها در حالی که (true) (// گره بعدی را در یک ردیف با نام "Value" ، // ویژگی "Protected" ، مقدار ویژگی "گره واقعی" \u003d xml.FindNextElement ("مقدار" ، "محافظت شده" ، "صحیح" پیدا کنید. )؛ if (گره \u003d\u003d NULL) (break؛) // با استفاده از الگوریتم base64decode decoded_pass \u003d base64decode (node.value) مقدار گره را رمزگذاری و رمزگشایی کنید ؛ // رمزگشایی رمز عبور با استفاده از دنباله pseudorandom key_stream برای (int i \u003d 0؛ i< len(decoded_pass); i++) { decoded_pass[i] = decoded_pass[i] ^ key_stream; stream_pointer++; //если 64 байтной псевдослучайной последовательности не хватило, //генерируем еще одну последовательность if (stream_pointer >\u003d 64) (key_stream \u003d salsa.generateKeyStream ()؛ stream_pointer \u003d 0؛)) // مقدار ویژگی "محافظت شده" را با "False" node.attribute.value \u003d "(LANG: False) جایگزین کنید."; //заменяем зашифрованный пароль дешифрованным node.value = decoded_pass; } return true; !}


این اساساً تنها چیزی است که می خواستم برای گفتن داشته باشم. امیدوارم این راهنما کسی را از سردردهای غیرضروری نجات دهد و آموزنده و آموزنده باشد \u003d)

برچسب ها:

  • رمزنگاری
  • نگهدار
  • aes-256
  • sha256
افزودن برچسب

زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت مطالب تازه مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم