Campus Network: The major characteristics of a campus environment are that the company that owns the campus network usually owns the physical wires deployed within the campus. The campus network topology is primarily a LAN technology connecting all the end systems within the building and generally uses LAN technologies, such as Ethernet, Token Ring, and Fiber Distributed Data Interface (FDDI). The operational issues of a traditional campus network is it consists of a single LAN and confines all users to a building or several buildings in close proximity to each other. The factors relating to performance issues with traditional networks are availability and performance, which are impacted by bandwidth in the network. Excessive broadcasts reduce the bandwidth available to the end users. One of the advantages of localizing traffic is that LAN switches can be used to effectively contain broadcast traffic and separate traffic flows. The topology of a campus network consists of LAN switches and routers.
Bridging Protocol1 Bridging Protocol 개요OSI 7 계층에서 2 계층인 Data-Link 계층에서 사용하는 Bridging 프로토콜에는 다음과 같은 것이 있다.Transparent Bridging- IEEE 802.1(d) Spannig Tree- DEC Spanning TreeSource-Route BridgingEthernet-to-Token Ring Translational BridgingSource-Route Transparent BridgingFDDI Encapsulation BridgingFDDI Translational BridgingSource-Route Bridging Access Expressions2 TRANSPARENT BRIDGING PROTOCOL트랜스패런트 브리지는 동일한 네트웍을 상호 연결하는 데에 사용하고 있으며, 네트워크에 연결된 컴퓨터는 네트워크 상에 브리지가 있는지, 두개 이상의 네트워크로 구성되어 있는지 전혀 인식할 수 없도록 투명한 서비스를 제공한다.3 ENCAPSULATION BRIDGING PROTOCOL인캡슐레이션 브리지는 상이한 네트워크 구조를 경우하여 두개의 동일한 네트웍을 연결하는 경우에 사용한다. 즉, ETHERNET에서 생성된 패킷이 FDDI 브리지에 수신되면 원래의 데이터 패킷은 FDDI 패킷의 데이터 항목에 집어 넣어져 전달된다. 이 패킷이 수신지 네트워크에 연결된 브리지에 도착하면 브리지는 FDDI 패킷 중에서 원래의 이더넷 패킷만을 분리하여 수신지 주소로 전송하므로 패킷의 내용에는 아무런 변화가 없다.4 SOURCE ROUTING BRIDGING PROTOCOL소스라우팅 브리지는 IBM Token Ring Network에서 주로 사용한다. 이 방식에서는 패킷이 전송될 경로를 알려주기 위하여 토큰 링 패킷의 MAC 헤더 부분에 RIF(ROUTING INFORMATION FIELD)를 사용한다. 송신지에서는 패킷이 전달될 경로를 모두 명시하여 RIF에 지정함으로써 중간의 브리지는 RIF를 확인하여 패킷을 포워딩한다. 따라서 루프가 형성되어 있는 네트워크에서도 문제없이 사용할 수 있다.5 TRANSLATION BRIDGING PROTOCOL트랜스레이션 브리지는 이더넷 네트워크 상의 장치가 FDDI 네트워크상의 장치와 통신하는 경우에 사용하는 방식으로 두 프로토콜 간에서 패킷을 완전히 재구성한다. 즉, 트랜스레이션 브리지는 ETHERNET MAC 주소를 FDDI에서 인식할 수 있는 MAC주소로 변환한다. 또한 여러 개의 이더넷 패킷이 합쳐져 있는 FDDI 패킷을 이더넷상에 보내기 전에 원래의 데이터 패킷으로 분리시켜 준다.BRIDGING 지역 MEDIA TRANSPARENT LOCAL SMAE TRANSLATION LOCAL MIXED ENCAPSULATION LOCAL & REMOTE MIXEDEthernet Switching ReportPreamble Destination Address Source Address Length Field Protocol Header Data Field FCS*.Cut-Through *.Store and Forwarding1.목적지 Address를 받은후에 1.Frame전체를 받은후에 전송여부Frame을 Forwarding할지 여부를 결정한다.결정한다2.Low Latency (지연시간의 적다) 2.Latency가 Frame길이에 따라 다르다3.에러Frame까지 전송한다. 3.에러가 난 Frame은 전송하지 않는다.*Store and Forward스위칭 허브는 완전한 하나의 패킷을 수신한후에 CRC에러를 확인한뒤 목적지 포트로 직접 전송하는데, 어드레스가 일치하지 않으면 다음 포트로 보내는 방법이다.임의의 포트에 있는 어느 어드레스와도 일치하지 않으면 백본 포트를 별도로 구성하지 않는 한 패킷은 폐기된다. 모든 패킷을 수신한후 전송하므로 패킷의 에러를 확인해 이에 대한 조치가 가능하다. 이 방식의 단점은 네트웍 Performance에 영향을 줄수 있다.*Cut-Through (Fast Forwarding)Cut through 스위칭은 버퍼에 쌓여있는 목적지MAC Address를 검사한후 Frame Forwarding의 여부를 결정한다. Cut through방식은 전체의 Frame을 받기 이전에 Forwarding을 하므로, 에러가 난 Packet까지도 전송을 하는 단점이 있다. 그러나 이 방식은 즉시 전송을 함으로써 지연시간을 최소화 할수있다.*Adaptive Cut-Through (Fragment Free)Adaptive Cut Through(변형된 Cut-Through 또는 Fragment Free라 불리기도 함) 스위칭방식은 Cut-Through방식과 Store and Forwarding방식을 절충한 기술방식이다. 이 방식은 Inco-ming Packet의 최초64Byte까지를 버퍼에 저장한다. 64Byte를 Check하여 에러가 검출이 된다면 패킷을 폐기하며 그렇지 않은 경우는 Forwarding을 한다. 이것은 Packet의 최초64Byte에서는 Cut-Through방식은 그 이상의 Byte에서는 Store and Forwarding방식을 사용하는 혼합형의 방식이다.(Spanning Tree Algorithm*. 어떠한 Mesh형태의 망에서도 하나의 Acylic spanning tree를 형성케한다.*. LAN1과 LAN2는 단하나의 Path만의 존재한다.*. 각각의 Bridge는 BPDUs(Bridge Protocol Data units)로 서로의 정보를 주고 받는다.*. IEEE 802.1d 규정*. 한 LAN상의 모든 Bridge들은 Network상에 전송되는 모든 Frame을 수신할수 있어야함.
방화벽(firewall)1. 방화벽 시스템의 기본 개념방화벽의 원래 의미는 건물에서 발생한 화재가 더 이상 번지는 것을 막는 것이다. 이 의미를 인터넷에 적용한다면, 이는 네트워크의 보안 사고나 위협이 더 이상 확대되지 않도록 막고 격리하는 것이라고 할 수 있다. 이는 특히 어떤 기관의 내부 네트워크를 보호하기 위해서는 외부에서의 불법적인 트래픽이 들어오는 것을 막고, 허가하거나 인증된 트래픽만 허용하는 적극적인 방어 대책이라고 할 수 있다.[그림 1] 인터넷 접속과 위험 지대(Zone of Risk)방화벽 시스템의 기본 목표는 네트워크 사용자에게 가능한 한 투명성을 보장하면서 위험 지대를 줄이고자 하는 적극적인 보안 대책을 제공하는 것이다. 다음 [그림 1]은 일반적인 인터네트에 접속되어 있는 네트워크를 나타내고 있는데, 외부와의 투명한 접근을 허용하므로 서 내부 망 전체가 위험 지대임을 보여주고 있으며, [그림 2]의 경우는 외부와 내부 네트워크간의 유일한 경로에 방화벽 시스템을 둠으로써 방화벽 시스템이 보안 서비스를 제공하여 불법적인 트래픽을 거부하거나 막을 수 있는 것이다. 물론 투명성을 보장하지는 않지만 내부 네트워크를 안전지대로 만들 수 있는 것이다.그림 2] 방화벽 시스템의 개념방화벽 시스템의 구축은 호스트에 대한 보안을 강화시킴으로써 사이트에 많은 이점을 제공한다. 방화벽을 구축,사용함에 있어서의 이점을 요약하면 다음과 같다.방화벽은 네트워크에 대한 보안을 강화하고, 기본적으로 안전하지 않은 서비스를 필터링(filtering)함으로써 서브넷 상에 있는 호스트에 위험을 감소시킬 수 있다. 즉, 단지 선택된 프로토콜만이 방화벽을 통과시키므로 서 서브넷 네트워크 환경은 위험에 덜 노출되게 된다.방화벽은 또한 호스트 시스템에 대한 액세스를 제어할 수 있다. 예를 들면, 외부 네트워크에서 내부 네트워크에 있는 호스토로 접속하고자 할 때, 원하지 않는 액세스는 차단할 수 있다. 따라서 사이트는 메일 서버나 NIS같은 특별한 경우를 제외하고 외부로부터의 액세해될 수 있는 지에 관한 정보를 알려줄 수 있다.방화벽은 또한 사이트 시스템에 관한 DNS 정보를 막을 수 있다. 그래서 사이트 명과 IP 주소를 인터넷 호스트이 사용할 수 없게 해준다. 원하는 사이트는 이러한 정보를 막음으로써 침입자에 유용한 정보를 숨길 수 있다.마. 네트워크 사용에 대한 로깅과 통계자료시스템에 대한 모든 액세스가 방화벽을 통과 한다면, 방화벽은 액세스를 로그할 수 있고, 네트워크 사용에 대한 유용한 통계 자료를 제공한다. 의심이 가는 활동에 대해 적절한 경고 기능을 제공하는 방화벽은 방화벽과 네트워크가 침입 시도를 받고 있는지 또는 침입 되었는지에 대한 세부 사항을 제공해 준다.바. 정책 구현방화벽은 네트워크 액세스 제어 정책에 대한 구현을 제공한다. 사실상, 방화벽은 사용자와 서비스에 대한 액세스를 제어할 수 있다. 그래서, 네트워크 액세스 정책은 방화벽에 의해서 구현될 수 있다. 그러나 방화벽이 없다면, 이러한 정책들은 전적으로 사용자의 협조에 의존해야 한다. 사이트에서는 사용자의 협조에 의존할 수도 있으나 일반적으로 인터넷 사용자에게는 의존 할 수 없다.1.1 방화벽 시스템의 기본 구성 요소방화벽 시스템에 대한 여러 토론 그룹에서는 방화벽 시스템에 대한 일반적인 용어 정의 및 개념을 규정하였다. 그리고 방화벽 시스템이 가지는 여러 가지 기능과 보안 대처 수준에 따라 여러 가지 유형의 방화벽 시스템이 존재할 수 있다. 여기서는 일반적인 방화벽 시스템의 구성요소에 대하여 기술한다.가. 네트워크 정책(Network Policy)방화벽 시스템의 설계, 설치, 사용에 직접적으로 영향을 줄 수 있는 두 가지 레벨의 네트워크 정책이 있다. 상위-레벨 정책은 명확한 내용 즉, 제한된 네트워크로부터 서비스를 허용할 것인가 또는 명확하게 거부할 것인가를 정의하는 네트워크 액세스 정책, 이러한 서비스를 어떻게 사용할 것인가, 그리고 이러한 정책의 예외 조건 등을 말한다. 하위-레벨 정책은 어떻게 방화벽이 실질적으로 액세스를 제한하고 상위-레벨 정책에서 의해 행해진다. 패킷 필터링 라우터는 IP 패킷중 다음을 전부 또는 일부를 필터링할 수 있다.- source IP address- destination IP address - TCP/IP source port - TCP/IP destination port라. 응용 계층 게이트웨이(Application Level Gateway)응용 계층 서비스는 축적전달(Store-and-Forward) 방법을 사용하는 경우가 많은데, 이는 게이트웨이에서 수행하는 방법과 같다. 게이트웨이는 송신자 응용 서비스가 보내는 정보를 그대로 전달하면 되는 것이다. 실제로 이 게이트웨이에서는 보안을 위한 특별한 서비스가 제공된다. 예를 들어 내부와 외부간의 모든 응용 레벨의 트래픽에 대해 로깅이나, Telnet이나 FTP 등에서 사용자 인증이 필요한 경우에 우수한 인증 방법을 사용한다. 이 응용 계층의 게이트웨이 기능은 프럭시 서버(Proxy Server)라는 서버 기능을 제공하게 된다. 예를 들어 외부의 전자우편 클라이언트가 내부의 어떤 호스트내 전자우편 서버와 접속하기를 원하면, 중간에 프럭시 서버가 이를 받아 다시 내부의 서버에게 전달하는 방식이 된다.[그림 4] 응용 레벨 게이트웨이마. 스크린 라우터(Screen Router)어떤 기관이 인터넷에 접속할 경우 라우터(Router)라는 인터넷 패킷을 전달하고 경로배정(Routing)을 담당하는 장비를 사용하게 된다. 이러한 라우터는 단순 장비가 아니라 패킷의 헤더 내용을 보고 필터링(스크린)할 수 있는 능력을 가지고 있다. 네트워크 레벨의 IP(Internet Protocol) 데이터그램에서는 출발지 및 목적지 주소에 의한 스크린, TCP(Transmission Control Protocol) 레벨의 패킷에서는 네트워크 응용을 판단하는 포트(Port) 번호에 의한 스크린, 프로토콜별 스크린 등의 기능을 제공하게 된다. 이 스크린 라우터만으로도 어느 정도 수준의 보안 접근 제어를 통해 방화벽 시스템 환경을 구현할 수 있으나 라우터에서 말하며 보통 게이트웨이 호스트라는 시스템이다. 2개의 네트워크는 외부 네트워크와 내부 네트워크를 의미하고, 이 두 네트워크간의 유일한 패스를 제공하도록 조정된다. 즉 동적인 경로 배정과 경로 정보 전달을 배제하므로 모든 내.외부 트래픽은 이 호스트를 통과하도록 하여 베스쳔 호스트의 기능을 여기에 구현하는 것이다.[그림 6] 이중 네트워크 호스트아. 스크린 호스트 게이트웨이(Screen Host Gateway)스크린 호스트 게이트웨이 개념은 이 시스템을 내부 네트워크에 두어 스크린 라우터가 내부로 들어가는 모든 트래픽을 전부 스크린 호스트에게만 전달되도록 하겠다는 것이다. 또한 스크린 라우터는 내부에서 외부로 가는 모든 트래픽에 대해서도 스크린호스트에서 출발한 트래픽만 허용하고 나머지는 거부하게 된다. 그래서 내부와 내부네트워크사이의 경로는 외부 네트워크 - 스크린 라우터 - 스크린 호스트 - 내부 네트워크 이외의 경로는 결코 허용하지 않게 된다. 이 스크린 호스트도 결국 베스쳔 호스트, 이중 네트워크 호스트의 개념이 집합된 시스템이다.[그림 7] 스크린 호스트 게이트웨이자. 스크린 서브넷(Screen Subnet)스크린 서브넷은 일명 DMZ(DeMiliterization Zone)의 역할을 외부 네트워크와 내부 네트워크사이에 두겠다는 것으로서 완충 지역 개념의 서브넷을 운영하는 것이다. 여기에 스크린 라우터를 이용하여 이 완충 지역을 곧장 통과 못하게 하지만 외부 네트워크에서도 내부 네트워크에서도 이 스크린 서브넷에 접근할 수는 있다. 특히 어떤 기관에서 외부로 공개할 정보 서버(Information Server), 즉 익명FTP서버, 고퍼(Gopher) 서버, 월드와이드웹(WWW) 서버 등을 여기에서 운영하면 된다.[그림 8] 스크린 서브넷차. 암호 장치(Encryption Devices)암호 장치는 어떤 기관의 네트워크가 공공의 인터넷을 통해 여러 지역으로 분산되어 있을 경우에 적합하다. 즉 어떤 본사 네트워크가 방화벽 시스템을 구축하였을 때 지역적으로 e/Destination 주소와 포트에 의해 결정된다. 단순한 라우터는 낡은 방식의 네트워크 레벨 방화벽을 제공하는데, 이것은 어떤 패킷이 동작하는지 어떠한 네트워크에서 왔는지를 판단해야 하는 복잡한 규칙에 대해 판단하기 어렵다. 하지만 현재의 네트워크 레벨 방화벽은 매우 복잡해져서 허용된 접속들의 상태와 어떤 종류의 데이터 내용 등을 관리할 수 있다.한가지 중요한 차이점은 네트워크 레벨 방화벽이 라우트를 직접 제어할 수 있으며, 할당된 IP 블럭을 정당하게 사용할 수 있도록 해준다는 점이다. 네트워크 레벨 방화벽은 매우 빠르며, 사용자에게 투명한 서비스를 보장한다.* 네트워크 레벨 방화벽의 사례 : "스크린 호스트 방화벽" 이라고 할 수 있으며, 호스트에 대한 액세스 제어가 네트워크 레벨에서 동작하는 라우터에서 이루어지며, 이때의 호스트가 베스쳔 호스트이다.* 네트워크 레벨 방화벽의 사례 : "스크린 서브넷 방화벽"으로 구현될 수 있으며 이것은 네트워크 레벨에서 동작하는 라우터가 하나의 전체 네트워크에 대한 액세스 제어를 할 수 있음을 말한다. 스크린 호스트의 네트워크란 점만 빼면 스크린 호스트와 유사한다.응용 레벨 방화벽은 2개의 네트워크 간에 항상 직접적인 트래픽을 막고, 트래픽에 대해 로그, Audit 기능 등이 지원되는 프락시를 실행하는 기계를 말한다. 프락시 응용은 방화벽의 소프트웨어 부분이므로 많은 로그와 액세스 제어 기능을 제공하는 것이 좋다. 응용 레벨 방화벽은 주소 번환기로서 사용될 수 있다. 어느 한 쪽에서 들어와 다른 쪽으로 나가기 때문에 처음 시도한 접속에 대해 효과적인 마스킹할 수 있다. 이렇게 중도에 응용을 가지는 것은 어떤 경우에는 성능에 문제를 가질 수 있으며, 투명성이 보장되지 않는다. TIS 툴킷 등에 구현된 것과 같은 초기 응용 레벨 방화벽은 일반 사용자에게 투명하지도 않으며, 어떤 연습이 필요하다. 최근의 응용 레벨 방화벽은 투명성이 보장되며, 보다 상세한 감사 보고와 네트워크 레벨 방화벽보다 보다 안전한 보안 모델을 제공한다.
암 호1. 서 론암호(crytography)란 평문(plaintext)을 해독 불가능한 암호문(ciphertext)으로 변형하거나 또는 암호화된 통신문을 복원 가능한 형태로 변환하기 위한 원리, 수단, 방법 등을 취급하는 기술 또는 과학이다. 그리고 암호학은 암호와 암호 해독을 연구하는 학문으로 정수론의 합동이론, 확률통계, 전자, 통신 및 전산학 등 많은 분야의 학문과 연결되어 있다.과거에서 현재까지 자신의 정보를 안전하게 지키거나 전달하기 위해 많은 노력들이 진행되고 있다. 이러한 일들은 암호를 사용함으로써 소기의 목적을 이룰 수 있다. 암호를 이용해서 정보의 보호가 가능하고, 개인의 프라이버시를 지키는 것이 가능하고, 안전한 정보의 전달이 가능하다. 이것뿐만 아니라, 비밀과 안전이 보호되어야 하는 모든 곳에 암호는 사용될 수 있다. 암호는 고대(450 B.C.)로부터 아주 중요하게 인식되어 왔고, 또한 상대방의 비밀 정보를 홈치고자 많은 노력들이 있었다. 정보보호의 필요성은 정보를 보호하는 가장 좋은 방법인 암호학에 관한 연구의 시발점이 되었다.만약, 정보가 제3자에게 노출될 수 없는 전송 수단을 통해 전달된다면 그 정보는 안전하고, 정보를 보호하기 위한 연구는 필요하지 않을 것이다. 하지만 그러한 전송 수단은 존재하지 않기 때문에 우리는 항상 위험에 대해 대비를 하여야 한다. 즉, 암호는 제3자가 정보를 훔쳐내더라도 그 의미를 알 수 없도록 하는 것이다.암호에 쓰이는 간단한 용어를 살펴보면 송신자가 보내고자하는 원래의 데이터를 평문(plaintext)이라고 하고, 평문을 어떤 과정을 거쳐 제3자가 보더라도 평문의 내용을 쉽게 알지 못하도록 하는 것이 암호화(encryption)라고 하는데 평문이 암호화과정을 거치면 암호문(cipertext)이 된다. 반대로 암호문으로부터 평문으로 바꾸는 과정을 복호화(decryption)라고 한다.이러한 암호화, 복호화 과정에서 이용되는 알고리즘을 암호 알고리즘이라 하고 암호 알고리즘에서 평문을 변환하는 주체가 되는 것논리합)로 암호문을 생성한다.대칭키 암호방식의 대표적인 것은 DES(Data Encryption Standard)이다. DES는 공용 컴퓨터 네트워크의 시설이 급증하면서 1970년대 초반 표준 암호알고리즘의 필요성이 강력히 대두됨에 따라 1973년 미 표준국에서 미국 암호 표준화를 공모하였고, IBM에서 제안한 알고리즘이 1977년 데이터 암호 표준으로 채택되었다. DES는 데이터 암호의 표준이 되면서 광범위하게 사용되고 있으며, 특히 금융 분야에서 널리 이용해 왔다. DES의 특징을 살펴보면 평문을 64비트로 끊어서 64비트 암호문으로 만드는 블록(block) 암호이고, 키는 64비트를 이용하는데 실제 키는 56비트이고, 나머지 8비트는 검사용 비트이다. 각각의 블록은 16번의 반복적 암호화 과정을 가지고 있고, 각 과정마다 전치 및 대치의 과정을 거친 평문과 56비트의 내부 키에서 나옴 48비트의 키가 섞여 암호문을 만든다. 복호화 과정과 동일하나 사용되는 키만 역순으로 작용한다. 또한 DES는 안전성을 증가시키기 위해 키의 길이를 128비트로 늘인 변형된 알고리즘도 있다.대칭키 암호방식은 송/수신자 사이에 키를 철저히 빌밀로 관리해야 한다. 만약, 통신망에 가입된 사람의 수가 많을 경우 비밀로 관리해야 하는 키의 수도 많아진다. 이러한 키 관리의 어려움 외에도 대칭 암호방식에서는 전자 문서의 내용에 대한 디지털 서명(digital signature)을 확인할 수 없다는 문제가 있다. 이러한 문제를 해결할 수 있는 암호방식이 비대칭 암호방식인데, 보통 공개키 암호방식이라 불리운다. 공개키 암호방식은 관용 암호방식과 달리 암호화 키와 복호화 키가 다르다. 이러한 공개키 암호방식에는 Diffie-Hellman의 이산 대수문제(discrete logarithm problem)의 어려운 점을 이용하는ElGamal 방식이 있고, 소인수 분해의어려움을 이용하는 RSA 방식 등이 있다. 공개키 암호방식은 암호화, 복호화 시 두 개의 키를 사용함으로써 대칭키 암호방식의 ltipurpose Internet Mail Extension) 등을 사용함으로써 기존의 E-mail이 가지고 있어TEjs 도청, 메시지 변조, 송신자 변조, 송신 부인, 재전송, 수신 부인의 문제는 해결될 수 있어 보다 안전하게 E-mail을 전송할 수 있다.암호의 응용 중에서 가장 대표적인 것은 전자 상거래일 것이다. 전자 상거래는 네트워크를 이용하여 거래가 성립되므로 이에 대한 안전장치가 필요하다. 기존의 상거래는 소비자와 판매자가 직접 만나기 때문에 신원 사칭이나 도청에 대한 위험이 없었다. 그러나 인터넷을 이용한 상거래는 편리한 반면 다음과 같은 문제점이 생길 수 있다. 네트워크를 통하여 물품 구입을 하기 위해선 사용자의 카드번호 및 신상정보를 제시해야 하며 이것은 곧 안전하지 못한 통신망에 개인의 중요정보가 노출되는 위험이 있다. 또, 쇼핑 몰을 개설하고 있는 상점이 정당한 거래를 수행하고 있는 상점인지 또는 상점을 대상으로 물품을 구입하고자 접촉해 오는 사용자가 정당한 사용자인지에 대한 확인이 쉽지 않다. 이러한 위험을 해결할 수 있는 방법은 암호에 의존하는 것이다. 암호를 이용해 개인 정보를 암호화해서 전송할 수 있고 쇼핑몰과 사용자 사이의 인증 문제를 해결할 수 있다.암호는 위에서 언급한 분야만이 아니라 전자 화폐, 전자 신분증, 전자 투표 등 많은 곳에서 응용뒬 수 있다. 암호는 컴퓨터와 각종 통신을 사용하는 모든 분야, 이를테면 군사, 외교는 물론이고 여러 산업 분야에서 사용자의 프라이버시를 보호하고 안전한 통신을 요구하는 곳이라면 암호는 사용되어야 한다. 현재는 물론이고 미래사회는 정보에 대한 의존성이 높아갈 것이고 이런 중요한 정보는 컴퓨터 시스템과 각종 통신 수단에 전송되거나 저장될 것이기 때문에 이러한 과정에서 정보 보호의 필요성과 중요성은 증대될 것이다. 또한, 네트워크의 발달로 인해 기존의 오프라인상의 작업들이 온라인상으로 하나 둘씩 옮겨가는 추세에서 정보 보호는 필수적 요구사항이다. 이 보안 문제를 해결할 수 있는 것이 암호이다난 20년 동안 세계적인 표준으로 사용된 64비트 블록 암호 알고리즘이다.1972년에 National Institute of Standards and Technology(NIST)의 전신인, National Bureau of Standards(NBS)는 컴퓨터와 통신 데이터를 보호하기 위한 프로그램을 개발하였다. NBS에서는 알고리즘에 대한 몇 가지 설계 기준을 제시하였고 이를 만족시키는 알고리즘으로 IBM에서 Lucifer 시스템을 개선하여 만든 DES를 채택하였다. DES는 64비트 블록 암호 알고리즘으로서 56비트의 키를 사용하여 블록을 암호화하며 1976년 미국 연방 표준으로 채택된 후 매 5년마다 안정성 평가를 통하여 1998년까지 안전성을 인정받아 왔다. 그러나 근래에 들어 표준으로서 DES에 대한 안전성을 보장할 수 없게 됨에 따라 NIST에서는 1998년을 기준으로 표준에서 DES를 제외시키고 새로운 알고리즘을 표준으로 삼기 위해 표준을 공모하여 1998년 15개의 대칭키 암호 알고리즘을 후보로서 선택해 놓은 상태이다.DES의 구조는 크게 데이터 암호화부와 키 생성부로 구성되어 있다. 먼저 키 생성부에서 생성된 48비트의 16개 라운드 키(round key)는 데이터 암호화부의 각 라운드로 들어가 평문 블록과 함께 치환, 대치, 그리고 키 스케줄 등을 통하여 암호문을 만들어 내게 된다. 복호화는 암호화의 역순이다.초기에 128비트의 키 길이로 설계되었던 DES는 NSA(National Security Agency)에 의해 56비트로 키 길이가 줄어든 이후 꾸준히 키 길이에 대한 논쟁이 있어 왔으며 컴퓨팅 파워가 증가하고 네트워크 기술이 발달하여 DES에 대한 다양한 공격이 시도되었다. 이 알고리즘은 2개의 키를 사용함으로서 키 길이가 112비트로 늘어나게 되었으며 DES에 대한 대안으로서 키 관리 표준 ANSI X9.17과 ISO 8732, 그리고 PEM(Privacy Enhanced Mail)에 채택되었다. 현재 3중 DES에 대한 실용적인 암되었다.98년 8월 후보로 선택된 알고리즘은 다음과 같다.명칭제작자국가LOKI97Lawrie Brown, Josef Pieprzyk, Jennifer SeberryAustraliaRUNDAELJoan Daemen, Vincent RijmenBelgiumCAST-256Entrust Technologies, Inc.CanadaDEALOuterbridge, KnudsenCanadaFROGTecApro Internacional S. A.Costa RicaDFCCentre National Pour la Recherche ScientifiqueFranceMAGENTADeutsche Telekom AGGermanyE2Nippon Telegraph and Telephone CorporationJapanCRYPTONFuture System, Inc.KoreaHPCRich SchroeppelUSAMARSIBMUSARC6RSA LaboratoriesUSASAFER+Cylink CorporationUSATWOFISHBruce Scheier, John Kelsey, Doug Whiting,David Wagner, Chris Hall, Niels FergusonUSASERPENTRoss Anderson, Eli Biham, Lars KnudsenUK, Israel, Norway3.2 공개키 암호 시스템공개키 암호 시스템은 비대칭키 암호 시스템(Asymmetric Cryptosystem)이라고 불리우며, 수학적 함수를 기반으로 하여 비밀키 암호 시스템과 달리 키 쌍이 존재하여 하나의 키는 누구든지 사용할 수 있도록 공개하며 다른 하나는 자신만이 비밀스럽게 보관하는 방식을 일컫는다. 이때 공개하는 키를 공개키(public key)라고 하며 비밀스럽게 보관하는 키를 개인키(private key)라고 한다.이러한 방식을 사용함으로써 공개키 암호 시스템은 비밀키 암호 시스템의 키 관리와 분배의 문제점을 해결해 주고 있다. 즉, n명의 사람들과 암호화 통신을 하기 위해서 비밀키 암호 시스템에서는0 b
FTP 보안- 목 차 – FTP Bounce 공격 TFTP 보안 Anonymous FTPFTP의 치명적인 보안 허점FTP는 표준 username/password 인증을 사용하지만 server는 접속한 사용자 사용자가 진정한 인증된 사용자인지 알 길이 없다 기본적인 패스워드가 평문으로 전송된다.전자적으로 도청하여 패스워들을 알아낼수 있다 FTP 세션은 암호화되지 않으므로 프라이버시가 제공되지 않는다.FTP bounce 공격작동원리 Telnet에서 FTP로 연결 문제점 FTP서버는 클라이언트가 지시한 곳으로 자료를 전송할 때 그 목적지가 어떤 곳인지는 검사하지 않는다.USER PASSPORTRETRSTORor전송하고자 하는 IP를 지정할수 있다공격형태 #telnet xx.xx.xx.xx 21 user anonymous pass -anonymous@~~~ cwd /export-restricted-crypto type i port F,F,F,F,X,X 전송하고자하는 IP주소 및 포트번호 retr crypto.tar.Z quit공격예 거짓편지, 포트스캐닝, 방화벽 넘어 접근 ==대응책== 통신하는 Port번호가 1024보다 작거나 클라이언트가 실행되는 host와 file이 전송된는 host가 다를 경우는 Port명령을 받지 않도록… 다른 서비스(SMTP, FTP)들이 20번 포트로 접속 요청을 거절하는 방법 익명FTP의 /incoming 디렉토리의 권한을 쓰기만 가능하고 읽기는 불가능하게…TFTP 보안사용자인증없이 remote에서 파일을 읽거나 쓰기가 가능한 Protocal diskless host의 booting image을 읽거나 X-terminal이 외부의 글꼴을 읽기위해 사용된다. ==대음책== Chroot 기능 이용 = tftp실행시 이용할 루트디렉토리를 설정해 준다 #vi /etc/inetd.conf tftp dgram upd wait root /usr/sbin/in,tftpd in.tftpd –s ~ TCP wrapper 이용 = IP별로 접속을 제한한pd : xxx.xxx.xxx.xxx /etc/hosts.deny in.tftpd : ALLAnonymous FTP 개요 Ftp를 설치하게 되면 default로 Anonymous FTP가 실행되게 된다. Wu-ftp (워싱턴 대학에서 개발) 유닉스용, 사용이 간단, 보안에 취약 2.4, 2.5버전에서 버퍼오버플로우에 대한 취약점이 발견 2.6버전에서는 많은 기능이 첨가 Pro-ftp: 유닉스 호환운영체제용, 자원의 효율적인 사용, 빠른처리속도 Wu-ftp의 취약성으로 최근에 많은 인기 Ncftp(보다 보안적인 측면이 강조) /etc/passwd에 있는 계정과 별도로 관리가 가능Anonymous FTP사용 정책 일반사용자가 적고 다른 서비스를 가능한 제한한다. = 특정서비스로 전문화 시키고 상관없는 서비스 모두 제한 시킨다. 필요없는 정보는 넣지 않는다. = 익명사용자가 사용할수 있는 명령어와 영역을 제한한다. 권한 설정에 유의한다. -~FTP에 대한 권한은 555(쓰기 권한 제한), 소유주는 root로.. -~FTP이하의 서버디렉토리는 권한은 111, 소유주는 root로… -login할수 없도록 /etc/shadow의 passwd-filed를 NP로 해둔다 -shell을 실행할수 없는 것으로 지정해둔다.(ex:/bin/noshell)SendMail 보안-목차- 개요 공격형태 및 대응 거짓편지 Spam mail SendMail Version 8.9개요 대표적인 MTA(Mail Transport Agent) 수많은 Bug와 취약성 발견 = 부단한 upgrade 및 Patch 요망 Spam Mail의 극성으로 설정파일(/etc/sendmail.cf)의 환경 설정의 중요성이 요구됨 환경설정 이 어렵고 복잡하다. ※Qmail 보안이 중요한 경우 권장할 만 하다. 스팸메일에 대한 대처가 sendmail보다 약하다 규모가 적어서 저급사양의 컴퓨터에서도 잘 작동한다.공격형태 거짓편지 보내기 - 발신자 호스트명이 Received header에는 나타나지만 From header다. ==대책== 수상한 메일에 대해서는 mutt의 h 옵션을 이용해서 헤드정보를 확인 중요한 사항에 대해서는 발신자와 직접상의 PGP 같은 안전한 메일을 보낼수 있는 프로그램 사용공격형태 MIME(Multipurpose Internet Mail Extensions)의 Buffer Overflow - 메일 클라이어트(Outlook, Mutt)이 송신자의 메일을 통해 임의의 명령을 수신자의 시스템에서 수행가능 (CERT CA-98.10) ==대책== 메일 클라이언트의 패치 (v 8.9 이상) MIME 헤드를 잘라내어 사전에 방지 #vi /…/BuildTool/site APPENDDEF('confENVDEF','-D_FFR_MAX_MIME_HEADER_LENGTH=1') /etc/sendmail.cf 내용 수정 O MaxMimeHeaderLength=256/128 : 헤드의 글짜수를 256 개까지만 허용하고 각각의 필드는 128개를 넘지 못한다.공격형태 Spam mail 똑같은 내용의 글을 반복해서 보내는 “악성 광고메일” ==대책== Feature 매크로 이용 /etc/mail/sendmail.mc에 위치 *Feature('promiscuous_relay) :릴레이 정책을 예전의 것으로 되돌림. 즉, 모든 서버로부터의 메일 릴레이 요청을 허용. *Feature('relay_based_on_MX') :MX레코드를 바탕으로 릴레이 여부를 결정 *Feature('relay_local_from') :로컬도메인 사용자에게만 릴레이 허용*Feature('accept_unsolvable_domains') :FROM 파라미터에서 입력받은 호스트이름이 DNS서버로 부터 등록되지 않은 호스트라는 응답을 받을 경우에도 메일 거부 *Feature('accept_unqualified_senders') :완전하게 명시되지 않은 사용자와 도메인 이름이 입력되었을 경우에도 거부 *Feature('rbl') :RBL(Realtime Blackhole List)에 등록된 호스트에서 보내는 메일을 이용한 대응 Access DB - spam DB일종, 특정 도메인으로부터 오는 메일을 정책적으로 선별하여 받을 수 있다 - /etc/mail/access란 이름으로 저장된다. 예) spammer@aol.com REJECT sendmail.org OK 141.233 RELAY DB로 변환) #makemap dbm /etc/mail/access /etc/mail/accessSendmail v8.9 Directory 권한에 대한 조정 Mime BufferOverflow 방지 Spam mail의 차단기능(Feature 메크로) Spam DB의 일종인 Access DBWWW 보안- 목차 – CGI 취약점 및 대책 Web 서버 작동 메커니즘 Cgi wrapper Chroot() 함수 사용 안전한 웹서버 구성CGI 취약점 CGI:동적인 웹문서를 위한 script로써 프로그램을 원격에서 실행할 수 있게 한다. ==문제점== 웝서버 프로세스의 권한이 무엇이냐? ==대책== 사용자가 입력하는 내용에서 shell program을 실행시킬수 있는 문자들을 filterrig한다. 비정상적인 행동을 하지 않는 안정적인 것만 설치 Web서버의 log파일 확인 Chroot를 사용하여 /etc 나 /bin 같은 directory에 접근 제한을 한다. 위험한 cgi 점검 : “cgichk”사용 Cgi wrapper 사용Web 서버메카니즘 System booting시 daemon 올라옴 Inetd에서 web서버 process가 대기 Client가 요청을 하면 자식process가 생성되면서 요청을 처리 처리가 끝나면 자식process는 자동 소멸 == 취약점== 자식process는 부모process의 권한을 그대로 물려받는다. 불필요한 root권한의 process가 많다 ※안전한 web서버이란? 자식process가 생성될때 그 권한을 최소화하는 것CGI wrapper = nobody 권한으로 실행된 자식process 환경에서 웹서버 사용자들의 보안을 해결 ==장점== Cgi program이 단해서 그 사용자의 권한으로 cgi program을 실행시킨다. ==단점== 초보자가 잘못 사용하면 오히려 더 위험하다 :사용자의 cgi-bin 디렉토리에 위험한 cgi프로그램이 있다면 사용자의 권한으로 프로그램이 실행되기 때문chroot() 사용 = 새로운 루트 디렉토리를 설정하여 실제로 chroot된 프로세스는 이 디렉토리의 상위 디렉토리로는 접근할 수 없고 오직 하위 디렉토리로만 접근할 수 있다 ==장점== 웹서버 구동을 위한 관련 파일이나 DB들이 각각 흩어져 있어도 chroot 를 이용하게 되면 하나의 가상의 파티션으로 묶어 주기때문에 향후의 관리가 쉽고, 안전 ==단점== 설치가 쉽지 않고, 기존의 웹서버를 사용중이라면 장점을 최대한 살리기 힘들다.안전한 웹서버 만들기Cgi 프로그램은 컴파일한다. : 소스코드가 노출되는 것을 방지 CGI 프로그램의 권한은 711 : 스크립트언어로 된 CGI프로그램은 755로 되어있어야하지만 컴파일된 CGI는 711로 제한해도 가능하다 사용자의 입력을 자세히 검사한다 : CGI로 쉘명령을 실행시킬 경우 사용자 입력을 받도록 쉘명령어 실행 시 절대경로로 실행한다. : 경로에 의존하는 쉘명령어를 실해하지 않는게 좋다. 버퍼 오버플로우가 일어나지 않도록 : CGI에 대한 버퍼 오버플로우가 일어나지 않도록 프로그램밍한다.CGI프로그램 설치를 일반사용자에게 제한 : 사용자의 실수로 인해 발생하는 취약성을 예방 웹서버의 자식프로세스는 루트권한으로 실행하지 않는다. : 요즘의 Apache서버느 자식프로세서에게 nobody나 apache라는 권한을 부여된다. 익명FTP와 웹서버 디렉토리는 공유하지 않는다. : incoming 디렉토리로 쉘 스크립트를 전송하고 웹서버의 cgi버 그를 찾아낸다음, 전송한 쉘스크립트를 실행할 수도 있다 CGI Wrapper를 사용할때는 주의를 기울인다. : 자긴의 CGI프로그램에 문제가 있다면 오히려 더 위험하다 Chroot를 사용하여 웹서버를 설치한다. : CGI를 이용해서 불필요한 파일에 접근하는 것w}