시큐리티를 홈페이지에서 긁어 보다가
지치다 못해 책을 하나 사보기로 해서
이책을 무심결에 골랐다.
원서보다 반정도 가격이기에 번역상태를
반신반의 하면서 구입한 결과 실망이 좀 컸다.
자바 시큐리티에 대한 설명이 매우 상세하게
된 이 책이 도저히 암호화 되어서 읽을 수 가
없다. 반정도 읽다가 조금 열받아서 여기 글을
쓴다.
한빛 책은 이번이 처음 구매한 건데, 번역에
신경좀 써 주었으면 한다.
아니면 번역하기 힘든 부분은 그냥 원문을 적어 주기를 바란다.
얼마전부터 한빛에서 번역한 책이 좀 이상하다.
예전엔 원서로 보다가 최근에 번역이 빨리 이루어지면서 번역서를 기다렸다가 보게되는 경우가 많다. 근데 좀 이상타. 최근에 나온 지니인어넛셀도 그렇고 이번에 나온 자바시큐리티도...
단도직업적으로 말하면, 번역이 엉망이다.
비전공자가 번역했다면 아마 영문과사람이 번역했다해도 이것보다도 낫겠다. 비전공자들은 단어의 의미는 잘 모르더라도 문맥은 맞추어 주어야 할 것이다. 하지만 이 책은 자바를 공부한 사람이 번역했음에도 불구하고 단어의 사용이나 문맥이 너무 난해할 정도로 맞지 않는다.
예를 들어 볼까?
[23쪽 중간즈음에] 자바프로그램은 설치,실행,바이러스 파급등을 할 수 없고 사용자 컴퓨터 환경에 해를 끼치는 작업을 할 수 없기 때문에 안전하다고 한다.
[원문을 함 볼까?] Java programs are considered safe because they cannot
install, run, or propagate viruses and because the program itself cannot perform
any action that is harmful to the user"s computing environment.
대부분의 사람은 틀린 번역이 없다고 생각할 것이다. 하지만 이사람은 빠뜨린 게 있다. itself 라는 잘 보이지 않지만 의미있는 단어를 강조하지 않았다.
[하나더 72쪽에서 final에 대해 설명하고 있따. 변수,메소드,클래스를 final 로 지정하고 이것ㅇㄹ 무시했을 때 일어날 수 있는 일들에 대해 나열하고 있는데, 번역자는 엉뚱하게도 번역해두었따. 즉, "세부클래스가 final 메소드를 오브라이드해서 클래스의 행동을 변경한 경우"라고 해석해야 함에도 불구하고 "세부클래스가 final 메소드를 오브라이드해서 클래스의 행동을 변경할 수 있다"라고 해석해 햇갈리게 만들고 있다.
이것은 확연히 드러나는 번역상의 실수에 지나지 않는다.
지니인어넛셀 등 최근에 한빛에서 번역한 책을 접한 이들은 불신감을 금하지 못할 것이다. 자꾸 이러지 않았으면 좋겠다.
어떤 방법으로 번역을 하는 지는 모르겠지만, 좀 제대로 퇴고를 거치고 했으면 좋겠다. 아무리 시간이 급해도 말이다.
예전에 이런 출판사가 하나 있었다. 원서가 나오기가 무섭게 한글판을 만들어 내는 출판삭 있었다. 근데, 그 출판사가 번역한 원서 대부분을 우리는 쓰레기로 취급한다. 엉뚱하고 신경쓰지 않은 번역때문에 더 이해하기 어려웠기 때문이다. 그래서 그 출판사 책을 더 이상 권하는 사람은 없으며 서서히 컴퓨터서적 업계에서 자리를 감추고 있다. 다 아시겠지만 삼각형이라는 출판사다.
아직은 한빛에 대해 좋은 이미지를 갖고 있다. 앞으로 이점에 더 심혈을 기울여 줬으면 좋겠다.
▶ 대상 독자층
현재 우리나라의 네트워크 보안수준은 현저히 낮은 상태이다. 나날이 고도화된 해킹기법과 네트워크의 취약성 문제에 있어 보안은 이제 빠질래야 빠질 수 없는 한 분야로 자리를 잡아가고 있다. 이제 시스템 관리자 뿐만 아니라 개발자도 보안에 신경 쓰지 않고 프로그래밍을 할 수 없는 예민한 상태이다. 이런 측면에서 이 책은 보안 관계자 뿐만 아니라 자바 개발자에게는 프로그래밍을 하는 데 있어 바른길을 인도해주는 책이 아닐까 한다. 물론 보안쪽 애플리케이션 뿐만 아니라 네트워크쪽으로 개발하는 사람이 필히 정독해야 할 도서인 것은 분명하다. 자바에 대해서는 아는데 자바보안에 대해서는 기초지식이 없거나, 보안에 대해 조금 알고 있는 사람도 이 책을 봄으로써 개발자가 나가야 할 방향과 기본적인 자바 보안 프로그래밍에 대해 자바다운 보안 프로그래밍 기법을 터득할 수 있을 것이다.
▶ 이 책의 주요내용과 구성
1장은 자바보안이란 무엇인가와 간략한 자바보안 모델에 대해 설명하고 있다.
2장은 기본 샌드박스와 자바보안 규칙에 대해서 개념을 설명하고 있으며, 3장부터는 샌드박스의 구현과 자바가 보안을 유지하는 방법, 자바보안 구성, 자바 언어 규칙, 메모리 사용에 대한 보호와 바이트코드 확인기에 대해 설명하고 있다.
4장은 보안 관리자와 자바 API, 파일 접근 관련 메소드, 네트워크 접근 메소드 등에 대해 나와 있으며, 5장은 시스템에서 중요한 자원을 보호해주는 접근제어 클래스에 대해 상세히 다루고 있어 매우 유용하게 쓰일 것이다.
6장은 자바 클래스 로더에 대해 단계적으로 자세히 설명되어 있어 클래스 로더에 대한 개념을 바로 잡을 수 있을 것이며, 서명한 클래스를 인식하고, 서명을 검증한 다음에 보안 관리자를 이용하여 추가 권한을 부여하는 클래스 로더를 작성하는 방법을 설명하고 있다.
7장부터 개발에 필요한 인증, 메시지 다이제스트, 전자 서명, 키, 암호에 대해 나오기 시작한다. 그래서 7장은 암호에 대한 개요를 설명하고, 8장은 보안 패키지와 엔진들을 서로 연동시켜 주는 보안 프로바이더에 대해 설명하며, 개발자가 보안 엔진과 알고리즘에 대해 무엇을 선택할 것인가 제시하고 있다.
9장은 전자 서명과 암호화에 필요한 키와 인증서에 대해 살펴보며, 공개키 기반의 비대칭키와 그 반대인 대칭키에 대해서도 설명하고 있다. 10장은 9장의 키에 대한 설명을 토대로 키에 대한 용어, 키툴, 키 관리 및 예제를 보여주고 있으며, 키에 대한 배포방식도 설명되어 있다..
11장은 보안 구조에서 중요한 전자 서명을 생성하고 검증하는 첫 단계인 메시지 다이제스트에 대해 설명하고 있고, 12장은 전자 서명에 대한 내용으로 전자 서명 된 클래스를 다루는 방법과 엔진 알고리즘을 구현하는 방법에 대해 나와 있다.
13장은 데이터를 암호화하고 복호화하는 방법을 설명하며, 14장에서는 네트워크에서 중요한 암호화 통신인 SSL과 JSSE(자바 안전 소켓 확장)을 이용하여 암호화하고 SSL을 사용하기 위한 HTTPS 프로토콜에 대해서 다루고 있다.
15장은 인증과 권한 허용여부와 보호에 대해서 설명하며, 자바 인증과 권한부여 서비스인 JAAS에 대해 프로그래밍 기법과 예제를 다루고 있다.
마지막으로 부록에서는 java.security 파일, 보안자원(버그), 신원기반 키 관리, 안전한 자바 컨테이너, JCE 보안 프로바이더 구현, 자바 보안 패키지와 클래스들의 API, 그리고 JCE 보안 프로바이더 활용 예제가 나와 있어 실전 프로그래밍을 하는 데 매우 유용할 것이다.
▶ 내용 평가
이 책은 자바보안 규칙에 대해 알기 쉽고 자세하게 설명하고 있어 보안에 대한 기본지식이 없는 자바 개발자에게는 훌륭한 보안 지침서가 될 것이며, 자바에서 보안에 최고로 취약한 애플릿에 대해 강조하고 또 강조하고 있다. 구성 또한 자바 언어 보안에서부터 자바보안 패키지에서 사용하는 암호화의 기본 알고리즘에 대한 프로바이더까지 설명하고 있다.
요즘 전자상거래에서 중요시 하고 있는 전자서명과 인증에 대해서도 다루고 있으며, 데이터를 암호화하고 복호화하는 방법과 자바 암호화 확장(JCE)에 대해서도 설명하고 있다. 그리고 네트워크에서의 중요한 암호화 통신인 SSL에 대해서도 놓치지 않고 있으며, 부록으로 표준 JCE 보안 프로바이더를 구현할 수 있는 기본적인 구현 알고리즘에 대해 살펴보고 있어 개발자에게는 크나큰 도움이 될 것이다. 또한 자바 보안 표준 API와 클래스를 찾아볼 수 있도록 해놓았다. 항상 개발자들이 주의해야 할 버그에 대한 설명이 있어 프로그래밍하는 데 참고로 쓰일 수 있을 것이다. 또한 JCE 보안 프로바이더 활용예제가 부록으로 첨가되어 있어 실전 프로그래밍하는 데 많은 도움이 될 것이다. 전체적으로 내용 및 구성이 주제단위로 짜임새 있게 구성되어 있어 독자가 쉽게 이해하고 찾아 보는 데 유용할 것이다.
▶ 번역 및 편집 상태
항상 외국서적의 문제점은 우리말 문장으로 독자들을 얼마나 쉽게 이해시키냐가 중요한 관건인데, 그러한 면에서 번역 또한 다른 책에 비해 대체적으로 매끄러운 편이어서 독자들이 읽어나가기에 별 무리가 없을 뿐더러, 편집상태 또한 기존에 나와 있는 책보다 깔끔하게 처리되어 있다. 이해를 돕기 위한 굵은 글씨 처리법은 찾고자하는 부분이 한눈에 들어오도록 가독성을 높이고 있다.
모든 설명이 RFC 문서를 토대로 하기 때문에 기술 또한 정확하게 풀이하고 있어 자바에 대한 매력을 한층 더 느낄 수 있을 것이다.
▶ 검토 의견
이 책은 전반적으로 자바보안에 대한 기초지식과 기본적인 프로그래밍 기법에 대한 흐름을 간략하게 설명하고 있다. 그렇기 때문에 실전 프로그래밍을 하기에는 약간 부족한 면이 있으므로 더 자세한 것을 알고 싶거나 공부하고 싶다면 『자바보안과 암호화』를 추천한다. 『자바 보안과 암호화』는 이 책, 『자바 시큐리티 프로그래밍』을 뒷받침 하는 암호화와 보안에 대한 내용을 상세히 다루고 있어 자바 보안 관련자에게는 많은 도움이 될 것이다.
끝으로 현실세계에서 완벽한 보안은 없다. 암호학의 대가인 브루스 슈나이어는 이렇게 말했다. “보안은 하나의 과정이다.” 이처럼 보안적인 측면은 매우 예민하면서 까다로운 것이다. 앞으로 많은 개발자들이 스스로 버그와 취약점에 발 빠르게 대처해야만 크랙과 해킹에 대해 보완하고 발전할 수 있을 것이다.
정해윤(
o2man@joeunsecurity.com)님은 보안업체 "조은 시큐리티"에서 침입탐지 시스템을 개발하는 전문 개발자로 『해킹과 보안 내가 최고』(2000, 영진.com)라는 보안 도서의 저자이기도 하십니다.