ν‹°μŠ€ν† λ¦¬ λ·°

πŸ“Œ BiliAgent266 μ„œλΉ„μŠ€μ— μ§€κΈˆ λ°”λ‘œ μ ‘μ†ν•˜μ„Έμš”

πŸš€ κ°€μž…ν•˜κΈ° Β· μ‚¬μš©ν•΄λ³΄κΈ°
🌐 https://biliagent266.bilientsvc.org
πŸ”’ Security & Trust
πŸ›‘οΈ

λ‹Ήμ‹ μ˜ λ°μ΄ν„°λŠ”
μ² μ €νžˆ λ³΄ν˜Έλ©λ‹ˆλ‹€

BiliAgent266λŠ” λ“±λ‘Β·λ‘œκ·ΈμΈ μˆœκ°„λΆ€ν„° 파일 μ €μž₯κΉŒμ§€
λͺ¨λ“  과정에 λ³΄μ•ˆ μž₯μΉ˜κ°€ μ„€κ³„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

λ³΄μ•ˆ μž‘λ™ 원리

둜그인 ν•œ λ²ˆμ— μž‘λ™ν•˜λŠ”
5단계 λ³΄μ•ˆ ν”„λ‘œμ„ΈμŠ€

πŸ”‘
Step 1
PBKDF2 νŒ¨μŠ€μ›Œλ“œ 검증

μž…λ ₯된 νŒ¨μŠ€μ›Œλ“œλŠ” μ €μž₯된 μ†”νŠΈ(16λ°”μ΄νŠΈ 랜덀)와 ν•¨κ»˜ 10만 반볡 ν•΄μ‹±λ˜μ–΄ κ²€μ¦ν•©λ‹ˆλ‹€. 타이밍 곡격 λ°©μ§€λ₯Ό μœ„ν•œ μ•ˆμ „ 비ꡐ(hmac_compare)κ°€ μ μš©λ©λ‹ˆλ‹€.

# 10만 반볡 PBKDF2-SHA256 ν•΄μ‹±
pw_hash = hashlib.pbkdf2_hmac('sha256', password.encode(), salt, 100000)
πŸ“±
Step 2
κΈ°κΈ° ν•‘κ±°ν”„λ¦°νŠΈ 확인

λΈŒλΌμš°μ € ν•΄μ‹œ 기반 κΈ°κΈ° μ‹λ³„μžλ₯Ό ν™•μΈν•©λ‹ˆλ‹€. μ‹ λ’° 기기둜 λ“±λ‘λœ κΈ°κΈ°λ©΄ λ°”λ‘œ 톡과, 처음 μ ‘μ†ν•˜λŠ” κΈ°κΈ°λ©΄ μžλ™μœΌλ‘œ μ‹ λ’° 기기에 λ“±λ‘λ©λ‹ˆλ‹€.

πŸ“§
Step 3
미등둝 κΈ°κΈ° β†’ 이메일 2FA

μ‹ λ’° κΈ°κΈ°κ°€ 이미 λ“±λ‘λ˜μ–΄ μžˆλŠ”λ° μƒˆ κΈ°κΈ°μ—μ„œ 접속할 경우, 6자리 인증 μ½”λ“œλ₯Ό μ΄λ©”μΌλ‘œ λ°œμ†‘ν•©λ‹ˆλ‹€. μ½”λ“œλŠ” 5λΆ„ ν›„ μžλ™ μ†Œλ©Έλ©λ‹ˆλ‹€.

# 6자리 일회용 μ½”λ“œ 생성
code = secrets.randbelow(900000) + 100000
expires_at = now + timedelta(minutes=5)
πŸ”
Step 4
JWT 토큰 λ°œκΈ‰

λͺ¨λ“  인증을 ν†΅κ³Όν•˜λ©΄ 24μ‹œκ°„ μœ νš¨ν•œ JWT μ•‘μ„ΈμŠ€ 토큰이 λ°œκΈ‰λ©λ‹ˆλ‹€. λͺ¨λ“  이후 API μš”μ²­μ€ 이 ν† ν°μœΌλ‘œ μžλ™ κ²€μ¦λ©λ‹ˆλ‹€.

🌐
Step 5
μ‹€μ‹œκ°„ 둜그인 λ³΄μ•ˆ μ•Œλ¦Ό

둜그인 성곡 μ¦‰μ‹œ 접속 IP, 접속 κΈ°κΈ°(User-Agent), 둜그인 μ‹œκ°μ΄ ν¬ν•¨λœ λ³΄μ•ˆ μ•Œλ¦Ό 이메일이 λΉ„λ™κΈ°λ‘œ λ°œμ†‘λ©λ‹ˆλ‹€. 본인이 μ•„λ‹Œ 접속을 μ¦‰μ‹œ 감지할 수 μžˆμŠ΅λ‹ˆλ‹€.

데이터 보μž₯

운영 μ•ˆμ •μ„±κΉŒμ§€ μ±…μž„μ§‘λ‹ˆλ‹€

λ³΄μ•ˆλΏ μ•„λ‹ˆλΌ 데이터 지속성과 μ„œλΉ„μŠ€ μ•ˆμ •μ„±λ„ μžλ™ν™” μ‹œμŠ€ν…œμœΌλ‘œ 보μž₯ν•©λ‹ˆλ‹€.

πŸ’Ύ

일일 μžλ™ λ°±μ—…

DB와 파일 전체λ₯Ό ZIP으둜 λ¬Άμ–΄ 맀일 μƒˆλ²½ ꡬ글 λ“œλΌμ΄λΈŒμ— μžλ™ μ—…λ‘œλ“œν•©λ‹ˆλ‹€.

πŸ”„

5회 μžλ™ μž¬μ‹œλ„

λ“œλΌμ΄λΈŒ 파일 이동·볡사가 μ‹€νŒ¨ν•΄λ„ μ΅œλŒ€ 5회 μž¬μ‹œλ„ ν›„ μ‹€νŒ¨ μ‹œ μžλ™ λ‘€λ°±ν•©λ‹ˆλ‹€.

πŸ“Š

일일 계정 감사

맀일 μƒˆλ²½ 전체 κ³„μ •μ˜ λ§Œλ£ŒΒ·μš©λŸ‰ 초과 μƒνƒœλ₯Ό μžλ™ κ°μ‚¬ν•˜κ³  λ¦¬ν¬νŠΈν•©λ‹ˆλ‹€.

πŸ“œ

λ³€κ²½ 이λ ₯ 보쑴

λͺ¨λ“  μˆ˜μ • 내역이 이λ ₯ ν…Œμ΄λΈ”μ— λ³΄μ‘΄λ©λ‹ˆλ‹€. κ³Όκ±° λ²„μ „μ˜ μ²¨λΆ€νŒŒμΌλ„ ν•¨κ»˜ μœ μ§€λ©λ‹ˆλ‹€.

🧹

μžλ™ μž„μ‹œνŒŒμΌ 정리

24μ‹œκ°„ 이상 방치된 λΆˆμ™„μ „ μ—…λ‘œλ“œ 청크 νŒŒμΌμ„ 맀일 μžλ™ μ‚­μ œν•˜μ—¬ μ„œλ²„ μš©λŸ‰μ„ μ΅œμ ν™”ν•©λ‹ˆλ‹€.

μ§€κΈˆ μ•ˆμ „ν•˜κ²Œ μ‹œμž‘ν•˜μ„Έμš”

5단계 λ³΄μ•ˆμœΌλ‘œ λ³΄ν˜Έλ˜λŠ” BiliAgent266λ₯Ό 직접 κ²½ν—˜ν•΄λ³΄μ„Έμš”.

🌐 https://biliagent266.bilientsvc.org
BiliAgent266

λ°μ΄ν„°λŠ” λ‚΄ κ²ƒμž…λ‹ˆλ‹€. μ•ˆμ „ν•˜κ²Œ, μ²΄κ³„μ μœΌλ‘œ, μ–Έμ œ μ–΄λ””μ„œλ‚˜.

λ°˜μ‘ν˜•