다음 이전 차례

6. 패스워드 보안과 암호화 (Encryption)

암호는 오늘날 쓰이고 있는 가장 중요한 보안 기능 중 하나다. 탄탄하고 추측할 수 없는 패스워드를 갖는 것은 여러분에게나 여러분의 사용자들에게 중요한 일인 것이다. 요즘의 리눅스 배포본들은 쉽게 추측할 수 있는 패스워드는 설정할 수 없도록 관리하는 passwd 풀그림을 포함하고 있다. 여러분의 passwd 풀그림이 이런 특성을 가지고 있는 최신판인지 확인하도록 하라.

암호화에 대한 깊은 토론은 이 파일의 범위를 벗어 나는 것이지만, 소개 정도는 해야겠다는 생각이 든다. 암호화는 매우 유용하며, 요즘 같은 시대에는 필수적이기까지 하다. 자료를 암호화하는 방법에는 여러 방법이 있으며, 각각 나름대로의 특성이 있다.

대부분의 (리눅스를 포함한,) 유닉스 계열은 디이에스. (DES Data Encryption Standard 데이타 암호화 표준)라고 하는 단방향 암호화 연산법 (One-way Encryption Algorithm)을 사용해서 패스워드를 암호화한다. 이렇게 암호화된 패스워드는 (흔히) /etc/passwd, (쉐도우 패스워드를 쓴 경우에는) /etc/shadow 에 저장된다. 여러분이 로그인할 때 입력한 입력한 패스워드는 먼저 암호 처리가 된 후에, 이 처리된 값이 다시 passwd 문서에 저장되어 있는 패스워드 처리값과 비교가 되게끔 되어 있다. 둘이 일치하면 같은 패스워드임이 분명하므로 엑세스가 허가된다. 비록 디이에스는 (맞는 키가 사용되었다는 가정 하에서 -- 같은 키로 암호화했다가 다시 복호화 하므로) 엄격히 따지면 양방향 암호화 방법 (Two-way Encryption Algorithm)이기는 하지만, 대부분의 유닉스 계열이 쓰는 변종의 디이에스는 단방향 식이다. 이것은 etc/passwd (혹은 /etc/shadow)안의 암호화된 값을 역산(逆算)해서 원래의 패스워드 값을 얻는 것이 가능하면 안된다는 뜻이다. [38. 단방향 연산]

여러분 패스워드의 랜덤 요소가 충분하지 않다면 크랙 (crack)이나 존 더 립퍼 (John the ripper) 같은 부루트 포스 공격에 (brute force attack) 의해 패스워드를 간파 당하는 경우가 있을 수 있다. (아래의 크랙 참조). 팸 (PAM) 모듈을 쓰면 패스워드에 (MD5 등의) 다른 암호화 방식도 쓸 수 있게 된다 (아래 참조). 또한 여러분에게 크랙이 득이 되도록 쓸 수도 있다. 여러분들이 가지고 있는 패스워드 데이타베이스에서 쉽게 깨질 수 있는 패스워드를 찾아내기 위해서 크랙을 써서 테스트해 낼 수도 있을 것이다. 이러한 약한 패스워드가 발견되면, 패스워드의 주인에게 이 사실을 알려줌과 동시에 패스워드를 쉽게 추측할 수 없도록 만드는 법을 알려주도록 하자.

좋은 패스워드를 고르는 방법에 대해서는 http://consult.cern.ch/writeup/security/security_3.html에서 정보를 얻을 수 있다.

6.1 6.1 피지피와 공개 열쇠 암호 기법 (Public Key Cryptography)

피지피 (PGP Pretty Good Privacy) 등에 사용되고 있는, 공개 열쇠 암호 기법은 하나의 열쇠로 암호화하고 또 다른 열쇠로 복호화하는 (두 개의 열쇠를 쓰는) 암호 기법을 쓴다. 전통적인 암호 기법은 동일한 하나의 열쇠로 암호화와 복호화를 둘 다 처리해 왔다. 이 (한 개뿐인) "비밀 열쇠"는 (암호화하는 쪽과 복호화하는 쪽의) 양편이 모두 가지고 있어야 했고, 무슨 수로든 보안을 유지하면서 한 쪽에서 다른 상대방으로 전달되었어야 했다.

이렇게 보안을 유지하면서 열쇠를 전달해 주어야만 되는 어려운 수고를 덜어 주기 위해서, 공개 열쇠 암호법은 두 개의 키를 사용한다. 각 개인의 공개 열쇠는 누구나 암호화에 쓸 수 있도록 배포되고 이에 상응하는 -- 복호화에 사용될 -- 개인의 비밀 열쇠는 개인이 보관한다.

공용 열쇠 암호 기법과 비밀 열쇠 암호 기법에는 각 장점이 있고, 차이점은 이 항목의 끝 부분에 적어 놓은 RSA FAQ를 읽어보기 바란다.

리눅스는 피지피를 잘 지원해 준다. 피지피 2.6.2와 5.0이 잘 작동된다고 알려져 있다. 피지피에 대한 기본 안내문과 사용법을 알고 싶으면 PGP FAQ를 읽기 바란다. 국제판 PGPi: http://www.pgpi.org/doc/faq/. [13. 국제판 PGP FAQ]

미국 정부는 강력 암호 기법을 군용 무기로 취급하고 있고, 이에 따라서 PGP 등의 강력 암호 기법을 전자적 매체를 통해서 송출하는 것을 "수출 제한 조치"로 금하고 있으므로, 여러분 국가에 맞는 버전을 사용하도록 하라. [14. 국제판 PGP].

http://mercury.chem.pitt.edu/~tiho/LinuxFocus/English/November1997/article7.html를 보면 리눅스에 피지피를 설치하는 자세한 설명서가 있다. 새로운 버전의 리눅스에는 패치를 구해서 붙여야 되는데, ftp://metalab.unc.edu/pub/Linux/apps/crypto에서 구할 수 있다.

또한 피지피를 오픈 소스 형태의 무료판으로 재구성하는 계획이 진행되고 있다. 지엔유피지 (GnuPG)는 무료판 피지피의 완성본이다. 이 것은 IDEA나 RSA를 사용하지 않기 때문에 (수출 제한 조치에 걸리지 않고) 제한 없이 쓸 수 있다. 지엔유피지는 OpenPGP 규격에 거의 들어맞게 제작되어 있다. GNU 프라이버시 가드 웹 페이지에 가면 자세한 정보를 얻을 수 있다. http://www.gnupg.org

http://www.rsa.com/rsalabs/newfaq/에 있는 RSA FAQ에서 좀 더 정보를 얻을 수 있다. 여기에서 "디피-헬램 (Diffie-Hellamn)", "공용 열쇠 암호 기법 (public-key cryptography)", "전자 인증 (Digital Certificates)" 등의 용어에 대한 정보를 얻을 수 있을 것이다.

6.2 SSL, S-HTTP, HTTPS 그리고 S/MIME

6.3 리눅스 IPSEC 기술법

CIPE를 포함한 여러 형식의 데이타 인크립션을 포함해서, 리눅스용의 IPSEC 사용 기술법에는 여러 가지가 있다. IPSEC은 IETF가 IP 네트워크 레벨 상에서 암호 기법 상으로 안전한 통신을 하기 위한 목적으로 만들었으며, 인증 (authentication), 보전성 (integrity), 엑세스 관리, 기밀성 등을 제공해 주는 제품이다. IPSEC에 대한 정보와 인터넷 드래프트 문서는 http://www.ietf.org/html.charters/ipsec-charter.html에서 구할 수 있다. 여기에서는 열쇠 관리 기법을 쓰는 다른 프로토콜에 대한 링크와 IPSEC 메일링 리스트, 그리고 메일링 리스트의 아카이브 등을 찾을 수 있다. 여기서는 열쇠 관리 (Key Management)에 관한 여러 프로토콜에 대한 링크와 IPSEC의 메일링 리스트와 아카이브를 볼 수 있다.

애리조나 대학에서 개발하고 있는 "x-커널의 리눅스용 구성본" (x-kernel Linux implementation)은 x-커널이라는 네트워크 프로토콜을 쓰는 오브젝트-베이스 프레임워크이고, http://www.cs.arizona.edu/xkernel/hpcc-blue/linux.html에서 구할 수 있다. 가장 간단하게 설명을 하자면, x-커널은 커널 차원에서 메시지를 통과시키는 방법이다.

"Linux FreeS/WAN IPSEC"이라는 IPSEC 구성본의 무료 배포판도 있다. 제작자의 웹 페이지에 가보면

"이러한 서비스는 신뢰할 수 없는 네트워크들 (untrusted networks) 상에서, 신뢰할 수 있는 터널 통로(secure tunnel)를 만들도록 해준다. 신뢰할 수 없는 네트워크를 지나게 되는 모든 통신은 IPSEC 게이트웨이 머신 (gateway machine)을 사용해서 암호화되어서 송신되고, 끝 부분의 수신 지점에서 다시 복호화되게 된다. 결과적으로 버츄얼 프라이비트 네트워크가 (Virtual Private Network: VPN - 가상사설망) 만들어지는 것이다. 비록 이 네트워크가 공개적인 인터넷으로 연결된 여러 사이트를 포함한다 해도, 실질적으로는 통신 보안이 되는 네트워크가 구성되는 것이다."

라고 적혀 있다.

이 풀그림은 http://www.xs4all.nl/~freeswan/에서 다운로드 받을 수 있고, 이 문서가 만들어 질 당시에 이미 1.0 버전이 만들어져 나와 있다.

다른 류의 암호화 기법은 -- 수출 제한 조치 때문에 -- 기본적으로 배포본에 포함되지 않는다.

6.4 시큐어 쉘 ssh와 스텔넷 (Stelnet)

ssh스텔넷 (Stelnet)은 원격 시스템으로 접속을 하고, 암호화된 커넥션을 유지하기 위한 풀그림 뭉치다.

opensshrlogin, rsh, 그리고 rcp의 대체용으로, 이 셋 보다 더 안정적인 풀그림들의 뭉치다. SSH는 두 호스트간의 통신 암호화와 사용자 인증을 위해서 공개 열쇠 암호 기법을 사용한다. 세션 하이젝킹(Session Hijacking)과 DNS 스푸핑을 방지해 주면서, 원격 호스트에 로그인하거나, 호스트끼리 데이타를 복사하기 위해 사용될 수 있다. [17. 중계인 공격] 송수신 시의 데이타 컴프레션을 실행하며, 호스트간의 X11 통신의 통신 보안을 실행해 준다.

이제는 ssh 구성본이 여러 가지 만들어져 있다. 데이터 펠로우스에서 만든 원래의 상업용 구성본은 http://www.datafellows.com에서 구할 수 있다.

성능이 뛰어난 openssh는 데이터 펠로우스사의 초기 구성본에 기초를 두었으며 특허권이나 각 회사 전용의 소스를 전혀 사용하지 않도록 완전히 재구성되어 있다. 무료이며 BSD 사용권 (BSD License)에 기초를 두고 배포 사용된다. 이 것은 http://www.openssh.com에서 구할 수 있다.

ssh를 기초부터 다시 오픈 소스로 구성한 "psst..."도 있다. 자세한 정보는 http://www.net.lut.ac.uk/psst/에서 구할 수 있다. [18. psst]

윈도우스 웍크스테이션 SSH에서 리눅스 SSH로 연결할 수도 있다. 윈도우스 클라이언트용으로 만든 무료 제품이 많은데, http://guardian.htu.tuwien.ac.at/therapy/ssh/ 등이고, 데이타펠로우스 사(社)에서 만드는 유료 제품은 http://www.datafellows.com/에 있다.

SSLeay는 넷스케이프사의 SSL를 무료판으로 구성한 것으로 시큐어 텔넷, 아파치 모듈, 여러 가지 데이타베이스, DES와 IDEA 그리고 불로우피쉬 (Blowfish) 등의 여러 종류 알고리듬을 포함한다.

SSLeasy는 에릭 영 (Eric Young)이 개발한 것으로, 넷스케이프사의 시큐어 소켓 레이어 프로토콜 (Secure Sockets Layer Protocol)의 작동을 무료 구성판으로 만든 것이다. 이 것에는 시큐어 텔넷, 아파치용 모듈, 여러 데이타베이스, 디이에스와 IDEA 불로우피쉬 등을 포함한 알고리듬 등의 포함되어 있다.

텔넷 연결 시에 암호화를 할 수 있는 시큐어 텔넷의 교체품이 이 라이브러리를 써서 만들어져 있다. 스텔넷(Stelnet)은 SSH와는 달리 넷스케이프가 만든 SSL (Secure Sockets Layer)를 사용한다. http://www.psy.uq.oz.au/~ftp/Crypto/에 있는 SSLeay FAQ를 읽어보면 시큐어 텔넷과 시큐어 FTP에 대한 것을 찾을 수 있다.

SRP는 (Secure Remote Password Protocol) 또 다른 텔넷/ftp 통신 보안용 구성의 하나이다. 제작자의 웹 페이지에 가보면 다음과 같은 설명을 하고 있다.

"SRP 프로젝트는 통신 보안 목적의 인터넷 풀그림을 무료로 전세계에 배포하는 것이 목적으로 개발되고 있다. 완전한 통신 보안이 되는 텔넷과 FTP 디스트리뷰션을 시작점으로 해 서, (현재의) 빈약한 네트워크 상의 인증 시스템을 사용자가 편하게 쓸 수 있는 강력한 것으로 교체하고자 한다. 보안은 선택적으로 제공되어서는 안되며, 당연히 기본적으로 제공되어야만 하는 것이다."

자세한 정보는 http://srp.stanford.edu/srp에서 구할 수 있다.

6.5 PAM (팸) - 장착 방식 인증 모듈 (Pluggable Authentication Modules)

새로운 버전의 레드 햇에는 "PAM"이라는 통일된 인증 방식이 들어 있다. PAM은 -- 사용자 여러분이 이진 파일을 다시 컴파일할 필요가 없이 -- 인증법, 제한 사항, 지역 인증법을 쉽게 인캡슐레이션 해 준다. PAM의 인캡슐레이션 처리 방법은 이 파일의 내용 밖의 문제이지만, PAM의 웹 사이트에 가서 꼭 보기를 권한다. http://www.kernel.org/pub/linux/libs/pam/index.html

PAM으로 할 수 있는 일 가운데 몇 가지 만 들어보면 아래와 같다.

시스템을 설치하고 조정하기 시작한 지 몇 시간 안으로, 공격 시도 시점에서 막을 수 있다. 예를 들면, .rhosts 파일을 시스템 전체용으로 사용자 홈 디렉토리에서 사용하는 것을 막기 위해서 다음을 /etc/pam.d/rlogin에 PAM을 사용해서 넣을 수 있다.

#
# Disable rsh/rlogin/rexec for users
#
login auth required pam_rhosts_auth.so no_rhosts

6.6 암호 기술이 적용된 IP 인캡슐레이션 (Cryptographic IP Encapsulation :CIPE)

이 소프트웨어의 일차적 목적은 -- 인터넷 등의 -- 개방형 패켓 네트워크를 가로 질러가는 서브네트워크를 (가짜 메시지 주입, 트래픽 분석 등의 행위로부터) 보호하기 위한 방법을 제공하는 것이다.

CIPE는 데이타를 네트워크 수준에서 암호화한다. 네트워크의 호스트 사이에서 돌아다니는 패켓이 암호화된다. 암호화 엔진은 패켓들을 주고받는 드라이버 근처에 위치한다.

이것은 --소켓 수준에서 데이타를 연결함으로 암호화를 하는-- SSH와는 다른 것이다. CIPE는 --가상사설망 구성하기 위해서-- 터널링에 사용될 수 있다. 아래 수준 (Low-level)에서의 암호화는 -- 애플리케이션 소프트웨어를 수정할 필요가 없이 -- VPN에 연결되어 있는 두 네트워크 사이에서 투명하게 작동되도록 만들어 질 수 있는 이점이 있다.

CIPE 파일에서 요약해 왔음:

IPSEC 기준은 (다른 일도 하지만) 암호화된 VPN을 만들기 위해서 사용될 수 있는 프로토콜의 집합을 정의한다. 반대적으로, 많은 옵션을 가지고 있는 IPSEC은 상대적으로는 헤비급이면서 복잡하며, 주어진 프로토콜 전부를 사용하는 경우는 아직은 드물면서도, (열쇠 관리 등의) 몇 문제는 아직 완벽히 해결되어 있지 않다. CIPE는 좀 더 간단한 방식을 사용하는데, 초기 설정 시에 매개 변수 형식으로 (정말로 사용하고자 하는 인크립션 방식을 선택하는 등) 많 은 조건에 대한 정해진 선택을 할 수 있다. 이것은 탄력적인 운영을 제한하기는 하지만, 간단한 (그리고, 이 이유로, 쉽게 디버그를 할 수 있는 등으로) 능률적인 설정을 가능하게 해 준다.

정보를 더 원하면 다음을 참조할 것. http://www.inka.de/~bigred/devel/cipe.html

다른 크립토그라피의 경우와 마찬가지로 이것도, 수출 제한 조치 때문에, 커널과 함께 배포되지 않는다. [19. CIPE 구하기]

6.7 커브로스 (Kerberos)

커브로스는 MIT의 아테나 프로젝트 아래에서 개발된 인증 방식이다. 사용자가 접속해 들어오면, 커브로스는 (패스워드를 사용해서) 사용자를 인증하고, 네트워크 상에 흩어져 존재하는 서버와 호스트들에게 이 사용자의 신분을 증명해 주는 방법을 제공한다.

이 인증법은 리모트 로그인 (rhost) 풀그림 등에 의해서 패스워드 없이 사용자가 다른 호스트로 (.rhost 파일을 대신해서) 접속을 할 수 있도록 해 준다. 이 인증법은 또한, 보내는 사람 (발송인)이 가짜가 아닌 것을 보증하는 동시에, 메일이 정확한 사람 (수취인)에게 전달이 되도록 보증하기 위해서, 메일 시스템에 의해 사용될 수도 있다.

커브로스와 딸려 있는 많은 풀그림을 사용하는 궁극적인 효과는, 사용자가 시스템을 속여서 다른 사람인 척 "스푸핑"을 할 수 있는 능력을 거의 없애 버리는 데 있다.

커브로스에 대한 추가 정보는 http://www.cis.ohio-state.edu/hypertext/faq/usenet/kerberos-faq/general/faq.html에서 찾을 수 있고, 코드는 http://nii.isi.edu/info/kerberos/에 있다.

[인용: 제니퍼 지 스타인, 클리포드 뉴먼, 제프리 엘 쉴러 공저, "커브로스: 오픈 네트워크 시스템용 인증 서비스", 1998년 겨울 미국 텍사스의 달라스에서 열린 유스닉스 발표회 회보, (Stein, Jennifer G., Clifford Neuman, and Jeffrey L. Schiller, "Kerberos: An Authentication Service for Open Network Systems." USENIX Conference Proceedings, Dallas, Texas, Winter 1998)]

커브로스를 호스트의 보안의 정도를 높이가 위한 첫 방법으로 쓰지는 말아야 한다. 이 것은 매우 구성하기 힘들고, SSH처럼 광범위하게 사용되지는 않고 있다.

6.8 쉐도우 패스워드

쉐도우 패스워드는 암호화되어 있는 패스워드 정보를 일반 사용자들로부터 비밀로 유지하기 위한 한 가지 방법이다. 최근에 나온 데비안은 쉐도우 패스워드를 기본적으로 사용하도록 되어 있으며, 다른 리눅스 구성본은 암호화된 패스워드를 /etc/passwd 파일에 누구나 읽을 수 있을 수 있도록 저장한다. 누구라도 이 파일을 패스워드를 추측해 내는 풀그림에 돌려서 패스워드를 알아내려고 할 수 있다. 반면에 쉐도우 패스워드는 특별 권한이 있는 사용자들만 읽을 수 있도록 패스워드에 대한 정보를 /etc/shadow 파일에 저장한다. 쉐도우 패스워드를 사용하려면, 패스워드 정보를 읽어야 하는 모든 유틸리티들이 쉐도우 패스워드를 지원하도록 제대로 리컴파일되었는지 확인해야 한다. 반면에 (위의 설명한) PAM은 실행 풀그림들을 리컴파일할 필요 없이 단지 쉐도우 모듈을 장착시킴으로써 쉐도우 패스워드를 쓸 수 있도록 해준다. 필요하다면 Shadow-Password-HOWTO 파일을 읽으면 된다. 이것은 http://metalab.unc.edu/LDP/HOWTO/Shadow-Password-HOWTO.html인데, 지금은 약간 낡았고, PAM을 지원하는 배포본에는 필요가 없다.

6.9 크랙(Crack)과 존 더 립퍼 (John the Ripper)

Passwd 풀그림을 실행할 때, "쉽게 추측할 수 없도록 만든다"는 패스워드 규칙을 어떤 이유가 있어서 실행하지 못하게 된 상황이라면, 여러분 스스로가 패스워드 격파 풀그림을 실행시켜서 실제의 사용자들이 안전한 패스워드를 쓰고 있는지 확인하는 것도 좋은 것이다.

패스워드 격파 풀그림은 간단한 방식으로 작동한다: 사전에 있는 모든 단어와 그 변화형을 패스워드로 시도해 하고, 단어 하나 하나를 암호화하면서 이미 암호화된 패스워드와 비교하는 것이다. 만약에 일치하는 단어를 찾게 되면, 암호를 알아낸 것이다.

원한다면 많은 패스워드 크랙 풀그림들을 구할 수 있을 것이다. 그 중에서 알아두면 좋은 두 개가 바로 "크랙"과 "존 더 립퍼", http://www.openwall.com/john다. CPU 자원을 엄청나게 소비할 것이지만, 이 풀그림을 여러분이 먼저 사용해 봄으로서 혹시나 공격자가 이런 풀그림을 사용해서 여러분의 시스템에 침입할 가능성이 있는지를 알아보는 동시에, 약한 패스워드를 쓰는 사용자들을 찾아내서 미리 알려줄 수가 있을 것이다. 공격자가 여러분의 passwd (유닉스에서는 /etc/passwd) 파일을 얻으려면 우선은 다른 개구멍을 이용해 먼저 들어와 있어야 하겠지만, 이런 개구멍 허점들이 여러분이 생각하는 것보다 훨씬 흔하다는 점 (즉, passwd가 저장된 파일을 빼내는 것이 어렵지 않다는 점)에 주의해야 한다.

전반적인 네트워크 보안에 관심을 두어야 하는 만큼, 여러분의 네트워크에 마이크로소프트 윈도우스를 쓰는 컴퓨터가 있다면, 윈도우스용으로 제작된 크랙 풀그림인 로프트크랙 (L0phtCrack)도 한 번 보도록 하자. 이것은 http://www.l0pht.com/에서 구할 수 있다.

6.10 CFS와 TCFS - 암호화 파일 시스템과 투명 암호화 파일 시스템

CSF는 디렉토리 전체를 암호화하고, 사용자들이 문서를 암호화해서 저장할 수 있도록 하는 방법의 하나이다. 이것은 NFS 서버를 지역 컴퓨터에서 작동하는 방식으로 실행한다. RPM을 http://www.zedz.net/redhat/에서 구할 수 있고, 작동 방식에 대한 정보는 ftp://ftp.research.att.com/dist/mab/에 더 있다.

TCSF는 CFS보다 좀 더 완성도를 높여서 (암호화/복호화 작업을 백그라운드에서 투명하게 실행함으로서) 암호화된 파일시스템을 쓰고 있는 사용자 입장에서는 암호화/복호화 작업이 눈에 보이지 않도록 한 것이다. http://edu-gw.dia.unisa.it/tcfs/에서 정보를 구할 수 있다.

파일시스템 전체에 사용하지 않을 수도 있다. 부분적으로 디렉토리 트리를 암호화하는 것에만 쓰일 수도 있는 것이다. [20. 마이크로소프트 OS를 동시에 쓰는 경우]

6.11 X11, SVGA와 디스플레이 보안

X11

디스플레이의 보안은 중요하다. 입력되는 패스워드를 공격자가 가로채거나, 여러분이 모니터로 읽고 있는 문서나 정보를 보거나, 심지어는 수퍼유저의 권한을 얻기 위해 보안 개구멍을 이용하기까지 하는 일들을 막기 위해서다. 도청자(sniffer)들이 여러분과 원격 시스템 사이의 상호작용을 모두 볼 수 있도록 허락하는 셈이라 할 수 있는, 네트워크 상에서의 원격 X 응용 풀그림 수행도 위험 천만한 일이다.

X는 많은 엑세스 통제 장치를 가지고 있다. 가장 간단한 것은 호스트에 기초를 두는 것이다. 여러분의 디스플레이어 접근할 수 있는 호스트들을 xhost를 사용해서 지정할 수 있다. 안전한 방법은 아니다. 누군가가 여러분의 컴퓨터에 이미 근접할 수 있다면, 그는 xhost +그들의 컴퓨터라는 명령어를 사용해서 쉽게 숨어 들어올 수 있다. 아울러 신임되지 않은 기계 (untrusted machine)의 접속을 허락하면, 그쪽의 누구라도 여러분의 디스플레이를 침탈할 수 있다.

로그인을 위해서 xdm을 (xdm: X 디스플레이 매니저, x display manager) 사용하고 있다면, 더 나은 엑세스 방법인 MIT-MAGIC-COOKIE-1을 구해서 사용하는 것을 고려해 보도록 하라. 128 비트 짜리 "쿠키 (cookie)"가 만들어져서 .Xauthority 문서에 저장된다. 원격 컴퓨터에서 여러분의 디스플레이에 접근하는 것을 허용할 필요가 있다면, 그 컴퓨터로부터의 접근만을 제공하기 위해 xauth 명령과 여러분의 .Xauthority 파일에 들어 있는 정보를 적용할 수 있다. http://metalab.unc.edu/LDP/HOWTO/mini/Remote-X-Apps.html에 있는 Remote-X-Apps mini-howto를 보도록 하라.

보안 유지되는 X의 접속을 만들기 위해서 ssh를 쓸 수 있다 (위의 [ssh]를 참조할 것). 앤드 유저의 시점에서는 투명하게 작동되면서도, 암호화되지 않은 자료가 네트워크 상에 떠다니지 않도록 하는 방법이 되는 장점이 있다.

X 보안에 대해 더 많은 정보가 필요하면 Xsecurity의 맨 페이지 (man)를 보기 바란다. 보다 안전한 방법은 xdm을 써서 콘솔에 로그인 하도록 하고, ssh를 써서 X 풀그림을 원격 수행하려는 원격 사이트들로 가는 것이다.

SVGA

SVGAlib 풀그림들은 리눅스 컴퓨터에 있는 모든 비디오 하드웨어에 접근할 수 있도록 이것의 SUID가 root로 정해져 있다. 이것은 매우 위험한 것이다. 만일 이 풀그림들이 깨지면, 쓸 수 있는 콘솔을 살리기 위해서 다시 부팅 시켜야 한다. 여러분이 실행시키고 있는 SVGA 풀그림들이 진품인지, 그리고 최소 수준이나마 믿을 수 있는 것들인지 확인하라. 더 나은 방법은 SVGA 풀그림들을 아예 수행시키지 않는 것이다.

GGI (Generic Graphics Interface project)

리눅스 GGI 계획은 여러 가지의 리눅스 비디오 인터페이스 문제들을 해결하고자 노력하고 있다.. GGI는 비디오 코드 일부분을 리눅스 커널 안으로 옮겨 실행하는 방식으로 비디오 시스템에 대한 엑세스를 관리할 것이다. 이것은 GGI가 -- 정해 놓은 양호 상태로 -- 언제라도 여러분의 콘솔을 복구해 줄 수 있다는 것을 의미한다. 또한 여러분 콘솔에서 트로이 목마식의 로그인 풀그림이 돌지 않도록 하기 위해서, 보안 경계 열쇠(관리)도 허락될 것이다. http://synergy.caltech.edu/~ggi/


다음 이전 차례