Security Guide

Last Updated: December 2024

English ํ•œ๊ตญ์–ด

Introduction

This Security Guide explains how "dAIly Planner" Chrome Extension ("we", "our", or "the extension") handles your data securely and what security measures are in place to protect your information.

Data Storage and Security

โœ… Local Storage Only

  • All data is stored locally on your device using Chrome's chrome.storage.local API
  • No data is sent to our servers (we don't have any servers)
  • Your data never leaves your device except when you explicitly request AI analysis

What Data is Stored Locally?

  • Schedule Data: Your daily, weekly, monthly, and quarterly schedules
  • User Settings: Your name, preferences, and configuration
  • Gemini API Key: Stored securely using Chrome's encrypted storage
  • Language Preference: Your selected language (Korean/English)

๐Ÿ”’ Chrome Storage Security

Chrome's chrome.storage.local API provides:

  • Encrypted storage on your device
  • Isolation from other extensions
  • Automatic cleanup if extension is uninstalled

API Key Security

How Your API Key is Protected

  • Local Storage Only: Your Gemini API key is stored only on your device
  • No Transmission: The API key is never sent to our servers
  • Direct API Calls: API calls are made directly from your browser to Google's servers
  • Password Field: The API key input uses a password field to prevent shoulder surfing

โš ๏ธ Important Security Notes

  • Never share your API key with anyone
  • If you suspect your API key is compromised, regenerate it in Google Cloud Console
  • Regularly review your API usage in Google Cloud Console
  • Set API usage limits in Google Cloud Console to prevent unexpected charges

Data Transmission

When Data Leaves Your Device

Data is only transmitted in the following scenarios:

1. AI Analysis Requests

  • What: Schedule descriptions and context
  • Where: Directly to Google's Gemini API servers
  • When: Only when you explicitly request AI analysis or chat assistance
  • Encryption: All transmissions use HTTPS (TLS 1.2+)

2. Chat Messages

  • What: Your chat messages and schedule queries
  • Where: Directly to Google's Gemini API servers
  • Storage: Chat history is stored locally, not sent to Google

๐Ÿ” HTTPS Encryption

All API communications use HTTPS encryption, ensuring:

  • Data cannot be intercepted in transit
  • Server identity is verified
  • Data integrity is maintained

Third-Party Services

Google Gemini API

๐Ÿ’ก Best Practices

  • Review your API usage regularly in Google Cloud Console
  • Set up billing alerts to monitor costs
  • Use API key restrictions in Google Cloud Console
  • Rotate your API key periodically

Permissions Explained

Required Permissions

  • storage: To save your schedules and settings locally
  • sidePanel: To display the extension interface
  • activeTab: To detect text selection on web pages

Content Scripts

  • Content Scripts: Declared in manifest.json to automatically inject content.js into web pages for text selection detection and "Add as Task" button display. No dynamic scripting permission is required.

Host Permissions

  • https://generativelanguage.googleapis.com/*: To communicate with Google's Gemini API

Note: We request only the minimum permissions necessary for the extension to function. We do not request access to your browsing history, bookmarks, or other personal data.

Data Deletion

How to Delete Your Data

  1. Open the extension side panel
  2. Go to Settings
  3. Clear your API key (optional)
  4. Uninstall the extension from chrome://extensions/

โœ… Complete Deletion: When you uninstall the extension, all stored data is automatically deleted from your device. Chrome's storage API ensures complete removal.

Security Best Practices

For Users

  • Keep your Chrome browser updated
  • Use a strong, unique API key
  • Regularly review your schedule data
  • Don't share your device with untrusted users
  • Monitor your Google Cloud Console for unusual API usage

For Developers

  • Review the source code on GitHub
  • Report security vulnerabilities responsibly
  • Keep the extension updated

Vulnerability Reporting

If you discover a security vulnerability, please report it responsibly:

Please include:

  • Description of the vulnerability
  • Steps to reproduce
  • Potential impact
  • Suggested fix (if any)

Contact Us

If you have any questions about security or this guide, please contact us:

์†Œ๊ฐœ

๋ณธ ๋ณด์•ˆ ๊ฐ€์ด๋“œ๋Š” "dAIly Planner" Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ("๋ณธ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ")์ด ๊ท€ํ•˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์•ˆ ์กฐ์น˜๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ณด์•ˆ

โœ… ๋กœ์ปฌ ์ €์žฅ๋งŒ ์‚ฌ์šฉ

  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” Chrome์˜ chrome.storage.local API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ท€ํ•˜์˜ ๊ธฐ๊ธฐ์—๋งŒ ๋กœ์ปฌ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค
  • ์ž์ฒด ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์ž์ฒด ์„œ๋ฒ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค)
  • AI ๋ถ„์„์„ ๋ช…์‹œ์ ์œผ๋กœ ์š”์ฒญํ•  ๋•Œ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๊ท€ํ•˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๊ธฐ๋ฅผ ๋– ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ

  • ์ผ์ • ๋ฐ์ดํ„ฐ: ์ผ๊ฐ„, ์ฃผ๊ฐ„, ์›”๊ฐ„, ๋ถ„๊ธฐ๋ณ„ ์ผ์ •
  • ์‚ฌ์šฉ์ž ์„ค์ •: ์ด๋ฆ„, ์„ ํ˜ธ๋„, ๊ตฌ์„ฑ
  • Gemini API ํ‚ค: Chrome์˜ ์•”ํ˜ธํ™”๋œ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ
  • ์–ธ์–ด ์„ค์ •: ์„ ํƒํ•œ ์–ธ์–ด (ํ•œ๊ตญ์–ด/์˜์–ด)

๐Ÿ”’ Chrome ์ €์žฅ์†Œ ๋ณด์•ˆ

Chrome์˜ chrome.storage.local API๋Š” ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ๊ธฐ๊ธฐ์—์„œ์˜ ์•”ํ˜ธํ™”๋œ ์ €์žฅ
  • ๋‹ค๋ฅธ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ๊ณผ์˜ ๊ฒฉ๋ฆฌ
  • ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์ œ๊ฑฐ ์‹œ ์ž๋™ ์ •๋ฆฌ

API ํ‚ค ๋ณด์•ˆ

API ํ‚ค ๋ณดํ˜ธ ๋ฐฉ๋ฒ•

  • ๋กœ์ปฌ ์ €์žฅ๋งŒ: Gemini API ํ‚ค๋Š” ๊ท€ํ•˜์˜ ๊ธฐ๊ธฐ์—๋งŒ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค
  • ์ „์†ก ์—†์Œ: API ํ‚ค๋Š” ์ž์ฒด ์„œ๋ฒ„๋กœ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • ์ง์ ‘ API ํ˜ธ์ถœ: API ํ˜ธ์ถœ์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ Google ์„œ๋ฒ„๋กœ ์ง์ ‘ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•„๋“œ: API ํ‚ค ์ž…๋ ฅ์€ ์–ด๊นจ๋„ˆ๋จธ ์‹œ์ฒญ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค

โš ๏ธ ์ค‘์š”ํ•œ ๋ณด์•ˆ ์‚ฌํ•ญ

  • API ํ‚ค๋ฅผ ๋ˆ„๊ตฌ์™€๋„ ๊ณต์œ ํ•˜์ง€ ๋งˆ์„ธ์š”
  • API ํ‚ค๊ฐ€ ์œ ์ถœ๋˜์—ˆ๋‹ค๊ณ  ์˜์‹ฌ๋˜๋ฉด Google Cloud Console์—์„œ ์žฌ์ƒ์„ฑํ•˜์„ธ์š”
  • Google Cloud Console์—์„œ API ์‚ฌ์šฉ๋Ÿ‰์„ ์ •๊ธฐ์ ์œผ๋กœ ๊ฒ€ํ† ํ•˜์„ธ์š”
  • ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์š”๊ธˆ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Google Cloud Console์—์„œ API ์‚ฌ์šฉ๋Ÿ‰ ์ œํ•œ์„ ์„ค์ •ํ•˜์„ธ์š”

๋ฐ์ดํ„ฐ ์ „์†ก

๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๊ธฐ๋ฅผ ๋– ๋‚˜๋Š” ๊ฒฝ์šฐ

๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋งŒ ์ „์†ก๋ฉ๋‹ˆ๋‹ค:

1. AI ๋ถ„์„ ์š”์ฒญ

  • ๋‚ด์šฉ: ์ผ์ • ์„ค๋ช… ๋ฐ ์ปจํ…์ŠคํŠธ
  • ๋Œ€์ƒ: Google์˜ Gemini API ์„œ๋ฒ„๋กœ ์ง์ ‘
  • ์‹œ๊ธฐ: AI ๋ถ„์„์ด๋‚˜ ์ฑ„ํŒ… ์ง€์›์„ ๋ช…์‹œ์ ์œผ๋กœ ์š”์ฒญํ•  ๋•Œ๋งŒ
  • ์•”ํ˜ธํ™”: ๋ชจ๋“  ์ „์†ก์€ HTTPS(TLS 1.2+)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค

2. ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€

  • ๋‚ด์šฉ: ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€ ๋ฐ ์ผ์ • ์ฟผ๋ฆฌ
  • ๋Œ€์ƒ: Google์˜ Gemini API ์„œ๋ฒ„๋กœ ์ง์ ‘
  • ์ €์žฅ: ์ฑ„ํŒ… ๊ธฐ๋ก์€ ๋กœ์ปฌ์— ์ €์žฅ๋˜๋ฉฐ Google๋กœ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

๐Ÿ” HTTPS ์•”ํ˜ธํ™”

๋ชจ๋“  API ํ†ต์‹ ์€ HTTPS ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค:

  • ์ „์†ก ์ค‘ ๋ฐ์ดํ„ฐ ๊ฐ€๋กœ์ฑ„๊ธฐ ๋ถˆ๊ฐ€๋Šฅ
  • ์„œ๋ฒ„ ์‹ ์› ํ™•์ธ
  • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€

์ œ3์ž ์„œ๋น„์Šค

Google Gemini API

  • AI ๊ธฐ๋ฐ˜ ์ผ์ • ๋ถ„์„ ๋ฐ ์ฑ„ํŒ…์„ ์œ„ํ•ด Google์˜ Gemini API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค
  • AI ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ Google ์„œ๋ฒ„๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค
  • Google์˜ ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค: https://policies.google.com/privacy?hl=ko
  • Google์ด ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ณธ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ํ†ต์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • Google์˜ ๋ณด์•ˆ ๊ด€ํ–‰์„ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: https://cloud.google.com/security

๐Ÿ’ก ๋ชจ๋ฒ” ์‚ฌ๋ก€

  • Google Cloud Console์—์„œ API ์‚ฌ์šฉ๋Ÿ‰์„ ์ •๊ธฐ์ ์œผ๋กœ ๊ฒ€ํ† ํ•˜์„ธ์š”
  • ๋น„์šฉ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ์ฒญ๊ตฌ ์•Œ๋ฆผ์„ ์„ค์ •ํ•˜์„ธ์š”
  • Google Cloud Console์—์„œ API ํ‚ค ์ œํ•œ์„ ์‚ฌ์šฉํ•˜์„ธ์š”
  • ์ •๊ธฐ์ ์œผ๋กœ API ํ‚ค๋ฅผ ๊ต์ฒดํ•˜์„ธ์š”

๊ถŒํ•œ ์„ค๋ช…

ํ•„์ˆ˜ ๊ถŒํ•œ

  • storage: ์ผ์ • ๋ฐ ์„ค์ •์„ ๋กœ์ปฌ์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด
  • sidePanel: ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด
  • activeTab: ์›น ํŽ˜์ด์ง€์—์„œ ํ…์ŠคํŠธ ์„ ํƒ์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด

์ฝ˜ํ…์ธ  ์Šคํฌ๋ฆฝํŠธ

  • ์ฝ˜ํ…์ธ  ์Šคํฌ๋ฆฝํŠธ: manifest.json์— ์„ ์–ธ๋˜์–ด content.js๋ฅผ ์›น ํŽ˜์ด์ง€์— ์ž๋™์œผ๋กœ ์ฃผ์ž…ํ•˜์—ฌ ํ…์ŠคํŠธ ์„ ํƒ ๊ฐ์ง€ ๋ฐ "ํ•  ์ผ๋กœ ์ถ”๊ฐ€" ๋ฒ„ํŠผ ํ‘œ์‹œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋™์  ์Šคํฌ๋ฆฝํŒ… ๊ถŒํ•œ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ๊ถŒํ•œ

  • https://generativelanguage.googleapis.com/*: Google์˜ Gemini API์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด

์ฐธ๊ณ : ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๊ถŒํ•œ๋งŒ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ง• ๊ธฐ๋ก, ๋ถ๋งˆํฌ ๋˜๋Š” ๊ธฐํƒ€ ๊ฐœ์ธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” ์š”์ฒญํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์‚ญ์ œ

๋ฐ์ดํ„ฐ ์‚ญ์ œ ๋ฐฉ๋ฒ•

  1. ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด๋“œ ํŒจ๋„ ์—ด๊ธฐ
  2. ์„ค์ •์œผ๋กœ ์ด๋™
  3. API ํ‚ค ์ง€์šฐ๊ธฐ (์„ ํƒ์‚ฌํ•ญ)
  4. chrome://extensions/์—์„œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์ œ๊ฑฐ

โœ… ์™„์ „ ์‚ญ์ œ: ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ฑฐํ•˜๋ฉด ์ €์žฅ๋œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๊ธฐ์—์„œ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. Chrome์˜ ์ €์žฅ์†Œ API๊ฐ€ ์™„์ „ํ•œ ์ œ๊ฑฐ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€

์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ

  • Chrome ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์„ธ์š”
  • ๊ฐ•๋ ฅํ•˜๊ณ  ๊ณ ์œ ํ•œ API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”
  • ์ผ์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ๊ฒ€ํ† ํ•˜์„ธ์š”
  • ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž์™€ ๊ธฐ๊ธฐ๋ฅผ ๊ณต์œ ํ•˜์ง€ ๋งˆ์„ธ์š”
  • Google Cloud Console์—์„œ ๋น„์ •์ƒ์ ์ธ API ์‚ฌ์šฉ๋Ÿ‰์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์„ธ์š”

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ

  • GitHub์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜์„ธ์š”
  • ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์ฑ…์ž„๊ฐ ์žˆ๊ฒŒ ๋ณด๊ณ ํ•˜์„ธ์š”
  • ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์„ธ์š”

์ทจ์•ฝ์  ๋ณด๊ณ 

๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๋ฐœ๊ฒฌํ•œ ๊ฒฝ์šฐ ์ฑ…์ž„๊ฐ ์žˆ๊ฒŒ ๋ณด๊ณ ํ•ด์ฃผ์„ธ์š”:

๋‹ค์Œ์„ ํฌํ•จํ•ด์ฃผ์„ธ์š”:

  • ์ทจ์•ฝ์  ์„ค๋ช…
  • ์žฌํ˜„ ๋‹จ๊ณ„
  • ์ž ์žฌ์  ์˜ํ–ฅ
  • ์ œ์•ˆ๋œ ์ˆ˜์ • ์‚ฌํ•ญ (์žˆ๋Š” ๊ฒฝ์šฐ)

๋ฌธ์˜ํ•˜๊ธฐ

๋ณด์•ˆ ๋˜๋Š” ๋ณธ ๊ฐ€์ด๋“œ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ด ์žˆ์œผ์‹œ๋ฉด ๋‹ค์Œ์œผ๋กœ ์—ฐ๋ฝํ•ด์ฃผ์„ธ์š”: