Server, Android, Python, Information Security
Server, Android, Python, Information Security(Sangwoon Park)
정보보안과 개발에 관심이 있는 대학생입니다. 성취감을 위해 매년 대회 수상 한 개씩을 목표로 하고 있고, 아직까지는 성공적입니다. 안드로이드 개발을 주로 하고 있고, 간단한 유틸리티를 개발할 때는 파이썬을 주로 사용합니다. 최근에는 Spring Boot를 주로 활용하여 백엔드 서버 개발도 하고 있습니다. 생활 속에 산재하는 반복작업은 못보는 성격이라 개발자지망생의 명예를 걸고 어떻게든 프로그램으로 해결하려고 아둥바둥하고 있습니다. 수상내역 - 2017 공군 해킹방어대회 전체 순위 3위 우수상 - 2018 공군 창의혁신 아이디어 해커톤 순위 2위 최우수상 - 2019 한이음 공모전 한국정보산업협회장상 - 2020 제7회 소프트웨어 개발보안대회 행정안전부 장관상 보유자격 - 정보처리산업기사(18.06) - 정보보안산업기사(18.06) - 리눅스마스터 2급(15.12)
2019년 11월 21일 12시55분 ·  Cryptonite

Cryptonite(엔드포인트 데이터 보안 솔루션)

“Cryptonite”의 목표는 각 문서에 대한 기밀성 유지뿐만 아니라, 인증된 사용자가 보호 중인 문서를 필요할 때 언제든 사용할 수 있는 가용성 기능까지 갖춘 솔루션을 만들어 내는 것이었습니다. 각 문서들을 AES 암호화 기술을 통해 암호화하였고, 공격자가 불순한 의도로 보호 중인 문서를 손상시켰을 때, 다시금 복구할 수 있도록 서버에 백업하는 클라우드 기능을 갖추도록 계획하였습니다. 암호 알고리즘의 구현에 대한 정보가 많이 부족했지만, 도서관에서 관련 서적을 모조리 찾아 공부하여 개발하였습니다.

개요

구분

팀프로젝트 (2016년도 2학년 1학기 수원대 정보보호학과 OOP 수업 프로젝트)

개발인원

4명 (개발자 2, 디자이너 2)

프로젝트 개발 기간

16.5 ~ 16.6 (2달)

성과

해당 강의 프로젝트 성적 1위

프로젝트 사용 스택

  • JAVA
  • Cryptography(PBKDF2, AES256, SHA256)
  • TCP 통신

기능

  • 파일 자동 암호화
    • 사용자의 보호폴더의 변화 확인시 실시간 폴더감지 모듈에서 감지.
    • 암호화 알고리즘 AES-256을 사용하여 대상파일을 암호화.
    • 암호화 키는 PBKDF2로 해싱된 패스워드.
  • 파일 자동 백업
    • 파일이 암호화되면 실시간 폴더감지 모듈에서 즉시 감지하고 서버로 백업.
  • 파일 복원
  • 유저간의 파일 전송수신
    • 1:1 파일 공유로써 보내고자하는 사람이 전송하고자 하는 파일을 선택하면 OTP가 발급.
    • 그 OTP를 파일을 받는 사람이 입력하면 파일을 받을 수 있음.
    • 한번 받은 파일은 서버에서 삭제되며 서버에서의 최대 보관기한은 48시간.
  • 위치 추적 기능
    • whois api를 활용하여 ISP 단위 위치 확인. 도난을 방지.

견본

Github

https://github.com/nbiosupr/cryptonite

참여

역활

  • 팀장
  • 암호화 모듈 개발
  • 복호화 모듈 개발
  • 클라이언트단 통신 모듈 개발
  • Swing을 활용한 UI 개발
  • 복원 모듈 개발
  • 복원 UI 개발
  • 윈도우 콘텍스트 메뉴 추가

    문제 해결법

  • 키관리 문제
    • 대칭키 암호화의 가장 큰 문제는 키관리.
    • PBKDF2를 활용해 사용자의 패스워드를 암호화 키로 사용할 수 있음을 알게됨
    • 이를 적용하여 암호화키를 서버에 백업하지 않게 됨.
  • 서버와의 통신
    • 당시 프로토콜의 개념이 미비하였음.
    • 시리얼 통신과 같이 네트워크 통신을 하려다 보니, 각 패킷의 구분이 불명확.
    • 별도의 프로토콜이 필요함을 알게 됨.
    • 파일 전송을 위한 프로토콜을 개발.
  • 복호화 프로그램 단일 프로세스화와 윈도우 콘텍스트
    • 파일을 오른쪽 클릭했을 때 바로 복호화 프로그램으로 연결하고 싶었음.
    • 윈도우 콘텍스트라는 키워드를 모르던 상태
    • 교수님께 자문을 구했고, 보안 솔루션을 개발하는 NSHC 소속의 개발자를 소개 시켜주심.
    • 학교는 화성이었지만, 열심히 의왕까지가서 그 것이 윈도우콘텍스트라 불림을 알게됨.
    • 또한 뮤텍스를 활용해, 단일 프로세스화가 가능함을 배움.
좋아요 0
    댓글 0