일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 코테 합격후기
- 금감원
- 코드스테이츠 부트캠프
- Code States 백엔드 합격 후기
- codestates 국비지원 1기 합격 후기
- Gamsgo
- 금융감독원 민원신청
- 코드스테이츠 백엔드 교육과정
- 백준 알고리즘
- 겜스고
- Java
- 코드 스테이츠 백엔드 교육과정
- 백내장 다초점렌즈 삽입술
- 백내장 금감원
- 백내장
- 메서드
- 보험금 지급거절
- 코드스테이츠 부트캠프 합격 후기
- 코드스테이츠 합격 후기
- 자바
- CodeState 후기
- 해시
- 코드스테이츠 합격
- 금감원 백내장 민원
- 코드스테이츠 백엔드 부트캠프 합격
- 코드스테이츠 백엔드 후기
- 에이치엘비
- 금융감독원
- HLB
- Spring
Archives
- Today
- Total
개발하는 동그리
OSI 7계층 / CIA / RSA / RFC 규칙 / JWT 본문
반응형
응용 계층 -> 프리젠테이션 -> 세션 계층 -> 트랜스 계층 -> 네트워크 -> 데이터 링크 -> 물리 계층 (보낼 때)
물리 계층 -> 데이터 링크 -> 네트워크 -> 트랜스 계층 -> 세션 계층 -> 프리젠테이션 -> 응용 계층 (받을 때)
- 응용 계층 : 프로그램
- 프레젠 테이션 : 암호화 (암호화, 압축)
- 세션 계층 : 인증 체크 (상대방 컴퓨터 켜져있는가, 접근 가능한가)
- 트랜스 포트 : TCP / UDP 통신 결정 (
- TCP (신뢰성 있음) / 속도 느림 (웹 통신) ⭐⭐
- A -> B 안녕
- A <- B ACK
- A -> B 반가워
- A <-(x) B ( 데이터 유실, 혹은 통신 불량)
- A -> 반가워
- A <- B ACK (응답)
- UDP (신뢰성 없음, 일단 보냄) / 속도 빠름 / 사람이 이해할 수 있는것
- A -> B 안녕
- A -> B 반가워
- TCP (신뢰성 있음) / 속도 느림 (웹 통신) ⭐⭐
- 네트워크 : IP (WAN) (장거리 통신)
- 데이터 링크 : LAN (근거리 통신)
- IP 공유기에서 분산되는 위치 찾아줌.
- 물리 : 광케이블
CIA (Confidential Integrity and availability)
- Confidential (기밀성)
- Intergrity (무결성) - 문서가 중간에 변경되었을 때
- availability (가용성) - 문서를 처음그대로 확인가능한가
보안에 대한 이슈!!
- 1번 문제 : 열쇠 전달이 잘 되었는가!?
- 2번 문제 : 누구로부터 전달 되었는가!?
RSA (암호화)
- Public Key : 공개 키
- Private Key : 비밀 키 (개인 키)
- 키 한개로 사용 : 시멘트리키 (대칭키)
- 공개키 & 개인키 :
- 공개 키로 전달받고, 개인 키로 확인
- 1번 문제 열쇠 전달 문제 해결!! ⭐⭐⭐⭐⭐(암호화)
- 개인키로 전달하고, 공개키로 확인
- 전자문서 or 서명(인증) 에 사용 ⭐⭐⭐⭐⭐(전자 서명)
- 공개 키로 전달받고, 개인 키로 확인
- A -> B 에게 보낼 때
- B의 공개키로 전달하고자 하는 내용을 담고, A 개인키로 한번 더 감싼다.
- 이로써 A로 부터 보낸 인증을 확인할 수 있고, B만 전달하고자 하는 내용을 B 개인키를 활용해서 확인 할 수 있다.
JWT
- RSA(암호화) 사용
- RFC 규칙 ( 웹통신에서 규정된 약속) = 프로토콜 (각 새로운 네트워크간의 연결마다 약속이 생겨남)
- 모든 RFC 문서로 연결된 모든 네트워크가 WWW (World Wide Web) --> 이 약속의 프로토콜이 http 프로토콜
- HTTP : 벨 연구소에서 시작
- RFC 7519 로 규정되어 있음!
- Base64Url 로 인코딩, 복호화 가능
- header / payload / signiture 를 만든다.
- header : HS256 으로 서명
- payload : { username : choonsik, mail : hbs0227@Daum.net }
- signiture : { Header + Payload + ( ? ) } HS 256으로 암호화
- HS256 : 해시 -> 복호화 할 수 없는 암호화
- HMAC -> 시크릿 키를 포함한 암호화 방식
- 로그인 시도시 성공시 서버에서 Json Web Token 을 만든다
- 각각을 Base64로 인코딩 -> 클라이언트에게 줌 -> 클라이언트는 웹 브라우저의 로컬 스토리지에 저장 -> 다음 서버에 개인정보 요청시 (포함 JWT) -> 서버가 JWT를 받으면 신뢰할 수 있는 토큰인지 검증 (header, payload, signiture ) (보내온 Header와 payload와 서버가 가진 + ? 로 HMAC 해서 비교해서 같으면 인증완료)
반응형
'IT 정보 > Spring' 카테고리의 다른 글
@RestControllerAdvice & @ControllerAdvice (0) | 2024.12.12 |
---|---|
[Test] Slice Test (Data Access 계층) (2) | 2022.08.18 |
[Test] Slice Test (API 계층) (2) | 2022.08.18 |
[Spring] application.yml 설정 (1) | 2022.08.18 |
[Spring] build.gradle 설정 (0) | 2022.08.18 |