이 글은 면접을 위한 CS 전공지식노트의 책을 읽고 학습 후 스터디 공유를 위한 글입니다.
**인증 메커니즘**
, **키 교환 암호화 알고리즘**
, **해싱 알고리즘**
이 사용된다.💡 세션
운영체제가 사용자로부터 자신의 자산 이용을 허락하는 일정 기간. 즉, 사용자는 일정 시간 동안 응용 프로그램, 자원 등을 사용할 수 있다.
https://www.cloudflare.com/ko-kr/learning/ssl/what-happens-in-a-tls-handshake/
사용할 TLS 버전(TLS 1.0, 1.2, 1.3 등)을 지정
사용할 암호 제품군(사이퍼 스위트를 기반으로)을 결정
서버의 공개 키와 SSL 인증서 기관의 디지털 서명을 통해 서버의 ID를 인증
핸드셰이크가 완료된 후에 대칭 암호화를 사용하기 위하여 세션 키를 생성
핸드셰이크 진행 과정
💡 Client Hello 메시지의 내용
- TLS Version
- Client 지원 암호화 알고리즘
- Client Random (무작위 바이트 문자열, 대칭키를 만드는 데 사용)
- Session ID
- SNI(서버명)
💡 Server Hello 메세지의 내용
- TLS Version
- 암호화 알고리즘(Client가 보낸 암호화 방식들 중 서버가 선택)
- Server Random(무작위 바이트 문자열)
- SessionID
[출처1: https://sunrise-min.tistory.com/entry/TLS-Handshake는-어떻게-진행되는가]
[출처2: [cloudflare의 what-happens-in-a-tls-handshake 아티클]https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/]
이 과정을 거쳐 공통의 암호 키가 생성이 된 키가 사전에 합의된 비밀키인 PSK(pre-shared key)와 같다면 공통의 암호키가 생성된 것을 확인할 수 있다.
→ 만약 공격자가 개인키 또는 공개키를 가지고도 PSK가 없기 때문에 아무 것도 할 수 없다.
만약 클라이언트가 이전에 방문한 사이트로 다시 방문한다면 SSL/TLS의 보안세션을 만드는데 필요한 통신을 생략 가능 이를 0-RTT 모드라고 한다.
이전에 수립한 세션에서 resumption main secret라는 키를 나누고 이를 가지고 세션티켓이라 불리는 것을 클라이언트에게 서버가 전송한다. 그럼 이후 이 세션티켓을 기반으로 클라이언트는 암호화된 데이터를 보낼 수 있고 서버와 클라이언트 사이에 TLS가 재계된다. 이를 통해 TLS 핸드쉐이크를 생략할 수 있다.
구글에서 SSL 인증서 강조 + 사이트내 모든 요소가 동일 → HTTPS 서비스를 하는 사이트가 그렇지 않은 사이트보다 SEO 순위가 높을 것이라 공식적으로 발표 함.
💡 SEO(검색엔진 최적화)
사용자가 검색엔진을 통해 사이트를 검색 시 그 페이지를 상단에 노출시켜 많은 사람이 볼 수 있도록 하는 최적화
캐노니컬 태그 설정
<link rel=”canonical” href=”https://aaaaa.com/aaaaa.php”/>
한 사이트를 가리키는 주소가 여러개 존재할 때, 검색 엔진의 로봇이 어떤 주소가 원본인지 알 수 있도록 하기 위한 태그
HTTP/1.1 200 OK
Content-Type: application/pdf
Link: ; rel="canonical"
Content-Length: 4223
...

PageSpeedInsights에서 페이지 속도에 대한 리포팅을 받을 수 있다.
사이트맵 관리
사이트맵은 페이지, 동영상 및 기타 파일과 그 관계에 관한 정보를 제공하는 파일. 로봇의 크롤링을 효율화 한다.(출처)
사이트맵 제너레이터 사용, 직접 코드 작성으로 구축
```
?xml version="1.0"
encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://kundol. co.kr/</loc>
〈lastmod〉수정날짜</lastmod〉
<changefreq>daily</changefrea>
(priority›1. K/priority> </url> </urlset)
```
사진 출처: 면접을 위한 CS 전공지식노트 서적