분류 전체보기
-
Kibana 설치 및 사용법LogSystem 2016. 7. 21. 20:46
Kibana설치$ docker pull kibana $ docker run --link some-elasticsearch:elasticsearch -d kibana # default로 kibana를 실행시키는 명령어 $ docker run --link some-elasticsearch:elasticsearch -d kibana --plugins /somewhere/else # flag를 추가해 kibana를 실행시키는 명령어 $ docker run --name some-kibana --link some-elasticsearch:elasticsearch -p 5601:5601 -d kibana # 해당 이미지의 기본포트는 5601 따라서 5601 포트를 host 포트와 바인딩 $ docker run --n..
-
AES와 SHA 차이보안 & 보안 2016. 7. 21. 09:48
이것저것 알아보다 보니 SHA와 AES의 차이가 무엇인지 궁금해졌습니다.. 보통 평문이나 암호화를 해야하는 부분은 AES를 사용하고 서버에서 인증서의 암호화가 필요한 부분은 SHA를 사용해 이 개념을 확실히 하기 위해 조사를 했습니다. Encryption(암호화)와 Hash(해쉬)의 차이암호화는 암호화 알고리즘을 이용하고, 인증은 해쉬함수를 이용하여 Verification Data를 만들어 원문에 태그(Tag)를 붙여서 전송하므로 해쉬함수를 이용합니다. 암호화 알고리즘과 해쉬 함수의 동작 방식을 이해하면, 암호화와 인증의 차이를 이해할 수 있습니다. 위의 왼쪽 그림은 암호화 알고리즘의 동작방식을 설명한 것이며, 암호화는 기본적으로 양방향 통신을 전제로 하므로 암호화와 복호화가 가능해야 합니다. 복호화되지..
-
AES보안 & 보안 2016. 7. 21. 09:33
Advanced Encryption Standard, 줄여서 AES라고 흔히 불린다. 높은 안전성과 속도로 인해 인기를 얻어 전세계적으로 많이 사용되고 있다. AES를 위한 암호화 알고리즘은 레인달 알고리즘이 뽑혔다. 이후 2001년 2월 28일, 기밀문서를 암호화 할 때, DES를 대체하여 많이 사용되기 시작되었다.알고리즘 AES암호화에 사용되는 단계들이다.S-BoxShiftRowsMixColumnsAddRoundKey키 스케쥴다음, 가장 처음에 AddRoundKey로 CipherText를 암호화 시킨다. 그 다음, 위에 4 알고리즘을 CipherText에 적용한다. 비트크기에 따라 반복하는 수가 다르다. AES-128같은 경우는 9번, AES-192는 11번, 그리고 AES-256은 13번 반복한다...
-
[Django REST Framework] Serializers언어/파이썬 & 장고 2016. 7. 20. 15:09
serializer는 queryset 과 모델 인스턴스와 같은 복잡한 데이터를 JSON, XML 또는 다른 콘텐츠 유형으로 쉽게 변환 할 수 있습니다. 또한 serializer는 받은 데이터의 유효성(validation)을 검사한 다음, 복잡한 타입으로 형변환을 할 수 있도록 serialization을 제공합니다. REST framework의 serializer는 Django의 형태와 ModelForm 클래스와 유사하게 동작합니다.SerializersSerializer 선언먼저 간단한 객체를 선언한 모습입니다.class Comment(object): def __init__(self, email, content, created=None): self.email = email self.content = con..
-
[Python]raise를 사용한 예외 처리 custom언어/파이썬 & 장고 2016. 7. 20. 15:07
파이썬에서 제공하는 error 메세지가 아닌 에러 메세지를 추가적으로 생성하고 발생시키는 방법을 설명합니다.오류 생성오류는 다음과 같이 파이썬 내장 클래스인 Exception클래스를 상속하여 만들 수 있습니다.class MyError(Exception): pass 그리고 다음과 같이 간단한 코드를 개발해 에러를 일부러 발생시켜보겠습니다.def test(str): if str =='1': raise MyError() else: print("ok") test("0") test("1")위를 실행할 경우 0은 출력이 되지만 1에서는 MyError()가 발생합니다. 만약 오류메세지를 이용하고 싶다면 다음처럼 예외처리를 합니다.try: test("0") test("1") except MyError as e: pri..
-
Man In The Middle Attack보안 & 보안 2016. 7. 19. 15:20
Man In The Middle Attack (중간자 공격, MITM) 이란?중간자 공격(man in the middle attack, MITM)은 네트워크 통신을 조작하여 통신 내용을 도청하거나 조작하는 공격 기법이다. 중간자 공격은 통신을 연결하는 두 사람 사이에 중간자가 침입하여, 두 사람은 상대방에게 연결했다고 생각하지만 실제로는 두 사람은 중간자에게 연결되어 있으며 중간자가 한쪽에서 전달된 정보를 도청 및 조작한 후 다른 쪽으로 전달한다. 많은 암호 프로토콜은 중간자 공격을 막기 위하여 인증을 사용한다. 예를 들어, TLS/SSL 프로토콜은 공개 키를 기반으로 한 인증을 사용한다.예제갑이 을과 통신하려고 하는 상황에서, 병은 그 사이에 끼어들어 을에게 잘못된 메시지를 전달한다. 먼저, 갑이 을에..
-
[Golang] 크로스 컴파일언어/Golang 2016. 7. 15. 17:47
Golang의 가장 큰 장점중 하나인 멀티플랫폼 지원입니다. 다른 OS에서 사용하기 위해 크로스 컴파일을 해야하는데 Golang 1.5이상 버젼부터 지원이 됩니다. 지원 플랫폼$ GOOS$ GOARCHdarwin386darwinamd64darwinarmdarwinarm64dragonflyamd64freebsd386freebsdamd64freebsdarmlinux386linuxamd64linuxarmlinuxarm64linuxppc64linuxppc64lelinuxmips64linuxmips64lenetbsd386netbsdamd64netbsdarmopenbsd386openbsdamd64openbsdarmplan9386plan9amd64solarisamd64windows386windowsamd64설정법먼저..
-
Logstash 설치 및 사용법LogSystem 2016. 7. 14. 11:13
Log Stash설치$ docker pull logstash $ docker run -it --rm logstash logstash -e 'input { stdin { } } output { stdout { } }' # 커맨드라인 상에서 실행을 하려면 다음과 같이 사용 $ docker run -it --rm -v "$PWD":/config-dir logstash logstash -f /config-dir/logstash.conf # logstash.conf파일을 직접 수정해 커맨드라인 상에서 실행을 하고자 할 때 (elasticsearch와 통신할 수 있는지 확인해봐야함)문법logstash는 입출력 도구이며, input > filter > output 의 pipeline구조로 이루어져 있습니다. 이러한 ..
-
Elasticsearch 설치 및 사용법LogSystem 2016. 7. 14. 11:12
Elastic Search설치$ docker pull elasticsearch # 이미지 다운로드 $ docker run -d -p 9200:9200 --name elastic elasticsearch # 기본세팅으로 바로 실행 $ docker run -d -p 9200:9200 --name elastic elasticsearch elasticsearch -Des.node.name="TestNode" # 옆과 같이 flag를 달 수 있음 $ docker run -d -p 9200:9200 --name elastic -v "$PWD/config":/usr/share/elasticsearch/config elasticsearch # 수정한 config파일을 적용하여 컨테이너를 실행할 때 $ docker ru..
-
[PostgreSQL]dblinkDB/PostgreSQL 2016. 7. 11. 17:46
dblink는 물리적으로 떨어져 있는 원격 테이블에 접속하기 위해 사용합니다. 또한 같은 물리 공간에 있더라도 다른 DB에 접근 시에는 dblink 를 사용해야 합니다.dblink dblink 설치 및 명령어CREATE EXTENSION [ IF NOT EXISTS ] extension_name [ WITH ] [ SCHEMA schema_name ] [ VERSION version ] [ FROM old_version ]간단하게 설치하는 방법은 CREATE EXTENSION dblink 입니다. 또한 스키마를 지정하지 않으면 default로 public에 설치가 됩니다.여기서 유의해야 할 것은 dblink extension이 데이터베이스 내에 설치가 되면 (사용자가 정한 디비 스키마라던지, defaul..