من تو قسمت امنیت چیچک به یه مشکل برخوردم که پرس و جو از دوستان و استاد ها برام نتیجه ای در بر نداشت. مساله اینه: چیچک یه فایل Properties داره که اطلاعاتی مثل نوع Look And Feel و وضعیت System Tray توی اون ذخیره می شه. از جمله چیز های دیگه که توی این فایل ذخیره می شه User name و Password وبسایت هایی مثل Twitter هستش که از نظر امنیتی این وضع خوبی نیست. من باید بتونم Password ها رو با یه الگوریتم بازگشت پذیر (دقت کنید که توابع Hash مثل MD5 به کار نمیاد) این ها رو کد کنم و در موقع نیاز اون ها رو بازیافت.
پیشاپیش بگم که RSA بهم جواب نمی ده یا حد اقل نمی تونم راهی به دست بیارم که با RSA این وضع رو کنترل کنم.
فراموش نکنید که چیچک یه برنامه ی Open Source هم هست و از هر الگوریتمی که استفاده کنم، به راحتی می شه الگوریتم رو خوند و پیدا کرد.
منتظر نظراتتون هستم.
بعد نوشت:
خب مساله رو می شه یکم تغییر داد به این صورت که من یه data دارم به اسم d و یه کلید عمومی دارم به pubKey و یه کلید اختصاصی دارم به نام privKey. خب d رو با pubKey کد می کنم (حالا با هر الگوریتمی) و d کد شده رو که اسمش cd هست رو یه جایی ذخیره می کنم. کنار cd هم می تونم برای کد کردن های بعد به راحتی pubKey رو ذخیره کنم. مشکل جدید این privKey هستش به این معنی که هر جایی که این رو ذخیره کنم، امنیت به خطر میفته و اگه این privKey رو نداشته باشم، از cd نمی تونم به d برسم. نمی تونم از حافظه ی کاربر برای نگه داری این privKey استفاده کنم چون:
- ممکنه این privKey مقدار خوش قلقی برای حفظ کردن نداشته باشه.
- کاربر ممکنه privKey رو فراموش کنه که در این صورت d هم از بین می ره.
- privKey رو الگوریتم به من می ده و نمی تونم خودم اون رو تولید کنم.
این ها برای الگوریتم های asymmetric بود ولی دقیقا همین مشکل رو برای الگوریتم های symmetric هم دارم.
نظر شما چیه؟
بعد نوشت:
الگوریتم AES (لینک تکمیلی) هم بررسی شد، جزو symmetric الگوریتم هاست و مشکل بالا همچنان برقراره.
راه حل:
بعضی از دوستان متن باز بودن رو مغایر با امن بودن دونستن. اما بالا خره من یه راه حل برای سوالم پیدا کردم. من الگوریتم AES رو پیاده می کنم و کلید رو توی خود سورس کد به صورت امن ذخیره می کنم. اینطور بعد از کامپایل کلید جای امنی خواهد داشت. اما چون اپن سورس هست پروژه، هرکسی که می خواد از سورس کامپایل کنه، می تونه کلید خودش رو توی سورس کد قرار بده. به همین راحتی!
به زودی این مشکل امنیتی چیچک رو برطرف می کنم.
آخرین نظرات