😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

[λ³΄μ•ˆ] λ³΄μ•ˆ & ν•΄μ‹œ & μΏ ν‚€ & 토큰 & JWT & μΊμ‹œ λ³Έλ¬Έ

πŸ‘©‍πŸ’» 컴퓨터 ꡬ쑰/About Computer

[λ³΄μ•ˆ] λ³΄μ•ˆ & ν•΄μ‹œ & μΏ ν‚€ & 토큰 & JWT & μΊμ‹œ

μ§•μ§•μ•ŒνŒŒμΉ΄ 2023. 3. 17. 17:37
728x90
λ°˜μ‘ν˜•

<λ³Έ λΈ”λ‘œκ·ΈλŠ” μ—˜λ¦¬μŠ€ IoT 1λ₯Ό μ°Έκ³ ν•΄μ„œ κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€ :-)>

 

 

πŸ‘©‍πŸ’» λ³΄μ•ˆ

: μŠΉμΈν•˜μ§€ μ•Šμ€ μ•‘μ„ΈμŠ€λ‚˜ 였용, μ˜€λ™μž‘, μˆ˜μ •, 파괴 λ“±μœΌλ‘œλΆ€ν„° λ³΄ν˜Έν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ 

 

⭐ 인증 (Authentication)

: μ‚¬μš©μžμ˜ 신원을 κ²€μ¦ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ 

 

- λΉ„λ°€λ²ˆν˜Έ : μ‚¬μš©μžκ°€ 데이터 μ˜¬λ°”λ₯΄κ²Œ μž…λ ₯ν•˜λ©΄, 정보가 μœ νš¨ν•˜λ‹€ νŒλ‹¨

- 일회용 ν•€ : 단일 μ„Έμ…˜μ΄λ‚˜ νŠΈλ Œμž­μ…˜(μͺΌκ°€ 수 μ—†λŠ” μž‘μ—…μ˜ λ‹¨μœ„)에 ν•œν•˜μ—¬ ν—ˆμš©

- 인증 μ•± : μ™ΈλΆ€ κΈ°κ΄€ 톡해 λ³΄μ•ˆ μ½”λ“œ 생성

- 생체 인식 : μ§€λ¬Έμ΄λ‚˜ 망막 μŠ€μΊ” 제좜

 

⭐ μΈκ°€ (Authorization)

: 인증된 μ‚¬μš©μžκ°€ μ–΄λ– ν•œ μžμ›μ— μ ‘κ·Όν•  수 μžˆλŠ”μ§€λ₯Ό ν™•μΈν•˜λŠ” ν”„λ‘œμ„ΈμŠ€

 

⭐ μ•”ν˜Έ 기법

: 정보λ₯Ό μ˜λ„ν•˜μ§€ μ•Šμ€ μˆ˜μ‹ μžκ°€ νŒŒμ•…ν•  수 μ—†λŠ” ν˜•νƒœλ‘œ λ°”κΎΈμ–΄ λ³΄ν˜Έν•˜λŠ” ν•™λ¬Έ

βž• μ•”ν˜Έ 기법 ꡬ쑰

 

 


πŸ‘©‍πŸ’» ν•΄μ‹œ (Hash)

: 단방ν–₯ μ•”ν˜Έν™” κΈ°λ²•μœΌλ‘œ ν•΄μ‹œν•¨μˆ˜ μ΄μš©ν•˜μ—¬ κ³ μ •λœ 길이의 μ•”ν˜Έν™”λœ λ¬Έμžμ—΄λ‘œ λ°”κΏ”λ²„λ¦¬λŠ” 것

 

⭐ ν•΄μ‹œ ν•¨μˆ˜

: μž„μ˜μ˜ 길이의 데이터λ₯Ό κ³ μ •λœ 길이의 λ°μ΄ν„°λ‘œ 맀핑(ν•˜λ‚˜μ˜ 값을 λ‹€λ₯Έ κ°’μœΌλ‘œ λŒ€μ‘)ν•˜λŠ” ν•¨μˆ˜

 

- ν•΄μ‹œκ°’

: 맀핑 ν›„ λ°μ΄ν„°μ˜ κ°’

- ν‚€

: 맀핑 μ „ λ°μ΄ν„°μ˜ κ°’

- ν•΄μ‹±

: λ§€ν•‘ν•˜λŠ” κ³Όμ •

 

⭐ ν•΄μ‹œ ν•¨μˆ˜ μ’…λ₯˜

- μ•”ν˜Έν™” ν•΄μ‹œν•¨μˆ˜

: ν•΄μ‹œκ°’μ„ 가지고 μž…λ ₯값을 μ•Œμ•„λ‚΄κΈ° μ–΄λ ΅λ‹€λŠ” 점을 μ΄μš©ν•΄, μ•”ν˜Έν•™μ  원리 기반

: 단방ν–₯μ„±, 볡호 λΆˆκ°€ κΈ°λŠ₯

: 좩돌 μ €ν•­μ„± (같은 ν•΄μ‹œκ°’ λ°˜ν™˜ν•˜λŠ” 2개의 μž…λ ₯κ°’μ˜ 쌍 μ°ΎκΈ° νž˜λ“¦)

: μ••μΆ• 효과 (μž‘μ€ ν•΄μ‹œκ°’λ§ŒμœΌλ‘œλ„ κ±°λŒ€ν•œ 크기의 데이터 무결성 보μž₯)

: λˆˆμ‚¬νƒœ 효과 (μ•„μ£Ό μž‘μ€ λ³€ν™”λ‘œλ„ 결과값이 μ „ν˜€ λ‹€λ₯΄κ²Œ λ„μΆœ) 

ex) MD5, SHA, MAC

βž• SHA (Secure Hash Algorithm)
: μ„œλ‘œ κ΄€λ ¨λœ μ•”ν˜Έν•™μ  ν•΄μ‹œν•¨μˆ˜ λ“±μ˜ λͺ¨μŒ

 

- λΉ„μ•”ν˜Έν™” ν•΄μ‹œν•¨μˆ˜

: λ™μΌν•œ ν•΄μ‹œκ°’μ„ κ°–λŠ” μ„œλ‘œ λ‹€λ₯Έ μž…λ ₯값은 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” μ„±μ§ˆμ„ μ΄μš©ν•˜μ—¬ μž…λ ₯값에 λŒ€ν•œ 무결성 κ²€μ¦μš©

ex) CRC, Checksum

 

 


πŸ‘©‍πŸ’» μΏ ν‚€ (Cookie)

https://velog.io/@rlfrkdms1/%EC%BF%A0%ED%82%A4%EC%99%80-%EC%84%B8%EC%85%98%EC%9D%98-%EB%8F%99%EC%9E%91-%EC%9B%90%EB%A6%AC%EC%99%80-%EC%84%B8%EC%85%98%EC%9D%98-%EA%B5%AC%EC%A1%B0

: μ„œλ²„μ—μ„œ μ‚¬μš©μž λΈŒλΌμš°μ €λ‘œ μ „μ†‘ν•˜λŠ” μž‘μ€ 데이터

: ν•œκ°œμ— 4KB κΉŒμ§€ μ €μž₯ κ°€λŠ₯

: ν΄λΌμ΄μ–ΈνŠΈμ— μ €μž₯

: 이름, κ°’, λ§Œλ£Œλ‚ μ§œ, 경둜 정보 가짐

: μ›Ή λΈŒλΌμš°μ € μ’…λ£Œλ˜λ©΄ μ‚­μ œλ¨

 

⭐ μž₯점

- 인증 및 인가λ₯Ό μœ„ν•œ 데이터 μ €μž₯ ν•„μš” μ—†μŒ

- μ„œλ²„ λŒ€μˆ˜ λŠ˜λ¦¬λŠ” Scale-out μ΄μŠˆκ°€ μ—†μŒ

- μ„œλ²„μ™€μ˜ 톡신 κ³Όμ • μ—†μ• λ―€λ‘œ λΉ λ₯Έ 속도 

 

⭐ λ‹¨μ 

- μ‚¬μš©μž μ£Όμš” 정보λ₯Ό 맀번 μš”μ²­μ— λ‹΄μ•„μ•Ό ν•˜λ―€λ‘œ, λ³΄μ•ˆμƒμ˜ 문제

- μš©λŸ‰ μ œν•œ μžˆμ–΄μ„œ λ§Žμ€ 정보 담을 수 μ—†μŒ

- μ›Ή λΈŒλΌμš°μ €λ§ˆλ‹€ μΏ ν‚€μ˜ μžμ› ν˜•νƒœκ°€ 달라 λΈŒλΌμš°μ € κ°„ κ³΅μœ κ°€ λΆˆκ°€λŠ₯  

 

⭐ IP μ„œλΈŒλ„· 마슀크

: 둜컬 λ„€νŠΈμ›Œν¬ λ‚΄λΆ€μ—μ„œ μ ‘μ†ν•œ 호슀트 IP λŒ€μ—­μ„ μ™ΈλΆ€ λ„€νŠΈμ›Œν¬μ™€ λͺ…ν™•ν•˜κ²Œ ꡬ뢄할 수 μžˆλŠ” μˆ˜λ‹¨

 

πŸ‘©‍πŸ’» μ„Έμ…˜ (Session)

: μ›Ή μ‚¬μ΄νŠΈμ˜ μ—¬λŸ¬ νŽ˜μ΄μ§€μ— 걸쳐 μ‚¬μš©λ˜λŠ” μ‚¬μš©μž 정보λ₯Ό μ €μž₯ν•˜λŠ” 방법

: μ›Ή μ„œλ²„μ— μ›Ή μ»¨ν…Œμ΄λ„ˆμ˜ μƒνƒœλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•œ 정보 μ €μž₯

: μ›Ή μ„œλ²„μ— μ €μž₯λ˜λŠ” μΏ ν‚€ = μ„Έμ…˜ μΏ ν‚€

: μ„œλ²„ μš©λŸ‰ ν—ˆμš©ν•˜λŠ” ν•œμ—μ„œ μ €μž₯ 데이터 μ œν•œ μ—†μŒ

: 각 ν΄λΌμ΄μ–ΈνŠΈμ— 고유 Session ID λΆ€μ—¬

 

⭐ μž₯점

- 쿠킀에 λΉ„ν•΄ μ•ˆμ „

- 둜그인 정보λ₯Ό μœ μ§€ν•˜μ—¬ μžλ™ 둜그인 됨 

 

⭐ λ‹¨μ 

- 쿠킀에 λΉ„ν•΄ 쑰금 느림

- ν•œκ³„κ°€ μ‘΄μž¬ν•˜λŠ” μ„œλ²„ μžμ› μ‚¬μš©

- 속도 μ €ν•˜λ‚˜ μ˜€λ²„ν—€λ“œ λ“± μ„œλ²„μ— λΆ€ν•˜

 

 


πŸ‘©‍πŸ’» 토큰 (Token)

: μ„œλ²„κ°€ 각각의 ν΄λΌμ΄μ–ΈνŠΈλ₯Ό λˆ„κ΅°μ§€ μ •ν™•νžˆ ꡬ별할 수 μžˆλ„λ‘ μœ λ‹ˆν¬ν•œ 정보λ₯Ό 담은 μ•”ν˜Έν™” 데이터 

ν† ν°κΈ°λ°˜ 인증 -> μ‚¬μš©μžκ°€ μžμ‹ μ˜ 아이덴티티λ₯Ό ν™•μΈν•˜κ³  κ³ μœ ν•œ μ•‘μ„ΈμŠ€ 토큰을 받을 수 μžˆλŠ” ν”„λ‘œν† μ½œ

 

⭐ 토큰 μ’…λ₯˜

- μ—°κ²°ν˜•

: ν‚€, λ””μŠ€ν¬, λ“œλΌμ΄λΈŒ 및 기타 물리적 μž₯μΉ˜κ°€ μ‹œμŠ€ν…œμ— μ—°κ²°λ˜μ–΄ μ•‘μ„ΈμŠ€ ν—ˆμš©

- μ—°κ²°ν˜•

: λ””λ°”μ΄μŠ€κ°€ μ„œλ²„μ™€ ν†΅μ‹ ν•˜λ €λ©΄ μΆ©λΆ„νžˆ κ°€κΉŒμ›Œμ•Όλ˜μ§€λ§Œ μ—°κ²° ν•  ν•„μš” μ—†μŒ

λΆ„λ¦¬ν˜•

: μ ‘μ΄‰ν•˜μ§€ μ•Šκ³ λ„ λ¨Ό κ±°λ¦¬μ—μ„œ μ„œλ²„μ™€ 톡신

 

⭐ 토큰 인증 절차

1. μ‚¬μš©μžκ°€ μ„œλ²„ λ˜λŠ” λ³΄ν˜Έλ˜λŠ” λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ μ•‘μ„ΈμŠ€ μš”μ²­

2. μ„œλ²„κ°€ ν•΄λ‹Ή μ‚¬μš©μžμ˜ μ•‘μ„ΈμŠ€ μ—¬λΆ€ 확인

3. μ„œλ²„κ°€ 링, ν‚€, νœ΄λŒ€μ „ν™” λ“±μ˜ 인증 λ””λ°”μ΄μŠ€μ™€ 톡신

4. μž‘μ—… 지속 λ™μ•ˆ 토큰이 μ‚¬μš©μžμ˜ λΈŒλΌμš°μ €μ— μ €μž₯ 

 

 

 


πŸ‘©‍πŸ’» JWT (JSON Web Token)

: ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ μ‚¬μ΄μ—μ„œ 톡신할 λ•Œ κΆŒν•œμ„ μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 토큰 

⭐ 헀더 HADER JWTμ—μ„œ μ‚¬μš©ν•  νƒ€μž…κ³Ό ν•΄μ‹œ μ•Œκ³ λ¦¬μ¦˜μ˜ μ’…λ₯˜ λ‹΄κΉ€
β­λ‚΄μš© Payload μ„œλ²„μ—μ„œ μ²¨λΆ€ν•œ μ‚¬μš©μž κΆŒν•œ 정보와 데이터 λ‹΄κΉ€ 
⭐ μ„œλͺ… Signature κ°œμΈν‚€λ‘œ μ„œλͺ…ν•œ μ „μžμ„œλͺ… λ‹΄κΉ€

 

β­νŠΉμ§•

: JWT 토큰을 HTTP 헀더에 μ‹€μ–΄ μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό 식별

: JSON 데이터λ₯Ό μΈμ½”λ”©ν•˜μ—¬ 직렬화함 (토큰 λ‚΄λΆ€μ—λŠ” κ°œμΈν‚€λ₯Ό ν†΅ν•œ μ „μž μ„œλͺ… 있음)

: JWT λ₯Ό μ„œλ²„λ‘œ μ „μ†‘ν•˜λ©΄ μ„œλ²„λŠ” μ„œλͺ…을 κ²€μ¦ν•˜λŠ” κ³Όμ • κ±°μΉ¨, 검증 μ™„λ£Œλ˜λ©΄ μš”μ²­ν•œ 응닡 돌렀쀌

 

⭐ μž₯점

- JSON μ–Έμ–΄λ‘œ μƒˆμ—‰λœ 토큰은 μš©λŸ‰ μž‘μ•„μ„œ 두 μ—”ν‹°ν‹° 사이에 맀우 λΉ λ₯΄κ²Œ 전달됨

- 거의 λͺ¨λ“  κ³³μ—μ„œ 토큰 생성, μ„œλ²„μ—μ„œ 토큰 확인할 ν•„μš” μ—†μŒ 

 

⭐ λ‹¨μ 

- 단일 ν‚€ μ΄μš©ν•˜λ―€λ‘œ, ν‚€κ°€ 유좜되면 μ‹œμŠ€ν…œ 전체가 μœ„ν—˜μ— λ…ΈμΆœ

- 토큰이 λ³΅μž‘ν•¨

- λ©”μ‹œμ§€λ₯Ό λͺ¨λ“  ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ ν‘Έμ‹œν•  수 μ—†κ³ , μ„œλ²„ μΈ‘ ν΄λΌμ΄μ–ΈνŠΈλ„ 관리할 수 μ—†μŒ

 

⭐ JWT λ™μž‘μ›λ¦¬

 

⭐ JWT 보완

- Refresh Token

: Access Token, Refresh Token ν•¨κ»˜ λ°œκΈ‰ν•˜μ—¬ 짧은 만료 μ‹œκ°„μ˜ 문제 ν•΄κ²° 방법

: Access Token 만료되면 Refresh Token으둜 μ„œλ²„μ—κ²Œ μƒˆλ‘œμš΄ Access Token λ°œκΈ‰ν•˜λ„λ‘ 함 

 

 


πŸ‘©‍πŸ’» μΊμ‹œ (Cache)

: 자주 ν•„μš”ν•œ λ°μ΄ν„°λ‚˜ κ°’μ˜ 볡사본을 μΌμ‹œμ μœΌλ‘œ μ €μž₯, λ³΄κ΄€ν•˜λŠ” 곳에 μ ‘κ·Όν•˜λŠ” 방식

: μ›ΉνŽ˜μ΄μ§€μ˜ μš”μ†Œλ‚˜ 이미지, μ˜€λ””μ˜€, λΉ„λ””μ˜€ 파일 같은 것 μ €μž₯

: λ°μ΄ν„°λ² μ΄μŠ€ λΉ„μš© 절감

: λ°±μ—”λ“œ λ‘œλ“œ κ°μ†Œ

: μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯ κ°œμ„ 

: IOPS κ°œμ„ 

 

⭐ 캐싱 (Cashing)

: 였랜 μ‹œκ°„μ΄ κ±Έλ¦¬λŠ” μž‘μ—…μ˜ κ²°κ³Όλ₯Ό μ €μž₯ν•΄μ„œ μ‹œκ°„κ³Ό λΉ„μš©μ„ ν•„μš”λ‘œ νšŒν”Όν•˜λŠ” 기법

: μΊμ‹œμ˜ λ°μ΄ν„°λŠ” 일반적으둜 RAMκ³Ό 같이 λΉ λ₯΄κ²Œ μ•‘μ„ΈμŠ€ν•  수 μžˆλŠ” ν•˜λ“œμ›¨μ–΄μ— μ €μž₯

 

⭐ CDN (Content Delivery Network)

: κ³ μš©λŸ‰ 데이터λ₯Ό μ΄μš©μžκ°€ μ–΄λŠ 곳에 μœ„μΉ˜ν•΄ μžˆλ”λΌλ„ μ•ˆμ •μ μœΌλ‘œ μ „μ†‘ν•΄μ£ΌλŠ” 기술

: CDN λ„€νŠΈμ›Œν¬μ™€ Cache μ„œλ²„κ°€ μœ„μΉ˜ν•¨

 

 

 

728x90
λ°˜μ‘ν˜•
Comments