Exercise: SSH

Security/드림핵 2025. 1. 4. 14:05
반응형

이번엔 SSH 를 활용하는 간단한 flag 찾기 문제입니다.

문제 설명은 위와 같습니다.

우측 상단에서 문제파일을 받고, flag 파일을 확인해보니 아래와 같았습니다.

> DH{this_is_not_real}

 

힌트를 알 수 없기에, 우선 서버를 생성하니 아래와 같습니다.

SSH를 활용하라고 했기 때문에, putty로 접속하여 host1.dreamhack.games 에 11553 포트로 접속을 시도해봅니다.

연결이 되는것을 확인하였고, 로그인 ID를 입력받도록 확인됩니다.

이제 문제설명에서 주어진 ID/PW를 통해 접속해봅니다.

접속해서 ls로 파일들을 확인해보니, flag 파일이 보입니다.

어떤 값이 들어있는지 확인을 위해 cat으로 flag 파일을 읽어봅니다.

이제야 flag 값이 보이는 것을 확인할 수 있습니다.

이제 사이트에서 해당 flag 값을 입력해줍니다.

성공입니다. putty를 활용한 아주 간단한 SSH 문제였습니다.

반응형

'Security > 드림핵' 카테고리의 다른 글

Exercise: Welcome-Beginners  (0) 2025.01.04

WRITTEN BY
SiriusJ

,
반응형

드림핵을 시작했습니다.

문제를 차근차근 열심히 풀어보려고합니다.

먼저 비기너 문제부터 시작합니다~

Dreamhack을 입력해서 플래그를 획득하라고 합니다.

 

우측

우측에 보면 문제 파일을 받을 수 있고, 해당 파일을 에디터로 열어보면 아래와 같은 소스가 확인됩니다.

코드를 분석해보면 Dreamhack을 입력하면, Welcome Beginners! 라는 메시지와 함께 flag 값을 읽어와서 puts(출력)해주는 것을 알 수 있습니다.

이제 서버를 먼저 생성해주면 위 이미지처럼 생성됩니다.

따라서 Linux에서 NC(netcat) 명령어를 이용해서 플래그를 추출하려고 합니다.

그래서, Linux 환경을 만들어주기 위해 vmware와 저는 Rocky리눅스를 올려서 리눅스 환경을 구축했습니다.

적당히 설정해준 후, 내부로 들어가서 Rocky linux를 install해줍니다.

설치된 후, nc 명령어를 이용해 아래처럼 입력해줍니다.

이제, Dreamhack을 입력합니다.

위처럼 Flag 값이 puts 되고, 해당 값을 확인할 수 있습니다.

 

 

입력하면, 맞춤으로 뜨는걸 확인할 수 있습니다.

이상으로 가장 입문 문제를 풀어보았습니다.

반응형

'Security > 드림핵' 카테고리의 다른 글

Exercise: SSH  (0) 2025.01.04

WRITTEN BY
SiriusJ

,
반응형
반응형

이번에는 제가 원하는 정적으로 동작하는 웹 사이트에서 제품명, 제품유형, 제조사, 인증일, 인증만료일 등 데이터를 추출하는 프로그램을 파이썬으로 구현해보았습니다.

항상 크롤링에서 중요한 것은, 파싱하고자 하는 웹 사이트의 HTML에서 원하는 경로를 바로 파악하는 능력이 필요하다고 생각합니다.

(내가 원하는 데이터가 어떤 div 태그영역에 있는지 확인하고, div 태그 내에서 class 값 또는 id 값 등을 이용해 해당 데이터를 추출할 수 있는지가 필요)

아래는 제가 원하는 사이트에서 html 내 태그값을 이용하여 제품명, 분류, 제조사, 인증일, 인증만료일, 상태값을 추출하는 코드입니다.

import requests, openpyxl
from bs4 import BeautifulSoup

wb = openpyxl.Workbook()
sheet = wb.active

sheet.append(["제품명", "분류", "제조사", "인증일", "인증만료일", "상태값"])

#크롤링할 사이트 직접입력하였으며, URL 변수로 별도 선언 후 input() 을 통해 크롤링할 URL을 입력받도록 만들어도 됨.
for i in range(1, 10+1, 1):
    raw = requests.get(
       "https://www.bsi.bund.de/SiteGlobals/Forms/IT-Sicherheitskennzeichen/EN/IT-Sicherheitskennzeichen_Formular.html?gtp=980004_list%253D{}".format(
          (i)))
    html = BeautifulSoup(raw.text, 'html.parser')

    #크롤링 할 영역을 container로 저장
    container = html.select(".c-search-results > ul > li")

    for c in container:
       #제품명 추출
       product_name = c.select_one(".c-search-result-teaser__headline").text.strip()

       #본문(카테고리, 제조사, 인증일, 인증만료일)의 데이터를 추출하여 line별로 list에 저장
       product_data = c.select_one(".c-search-result-teaser__content").text.strip()
       product_data_list = product_data.splitlines()

       #리스트로부터 제품의 카테고리, 제조사, 인증일, 인증만료일 데이터를 추출
       category = product_data_list[0].replace("Category: ", "")
       manufacturer = product_data_list[1].replace("Manufacturer: ", "")
       Date_of_issue = product_data_list[2].replace("Date of issue: ", "")
       end_of_term = product_data_list[3].replace("End of term: ", "")

       #제품의 상태값은 해당 제품들의 링크로 들어가서 추출해야하므로, 링크값(a태그) 추출 후, 한번 더 BeautifulSoup를 이용해 Status 값을 추출 
       product_status_link = c.find('a')['href']

       raw_status = requests.get('https://www.bsi.bund.de/' + product_status_link)
       html_status = BeautifulSoup(raw_status.text, 'html.parser')

       product_status = html_status.select_one('.c-product-stage__security-status').text.strip()
       
       #엑셀 시트에 저장
       sheet.append([product_name, category, manufacturer, Date_of_issue, end_of_term, product_status])
       
wb.save("C:/Users/user/Documents/bsi_product_search.xlsx")

 

결과

 

위 코드에서 포인트는 A웹사이트에서, A->A' 사이트(A'는 각 제품의 상세페이지)로 한번 더 들어가서 제품의 현재 상태값(status)을 추출해주는 부분입니다.

각 제품들의 링크로 들어가서 한번 더 beautifulsoup를 이용해 파싱하고, 상태값을 불러오는 부분에서 상당한 딜레이가 발생하는 것을 확인하였습니다.

어떻게 성능을 개선할지가 다음 과제인것 같습니다.

좋은 의견 있으실 경우 남겨주시면 언제든 환영입니다.

반응형

WRITTEN BY
SiriusJ

,
반응형
반응형

최근 해외 사이트들의 동향을 조사하고 본문 내용을 정리하는데 번역을 한번 돌리고 파일화 하는 작업들이 많다보니 이를 파이썬으로 만들면 어떨까해서 아래처럼 만들어 보았습니다.

작업 순서는 아래와 같습니다.

- 1) 원하는 사이트 정적 웹 크롤링(BeautifulSoup)

- 2) Googletranslate 를 활용한 번역

- 3) 번역한 내용을 메모장 파일로 저장

(코드)

import requests, googletrans, time
from bs4 import BeautifulSoup

maxsize = 4500
sleep_time = 2

translator = googletrans.Translator()

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}

url = input("번역할 웹 페이지의 URL을 입력하세요: ")
data = requests.get(url, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

# 글 제목 추출
title = soup.select('.metadata-content-area')
for index, element in enumerate(title, 1):
    f = open('C:/Users/USER/PycharmProjects/global_iot_security/test.txt', 'w', encoding='UTF-8')
    trans_title = translator.translate(element.text.strip(), src = 'en', dest='ko')
    f.write("{} 번째 게시글의 제목: {}".format(index, trans_title.text))
    f.close()

# 세부내용 추출
full_contents = soup.select('.doc-content-area')
for i in full_contents:
    txt_contents = i.get_text()
    f = open("C:/Users/USER/PycharmProjects/global_iot_security/test.txt", "a", encoding='UTF-8')

    #txt_contents가 maxsize 보다 클 때(5000자 이상이면 오류 발생, 4500자씩 분해하여 번역)
    if len(txt_contents) > maxsize:
        results_list = []
        concatenated_result = ""

        original_contents = [txt_contents[i:i + maxsize] for i in range(0, len(txt_contents), maxsize)]

        for i in original_contents:
            r = translator.translate(i.strip(), dest='ko', src='en')
            time.sleep(sleep_time)
            results_list.append(r.text)
            f.write(r.text.strip())

        for i in results_list:
            concatenated_result += i

    # 전체 내용이 4500자 이하라면, 그대로 본문 전체를 번역하여 파일로 씀
    else:
        res = translator.translate(txt_contents.strip(), dest='ko', src='en')
        time.sleep(sleep_time)
        f.write(res.text.strip())
    f.close()


 

* 단 주의할 점은, 코드에서 번역시에 5천자가 넘게되면 번역 오류가 발생하게 됩니다.

따라서 저는 우선 전체 크롤링 할 내용이 4500자를 기준으로 넘는지 안넘는지를 비교하여 경우에 따른 케이스로 만들어보았습니다.

beautifulsoup를 활용해서 정적 크롤링을 했는데, 1시간정도에 급하게 만드느라 세밀한 코딩결과는 아닙니다.

이유는?

4500자를 넘길때, 해당 구간에서는 번역이 꼬일 수 있기 때문입니다.

일차적으로 만들어보았고, 추가적으로 보완하려고 합니다.

반응형

WRITTEN BY
SiriusJ

,
반응형
반응형

최근에 파이썬으로 프로그램을 만들어보고 있는데, pycharm으로 개발하면서 실행파일로 누구나 사용할 수 있도록 하기 위해 배포하려고 해서 관련 포스팅을 남깁니다.

 

가장 일반적인 실행파일 생성 방법은 PyInstaller 또는 **cx_Freeze**와 같은 패키지를 사용하는 것입니다. 여기서는 가장 많이 사용되는 **PyInstaller**를 활용하여 파이썬 스크립트를 실행 파일로 만드는 방법을 다루겠습니다.

1. PyInstaller 설치

PyInstaller는 파이썬 스크립트를 단일 실행 파일로 변환해주는 도구입니다. 터미널이나 명령 프롬프트에서 다음 명령어로 설치할 수 있습니다.

(windows : cmd 창)

> pip install pyinstaller

 * 혹시라도 pip가 설치되어있지 않다고 할 경우에는, python을 제어판에서 삭제했다가 다시 설치하고, 설치할 때 환경변수 등 관련 체크박스가 해제되어있는 부분을 확인하고 체크해주신 후에 설치하면 pip가 자동으로 설치되게 됩니다. 이후에는 pip를 이용한 install 등 가능하게 됩니다.

 

2. PyInstaller 사용 방법

설치 후, 파이썬 스크립트를 실행 파일로 변환하려면 터미널 또는 명령 프롬프트에서 다음 명령을 입력합니다:

> pyinstaller --onefile 'test.py'

여기서 'test.py'는 실행 파일로 만들고자 하는 본인의 파이썬 파일 이름입니다.

주요 옵션:

  • --onefile: 하나의 실행 파일로 만듭니다. 기본적으로 PyInstaller는 여러 파일을 생성하는데, 이 옵션을 사용하면 단일 파일로 묶어줍니다.
  • --noconsole: 프로그램을 콘솔 창 없이 GUI 형태로 실행하고 싶을 때 사용합니다. (GUI 프로그램인 경우에만 유용)

 

3. 실행 파일 생성 과정

PyInstaller가 실행되면, 다음과 같은 작업을 수행합니다:

  • dist/ 폴더에 실행 파일이 생성됩니다.
  • build/ 폴더에 빌드와 관련된 파일이 생성됩니다.
  • .spec 파일이 생성되며, 이는 빌드 구성을 저장하는 파일입니다.

 

4. 실행 파일 배포

dist/ 폴더에 생성된 .exe 파일을 다른 사용자에게 배포할 수 있습니다. 배포할 때는 해당 파일만 전달하면 됩니다.

 

5. 참고 사항

  • 윈도우에서 만든 실행 파일은 윈도우에서만 실행 가능하고, macOS 또는 리눅스에서 만들면 그 운영체제에서만 실행 가능합니다. 각 운영체제에서 해당 OS에 맞게 빌드해야 합니다.
  • 실행 파일 크기가 커질 수 있으므로 불필요한 패키지는 제외하는 것이 좋습니다. 이를 위해 .spec 파일을 편집할 수 있습니다.

 

6. 실행 파일로 만들 때 발생할 수 있는 문제 해결

  • 외부 모듈이 포함되지 않는 문제: 일부 외부 모듈이 자동으로 포함되지 않을 수 있습니다. 이 경우, hidden-import 옵션을 사용하여 추가합니다.

> pyinstaller --onefile --hidden-import <module_name> 'test.py'

 

7. PyInstaller 외 다른 도구

  • cx_Freeze: PyInstaller와 유사하게 파이썬 스크립트를 실행 파일로 만들 수 있는 도구입니다. GUI 애플리케이션을 제작할 때 주로 사용됩니다.

> pip install cx_Freeze

> cxfreeze your_script.py --target-dir dist

반응형

WRITTEN BY
SiriusJ

,
반응형
반응형

최근 메타버스가 많이 화두가 되었습니다.

저도 궁금하여 메타버스가 무엇인지? 그리고 대표적인 플랫폼 중 하나인 게더타운으로 방을 만들어보았습니다.

다음번에는 대표적인 메타버스 관련 플랫폼(제페토, 로블록스, ZEP, 게더타운)간 비교하는 부분도 포스팅 하도록 하겠습니다.

결론을 우선말씀드리면, 코딩이 들어가는게 있으면 한번 재미로 해볼까? 했는데 싸이월드 방 꾸미기 정도로 게더타운 플랫폼에서 초보자들을 위해 제공하는 기능이 많아, 단순히 환경구축까지는 코딩하는 작업은 별도로 없었습니다.

 

1. 게더타운 설치

: https://www.gather.town/ 에 입장하면 아래와 같은 화면이 나옵니다.

게더타운 홈페이지

 

2. 위에서 Gather 무료로 시작하기(영문버전으로는 Get Started for free)를 누르면 아래 화면이 나옵니다.

Workspace는 작업공간, 오피스 등을 구축할때, event는 행사, Social experiences는 게임과 같은 컨텐츠를 만들고 싶을때 선택합니다. 저는 그냥 workspace로 선택하고 Get started를 클릭하였습니다.

 

3. 메타버스 공간을 구축하고자하는 인원수입니다. 필요에 따라 최대 인원수를 조정해줍니다.

 

4. 저는 욕심이 많아서 최대로하니, 해당 인원수를 포함할 수 있을정도의 맵이 자동적으로 보여집니다.

좌측 하단의 다른 템플릿을 선택할 수도 있습니다.(게더타운에서 제공하는 템플릿들이 있어, 적당한 것을 선택하여 진행해도 되고, 마음에 안든다면 blank로 선택하고 본인이 직접 꾸며도 무관합니다.)

 

5. 제가 선택한 새로운 오피스 공간의 이름을 정해줍니다. 해당이름은 추후 링크생성시, URL의 가장 끝단에 나타내집니다. 패스워드를 설정해서 비공개로 전환도 되는것 같네요.

 

6. 캐릭터와 캐릭터 이름을 설정할 수 있습니다. 화상캠, 마이크, 스피커 등 설정이 가능합니다. 저는 아래처럼 꾸몄습니다.

(별도의 외부 디바이스 이용시에는 설정 바꿔주시면 됩니다.)

 

7. 위에서 Join the Gathering 을 클릭시, 아래처럼 로딩되며 공간이 만들어지는것을 기다려주면 됩니다.

 

8. 네.. 기다리면 이렇게 메타버스 공간이 만들어지고, 화면 우측하단의 invite를 통해 초대하고 싶은 사람의 이메일 주소를 받아 해당 공간에 초대할 수 있습니다. 이제 메타버스 공간은 만들어졌습니다.(에?)

 

9. 여기서, 가장 좌측상단의 메뉴버튼을 눌러 'manage space 클릭' -> 이동된 페이지 Space dashboard에서 'edit space를 클릭'하면 mapmaker로 이동되며, 오브젝트나 각종 이펙트, 벽과 타일 등을 직접 편집할 수 있습니다.

기본적인 아이템들은 게더타운에서 제공되니 이용하시면 좋을것같습니다.

 

-> 이렇게 기본적인 게더타운의 공간을 만들어보고 아이템으로 공간을 꾸미는 것까지 해보았습니다.

별도 코딩이 들어가지 않아 누구나 한번 해보기는 쉬울 것 같고, 화상회의 등으로 용도로도 활용하기 쉬울 것 같습니다.

 

반응형

WRITTEN BY
SiriusJ

,
반응형

지난번 드론의 정의(https://jwprogramming.tistory.com/282)를 다루었습니다.

 

오늘은 드론의 구성요소와 주요 용어 및 통신방식 등에 대해 간단히 정리해보았습니다.

 

1) 드론 구성요소

출처 : 드론의 구성, http://www.sigmapress.co.kr/shop/shop_image/g47841_1550542236.pdf

드론의 구조는 드론과 지상의 원격조정자가 각종 데이터를 주고받는 통신부, 드론의 비행을 조정하는 제어부, 드론을 날아가게 구동시키는 구동부, 그리고 카메라 등 각종 탑재 장비들로 구성된 페이로드의 네 부분으로 나뉜다고 볼 수 있습니다.

  ※ LTE, WIFI 등 드론 통신방식에 따라 통신부(송신기)에서 제어부(비행제어기)로 위치데이터 등이 이동되고, 제어부의 센서융합기를 통해 자이로센서, 지자기 센서 등 센서값에 대한 측정치를 갖고 있습니다. 이를 비행제어기를 통해 실제 구동부(모터, 프로펠러 등)으로 핀을 통해 데이터를 전달합니다.

[드론 HW 구성]

출처 : 드론의 구성, http://www.sigmapress.co.kr/shop/shop_image/g47841_1550542236.pdf

[드론 서비스 구성]

출처 : KISA, 드론 사이버보안 가이드 https://www.kisa.or.kr/2060205/form?postSeq=9&page=1#fnPostAttachDownload

2) 드론 관련 주요 용어

1. GCS(Ground Control System) : (지상관제 시스템)

  - 자율비행 및 실시간 비행경로 변경 관제 가능

  - 지도 데이터 처리, 비행경로 사전 분석 기능

  - 지오펜스 기능 (필요 시 비행금지 지역 생성)

 

2. FC(flight controller, FC) : 비행제어장치

: 수신기(Rx Module)에서 받은 조종신호를 변속기(ESC: 모터의 속도를 제어해주는 장치)로 보내주는 중간에 안정적인 비행을 위해 신호를 조종해주는 장치

 

3. FCC(Flight Control Computer) : 비행제어장치

: 각종 데이터를 취합하여 위치, 자세 제어

 

4. FCS(Flight Control System) : 비행제어시스템

- FCS는 위치, 자세 제어, 경로비행 제어 등에 필요한 드론 설계 핵심기술

- 핵심 모듈 (AHRS, FC) 자체 설계가능

- 제어기 커스터마이징, 비행 로그 추적 및 분석가능

 

5. AHRS : 관성측정장치 (Attitude and heading reference system)

: 기체의 상태 데이터 (자세,고도, 방향등)계산

 

6. RTH(Return to home) : 자동복귀

 

7. GNSS(Global Navigation Satellite System)

: 우주궤도를 돌고 있는 인공위성에 발신하는 전파를 이용해 지구 전역에서 움직이는 물체의 위치·고도치·속도를 계산하는 위성항법 시스템

 

8. ESC(electronic speed control) : (변속기)

: 전기적으로 속도를 제어하는 소자

- 브러쉬리스 모터를 구동하기 위해 필요한 전자회로

- FC의 명령을 받아서 모터 속도를 제어함

 

9. PWM(Pulse Width Modulation) : 신호 폭 조종

: 일정한 주기 내에서 Duty 비를 변화 시켜서 평균전압을 제어하는 방법

드론 로터의 회전수는 일반적으로 PWM(Pulse Width Modulation) 방식으로 제어되고 회전수의 차이에 따라 상하(Throttle), 전후진(Pitch), 좌우이동(Roll) 및 제자리 회전(Yaw) 동작이 이루어집니다.

 

2-1) 드론 탑재센서

1) 자동비행제어장치

: 자동비행제어장치(Automatic Flight Control System)란 항공기나 미사일의 내부와 외부 장치에 의해 진로나 비행 자세를 자동적으로 조정할 수 있는 모든 장비를 포괄한 장치

비행제어장치(flight controller, FC)

: 수신기(Rx Module)에서 받은 조종신호를 변속기(ESC: 모터의 속도를 제어해주는 장치)로 보내주는 중간에 안정적인 비행을 위해 신호를 조종해주는 장치

(FC의 세부역할)

- 수신기의 신호를 분석할 수 있도록 적당한 채널로 나눔

- 정착된 센서에서 감지된 신호를 분석하여 멀티콥터가 안정적인 자세를 유지하도록 변속기(ESC)에 신호를 보냄

- 수신기로 수신된 신호와 센서에서 수신된 정보, 두 신호를 분석하여 원하는 비행이 가능하도록 변속기(ESC)에 신호를 보냄

 

2) 모터

: 드론에서 사용하는 모터는 일반적으로 브러시(Brushed Direct Current, BDC)모터와 브러시리스 직류(Brushless Direct Current, BLDC) 모터로 나뉨

BDC 모터 BLDC 모터
BDC 모터는 주로 완구용 드론에 사용됨장점 : 가격이 싸고, 구동방식이 간단단점 : 브러시가 닳게 되면 수명이 다하고, 스파크, 열 등이 발생해 모터의 고속회전 및 장시간 회전에는 적합하지 않음 BLDC 모터는 영구 자석으로 된 중심부의 회전자(Rotor)와 권선(Wire)으로 되어 있는 극(Pole)과 고정자(Stator)들로 구성

 

3) 가속도계와 자이로스코프

: 가속도계와 자이로(Gyro) 센서는 드론의 관성 센서이다. 가속도계는 가속도를 측정하고, 자이로는 회전력을 측정

 

4) 자력계

: 자력계(magnetometer)는 나침반 기능을 하는 센서로 자기장을 측정하는 역할

(자력계가 자북을 측정하여 드론의 방향정보를 드론의 비행제어장치(FC)로 보내 이를 보강하는 역할)

자력계 센서는 전선, 모터, 변속기(ESC) 등에서 발생하는 주변 자기장에 매우 민감합니다. GPS 모듈은 일반적으로 이런 장비들과 떨어져 있기 때문에, 장비들에 의한 자기장 간섭을 피하기 위해 나침반 센서를 추가적으로 GPS 모듈에 장착하기도 합니다.

 

5) 관성측정장치

: 관성측정장치(Inertial Measurement Unit, IMU)GPS와 연동되어 기체의 이동방향, 이동경로, 이동속도를 유지하는 역할을 하고, 3축 자력계와 GPS 수신기가 결합된 형태로 얻은 정보를 드론의 비행제어장치(FC)로 전달합니다.

 

6) 기압계

: 기압계는 항공기의 고도를 측정하기 위한 압력 센서대기압은 해수면에서의 높이에 따라 결정되고, 기압계는 이 원리를 이용하여 대기압을 측정하여 고도를 측정

 

일반적으로는 GNSS 센서를 사용하여 고도를 매우 정밀하게 측정 할 수 있지만, GNSS사용할 수 없는 실내에서는 초음파나 이미지 센서 등을 사용하여 정밀하게 고도를 측정합니다.

 

7) 대기속도계

: 대기속도계는 비행 중 드론을 스쳐 지나가는 공기의 흐름속도를 측정하기 위한 것

 

8) 센서 융합

: 센서 융합(sensor fusion)이란 각종 외부 센서에서 오는 정보를 통합 또는 융합함으로써 새로운 정보를 얻는 것

 

9) 초음파 거리 센서

: 초음파 센서는 초음파를 발생하는 송신기 부분과 반사되어 돌아오는 초음파를 검출하는 수신기로 구성

송신기에서 초음파를 발사한 후, 수신기에 반사된 초음파가 들어올 때까지의 시간을 측정하여 센서와 물체까지의 거리를 측정

10) 라이다 센서

: 라이다 센서는 레이저(laser)를 목표물(대상체)에 투사하고 대상체에서 반사되어 되돌아오는 시간을 측정함으로써 대상체까지의 거리, 방향, 속도, 온도, 물질 분포 및 농도 특성 등을 감지, 측정할 수 있는 기술- 자율비행 및 실시간 비행경로 변경 관제 가능

- 지도 데이터 처리, 비행경로 사전 분석 기능

- 지오펜스 기능 (필요 시 비행금지 지역 생성)

 

3) 통신기술

1. 무선통신 송수신기(telemetry)

: 무선통신 송수신기는 데이터를 송수신하기 위한 무선장비로서 드론과 조정기에 각각 탑재·설치해야 합니다.

  ※ 중요한 것은 드론과 조정기의 무선통신 송수신기를 서로 페어링해야 한다는 것

드론과 조정기와의 통신을 위해 기본적으로 2.4GHz 5.0GHz의 와이파이(WiFi)를 사용합니다. 그러나 통신범위가 5~7km를 넘지 못하기 때문에 장거리 이동 시에는 LTE망을 활용합니다.

---------------------------------------------------

국립전파연구원은 20151231항공업무용 무선설비 기술기준을 개정해 드론 이용을 위한 전용 주파수를 할당했다. 이 기술기준에 따르면 드론 전용 주파수로 5,030~5,091MHz(5,030~5,091GHz) 대역(61MHz )이 새롭게 할당되었습니다.

 

-> 드론과 조정기와의 통신은 2.4GHz, 5.0GHz. 혹은 전용주파수로 5.0MHz 근방의 대역을 사용하지만, GPS신호는 1.2GHz(혹은 1.5GHz)에서 사용됩니다.

GPS신호를 수신할 때 다른 신호들과 중첩, 방해 등이 발생할 수 있으며 이때 GPS Spoofing 혹은 Jamming 등이 발생할 수 있지 않을까하는 의문을 가져봅니다.

---------------------------------------------------

2. 주파수 대역(RF)

드론은 지상에서 드론으로 원격조정(RC) 비행명령어 및 카메라 조작 등 페이로드 제어 신호를 전송하기 위한 상향링크(지상 드론)가 필요하고,

비디오, 사진 및 드론의 위치, 비행속도, 배터리 잔량 등의 비행정보를 지상으로 전송하기 위한 하향링크(드론 지상)가 필요합니다.

GPS 신호는 1.2GHz(혹은 1.5GHz) 주파수 대역으로 수신

[요약]

- 상향링크 : 지상에서 드론으로 페이로드 제어신호를 전송

- 하향링크 : 페이로드, 제어부 등에서 발생한 비행정보를 지상으로 전송

1) 900MHz 1.3GHz 주파수 대역

: 900MHz 주파수 대역은 비디오 및 텔레메트리 전송을 위한 하향링크로 사용

- 900MHz 대역은 최근 규격이 확정된 IoT(internet of things)WiFi 11ah 무선랜과도 주파수대역이 겹친다. 1.3GHz 주파수 대역 역시 비디오 전송을 위한 하향링크로 사용되는데, 2005년 이후에 쏘아 올린 GPS 위성의 1.2GHz L2 주파수 대역과 가까워서 드론에 탑재된 GPS 수신기에 간섭을 줄 수 있습니다.

2) 2.4GHz 5.8GHz 주파수 대역

: 2.4GHz 주파수 대역은 거의 모든 드론이 원격조정 및 페이로드 제어로 사용하는 상향링크입니다.

그러나 2.4GHzWiFi, 블루투스, 지그비 등과 주파수대역이 겹치므로 사람이 많이 모이는 공원 등의 지역에서는 드론 비행에 주의해야 합니다. 일부 드론들은 2.4GHz 대역을 비디오 전송 하향링크로 사용합니다. 이 경우, 원격조정 상향링크는 5.8GHz 주파수 대역을 이용합니다. 5.8GHz 주파수 대역은 최근 출시된 드론들이 비디오 및 텔레메트리 전송 하향링크로 사용하는 주파수 대역입니다.

3) WiFi 4G/3G

: 드론에 WiFi 수신기를 설치해 스마트폰 WiFi로 직접 드론을 원격조정할 수 있습니다. 드론에 LTE 혹은 WCDMA 송수신기를 설치해 이동통신 네트워크를 통해 스마트폰으로 드론을 원격조정하거나 드론의 비디오 데이터를 지상으로 전송하기도 합니다.

3. GNSS

1. GPS GNSS(Global Navigation Satellite System : 위성항법시스템)

: GPS는 인공위성으로부터 수신기까지 신호가 도달하는 데 걸린 시간(소요시간)을 기준으로 거리를 측정합니다.

GNSS는 크게 1) 위성, 2) 지상의 제어국, 3) 사용자로 구성되어 있습니다. 지상 제어국의 수신장치에서 고도 약 20,000km 중궤도에 위치해 있는 인공위성에서 신호를 받아 수 m 이내의 위치정보를 알아낼 수 있는 것이 GNSS의 기본 원리입니다.

 

반응형

'ETC > Drone' 카테고리의 다른 글

1. 드론(Drone)의 정의. 드론이란 무엇인가?  (0) 2022.04.13

WRITTEN BY
SiriusJ

,
반응형

요즘 러시아-우크라이나 전쟁으로 인해, 드론의 활용성과 중요성이 많이 각광받고 있습니다.

따라서, 드론이란 무엇인지 우리나라에서 법적으로 정의하고 있는 부분에 대하여 먼저 정의하고자 합니다.

 

o 드론이란? : 조종자가 탑승하지 아니한 상태로 항행할 수 있는 무인비행체 라고 정의할 수 있습니다.

  - 아래는 우리나라에서 드론에 대해 법으로 정의한 부분을 참조하였습니다.

1. 드론의 정의(드론 활용의 촉진 및 기반조성에 관한 법률, 약칭: 드론법)

1) 드론이란 조종자가 탑승하지 아니한 상태로 항행할 수 있는 비행체로서 국토교통부령으로 정하는 기준을 충족하는 다음 각 목의 어느 하나에 해당하는 기기를 말한다.

. 항공안전법2조제3호에 따른 무인비행장치

. 항공안전법2조제6호에 따른 무인항공기

. 그 밖에 원격자동자율 등 국토교통부령으로 정하는 방식에 따라 항행하는 비행체

-> 우리나라에서는 위의 드론법에서 보시는 바와 같이, 드론에 대한 정의를 하고있습니다. 여기서 핵심은 조종자가 탑승하지 않은 무인비행체 라는 부분입니다.

 

그럼 무인비행장치와 무인항공기는 무엇인가? -> 항공안전법에서 정의되어 있음

항공안전법 제2조에 따른 무인비행장치로 분류되며, 동법 시행규칙(항공안전법 시행규칙)에 따라 무인비행장치에서 무인동력장치, 무인비행선으로 분류된다고 볼 수 있습니다.

----------------------------------------------------------------------------------

[항공안전법 제2(정의)]

3. 초경량비행장치란 항공기와 경량항공기 외에 공기의 반작용으로 뜰 수 있는 장치로서 자체중량, 좌석 수 등 국토교통부령으로 정하는 기준에 해당하는 동력비행장치, 행글라이더, 패러글라이더, 기구류 및 무인비행장치 등을 말한다.

----------------------------------------------------------------------------------

[항공안전법 시행규칙]

5(초경량비행장치의 기준) 법 제2조제3호에서 자체중량, 좌석 수 등 국토교통부령으로 정하는 기준에 해당하는 동력비행장치, 행글라이더, 패러글라이더, 기구류 및 무인비행장치 이란 다음 각 호의 기준을 충족하는 동력비행장치, 행글라이더, 패러글라이더, 기구류, 무인비행장치, 회전익비행장치, 동력패러글라이더 및 낙하산류 등을 말한다.

5. 무인비행장치: 사람이 탑승하지 아니하는 것으로서 다음 각 목의 비행장치

. 무인동력비행장치: 연료의 중량을 제외한 자체중량이 150킬로그램 이하인 무인비행기, 무인헬리콥터 또는 무인멀티콥터*

. 무인비행선: 연료의 중량을 제외한 자체중량이 180킬로그램 이하이고 길이가 20미터 이하인 무인비행선

 

-> 여기서 드론은 일반항공기처럼 날개가 고정되어있는 고정익과, 로터를 갖고있는 회전익 으로 분류되며, 멀티콥터 (Multi Copter)란 여러 개의 로터(Rotor)를 가진 비행체로, 로터의 수에 따라 아래처럼 불리게 됩니다.

(2 : 바이콥터(bi copter), 3 : 트라이콥터(tri copter), 4 : 쿼드콥터(quad copter))

 

다음 포스팅에서는 드론에서 사용하는 주요 모듈 및 센서, 관련 통신방식 등 용어들에 대해 정리하고자 합니다.

반응형

'ETC > Drone' 카테고리의 다른 글

2. 드론의 구성, 주요 용어 및 통신기술  (0) 2022.04.28

WRITTEN BY
SiriusJ

,