전자서명과 부인방지 처리는 보안 시스템에서 중요한 개념입니다.
여기서는 비대칭 키(공개키/개인키)를 이용한 전자서명을 생성하고, 검증하는 방법을 Spring Boot 3.1(Java 17)과 Spring Security를 활용하여 구현하는 방법을 단계별로 설명해 드리겠습니다.
. 전자서명 개념 정리
전자서명은 개인키(Private Key)를 사용하여 데이터를 서명하고, 공개키(Public Key)를 이용해 서명을 검증하는 방식입니다.
전자서명은 서명과정과 검증 과정으로 구분되는데 아래와 같습니다.
- 서명할 때 중요한 개념
- 키쌍(공개키/개인키) 생성
- 원문(Message)을 해시(Hash) 값으로 변환 (SHA-256 등 사용)
- 해시 값을 개인키(Private Key)로 암호화 → 전자서명(Signature) 생성
- 서명출력
- 검증할 때 중요한 개념
서명 검증 과정에서는 서명한 원본 메시지와 전자서명 값, 그리고 공개키가 필요합니다.
검증 과정은 다음과 같이 동작합니다.
- 원문 메시지 → 다시 SHA-256 해시값 생성
- 공개키로 전자서명을 복호화하여 SHA-256 해시값을 얻음
- 두 개의 SHA-256 해시값을 비교하여 동일하면 검증 성공
즉, 검증 과정에서는 전자서명을 복호화하여 해시값을 얻고, 원문 메시지의 해시값과 비교하는 것입니다.
'프로그래밍 > Java' 카테고리의 다른 글
spring boot 이용한 JWT 로그인 로그아웃 토큰 유효성 검사 (0) | 2025.01.21 |
---|---|
spring boot gradle REST API 서버 테스트 구축 (1) | 2025.01.17 |
전문 mymq 릴레이소켓 연결시 이슈 (0) | 2024.12.27 |
스프링에서 빈(Bean)을 등록하는 두가지 방법 (0) | 2024.12.19 |
vscode 에서 devtools 정상적으로 작동하지 않을때(자동리로드 안될때) (0) | 2024.12.13 |