일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- node.js
- 컴퓨터보안
- NEST
- access control
- 보안
- IT
- 컴퓨터 보안
- 데이터베이스
- 알고리즘
- rest docs
- 백트래킹
- 노드
- ES6
- AWS
- 디비
- 병행제어
- 되추적
- 인터럽트
- 탐욕기법
- 스프링부트
- S3
- DB
- DATABASE
- 자바스크립트
- 컴퓨터
- 백준
- 운영체제
- API문서
- OS
- node
- Today
- Total
개발스토리
Hash Function 본문
Hash Function
■ 임의의 긴 입력값을 적절하게 처리하여 짧은 값을 출력하는 함수
■ Message Authentication Code (MAC)로 무결성 제공
■ 전자 서명으로 sender authentication 제공
Hash Properties
■ 입력 길이에 상관없이 출력 길이가 일정하다.
■ 조금이라도 입력 값이 다르면 출력 값은 완전히 달라진다. -> integrity 제공
■ x = h(x)는 쉽지만 reverse 계산은 어렵다. ->암/복호와의 차이점
■ 충돌저항성이 높을수록 좋은 hash 함수이다. ( 충돌 저항성이란 해시값이 같은 입력 값을 두 개를 찾을 수 없다는 특성이다.)
Integrity : using Message Authentication Code (MAC)
■ 메시지 무결성 : 변경되지 않은 원본이 맞음을 보장해준다.
■ 메시지를 해시 함수로 돌린 후 나온 결과가 MAC이다.
■ 메시지와 MAC을 합쳐서 인터넷 망으로 전송한다.
■ reveiver는 sender가 보낸 것을 받고 메시지와 MAC으로 나눈다. 그 다음 메시지를 똑같은 해시 함수로 돌린 뒤에 sender가 보낸 MAC이랑 비교한다. (같으면 무결성 보장)
■ 위 그림에서는 sender Authentication은 제공되지 않는다 : sender가 hacker여도 receiver는 알 수 없다.
Authentication : using Digital Signature
■ integrity(무결성)과 authentication(인증)을 동시에 제공한다.
■ key를 사용(key를 모르는 사용자는 생성 불가능)
■ 위 그림은 sender와 receiver가 key를 공유하고 있다는 가정.
■ 메시지를 해시함수로 돌린 mac을 sender에 private key로 암호화한 뒤 메시지와 합쳐서 보낸다.
■ receiver는 받으면, 메시지 부분은 같은 해쉬함수로 돌린다.
■ 또한, mac 부분은 sender에 public key로 복호화를 한 뒤, 해시함수끼리 비교를 한다.
-> 같으면 무결성 보장, 또한 sender에 public key로 복호화한 것이니 사용자 인증 보장.
Merkle Structure
■ 메시지를 block으로 나눔
■ 고정된 길이의 입력 값을 받아들여 고정된 길이로 출력하는 압축 함수를 반복 사용하여 긴 길이의 입력을 처리할 수 있는 해쉬 함수로 확대하여 설계하는 방식
MAC의 한계
■ 제 3자에 대한 sender authentication 불가능
-> key를 모르는 사용자에게는 못한다.
■ MAC 공격 방법 : Replay Attack
-> 정상적인 사용자가 보낸 packet을 가로채서 hacker가 사용자인 척 다시 packet을 보내는 방법
-> hacker는 복호화에 관심이 없음
'Computer Science > 보안' 카테고리의 다른 글
IDS_침입 탐지 시스템 (0) | 2020.11.27 |
---|---|
전자 서명(Digital Signature) (1) | 2020.11.27 |
Access Control Policy_RBAC (0) | 2020.11.24 |
Access Control Policy_DAC (0) | 2020.11.24 |
Access Control(접근 제어) (0) | 2020.11.23 |