1. Kerberos 란??

kerberos는 네트워크 인증 protocol이다.

네트워크 보안에서 Username과 password를 계속해서 보낸다는 것은 매번 password를 가로챌 수 있는 기회를 제공하는 것과 동일하다. 그리하여 Kerberos에서는 이러한 Username과 password의 전송을 최소화로 만들도록 지원한다.


2. Kerberos와 Firewalls의 차이 

기존의 보안체계인 Firewalls과 같은 경우는 위험성이 외부에서만 접근할 것이라는 추측을 토대로 제작되어졌다. 하지만 공격의 빈도는 내부에서 더많이 이뤄진다는것을 알 수 있었다.


3. Kerberos의 아키텍쳐


그림 출처 : http://www.slideshare.net/BibekNam/kerberos-authentication-protocol

(1) Kerberos 구성요소 

3가지 Components로 구성되어 있다.

 - Client

 - Authentication Server or Key Distribution Serber (KDC)

 - Server

3가지 주요 활동이 있다.

 - Authentication Service (AS) Exchange

 - Ticket Grating Service (TGS) Exchange

 - Client Server (CS) Exchange


(2) AS Exchange

 a. Client와 Authentication Server(KDC) 간의 교환

 b. Client는 KDC에게 KRB_AS_REQ msg를 통해 인증 생성을 요청한다.

 c. KDC는 Client에게 KRB_AS_REQ에 대한 응답으로 ticket에 Session Key를 넣어 응답해준다.

 d. Session Key는 사용자 비밀번호를 이용하여 암호화 된다.

 e. ticket(Ticket Granting Ticket)은 서버의 비밀키를 이용하여 암호화 한다.


(3) TGS Exchange (TGS는 서버로 연결하기 위한 Service Ticket을 얻는 과정)

 a. Client는 TGT를 인정서버로 보내 Server에 접속하기 위한 Service Ticket을 요청한다.

 b. KDC에서는 Server에 접속하기 위한 Service Ticket을 첨부하여 답변해준다.


(4) CS Exchange (Service Ticket을 통하여 Server로 접속하는 과정)

 a. Client는 Service Ticket을 Server로 전송하여 인증을 요청한다.

 b. Server는 Client ticket의 비밀번호와 session key를 복호화하여 Client를 검증한다

 c. 인증 절차가 성공일 경우  Client와 Server가 연결 되어진다.


4. Kerberos 기반 원격 응용프로그램

 - ftp

 - rcp

 - rlogin

 - rsh

 - ssh 

 - telnet


5. Kerberos 주체

kerberos 서비스의 클라이언트는 주체로 식별된다. 주체는 KDC가 티켓을 지정할 수 있는 고유 ID이다. 주체는 사용자 또는 서비스일 수 있다.

주체 이름은 기본요소, 인스턴스, 영역이라는 세가지 구성요소로 구분된다. 예를 들어 Kerberos주체는 foo/admin@ENG.EXAMPLE.COM이다. 위 예에서 각 요소의 역할은 다음과 같다.

 - foo는 기본요소. 기본요소는 사용자 이름 또는 서비스(예 : nfs)일 수 있다. 기본요소는 host라는 단어일 수 도 있다. 단어의 주체는 다양한 네트워크 서비스 ftp, rcp, rlogin등을 제공하도록 설정된 서비스 주체임을 의미한다.

- admin은 인스턴스. 인스턴스는 사용자 주체의 경우 선택적이지만, 서비스 주체의 경우에는 필수이다. 예를 들어 사용자 foo가 가끔 시스템 관리자 역할을 수행하는 경우 foo/admin을 사용하여 자신과 자신의 일반적인 사용자 ID를 구별할 수 있다. 즉 Kerberos는 foo와 foo/admin을 다른 두 주체로 취급한다.


6. Kerberos 영역

영역은 도메인과 유사한 논리적 그룹. 동일한 마스터 KDC아래에 있는 시스템 그룹을 정의한다. 일부 영역은 계층형으로, 한 영역이 다른 영역의 수퍼 세트이다. 또 다른 영역은 비계층형으로, 두영역간의 매핑을 정의해야 한다. Kerberos서비스의 특징은 영역간 인증을 허용한다는 점이다. 이 Kerberos 기능을 영역간 인증이라고 한다.


7.Kerberos 서버

각 영역에는 주체 데이터베이스의 마스터 복사본을 유지관리 하는 서버가 있어야 한다. 이서버를 마스터 KDC서버라고 한다. 또한 각 영역에는 주체 데이터베이스의 복제 복사본을 포함하는 슬레이브 KDC서버도 한개이상 있어야 한다.

마스터 KDC서버와 슬레이브 KDC서버모두 인증을 설정하는데 사용되는 티켓을 만든다.

이서버는 Kerberos화된 서비스에 대한 액세스를 제공한다.


8.Kerberos 제어를 위한 API

http://web.mit.edu/kerberos/krb5-current/doc/users/user_commands/kinit.html

참조해보자... 




'Cloud Service > Kerberos' 카테고리의 다른 글

Hadoop과 Kerberos  (3) 2016.05.10
CentOS6.6환경 Kerberos 설치 및 HDFS 연동  (1) 2016.05.09
Posted by MIDDLE
,

시작으로는 HDFS Permission부터 이해해보자.


HDFS Permission Overview

 하둡 파일 시스템은 Files Directories를 관리하기 위해서 POSIX model를 수단으로 하였다. File, Directories는 사용자 와 그룹과 연관 지어진다.

 기존 POSIX model 과 차이점은 HDFS에서는 실행파일에 대한 개념이 존재 하지 않는다.

파일의 경우

r permission은 파일을 읽어들이는데 필요

w permission은 파일을 쓰거나, 파일에 추가내용 적을시 필요

디렉토리 경우

r permission은 디렉토리의 리스트를 확인시 필요

w permission은 파일 또는 디렉토리를 생성 또는 삭제에 필요하다.

x permission은 자식 디렉토리에 접근하기 위해 필요하다.

 

디렉토리에 대해서는 소유자 또는 슈퍼유저 파일 소유자를 제외하고 디렉토리 접근 방지 설정을 할 수 있다.

종합적으로 파일이나 디렉토리의 권한을 관리하기위한 Model이다. 파일또는 디렉토리가 생성되면, 그 소유자는 클라이언트 프로세스 사용자 ID 이며, 그룹은 소유자의 그룹이다.

 

ACL (액세스 제어 목록)

HDFS는 기존의 POSIX 권한 모델 뿐만 아니라, ACL을 지원한다. ACL은 사용자와 그룹의 계층 권한을 구현하는데 유용하다.

ACL은 파일의 소유자와 파일의 그룹 뿐만 아니라 명명된 사용자 또는 명명된 그룹에 권한 설정하는 방법을 제공한다.

기본적으로 ACL을 제공하지는 않지만 네임노드 구성에서

dfs.namenode.acls.enabled= true 로 설정하면 이후부터 ACL인식이 가능합니다.

 

ACL 을 이용한 권한 관리



 

ACL Control 방법

JAVA methods:

·       public void modifyAclEntries(Path path, List<AclEntry> aclSpec) throws IOException;

·       public void removeAclEntries(Path path, List<AclEntry> aclSpec) throws IOException;

·       public void public void removeDefaultAcl(Path path) throws IOException;

·       public void removeAcl(Path path) throws IOException;

·       public void setAcl(Path path, List<AclEntry> aclSpec) throws IOException;

·       public AclStatus getAclStatus(Path path) throws IOException;

 

ACLs Shell Commands

·       hdfs dfs -getfacl [-R] <path>
Displays the Access Control Lists (ACLs) of files and directories. If a directory has a default ACL, then getfacl also displays the default ACL.

·       hdfs dfs -setfacl [-R] [-b |-k -m |-x <acl_spec> <path>] |[--set <acl_spec> <path>]
Sets Access Control Lists (ACLs) of files and directories.

hdfs dfs -setfacl -x user:alice /user/hdfs/file

 

·       hdfs dfs -ls <args>
The output of ls will append a ‘+’ character to the permissions string of any file or directory that has an ACL.

 

 

ACL 권한 체크 절차




참조 사이트 : 

Permission JAVA API https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/conf/Configuration.html
리눅스 Secure Guide https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html


Posted by MIDDLE
,
http://prezi.com/ajvet_oboovf/?utm_campaign=share&utm_medium=copy

꼭 단말기를 Google Glasses로 매칭 시킬 필요는 없지만, 

사용자가 단말기 ( Google Glasses, VR 등) 을 통해 세상을 바라볼 때, Computer는 현재 사용자에게 보이는 언어를 인식하여 자동으로 번역또는 찾는 특정 단어에대해 알려준다.


그러고보니 꼭 번역에 한정 지을게아니라 길찾기 할경우 간판에서 단어 추출하여 확인할 수 있지 않으려나...


만약 영상에서 단어 추출이 힘들다면, 사용자가 번역또는 검색이 필요한 특정조건에서 번역된 단어나 글자를 찾아준다면 도움이 되지 않을까?


내가 여행할때 번역된 단어를 보여준다면 엄청 편할탠데..


만약 더 발전된다면 단어에서 끝나는 것이아닌 사물에 대해서 표시도 가능하다면 좋을거같다.



Posted by MIDDLE
,