
HTTP를 안전하게 만들기
HTTPS는 넷스케이프 커뮤니케이션 주식회사에서 개척했으며 모든 주류 브라우저와 서버에서 지원한다. HTTPS를 사용할 경우, 모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화된다. SSL과 TLS를 이용하여 구현되며 두 가지는 매우 비슷하기 때문에 양쪽 모두를 포함하는 용어로 SSL을 사용한다.
디지털 계산의 도래로 복잡한 인코딩과 디코딩이 가능해졌다. 또한 매우 큰 키를 지원하는 것이 가능해져서 단일 암호 알고리즘으로 키의 값마다 다른 수조 개의 가상 암호 알고리즘을 만들어낼 수 있게 되었다.
대칭키 암호법
대칭키 암호법에서는 인코딩을 할 때 사용하는 키가 디코딩을 할 때 사용하는 키와 같다. 발송자와 수신자 모두 통신을 위해 비밀 키를 똑같이 공유해야 한다. 대칭키 암호 알고리즘으로 DES, Triple-DES, RC2, RC4 등이 있다.
공격자가 코드를 크래킹하려면 모든 가능한 키 값을 시도해보아야 하는데, 키 값에 대한 경우의 수를 늘리기 위해 키가 몇 비트이며 얼마나 많은 키가 유효한지에 달려있다. 40비트 키는 약 1조가지가 가능한데, 초당 수십억 번의 계산이 가능한 요즘에는 쉽게 깨질 수도 있다. 때문에 128비트 키를 사용하는 것이 더 보안에 좋다. 대칭키 암호의 단점 중 하나는 발송자와 수신자가 둘 다 공유키를 가지고 있어야 한다는 점이다.
공개키 암호법
공개키 암호 방식은 두 개의 비대칭 키를 사용한다. 하나는 호스트의 메시지를 인코딩하기 위해 사용되며 다른 하나는 메시지를 디코딩하기 위해 사용된다. 인코딩 키는 모두를 위해 공개되어 있지만, 호스트만이 개인 디코딩 키를 알고 있다. 공개키 암호 체계 중 유명한 것은 RSA 알고리즘이다.
비대칭 공개키 암호 방식은 누구나 공개키를 알면 그 키에 대응되는 공개 서버에 안전하게 메시지를 보낼 수 있지만, 계산이 느린 경향이 있기 때문에 실제로는 대칭과 비대칭을 섞어 쓴다. 예를 들어, 안전한 의사소통 채널을 수립할 때는 공개 키 암호를 사용하고, 안전한 채널을 통해 임시의 무작위 대칭 키를 생성하고 교환하여 이후 나머지 데이터를 암호화할 때는 빠른 대칭 키를 사용한다.
'개발' 카테고리의 다른 글
[HTTP 완벽 가이드] 14장 보안 HTTP 14.5~14.9 (0) | 2025.01.15 |
---|---|
[항해 플러스] 프론트엔드 3기 수료 후기 (4) | 2025.01.11 |
[HTTP 완벽 가이드] 13장 다이제스트 인증 (0) | 2025.01.10 |
[HTTP 완벽 가이드] 12장 기본 인증 (1) | 2025.01.02 |
[HTTP 완벽 가이드] 11장 클라이언트 식별과 쿠키 (0) | 2025.01.02 |