Primitives, 즉 암호학적 기본 요소는 암호학 시스템을 구성하는 기본적인 함수나 알고리즘을 의미한다. 데이터 보안과 관련된 다양한 작업에 사용되며, 보다 복잡한 암호 시스템과 프로토콜을 구축하는 데 필요한 구성 요소로 사용된다. 일반적인 암호학적 기본 요소에는 해시 함수, 메시지 암호, 디지털 서명 알고리즘 등이 포함되어있다.
해시 함수는 임의 길이의 데이터를 고정된 길이의 해시값으로 매핑하는 함수다. SHA(Secure Hash Algorithm)시리즈가 널리 사용된다. 해시 함수는 데이터의 무결성을 검증하는 데 사용된다. 원본 데이터에서 조금이라도 변경이 발생하면 해시값이 크게 달라진다. 해시는 암호화된 형태로 되돌릴 수 없는 일방향 함수의 특성을 갖는다.
비밀번호 저장 같은 보안 관련 작업에서도 중요한 역할을 한다. 비밀번호는 해시된 형태로 저장되고, 로그인 시 입력된 비밀번호를 해시하여 저장된 해시값과 비교함으로써 사용자를 인증한다.
메시지 암호화는 데이터 보안을 위해 정보를 암호화된 형태로 변환하는 과정이다. 이 과정을 통해, 데이터가 민감한 정보를 포함하고 있더라도 외부로부터의 불법 접근으로부터 안전하게 보호할 수 있다. 암호화된 메시지는 특정 키를 가진 사용자만이 복호화할 수 있으며, 대칭키 암호, 비대칭키 암호로 구성되어 있다.
비밀키 암호(대칭키 암호)는 암호화와 복호화에 같은 키를 사용하는 방식이다. 가장 유명한 예로 AES(Advanced Encryption Standard)가 있다. 통신하는 양쪽 모두가 동일한 비밀키를 공유하고 있어야 하며, 이 키의 보안이 매우 중요하다. 키 관리가 쉽고 처리 속도가 빠르다는 장점이 있지만, 키를 안전하게 교환하는 것이 어렵다는 단점이 있다.
공개키 암호(비대칭키 암호)는 암호화와 복호화에 서로 다른 키를 사용한다: 공개키와 비밀키. 공개키는 모두에게 공개되어 있고, 비밀키는 개인이 비밀리에 보유한다. RSA가 대표적인 예이다. 공개키로 데이터를 암호화하면 해당 데이터는 해당 비밀키로만 복호화될 수 있다. 이 방식은 키 교환 문제를 해결하지만, 비밀키 암호보다 처리 속도가 느리다.
디지털 서명은 문서나 메시지의 무결성과 송신자의 신원을 확인하기 위해 사용된다.

- 송신자는 메시지의 해시값을 생성한다.
- 생성된 해시값을 송신자의 개인 비밀키로 암호화한다. 이 암호화된 해시값이 서명이 된다.
- 암호화된 메시지와 함께 서명을 수신자에게 전송한다.
- 수신자는 송신자의 공개키를 사용하여 서명을 복호화하고, 메시지의 해시값을 다시 계산한다. 복호화된 해시값과 새로 계산된 해시값이 일치하면 메시지가 변경되지 않았음을 확인하고, 서명이 유효함을 의미한다.
디지털 서명은 메시지의 진위를 검증하고, 메시지가 송신 경로 중에 변조되지 않았음을 보증한다. 또한, 서명은 송신자가 메시지 발송을 부인할 수 없게 만드는 '부인 방지' 기능도 한다. 이러한 기능은 법적 문서, 소프트웨어 배포, 온라인 트랜잭션 등 다양한 분야에서 중요하게 활용된다.
TLS/SSL(Secure Sockets Layer/Transport Layer Security)인증서는 웹사이트와 사용자 간의 통신을 암호화하여 데이터의 안전을 보장한다. 이는 데이터의 무결성을 유지하고, 외부 공격자로부터의 정보 유출을 방지한다.
무료 TLS/SSL 인증서 발급 기관
- Let's Encrypt:
- 가장 인기 있는 무료 인증서 발급 기관 중 하나다.
- 자동화된 프로세스를 통해 무료 SSL/TLS 인증서를 제공하며, 90일마다 갱신해야 한다.
- ACME(Automatic Certificate Management Environment) 프로토콜을 사용하여 인증서 설치 및 갱신을 자동화한다.
- Cloudflare:
- 웹사이트 성능 및 보안 서비스를 제공하는 회사로, 사용자가 Cloudflare의 서비스를 이용하면 자동으로 SSL/TLS 보호를 제공한다.
- Cloudflare를 통해 트래픽이 라우팅될 때, HTTPS를 사용하여 보안 연결을 유지한다.
- ZeroSSL:
- Let's Encrypt와 유사하게 무료 SSL/TLS 인증서를 제공한다.
- 웹 기반 인터페이스를 통해 인증서를 쉽게 발급받고 관리할 수 있다.
무료 TLS/SSL 인증서는 작은 웹사이트나 개인 프로젝트에 적합하며, 웹사이트의 신뢰성과 보안을 높이는 데 큰 도움을 준다.
'기타' 카테고리의 다른 글
백준 알고리즘 문제풀이 스트릭 100, tistory 글 안써지는 issue fix (0) | 2024.05.19 |
---|---|
use CDN (0) | 2024.04.23 |
Azure AD, AWS IAM, ACM (0) | 2024.04.18 |
Azure와 MobaXterm을 사용한 배포 (0) | 2024.04.11 |