امنیت و یکپارچگی Keychain

بیاموزید HarborDB چگونه از Keychain و ویژگی‌های امنیتی macOS برای محافظت از اعتبارنامه‌ها و داده‌های پایگاه داده شما استفاده می‌کند

Macos
آخرین به‌روزرسانی: ۲۷ بهمن ۱۴۰۴

امنیت و یکپارچگی Keychain

به راهنمای امنیتی HarborDB خوش آمدید. این منبع جامع توضیح می‌دهد که چگونه HarborDB از ویژگی‌های امنیتی macOS—به ویژه Keychain—برای ایمن نگه داشتن اعتبارنامه‌ها و داده‌های پایگاه داده شما استفاده می‌کند. چه با پایگاه‌های داده توسعه محلی کار کنید و چه با سرورهای production، درک این ویژگی‌های امنیتی برای محافظت از اطلاعات حساس ضروری است.

چرا امنیت مهم است

اتصالات پایگاه داده اغلب حاوی اطلاعات حساس هستند:

  • نام کاربری و رمز عبور برای سرورهای PostgreSQL
  • جزئیات اتصال شامل نام‌های میزبان و پورت‌ها
  • نتایج کوئری که ممکن است حاوی داده‌های محرمانه باشند
  • فایل‌های صادر شده با اطلاعات حیاتی کسب‌وکار

HarborDB با امنیت به عنوان یک اصل اساسی طراحی شده است و از فناوری‌های بومی macOS برای ارائه حفاظت در سطح سازمانی بدون به خطر انداختن قابلیت استفاده استفاده می‌کند.

macOS Keychain: گاوصندوق دیجیتال شما

Keychain چیست؟

Keychain سیستم مدیریت رمز عبور داخلی macOS است. آن را به عنوان یک گاوصندوق دیجیتال در نظر بگیرید که macOS موارد زیر را در آن ذخیره می‌کند:

  • رمزهای عبور برای برنامه‌ها و وب‌سایت‌ها
  • کلیدهای رمزگذاری برای ارتباطات امن
  • گواهی‌ها برای تأیید هویت
  • یادداشت‌های امن برای اطلاعات حساس

Keychain چگونه از داده‌های شما محافظت می‌کند

۱. رمزگذاری در حالت سکون: تمام داده‌های Keychain با استفاده از رمزگذاری AES-256 رمزگذاری می‌شوند ۲. کنترل‌های دسترسی: هر برنامه باید برای دسترسی به موارد Keychain مجوز درخواست کند ۳. جداسازی کاربر: موارد Keychain به حساب کاربری شما متصل هستند ۴. قفل شدن خودکار: Keychain زمانی که Mac شما به خواب می‌رود یا قفل می‌شود، قفل می‌شود

HarborDB و یکپارچگی Keychain

ذخیره‌سازی خودکار رمز عبور

وقتی یک اتصال را در HarborDB ذخیره می‌کنید:

۱. رمز عبور استخراج می‌شود از تنظیمات اتصال ۲. رمزگذاری و ذخیره می‌شود در Keychain کاربر شما ۳. فایل اتصال فقط اطلاعات غیر حساس را ذخیره می‌کند ۴. در اتصال بعدی، HarborDB رمز عبور را از Keychain بازیابی می‌کند

چه چیزی کجا ذخیره می‌شود

| محل ذخیره‌سازی | چه چیزی ذخیره می‌شود | سطح امنیت | | -------------------- | ----------------------------------- | -------------------------- | | macOS Keychain | فقط رمزهای عبور | 🔒 حداکثر (AES-256) | | فایل اتصال | میزبان، پورت، پایگاه داده، نام کاربری | 🔐 متوسط (مجوزهای فایل) | | حافظه برنامه | رمزهای عبور رمزگشایی شده در طول جلسه | 🔐 بالا (رمزگذاری RAM) | | کش دیسک | نتایج کوئری، فایل‌های موقت | 🔐 متوسط (FileVault) |

ساختار مورد Keychain

هر اتصال HarborDB یک مورد Keychain با موارد زیر ایجاد می‌کند:

  • نام سرویس: HarborDB
  • نام حساب: connection:[connection_name]
  • رمز عبور: رمز عبور رمزگذاری شده PostgreSQL شما
  • گروه دسترسی: محدود به برنامه HarborDB

بهترین شیوه‌های امنیتی

۱. مدیریت رمز عبور

انجام دهید:

  • ✅ از رمزهای عبور قوی و منحصربه‌فرد برای هر پایگاه داده استفاده کنید
  • ✅ رمزهای عبور را به طور دوره‌ای تغییر دهید (هر ۹۰ روز)
  • ✅ از مدیران رمز عبور برای امنیت اضافی استفاده کنید
  • ✅ احراز هویت دو عاملی را در صورت امکان فعال کنید

انجام ندهید:

  • ❌ رمزهای عبور را در سرورهای مختلف دوباره استفاده نکنید
  • ❌ رمزهای عبور را در فایل‌های متنی ساده ذخیره نکنید
  • ❌ رمزهای عبور Keychain را با دیگران به اشتراک نگذارید
  • ❌ از رمزهای عبور ساده یا پیش‌فرض استفاده نکنید

۲. امنیت اتصال

پایگاه‌های داده محلی:

Host: localhost یا 127.0.0.1
SSL: اختیاری (loopback امن است)
Keychain: توصیه می‌شود

سرورهای توسعه:

Host: dev-db.internal
SSL: Prefer یا Require
Keychain: الزامی
Firewall: محدود به شبکه داخلی

سرورهای production:

Host: prod-db.example.com
SSL: Require یا Verify-Full
Keychain: الزامی
VPN: توصیه می‌شود برای دسترسی

۳. امنیت فایل

۱. فایل‌های اتصال را در مکان‌های امن ذخیره کنید ۲. از FileVault استفاده کنید برای رمزگذاری کامل دیسک ۳. به طور منظم Keychain را پشتیبان‌گیری کنید (از طریق Time Machine) ۴. پوشه‌های صادرسازی را امن کنید با مجوزهای مناسب

Touch ID و یکپارچگی بیومتریک

استفاده از Touch ID با HarborDB

اگر Mac شما دارای Touch ID است (یا Face ID در مدل‌های جدیدتر)، می‌توانید امنیت را افزایش دهید:

۱. Touch ID را برای Keychain فعال کنید در System Settings ۲. HarborDB درخواست می‌کند برای اثر انگشت هنگام دسترسی به رمزهای عبور ۳. بازگشت به رمز عبور اگر بیومتریک شکست بخورد

راه‌اندازی احراز هویت بیومتریک

۱. System Settings → Touch ID & Password را باز کنید ۲. اثر انگشت‌های خود را اضافه کنید (تا ۳ مورد) ۳. "Keychain" را در فهرست موارد استفاده بررسی کنید ۴. برای اعمال تغییرات HarborDB را مجدداً راه‌اندازی کنید

مزایای یکپارچگی بیومتریک

  • راحتی: نیازی به تایپ رمز عبور اصلی نیست
  • امنیت: منحصربه‌فرد شما (قابل اشتراک‌گذاری نیست)
  • سرعت: سریع‌تر از ورود رمز عبور
  • ردیابی حسابرسی: هر دسترسی به طور منحصربه‌فرد شناسایی می‌شود

FileVault و رمزگذاری دیسک

FileVault چیست؟

FileVault ویژگی رمزگذاری کامل دیسک macOS است:

  • کل دیسک راه‌اندازی را رمزگذاری می‌کند
  • از داده‌ها در حالت سکون محافظت می‌کند
  • برای برنامه‌ها شفاف است
  • برای برخی استانداردهای انطباق الزامی است

فعال کردن FileVault

۱. System Settings → Privacy & Security را باز کنید ۲. روی FileVault کلیک کنید ۳. روی Turn On کلیک کنید ۴. روش بازیابی را انتخاب کنید (iCloud یا کلید بازیابی) ۵. منتظر بمانید تا رمزگذاری کامل شود (فرآیند پس‌زمینه)

FileVault چگونه از داده‌های HarborDB محافظت می‌کند

با فعال بودن FileVault:

  • فایل‌های اتصال روی دیسک رمزگذاری می‌شوند
  • فایل‌های صادر شده محافظت می‌شوند
  • فایل‌های موقت قابل بازیابی نیستند
  • فایل‌های کش حتی اگر Mac دزدیده شود امن هستند

امنیت شبکه (SSL/TLS)

درک SSL/TLS

SSL (Secure Sockets Layer) و TLS (Transport Layer Security) داده‌ها را در حین انتقال رمزگذاری می‌کنند:

HarborDB (macOS) → تونل رمزگذاری شده → سرور PostgreSQL

حالت‌های SSL در HarborDB

| حالت | سطح امنیت | مورد استفاده | | --------------- | --------- | --------------------------- | | Disable | ❌ هیچ | فقط توسعه محلی | | Allow | ⚠️ کم | ترجیح غیررمزگذاری شده | | Prefer | ✅ متوسط | پیش‌فرض برای بیشتر موارد | | Require | ✅ بالا | سرورهای از راه دور | | Verify-CA | ✅✅ بالا | تأیید مرجع گواهی | | Verify-Full | ✅✅✅ بالاترین | اعتبارسنجی کامل گواهی |

پیکربندی SSL در HarborDB

۱. اتصال را ویرایش کنید در HarborDB ۲. حالت SSL را انتخاب کنید از منوی کشویی ۳. گواهی‌ها را وارد کنید اگر از Verify-Full استفاده می‌کنید ۴. اتصال را تست کنید برای تأیید handshake SSL

مدیریت گواهی

برای محیط‌های سازمانی:

  • گواهی‌های CA را وارد کنید در Keychain Access
  • از گواهی‌های client استفاده کنید برای TLS متقابل
  • هشدارهای انقضای گواهی را تنظیم کنید
  • به طور منظم گواهی‌های لغو شده را به‌روزرسانی کنید

رفع مشکلات رایج

مشکلات دسترسی به Keychain

"HarborDB نمی‌تواند به Keychain دسترسی پیدا کند"

۱. مجوزها را بررسی کنید:

# Keychain Access را باز کنید
open /Applications/Utilities/Keychain\ Access.app

۲. مجوزهای HarborDB را بازنشانی کنید:

  • اتصال را حذف و دوباره اضافه کنید
  • هنگامی که درخواست شد مجوز بدهید

۳. Keychain را تعمیر کنید:

  • Keychain Access را باز کنید
  • Keychain "Login" را انتخاب کنید
  • File → "Keychain First Aid"

"رمز عبور در Keychain یافت نشد"

۱. تأیید کنید نام اتصال تغییر نکرده است ۲. چندین Keychain را بررسی کنید (Login، System، iCloud) ۳. ایندکس Keychain را بازسازی کنید:

security delete-keychain ~/Library/Keychains/login.keychain-db
# در ورود بعدی دوباره ایجاد می‌شود

مشکلات اتصال SSL

"SSL Handshake Failed"

۱. پیکربندی SSL PostgreSQL را بررسی کنید:

# در postgresql.conf
ssl = on
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'

۲. اعتبار گواهی را تأیید کنید:

openssl x509 -in server.crt -text -noout

۳. حالت SSL متفاوت را امتحان کنید (Require → Prefer)

مشکلات امنیتی عمومی

خطاهای "Permission Denied"

۱. مجوزهای فایل را بررسی کنید:

ls -la ~/Library/Application\ Support/HarborDB/

۲. مجوزهای HarborDB را بازنشانی کنید:

  • فایل تنظیمات را جابجا کنید
  • HarborDB را مجدداً راه‌اندازی کنید

۳. مجوزهای دیسک را تأیید کنید:

diskutil verifyVolume /

ویژگی‌های امنیتی پیشرفته

پیکربندی Keychain سفارشی

برای کاربران پیشرفته:

۱. Keychain اختصاصی ایجاد کنید برای HarborDB:

security create-keychain -P harbor.keychain
security set-keychain-settings harbor.keychain

۲. timeout کوتاه‌تر تنظیم کنید برای اتصالات حساس:

security set-keychain-settings -t 300 harbor.keychain

۳. Keychain را قفل کنید وقتی استفاده نمی‌شود:

security lock-keychain harbor.keychain

حسابرسی و نظارت

۱. لاگ‌گیری اتصال را فعال کنید در Preferences ۲. لاگ‌های دسترسی Keychain را مرور کنید:

log show --predicate 'subsystem == "com.apple.security"'

۳. هشدارها را تنظیم کنید برای اتصالات ناموفق ۴. به طور منظم لاگ‌های دسترسی فایل‌های صادر شده را مرور کنید

ملاحظات انطباق

انطباق GDPR/CCPA:

  • رمزگذاری داده‌های شخصی در حالت سکون و در حین انتقال
  • لاگ‌گیری دسترسی و ردهای حسابرسی
  • سیاست‌های نگهداری داده برای صادرسازی

انطباق HIPAA:

  • رمزگذاری کامل دیسک (FileVault)
  • timeout جلسه برای اتصالات غیرفعال
  • حذف امن فایل‌های موقت

انطباق PCI DSS:

  • هرگز شماره کارت اعتباری را در کوئری‌ها ذخیره نکنید
  • داده‌های حساس را در صادرسازی پنهان کنید
  • ارزیابی‌های امنیتی منظم

چک‌لیست امنیتی

شیوه‌های روزانه

  • [ ] Mac را هنگام دور شدن قفل کنید
  • [ ] امنیت اتصال را قبل از استفاده تأیید کنید
  • [ ] به‌روزرسانی‌های امنیتی macOS را بررسی کنید
  • [ ] تلاش‌های اتصال اخیر را مرور کنید

شیوه‌های هفتگی

  • [ ] مکان‌های فایل‌های صادر شده را مرور کنید
  • [ ] Keychain را برای ورودی‌های منقضی شده بررسی کنید
  • [ ] تأیید کنید FileVault فعال است
  • [ ] پیکربندی‌های امنیتی را پشتیبان‌گیری کنید

شیوه‌های ماهانه

  • [ ] رمزهای عبور پایگاه داده را تغییر دهید
  • [ ] گواهی‌های SSL را مرور کنید
  • [ ] مجوزهای اتصال را حسابرسی کنید
  • [ ] رویه‌های بازیابی فاجعه را تست کنید

دریافت کمک

حوادث امنیتی

اگر مشکوک به یک مشکل امنیتی هستید:

۱. اقدامات فوری:

  • رمزهای عبور پایگاه داده آسیب دیده را تغییر دهید
  • گواهی‌های به خطر افتاده را لغو کنید
  • لاگ‌گیری اضافی را فعال کنید

۲. با پشتیبانی تماس بگیرید با:

  • بازه زمانی حادثه
  • اتصالات آسیب دیده
  • هر پیام خطا
  • اقدامات قبلاً انجام شده

مشاوره امنیتی

برای نیازهای امنیتی سازمانی:

  • ارزیابی‌های امنیتی سفارشی
  • راهنمایی انطباق (GDPR، HIPAA، PCI DSS)
  • یکپارچگی با سیستم‌های امنیتی شرکتی
  • آموزش برای اعضای تیم

منابع اضافی


امنیت یک مسئولیت مشترک است. با درک و استفاده صحیح از ویژگی‌های امنیتی macOS با HarborDB، شما یک دفاع قوی در برابر نقض داده‌ها و دسترسی غیرمجاز ایجاد می‌کنید. به یاد داشته باشید: شیوه‌های خوب امنیتی به عادت‌هایی تبدیل می‌شوند که هر روز از داده‌های شما محافظت می‌کنند.

آخرین به‌روزرسانی: {{current_date}}

آیا این مفید بود؟

با ارائه بازخورد به ما کمک کنید این مستندات را بهبود بخشیم.