Skip to content

osamhack2022-v2/WEB_APP_ROK-Situation-Reporting-System_ROK-SRS

 
 

Repository files navigation

국군 야전 상황보고체계, ROK Situation Reporting System

Logo

GitHub contributors GitHub license GitHub Issues GitHub Issues Vlosed


개발 계획서  데모보기  암호화 체계

데모영상 시청

demo video

  1. 프로젝트 소개
    1. 문재점
    2. 국군 야전 상황보고체계의 해결책
    3. 목표 시장
  2. 기능 설명
    1. 강력한 암호화
    2. AI를 통한 심각성/중요도 점수
    3. 화면 설계
  3. 컴퓨터 구성 / 필수 조건 안내 (Prerequisites)
  4. 기술 스택 (Technique Used)
  5. 설치 안내 (Installation Process)
    1. Backend 설치안내
    2. Frontend(Web) 설치안내
    3. APP 설치안내
  6. 팀 정보 (Team Information)
  7. 문서 (Documentation)
  8. 저작권 및 사용권 정보 (Copyleft / End User License)

📢 프로젝트 소개

🚩 문제점

"7생활관 전원 코로나 걸렸대, 대대장님께 카톡으로 보고드려."

"오늘 훈련한 거 사진 찍어서 대대 단톡방에 올려."

"후임이 다쳤는데 군 전화도 주변에 없네… 어떻게 보고를 하지?"

"밥이 너무 맛이 없는데 건의를 어떻게 하지? 연대장님께 전화해볼까?"

대대급 부대 내부에서 용사와 간부 또는 간부 대 간부 간 이용할 효율적이고 안전한 보고체계가 없습니다.

  • 기존의 온나라 체계를 이용한다 하더라도 국방망에 접속이 불가능한 영외 간부에 대한 호출 및 긴급정비와 같은 상황일 경우, 전파에 어려움이 있어 전화/카카오톡과 같은 서비스를 이용하는 것이 현실입니다. 더불어 용사는 해당 체계 계정조차 생성할 수 없다는 것이 뚜렷한 한계점입니다.
  • 부대 내부의 정보는 아무리 사소하더라도 군사기밀입니다. 민간 상용 애플리케이션을 이용하는 것은 사이버 보안에 위배되는 행위이고, 기밀 사항을 실수로 다른 사람에게 전달할 수 있는 위험성이 존재하며, 타사 애플리케이션이 해킹당하면 저장된 자료가 암호화되어있다는 보장도 없습니다. 또한, 사회공학으로 군사기밀이 유출될 위험도 있습니다.
  • 보안성에 문제가 있을 뿐만 아니라, 군에서 원칙적으로 이행되어야 하는 보고체계를 준수하지 않고 보고하는 상황도 많이 발생합니다.
  • 이런 문제점들은 군대라는 조직에서 통제능력 상실과, 상황조치에 큰 차질을 초래할 것입니다.

💡 국군 야전 상황보고체계의 해결책

  • 부대 내의 모든 전파사항은 암호문 비구별성 원칙(IND-CPA)에 따라 암호화되며 무결성과 기밀성을 보장합니다.
  • 케르크호프스의 원리에 따라서 키값이 노출되지 않는 한 보안성이 보장되어, 국군 보안사고를 원천 차단하는 것이 목표입니다.

부대에서 긴급상황을 보고체계에 맞추어 보고할 수 있는 애플리케이션
보고받은 상황을 암호와 하여 정보를 보호하는 애플리케이션

국군 야전 상황보고체계 (ROK Situation Reporting System)은 위에 나열된 문제에 대한 해결책이 될 것입니다. 상황이 상급 보고체계에 보고되기 전 각 부대 (여단, 대대, 독립중대) 지휘통제실에서 상황을 종합하고 지시사항을 하달하는 C4I 체계가 될 것입니다.

  • 규정에 입각한 체계적인 보고체계를 준수하여 보고되어 상황조치 능력을 향상시킬 수 있다.
  • 메모보고 기능으로 보고체계를 따르는 상황 보고를 올릴 수 있다.
  • 채팅으로 긴급한 사항을 설명하고 추가 지시사항을 받을 수 있다.
  • 저장된 부대 메모보고, 보고체계는 부대장이 관리하고 개선할 수 있다.
  • 모든 보고사항은 암호와되며 기밀성과 무결성을 보장한다.

💸 목표 시장

  1. 독립중대, 대대, 단, 연대단위 군부대.
  2. 군사경찰 부대.
  3. 사령부 내부 부서/처.
  4. 국정원, 경호원, 무기체계 개발팀 등 기밀 사항 연구 보직.


📖 기능 설명

🔒 강력한 암호화 [암호화 위키]

데이터베이스 객체 암호화
대칭 암호화 체계를 이용해 데이터베이스 객체의 모든 항목을 암호화합니다.
암호화 키값은 키값 저장소에 안전하게 저장됩니다.
통신 암호화
비대칭 암호화 체계를 이용해 군인들이 주고받는 메세지와 메모보고를 암호화합니다.
군인의 공개키값으로 통신 키를 암호화한 후, 군인이 비공개키값으로 키를 해독 할 수 있습니다.
암호화 키값은 키값 저장소에 안전하게 저장됩니다.

💥 AI를 통한 심각성/중요도 점수

AI가 보고사항에 대한 심각성/중요도 점수 파악
명사와 동사를 감성분석기로 분석.
1~5 심각성/중요도 점수 반환


⚙️화면 설계

데스크탑 화면 모바일 화면 기능 설명
로그인페이지 모바일로그인 등록된 사용자의 로그인
회원가입페이지 모바일회원가입 부대로부터 초대 코드를 받은 장병 회원가입
홈페이지 모바일홈 자신의 유저 정보 / 부대 정보 / 메모 보고 확인
조직도페이지 모바일조직도 같은 부대 내 장병들의 조직 체계 조회
조직도세부페이지 모바일세부조직도 조직도 내 장병의 세부 정보 확인
권한에 따라 추가·수정·삭제
메모보고페이지 모바일메모보고 보고 체계를 따르는 군 내 메모보고 조회
메모보고작성창 모바일메모보고작성 메모보고 업로드
메세지페이지 모바일채팅방 채팅 페이지
계정설정페이지 모바일계정설정 서비스 내에서 사용되는 유저의 정보 확인
부대설정페이지 모바일부대설정 자신이 속한 부대 정보 조회
권한에 따라 추가·수정·삭제 기능
보고체계설정페이지 모바일보고체계 상황 보고 단계에 대한 보고체계 리스트
권한에 따라 추가·수정·삭제

프로젝트 사용법 (Getting Started)

데모 영상


💻컴퓨터 구성 / 필수 조건 안내(Prerequisites)

https://browsersl.ist/#q=last+2+versions

📱모바일 구성 / 필수 조건 안내(Prerequisites)

  • 최소: 안드로이드 운영체제 6.0(Marshmallow) 이상
  • 권장: 안드로이드 운영체제 10.0 이상


🔗기술 스택 (Technique Used)

Development Stack

img

Web Frontend

React Next JS Ant-Design

Mobile Frontend

React Native Expo

Backend

NodeJS Express.js

Database

MongoDB Azure Firebase

Collaboration Tools

Notion Figma Insomnia

Encryption Scheme

Logo Name/Encryption Scheme Purpose
RSA 비대칭 암호화 (암호화된 키 값 전송)
Crypto.js 대칭 암호화 기능 (AES, HMAC)
Azure Keystore 비밀 키 값 (Secret Key) 저장


설치 안내 (Installation Process)

Back-End

$ git clone https://github.com/osamhack2022-v2/WEB_APP_ROK-Situation-Reporting-System_ROK-SRS.git
$ cd ./'WEB&APP(BE)'
$ npm install
.env 파일 생성 후
$ npm run start

Front-End(WEB)

$ git clone https://github.com/osamhack2022-v2/WEB_APP_ROK-Situation-Reporting-System_ROK-SRS.git
$ cd ./'WEB(FE)'
$ npm install
.env 파일 생성 후
$ npm run dev

Front-End(APP)

Prerequisite: expo sign up

$ git clone https://github.com/osamhack2022-v2/WEB_APP_ROK-Situation-Reporting-System_ROK-SRS.git
$ cd ./'APP(FE)'
$ npm install
.env 파일 생성 후
$ npx eas build -p android --profile preview

빌드 진행 이후 .apk 파일을 본인의 스마트폰으로 이동하여 설치


오픈소스(Open-Sources)

MIT License

  • mongoose
  • jsonwebtoken
  • bcryptjs
  • cors
  • colors
  • express-async-handler
  • mongoose-encryption
  • nodemon
  • nodepapago
  • socket.io
  • wink-pos-tagger
  • cookies-next
  • react-draggable
  • react-infinite-scroll-component
  • react-organizational-chart
  • crypto-js
  • uuid
  • jose
  • react-navigation
  • react-native-paper
  • react-native-async-storage
  • react-native-dropdown-picker
  • react-native-gifted-chat
  • recoil

Others

  • dotenv [BSD-2-Clause]
  • react-firebase-hooks [Apache-2.0]
  • classificator [none]

팀 정보 (Team Information)

이름 역할 GitHub Contacts
김상영, 팀장 암호화
최윤성 프론트엔드(WEB)
김형민 프론트엔드(APP) 개발자
조영효 백엔드

문서 (Documentation)

저작권 및 사용권 정보 (Copyleft / End User License)

This project is licensed under the terms of the MIT license.