زنگ

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

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

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

اینها مزایای اصلی هستند. حال بیایید نگاهی به نحوه کار با برنامه KeePass بیاندازیم. بیایید با نصب و روسی سازی KeePass شروع کنیم. (نرم افزار KeePass را در انتهای همین مقاله دانلود کنید)... نصب بصری است، بنابراین ما روی آن تمرکز نمی کنیم. پس از نصب، برنامه باید Russify شود. برای انجام این کار، در بایگانی که دانلود کرده اید، فایل "روسی" را پیدا کنید و آن را در پوشه ای کپی کنید. برنامه نصب شده... به طور معمول مسیر "C / Programm Files / KeePass Password Safe" است. اما بسته به تنظیمات شما ممکن است راه دیگری وجود داشته باشد.

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

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

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

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

اینگونه است که KeePass روسی شده است.

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

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

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

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

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

نتیجه چه باید باشد؟ اسکرین شات را ببینید:

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

حالا اینجا هم همه چیز آماده است. روی "OK" کلیک کنید.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

اینجا جایی است که می توانیم تمام کنیم. بهترین آرزوها برای شما.

آیا امکان هک KeePass و ادغام پسوردها وجود دارد؟

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

تا همین اواخر، هک KeePass غیرممکن بود، اما روز گذشته دنیس آنزاکوویچ در شبکه پستی منتشر کرد. ابزار رایگان KeeFarce، که به مهاجم اجازه می دهد تا رمزهای عبور یک مدیر رمز عبور محبوب را بدزدد.

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

هک KeePass با KeeFarce

برای هک مدیر رمزهای عبور KeePassو لازم است پسوردها را ادغام کنید تا باز باشد، یعنی. به طوری که کاربری که با استفاده از رمز عبور اصلی وارد شده است برنامه را برای مدتی نمیبندد.

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

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

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


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

نحوه محافظت در برابر هک KeePass

اول از همه، رایانه خود را از نظر Trojans () بررسی کنید، زیرا این طرحدر صورتی که مهاجم داشته باشد قابل اجراست دسترسی از راه دوربه رایانه خود دسترسی داشته باشید یا در حالی که مدیریت رمز عبور را برای مدت کوتاهی از رایانه باز می‌گذارید، دسترسی فیزیکی داشته باشید.

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

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

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

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

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

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

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

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

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

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

و ما سعی خواهیم کرد نسخه حرفه ای Key logger را هک کنیم.

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

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

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

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

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

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

2) ایجاد کنید پایه جدید (File \ New \ مسیر و نام را مشخص کنید \ رمز اصلی را مشخص کنید)

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

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

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

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

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

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

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

لیست دستورات در اینجا آورده شده است، راهنما نیز وجود دارد، اگرچه به زبان انگلیسی است، اگر بخواهید می توانید آن را بفهمید. از روی تمرین خودم به شما توصیه می کنم گاهی از دستور استفاده کنید (تاخیر 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. اعمال می‌شود!

امضا
امضای پایه (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.).
نسخه فایل (4 بایت)

فقط فایل‌های kdbx. دارای امضای سوم هستند و حاوی نسخه‌ای از فایل هستند. برای فایل های kdb این اطلاعاتموجود در هدر پایگاه داده


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

سرفصل

پس از امضای پایگاه داده، هدر شروع می شود.

هدر KeePass 1.x

هدر فایل kdb از فیلدهای زیر تشکیل شده است:

  1. Flags (4 بایت): این فیلد نشان می دهد که در هنگام ایجاد فایل از چه نوع رمزگذاری استفاده شده است:
    • 0x01 - SHA256؛
    • 0x02 - AES256؛
    • 0x04 - ARC4؛
    • 0x08 - دو ماهی.
  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

در فایل های kdbx، هر فیلد هدر از 3 قسمت تشکیل شده است:

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

هدر فایل .kdbx از فیلدهای زیر تشکیل شده است:

  • ID = 0x01 Comment: این فیلد می تواند در هدر وجود داشته باشد، اما در پایگاه داده من نبود.
  • ID = 0x02 رمز شناسه: UUID نشان دهنده روش رمزگذاری استفاده شده (به عنوان مثال، برای AES 256 UUID =).
  • ID = 0x03 Compression Flags: شناسه الگوریتم مورد استفاده برای فشرده سازی پایگاه داده:
    • 0x00: هیچ.
    • 0x01: GZip.
  • ID = 0x04 Master Seed: برای ایجاد یک کلید اصلی استفاده می شود.
  • ID = 0x05 Transform Seed: برای ایجاد یک کلید اصلی استفاده می شود.
  • ID = 0x06 Transform Rounds: برای ایجاد یک کلید اصلی استفاده می شود.
  • ID = 0x07 Encryption IV: برای رمزگشایی داده ها استفاده می شود.
  • ID = 0x08 Protected Stream Key: برای رمزگشایی رمزهای عبور استفاده می شود.
  • ID = 0x09 بایت های شروع جریان: 32 بایت اول پایگاه داده رمزگشایی شده. آنها برای بررسی یکپارچگی داده های رمزگشایی و صحت کلید اصلی استفاده می شوند. هر بار که تغییرات در فایل ذخیره می شود، این 32 بایت به صورت تصادفی ایجاد می شود.
  • ID = 0x0A Inner Random Stream ID: شناسه الگوریتم مورد استفاده برای رمزگشایی رمزهای عبور:
    • 0x00: هیچ.
    • 0x01: ARC4;
    • 0x02: سالسا20.
  • ID = 0x00 End of 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. Master Seed را از هدر با هش حاصله وصل می کنیم.
  4. با استفاده از SHA256، هش را از دنباله ترکیبی دریافت می کنیم - این کلید اصلی ماست!

شبه کد

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

// هش را از کلید ترکیبی رمزگذاری شده دریافت کنید. hash = sha256 (composite_key); // هش به دست آمده را با فیلد MasterSeed از کلید هدر = concat (MasterSeed, hash) الحاق کنید. // یک هش از دنباله ترکیب شده در بالا master_key = sha256 (کلید) دریافت کنید.

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

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

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

شبه کد

bool DecryptKeePass1x () (// تعیین طول پایگاه داده رمزگذاری شده // (اندازه فایل - اندازه امضا - اندازه سرصفحه) db_len = file_size - signature_size - header_size;

// رمزگشایی داده ها decrypted_data = decrypt_AES_256_CBC (master_key, EncryptionIV, encrypted_data); // تعداد بایت های "اضافی" را بیابید extra = decrypted_data; // یک هش از داده ها دریافت کنید (به استثنای بایت های اضافی!) content_hash = sha256 (decrypted_data [:( db_len - extra)]); // بررسی کنید که هش دریافتی با فیلد СontentHash از هدر مطابقت داشته باشد اگر (СontentHash == content_hash) true باشد. other return false;

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

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

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

شبه کد

bool DecryptKeePass2x () (// تعیین طول پایگاه داده رمزگذاری شده // (اندازه فایل - اندازه امضا - اندازه سرصفحه) db_len = file_size - signature_size - header_size;

// رمزگشایی داده ها decrypted_data = decrypt_AES_256_CBC (master_key, EncryptionIV, encrypted_data); // تعداد بایت های "اضافی" را بیابید extra = decrypted_data; db_len - = اضافی; // بررسی کنید که 32 بایت اول پایگاه داده رمزگشایی شده // با فیلد هدر StreamStartBytes مطابقت داشته باشد اگر (StreamStartBytes! = decrypted_data) false را بازگرداند. // این 32 بایت را دور بریزید db_len - = 32; decrypted_data + = 32; // فیلد هدر CompressionFlag را بررسی کنید // اگر فایل فشرده شده بود، آن را باز کنید اگر (CompressionFlag == 1) از حالت فشرده خارج شود (decrypted_data); // بررسی یکپارچگی داده در حالی که (db_len> (BlockHeaderSize)) (// خواندن هدر پایگاه داده block_data = decrypted_data؛ decrypted_data + = BlockHeaderSize؛ db_len - = BlockHeaderSize؛ if (block_data.blockDataSize ==;) // هش هش داده های بلوک = sha256 (داده های رمزگشایی شده) را دریافت کنید؛ // بررسی کنید که هش دریافتی با هش هدر مطابقت داشته باشد اگر (block_data.blockDataHash == هش) (داده_pure + = decrypted_data؛ decrypted_data + = block_data.blockDataSize؛ db_data. = blockData ;) else (return false;)) // داده های رمزگشایی و رمزگشایی شده را به عنوان یک فایل xml ذخیره کنید xml = pure_data.ToXml (); // یک هش از کلید فیلد سرصفحه ProtectedStreamKey = sha256 (ProtectedStreamKey) دریافت کنید. // مقداردهی اولیه الگوریتم Salsa20 IV_SALSA = 0xE830094B97205D2A. salsa.setKey (کلید)؛ salsa.setIv (IV_SALSA)؛ stream_pointer = 0; key_stream = salsa.generateKeyStream (); // رمزگشایی رمزهای عبور در حالی که (true) (// گره بعدی را به ترتیب با نام "Value"، // با ویژگی "Protected"، مقدار ویژگی "True" node = xml.FindNextElement ("Value") را پیدا کنید. , "Protected", "True")؛ اگر (node ​​== NULL) (شکست؛) // مقدار گره را بگیرید و با استفاده از الگوریتم base64 رمزگشایی کنید decoded_pass = base64decode (node.value)؛ // رمزگشایی با استفاده از یک توالی شبه تصادفی key_stream برای (int i = 0; i< len(decoded_pass); i++) { decoded_pass[i] = decoded_pass[i] ^ key_stream; stream_pointer++; //если 64 байтной псевдослучайной последовательности не хватило, //генерируем еще одну последовательность if (stream_pointer >= 64) (key_stream = salsa.generateKeyStream (؛ stream_pointer = 0;)) // مقدار ویژگی "Protected" را با "False" جایگزین کنید. node.attribute.value = "(! LANG: False"; //заменяем зашифрованный пароль дешифрованным node.value = decoded_pass; } return true; !}


یعنی به طور کلی تمام آنچه می خواستم بگویم. امیدوارم این راهنما کسی را از سردردهای غیر ضروری نجات دهد و آموزنده و آموزنده باشد =)

برچسب ها:

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

زنگ

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