Web

[1028 암호화] 대칭키, 공개키, ssl

암호화 암호화 = encryption = 엔크립션
특별한 지식을 소유한 사람들을 제외하고 누구든지 읽어 볼 수 없도록 알고리즘을 이용하여 정보(평문)를 전달하는 과정.
* 해독 : decryption : 디크립션
https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94
암호화 종류 1. 단방향 암호화
: 역으로 변환하는 것이 불가능
2. 비밀키 암호화 = 대칭키 암호화 = symmetric-key algorithm
: 비밀키를 사용 암호화와 복호화 하는 과정, 송수신자 모두 동일한 암호화 키
3. 공개키 암호화 = public-key encryption =비대칭키(Asymmetric key) 암호화
: 공개키 + 개인키
암호화는 송수신자에게 공개된 공개키를 사용하여 암호화
복호화는 개인키를 가진 사람만 할 수 있다.
비밀키 암호화 방식보다 처리가 느림. 실제 비밀키, 공개키 혼합사용
HMAC =hash-based message authentication code= keyed-hash message authentication code
= 해시함수와 기밀 암호화 키를 수반하는 특정한 유형 메시지 인증코드
ex)HMAC-SHA256 : SHA256(암호화해시함수) HMAC-X(Mac 알고리즘) 사용.
https://ko.wikipedia.org/wiki/HMAC
MAC =맥=message authentication code = 메시지 인증코드
데이터가 변조(수정, 삭제, 삽입) 되었는지 검증할 수 있도록 덧붙이는 코드.
MAC 의 생성과 검증은 반드시 비밀키를 사용하여 수행해야만 한다.
메시지 인증 코드 예
1. SWIFT : 국제 은행간 통신협회
2. IPsec : IP프로토콜에 보안기능첨가
3. SSL/TLS
https://m.blog.naver.com/wnrjsxo/221719726759
SSL Secure Sockets Layer = 웹 브라우저 보안 프로토콜
3.0을 표준화 한것이 TLS 1.0 (SSL, TLS 같은의미사용)
TLS = Transport Layer Security

보안
1. 기밀성 : 훔처도 볼수없다
2. 무결성 : 위변조 여부 확인
3. 인증 : 초기설정 인증서를 통해 신뢰개체 인증.

TLS 사용하는 어플리케이션 프로토콜
HTTPS, FTPS

TLS 세부 프로토콜
1. Handshake : 양쪽 연결 확인 프로토콜
2. Change Cipher Spec : 보안 파라미터(대칭키 알고리즘변경시) 변경 적용시 사용 프로토콜
3. Alert : 오류전송 프로토콜
4. Application Data : 실제 데이터 전송 사용 프로토콜
5. Record : 협상된 보안 파라미터 이용 암복호화, 무결성 등 수행 프로토콜

출처 : https://reakwon.tistory.com/106
TLS 1. TLS 1.0
: 1999년, SSL 3.0의 업그레이드 버전 공개 3.0의 대부분취약점해결.
Window XP, vista, windws server 2003 에서 지원하는 마지막버전
2. TLS 1.1 , DTLS 1.0
2006년 암호 블로 체인공격에 대한 방어, IANA 등록 파라메터지원추가.
3. TLS 1.2 , DTLS 1.1
2008년, SHA2를 사용하도록 변경
4. TLS 1.3, DTLS 1.2
2018년, 서버에서 인증서를 암호화 하여 전달, 최초 연결시 암호화 통신 개시 절차 간소화,
오래된 암호화 기술 폐기
https://namu.wiki/w/TLS