암호화(cryptology) - 해시함수와 인증서
2022. 9. 21. 16:20ㆍ시스템 & 네트워크 보안
1. 해시함수(Hash Function)
- 원문을 해시함수에 넣으면 해시값 출력 (해싱이라고 함)
해쉬값 함수에는 MD5, SHA-1, SHA-256 등이 있음
- 고정길이 출력 : 원문의 길이와 관계없이 고정길이로 출력됨
- 함수마다 고정길이가 다름
- MD5(128bit), SHA-1(160bit), SHA-256(256bit)
- 일방향 함수 : 한쪽 방향으로의 암호화는 가능하지만 그 반대인 복호화는 불가능
- 해시함수와 해시값을 알더라도 원문을 알수 없음
- 해시값을 입력하면 원문을 알려주는 크래킹 사이트들이 있음
- 복호화를 해서 알려주는 것이 아닌 DB에 원문에 대한 해시값들을 저장해두고 해시값을 입력하면 DB에서 찾아 출력해주는 방식
- 해결방안으로 원문에 *솔트(salt)값을 붙여서 해싱을 하거나 여러 함수로 반복 해싱하는 방법이 있음
*솔트(salt) : 해싱을 하기 전에 원문에 임의의 값을 추가하는 것을 말함
- 원문이 조금이라도 달라지면 해시값도 전혀 달라짐
- 같은 함수를 사용한다고 가정 했을때 apple과 appla의 해시값은 전혀 다름
- 이러한 성질을 이용해서 원문 변조 확인이 가능하며 이는 즉 무결성 검증이 가능하다는 것을 의미
- 사진의 경우 원문이 달라졌어도 육안으로 식별 할 수 없지만 해시값을 통해 다르다는 점을 알 수 있음


- 충돌 방지 : 원문이 다른데 해시값이 같은 경우
- MD5의 충돌 확률 : 1/2^128
- SHA-1의 충돌 확률 : 1/2^160
- 0에 수렴하지만 컴퓨터의 발전으로 인해 충돌이 발생하기도 함
- MD5, SHA-1 : 취약한 해시 함수
- SHA-256 : 안전한 해시 함수
- 전자 서명 (해시 함수 활용)
- 생성 : 원문의 해시값을 송신자의 개인키로 암호화한뒤 원문에 붙여서 전송
- 검증 : 수신자는 암호화된 해시값을 송신자의 공개키로 복호화한뒤 같이 온 원문의 해시값과 비교
- 일치시 무결성 검증
- 불일치시 원문 변조
2. 인증서(Certificate)
- 거래 상대의 공개키가 맞는지 검증 필요
- 형식 : x.509v3
- CA : 인증기관
- 생성 : 공개키의 해시값을 CA(인증기관)의 개인키로 서명(암호화)해서 전송
- 검증 : 수신자는 CA(인증기관)의 개인키로 서명된 공개키의 해시값을 CA(인증기관)의 공개키로 복호화한뒤 직접 계산한 공개키의 해시값과 비교
- 일치시 CA(인증기관)에서 보장하는 거래 상대의 공개키
- 불일치시 CA(인증기관)에서 보장하는 다른 상대의 공개키
- 즉 인증기관에서 해당 공개키가 거래 상대가 맞는지 틀린지를 보장해줌
- 공인인증서 : 공인인증기관이 서명한 인증서
3. PKI(Public Key Infrastructure, 공개키 기반구조)
- RA(Registration Authority, 등록기관) : 인증서 신청 업체를 검증하고 등록을 대행하는 역할
은행, 증권회사, 대행업체 등
- CA(Certificate Authority, 인증기관) : 인증서 발급하는 기관
금융결제원, 정보인증, 전자인증, 무역정보협회, Koscom
- RootCA(최상위 인증기관) : 인증기관을 검증
KISA
'시스템 & 네트워크 보안' 카테고리의 다른 글
| 취약점 분석 및 진단 - samba (0) | 2022.09.25 |
|---|---|
| 취약점 분석 및 진단 - 6667 port (0) | 2022.09.25 |
| 취약점 분석 및 진단 - vsftpd (0) | 2022.09.25 |
| 암호화(cryptology) - SSL/TLS (0) | 2022.09.22 |
| 암호화(cryptology) - 비밀키 & 공개키 (2) | 2022.09.19 |