강력한 보안 서비스 “Stormpath” [BeyondJ2EE 포스팅]

1. 프로젝트에서 보안 포지셔닝

.
우리가 “프로젝트를 진행“할때 비지니스적으로 우선순위가 낮고, 관심이 별루 없지만
없어서는 안될 필수 요소가 “보안” 아닐까 합니다.

이 말은 아마도 그 만큼 개발자들이 꺼려하는 분야가 아닐까 합니다.
나름 저도 개발 경력이 10년이 넘지만, 보안 분야는 항상 “넘사벽” 이었습니다.

그리고 어려운 용어들 (“RSA, DES, SHA1, SSL“)과 알고리즘 얘기만 나오기
때문에 다른 기술부분들과 비교해서 상대적으로 지루하면이 있습니다.

하지만 스마트 폰이 활개를 치고, SNS가 넘쳐나고, 클라우드 패러다임이 불고 이렇게
최신 트렌드의 거센 물결이 일어나도 여전히 “보안“은  IT에서 견고한 위치를
차지하고 있습니다.

피하고 싶어도 피할수 없는 “숙명의 분야“라고 할수 있습니다.

2. 보안의 요소

..
저는 “보안“쪽 전문가는 아니지만 큰 의미에서 3가지 요소로 구성되어 있습니다.

(1) Cryptography

Cryptography” 말 그대로 암호화를 말합니다. 클라이언트 와 서버간에 중요한 개인 정보
를 통신하는데 있어서 “평문“으로 전송 한다면 당연히 큰 이슈일 것입니다.

그렇기 때문에 “요청하는 사람” 과 “응답하는 서버” 사이에 중요한 데이터는
반드시 “둘만이 알수 있는 문자로 암호화/복호화” 해야 합니다.

실무에서는 대부분 “공인인증서“를 발급 받아서, “웹 서버“에 설치하고
클라이언트는 “SSL 기반 HTTPS”로 요청을 합니다.

또한 패스워드 관리를 위해서 SHA1같은 암호화 알고리즘을 사용할 것입니다.

(2) Authentication/Authorization 

의외로 개발자분들이 “Authentication (인증) “와 “Authorization (허가)” 의
의미를 혼동하는 분들이 많습니다.

간략하게 설명 드리면”인증“은 말그대로 “접속한 사용자 정보가 존재하는가?“에 대한
검증 입니다.”

허가“는 다른 말로 “permission” 입니다. 즉, “특정 리소스에 대한 사용권한“을 말합니다.

예를 들면 리눅스 서버에 접근시 아이디, 패스워드를 입력해서 로그인을 합니다.
이때 “리소스 허가”에 대한 내용은 없습니다.
하지만 “로그인“이후 “특정 파일 또는 디렉토리” 접근시 반드시 “제약“을 받습니다.
이것이 “허가” 입니다. 예) “A 파일에 대해서는 읽기만 가능 합니다.

대부분의 소스를 보면 “인증 과 허가“에 대한 로직이 하나로 구현되어 있는 경우가
많습니다. 외국의 경우 각자의 R&R이 틀리기 때문에
인증 컴포넌트” 와 “허가 컴포넌트“를 분리해서 관리를 합니다.

어쨌든 대략 보안의 흐름은 “암호화” -> “인증” -> “허가“로 진행 될 것입니다.

3. 우리의 영역

.

실무적 보안 아키텍쳐는 아래와 같습니다.

점선을 기준으로 “왼쪽“영역은 “시스템 영역“입니다. 주로 “네트워크 관리자” , “시스템 엔지니어
분들이 주로 관련 되어 있습니다.
물론 “공인 인증서“를 발급 받고, 웹 서버에 설치하는 것까지 하는 경우도 있습니다.

오른쪽” 영역은 “어플리케이션 영역” 입니다.
즉, 실제로 개발자와 밀접한 영역 이라고 입니다.
가끔 “A사이트 고객정보 유출“이라는 기사가 인터넷에서 뉴스로 나오는 영역이
오른쪽 영역”입니다.

물론 시스템 레벨에서 강도 높은 보안 시스템을 구축해도, 결국 정보의 종착지는
오른쪽” 영역 입니다.

4. Stormpath 서비스 소개

.
사실 위에서 언급한 “오른쪽“영역에 대한 정책 과 구현은 쉽지는 않습니다.
더욱이 최근에는 “시스템 to 시스템“,” 서비스 to 서비스” 형태의 인증, 허가에 대한
통합을 하는 추세 입니다.
특히나 클라우드 환경 같은 경우 많은 서버 그리고 물리적으로 전혀 다른
위치에 있는 서버들을 하나의 인증으로 통합하기는 쉽지는 않습니다.
즉 SSO(single sign-on)를 어떻게 구현을 하느냐가 앞으로 보안의
“키포인트” 입니다.

Stormpath” 서비스는 지금까지 언급한 내용들에 대한 “Needs“를
만족하기 위해 나온 글로벌 서비스 입니다.
http://www.stormpath.com/

Stormpath“는 현재 “Apache Shiro“라는 “보안 프레임웍“을 주도적으로 선도하는 회사 입니다.
사실 “Apache Shiro“이전에 “JSecurity” 오픈소스를 5년이상 진행을 했으며, 최근에
Apache Project”로써 전격적으로 활동을 하고 있습니다.

그래서 단순이 몇명의 개발자들이 급조하게 만든 것이 아니라, 오랫동안 엔터프라이즈 보안에
대한 경험 과 기술을 보유하고 있는 회사 입니다.

참고로 “Apache Shiro“는 “Spring Security“와 비슷한 프레임웍 이며, WAS에만 동작하는 것이 아니라
안드로이드, 데몬 서버등 모든 서버 환경에서 사용할수 있고, 쉽게 사용할수 있는 프레임웍 입니다.

주요 기능은 아래와 같습니다.

서비스 사용 방법은 먼저 “계정“을 생성 후 서비스에 접속을 합니다.
그 다음  서비스에 사용할 “서비스 그룹/사용자/권한“를 설정 합니다.
설정 방법은 “전용 웹 콘솔“에서 합니다.

보안 설정“이 완료 되면 “Stormpath“에서 제공하는 “SDK“를
다운 받아서 구현을 하면 됩니다.
주로 “SDK“는 “Stormpath“서비스와 “REST/JSON“로 통신하는 기능을 합니다.

정리 하면 “보안 설정은 Stormpath에서 제공하는 콘솔에서 하고, SDK를 통해서 구현을 하는 것입니다.

현재 가격 정책은 “무료” 와 “유료” 두가지 버전이 있습니다.
아래는 “한달” 단위 가격 정책표 입니다.

현재 지원되는 언어는 “Ruby” 와 “Java” 버전 입니다.
하지만 추후 “.Net“, “파이썬“, “PHP“를 지원할 예정이고, 심지어 “NodeJS
도 지원할 예정입니다.
http://www.stormpath.com/docs

5. Weak Point

.
물론 “Stormpath“도 “Weak point”가 존재 합니다.

첫째 아마도 “AWS“와 비슷한 경우라고
할수 있습니다. 바로 “Stormpah” 서비스가 장애가 발생시 “내 서비스도 장애“가
발생 할수 있다는 점입니다. 그렇기 때문에 서비스에 대한 “QoS” 대한 문의를
반드시 할 필요가 있습니다.

둘째는 역시 “획일된 권한 설정” 입니다. 대부분 권한 설정 관계는 비슷할수 있지만
서비스 특화된 “설정“은 “커스텀마이징” 비용이 추가 됩니다.

셋째Stormpath” 서비스는 대기업 주도 서비스는 아닙니다. 어떻게 보면
기술 베이스에 회사 입니다. 그렇기 때문에 혹시나 서비스 자체가 중지될수도 있습니다.
이런 부분에 대한 것도 “메일링을 통해서 확인할 필요가 있습니다.

넷째 레퍼런스의 부재 와 베타 테스트 전환이 최근이라는 점

6. Conclusion

.
지금까지 “Stormpath“에 대해서 설명을 드렸습니다. 위에서 언급 한것처럼
weak point“가 존재 합니다.
하지만 최근 “stormpath”는 연속으로 “18억” 규모의 투자를 받았으며,
클라우드 보안 부분에 있어서 상당히 높이 평가를 받고 있습니다.
http://www.prweb.com/releases/2012/3/prweb9293496.htm

스타트업, 중소기업, 글로벌 서비스 같은 경우, 보안 전문 인력 확보가 어렵고,
SSO 구현을 해야하는 비용적, 기술적 한계가 존재하는데 있어서 좋은 선택이
될수도 있다고 생각 합니다.
또한 클라우드 환경 , 엔터프라이즈 같은 경우 다양한 서비스의 융합과
Nscreen 전략 사업에도 분명 큰 장점이 존재 합니다.

Stormpath“는 여러분의 또 하나의 툴이 되었으면 합니다.

.ㅇㅇㅇ

.지지ㅇㅇ

One thought on “강력한 보안 서비스 “Stormpath” [BeyondJ2EE 포스팅]”

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중