Internet 개요
- 인터넷은 데이터 패킷의 전달을 용이하게 하는 케이블 네트워크이다.
- 케이블 네트워크는 거대하고 550,000 마일의 바다 속의 숨겨진 케이블을 통해 전 세계에 걸쳐있다.
- 데이터 패킷은 이메일, 파일, 웹페이지같은 정보를 포함한다. 또한 발신자와 수신자에 대한 정보도 포함한다.
- 어떤 사람도 같은 핸드폰번호를 가질 수 없는 겉처럼 IP Address도 똑같다. 모든 Device는 그들만의 unique한 IP Address를 가지고 있다.
- IP는 periods에 의해 구분되어 있는 숫자로 구성된 문자열이다.
데이터 패킷
- 데이터 패킷은 여러가지 내용을 포함하고 있다.
- Header는 거쳐야 할 protocol을 특정화한다.
- Payload는 전달될 이메일 내용같은 Data를 포함한다.
- Trailer는 패키지가 완성되었고 추가적인 데이터가 필요없다는 정보를 가지고 있다.
Bandwidth
- 데이터 패킷의 이동 속도는 Bandwidth에 의해 결정된다.
- Bandwidth 이동 용량은 Bitrate에 의해 결정된다.
- Bitrate는 초당 digital network가 이동할 수 있는 bit 수이다.
- Latency는 발신자에서 수신자로 1 bit를 보낼 때 걸리는 시간이다.
- example: 4MB mp3파일을 4초 안에 인터넷으로 보낼 때, 8Mbps를 필요로 한다.(8 Millon bits = 1MB)
Protocol
- machine간에 커뮤니케이션을 위해 만들어진 기준, 규약이다.
- TCP/IP protocol, HTTP,HTTPS protocol, SMTP protocol, FTP protocol이 있다.
IP
- Internet Protocol
- IP는 적절한 주소에 대한 경로 정보이다.
- IP는 데이터 패킷이 수신자에게 잘 전달되도록 한다.
- IP Protocol은 물리적인 연결을 원할하게 하지는 않는다.
TCP
- 데이터 패킷의 이동이 원할하게 한다.
- 어떤 정보도 잃어버리지 않도록 도와준다.
HTTP/HTTPS Protocol
- HTTP/HTTPS Protocol은 어떻게 인터넷 브라우저가 웹 서버와 커뮤니케이션하는지를 명시한다.
- HTTP: Hypertext Transfer Protocol
- HTTPS: Hypertext Transfer Protocol Secure
Web Server
- Web site나 Web application을 호스팅하고 인터넷 유저와 원격의 연결을 받아들인다.
HTTP Protocol
1: 웹 브라우저에 웹 주소를 입력한다.(예를 들어 www.google.com)
2: 모뎀이 Web address를 숫자 IP address로 변환하기 위해 Internet service provider와 communicate한다. 이것은 DNS, domain name servers에 의해 실행되고 ISP에 의해 관리된다. Domain name server는 IP address에 대한 domain 이름의 목록이다. 때때로 ISP가 DNS records에서 해당되는 IP를 찾지 못한다. 그런 경우 ISP는 다른 Authoritative DNS에서 IP를 찾아나갈 것이다.
3: IP가 발견되면 웹 브라우저에 IP 주소를 돌려준다.
4: IP address에 GET request를 보낸다.
5: Request가 성공적이라면 웹 페이지의 내용(HTML 등)이 데이터 패킷을 통해 전송되고 웹 브라우저에 나타날 것이다.
HTTPS Protocol
- HTTP Protocol보다 더 안전한 데이터 전송이 가능한 프로토콜이다.
- HTTP에서는 암호화가 안 된 상태로 데이터가 이동할 수 있다. 하지만 HTTPS는 SSL(Secure Socket Layer) 혹은 TSL(Transport Security Layer)를 이용해 데이터를 암호화 시킨다. 이것은 데이터 패킷이 암호화되어 특정한 조건을 만족할 때만 복호화될 수 있다는 것을 의미한다.
Security Certificate
-
SSL layer는 웹 서버에 security certificate를 설치함으로써 생성될 수 있다.
-
Security certificate는 판매자로부터 구매할 수 있고 도메인과 도메인 등록자에 대한 정보가 증명된다는 것을 알려준다. 도메인 이름이 business를 위한 것이라면 추가적인 증명 서류가 필요하다. 추가적인 증명은 각각의 판매자마다 다르며 더 유명한 판매자일수록 더 많은 정보를 요구할 가능성이 있다. 각각 보안의 세기가 다르다. EV(Extended Validation certificatoin)은 취득하기에 많은 시간과 세부적인 증명을 요구한다. 그렇기에 높은 레벨의 보안을 제공한다.
-
위의 diagram은 웹 사이트 방문자가 SSL로 보호된 웹 사이트를 방문했을 때에 어떻게 암호화 과정이 이루어지는지를 보여준다. 웹 서버에 설치된 SSL certificate는 자동으로 방문자와의 암호화된 연결을 만들어낸다. 이것은 SSL handshake라고 부른다. Connection이 만들어진다면 자물쇠 아이콘이 보이고 https가 보인다.
SSL encryption은 사실상 깨지기 힘든 2048 bit encryption이다.
### SMTP
- SMTP는 Simple Mail Transfer Protocol의 약자이다. 웹 어플리케이션 개발자라면 자주 마주칠 것이다. 웹 어플이 배포된 후에 고객들과 이메일로 소통할 일이 많기 때문이다. 고객이 아주 많은 서비스라면 이메일 관리와 설정은 매우 복잡하다.
- SMTP는 electronic mail 혹은 email transmission의 standard protocol이다.
- Mail Delivery은 두 가지 타입을 가지고 있다. Local & Outbound. 예를 들어 수신자와 발신자가 같은 도메인에서 이메일을 주고 받는다고 하면 local mail delivery이다. 다른 도메인에서 이메일을 주고 받는다고 하면 outbound mail delivery이다. Email exchange의 경로의 타입에 따라 나뉜다.
Local Mail Delivery
- Web based mail service 또는 Microsoft Outlook과 같은 email client에 의해 이메일이 보내진다.
- SMP server는 다양한 tasks가 있다. 데이터 패킷에서 헤더 정보를 확인하고 패킷의 보낸 사람과 받는 사람이 포함된 패킷의 헤더 정보를 상기할 수 있다. 수신자와 발신자의 도메인 이름이 같음을 보고 local mail delivery라는 것을 확인한다. 수신자(위 그림에서는 joe)가 서버에 연결하여 대기 중인 메일을 다운로드할 때까지 SMTP 서버는 전자 메일 저장소에 전자 메일을 내부적으로 보관한다. 이메일은 POP3 protocol을 통해 다운로드된다. Joe가 POP3 protocol을 통해 이메일 메세지를 다운로드 한다면 SMP server에서는 삭제된다.
- POP3 protocol은 지정된 수신자에게 저장된 이메일 메세지를 전달하기 위한 것이다. POP3 server는 일반적으로 username과 password와 같은 인증을 요구한다.
- POP3 server는 이메일을 다운로드하기 위해 여러 개의 컴퓨터를 사용하는 이메일 수신자에게는 이상적이지는 않다. 수신자가 POP3 protocol을 통해 이메일 메세지를 다운로드 한다면 SMTP server에서는 삭제되기 때문이다.
- 몇몇 이메일에서는 POP3 대신에 eye map server를 사용하기도 한다. 다운로드하더라도 SMTP 서버에 남아있게 하기 때문이다.
Outbound Mail Delivery
- 수신자와 발신자의 도메인 이름이 다른 경우이다.
- 수신자의 이메일 서버 IP를 얻기 위해 ISP DNS server와 communicate하며 IP 주소를 얻는다.(위의 그림에서는 yahoo의 IP 주소). Destination IP address(yahoo IP 주소)를 얻는다면 destination email server와 연결한다. 이 지점에서 Destination server는 이메일 메세지가 junk mail이 아니라는 것을 확인하기 위해 여러 가지의 spam filter를 실행한다. 이메일 메세지가 안전하다는 것이 확인되면 Joe가 이메일 서버에 연결해서 메세지를 다운받기 전까지 Joe의 이메일 저장소에 유지된다.
LAN and WAN
LAN
- Local Area Network
- 상대적으로 작은 지역 내에서 공통 회신을 공유하는 컴퓨터 그룹.
- 일반적으로 방 하나, 빌딩, 여러 개의 빌딩에 제한된다.
- 위 그림은 가장 베이직한 네트워크 구성이다. ISP는 동축 케이블 혹은 DSL phone line 통해 모뎀과 연결된다. 이 연결을 통해 인터넷으로 데이터 패킷을 전달할 수 있다. 우리의 컴퓨터는 직접적으로 이더넷 케이블(ether net cable)을 통해 연결된다.
- 여기에는 두 가지 문제가 존재할 수 있다. 첫번째는 보안이고 두번째는 네트워크 확장 능력이다.
- 우리의 컴퓨터 운영체제는 많은 프로그램을 가지고 있는 매우 복잡한 소프트웨어이고 인터넷 연결을 통한 보안의 취약점에 열려있다. 해커는 보안 문제를 알아내고 모뎀에 직접적으로 연결함으로써 이 취약점을 이용한다. 해커는 데이터 요청을 컴퓨터에 쉽게 전송하고 어떤 취약점이 있는지 확인할 수 있다.
- 우리는 인터넷 연결을 여러 개의 디바이스에 동시에 나누고 싶어할 수 있다. 모뎀은 오직 하나의 이더넷 케이블 혹은 DSL line만 허용한다. Connection을 나누기 위해서 모뎀은 라우터가 필요하다. 라우터에 연결된 모든 기계는 모뎀에 접근할 수 있다. 기계들은 같은 하나의 외부 public IP를 쓰고 있지만 라우터는 각각의 기계에 local unique IP address를 부여한다. 라우터는 LAN을 통과하는 것이든(ex.프린터) 인터넷을 목적지로 하는 것이든지(ex.이메일 보내기) 네트워크를 통해 움직이는 모든 데이터 패킷을 분석한다.
WAN
- Wide Area Network
- 지리적으로 더 큰 지역을 아우르는 더 복잡한 네트워크이다.
- 도시, 국가가 공유한다.
- WAN은 일반적으로 고객에게 LAN을 제공하기 위해 Internet service 제공업체에 의해 만들어진다.
- 인터넷은 현존하는 가장 큰 WAN이다.
Network Ports and Firewalls
Network Ports
- 모뎀과 컴퓨터를 직접 연결하는 것은 좋은 선택이 아니다. 라우터는 다양한 기계가 네트워크와 연결하는 것 뿐만 아니라 네트워크 보안 수준도 올려준다. 라우터에 연결된 컴퓨터가 하나만 있더라도 인터넷에서 로컬 네트워크로 들어갈 수 있는 데이터 패킷을 제어할 수 있습니다. 라우터 안에서 데이터 패킷은 지정된 포트안에서 움직여야 한다. 인터넷 context 안에 있는 네트워크 포트는 네트워크에 구성된 데이터 파이프라인이라고 생각할 수 있다. 라우터 포트는 HTTP SMTP POP3 및 FTB 포트와 같은 다양한 프로토콜과 관련된 데이터 패킷의 이동을 허용하거나 제한하기 위해 열거나 닫을 수 있다.
- 포트 번호는 지정된 숫자값이다. 예를 들어 80번 포트는 HTTP를 통해 전달되는 데이터 request를 담당한다. 25번 포트는 이메일 전송과 관련된 SMTP를 다루고 21번 포트는 파일 교환을 위해 사용된다.
Firewalls
- 라우터는 Firewalls 위에 만들어진다.
- Firewall는 인증되지 않은 접근을 막기 위해 만들어진 시스템이다. 필요에 따라 커스터마이즈 될 수 있다. 하드웨어 firewall, 소프트웨어 firewall 모두 보안을 위해 추가될 수 있다. 대부분의 운영체제는 Window firewall과 같은 소프트웨어 firewall가 설치되어 있다. 소프트웨어 방화벽은 악의적인 내용을 포함하는 데이터 패킷이 네트워크에 들어오는 것을 방지한다.
- Cisco Router Firewall는 네트워크 보안에 매우 효과적인 하드웨어 Firewall이라고 알려져 있다.
- Firewall은 특정 포트로 부터 데이터가 이동하거나 어떠한 프로그램이 데이터 패킷을 이동시키는 것을 막는다.
- 소프트웨어 방화벽은 하드웨어 방화벽만큼 효과적이지 않다. 소프트웨어 방화벽 효과의 대부분은 운영체제의 전반적인 구성과 설치된 application에 달려있다. 때때로 Trojan이나 virus를 실수로 다운로드한다면 소프트웨어 방화벽을 의미없게 만든다. 하드웨어 방화벽은 보안 위협으로부터 영향받지 않는다는 점에서 덜 취약하다.