This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

Difference between revisions of "OWASP TASC Framework Project"

From OWASP
Jump to: navigation, search
(Description)
(Minimum Viable Product)
 
(45 intermediate revisions by 3 users not shown)
Line 9: Line 9:
 
==TASC Framework Project==
 
==TASC Framework Project==
  
The TASC Framework provides a lightweight method and supporting libraries for developers creating "Internet of Things" (IoT) devices using low power systems such as Arduino to make use of secure communications, and authenticate devices and users, without having to be security experts.
+
'''T'''hings '''A'''uthentication and '''S'''ecure '''C'''ommunications (for Resource Constrained Systems)
 +
 
 +
Makers, professionally or as hobbyists, are creating "Internet of Things" (IoT) devices using low power systems such as Arduino. Security is often an afterthought or not considered at all. This project will make it easy to secure communications between devices.
 +
 
 +
This project will put a communications protocol and medium agnostic encryption and authentication layer onto resource constrained devices such as the Arduino.
 +
 
 +
The use of this framework will require no specialist security knowledge.
  
 
==Description==
 
==Description==
Makers, professionally or as hobbyists, are creating "Internet of Things" (IoT) devices using low power systems such as Arduino. Security is often an afterthought or not considered at all. This project will make it easy to secure communications.
+
The TASC Framework ('''T'''hings '''A'''uthentication and '''S'''ecure '''C'''ommunications) provides a lightweight abstracted security framework and supporting libraries to provide authentication and secure communications on resource constrained systems. For example developers creating "Internet of Things" (IoT) devices using low power systems such as Arduino who are not security experts.
 
 
Using an AES library such as: http://forum.arduino.cc/index.php?topic=88890.0 This project will put a communications protocol and medium agnostic encryption and authentication layer onto resource constrained devices such as the Arduino. It will do this via symmetric key encryption of the message payloads to ensure the authentication, integrity, and confidentiality of messages.
 
  
 
==Licensing==
 
==Licensing==
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
The libraries and source code / examples associated with this project are licenced under Apache 2.0 Licence in order to encourage the broadest possible use in embedded systems where dynamic linking may not be practical.
<span style="color:#ff0000">
 
A project must be licensed under a community friendly or open source license.  For more information on OWASP recommended licenses, please see [https://www.owasp.org/index.php/OWASP_Licenses OWASP Licenses]. While OWASP does not promote any particular license over another, the vast majority of projects have chosen a Creative Commons license variant for documentation projects, or a GNU General Public License variant for tools and code projects.
 
</span>
 
  
'''The OWASP Security Principles are free to use. In fact it is encouraged!!!
+
The documentation and guidelines are licenced under Creative Commons Attribution ShareAlike 3.0 Licence.
'' Additionally, I also encourage you to contribute back to the project. I have no monopoly on this knowledge; however, we all have pieces of this knowledge from our experience. Let's begin by putting our individual pieces together to make something great. Great things happen when people work together.
 
 
 
The OWASP Security Principles are licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.
 
  
 
<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->
 
<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->
 
| valign="top"  style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" |
 
| valign="top"  style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" |
  
== What is OWASP Security Principles Project? ==
+
== What is OWASP TASC Framework Project? ==
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
Low powered devices such as those found in IoT developments will often be placed on people's home networks or within range of other's wireless communications devices. This leaves them vulnerable to compromises - particularly with regards to integrity and confidentiality.
<span style="color:#ff0000">
+
 
Here you should add a short description of what your project actually does. What is the primary goal of your project, and why is it important?
+
The OWASP TASC Framework looks to address these issues in a way that makes no assumptions about the mechanism of the transmission of the data or commands - whether it be visible light, infra-red, 433MHz, 1-wire, serial, I2C, Bluetooth, WiFi etc. This is done by providing the capability to secure the payload and allowing the device developer the freedom to choose the communication medium.
</span>
+
 
 +
Using an AES library such as: http://forum.arduino.cc/index.php?topic=88890.0 symmetric key encryption of the message payloads to ensure the authentication, integrity, and confidentiality of messages.
 +
| valign="top"  style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" |
 +
 
 +
== Project Resources ==
  
The end goal is to identify, cite, and document the fundamental principles of information security. Once this is well organised, I think it would be great to publish this through the [http://scriptogr.am/dennis-groves/post/owasp-press OWASP Press]. Of course, it will always remain freely available, and any money collected will go directly into the project to absorb costs with any remaining funds going to the OWASP Foundation.
+
[https://github.com/pwkpete/TASC Source Code]
  
This document should serve as a guide to technical architects and designers outlining the fundamental principles of security.
+
[https://github.com/pwkpete/TASC Documentation]
  
== Presentation ==
+
[https://github.com/pwkpete/TASC Wiki Home Page]
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
[https://github.com/pwkpete/TASC Issue Tracker]
<span style="color:#ff0000">
 
This is where you can link to slide presentations related to your project.  
 
</span>
 
  
 +
[https://github.com/pwkpete/TASC Slide Presentation]
  
AppSec USA 2013 [https://github.com/OWASP/Security-Principles/tree/master/Presentations/AppSec%20NYC%202013]
+
The framework consists of a coordinator, a key manager, and one or more pairing mechanisms.
  
== Project Leader ==
+
== Presentation ==
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
Not yet...but watch this space...
<span style="color:#ff0000">
 
A project leader is the individual who decides to lead the project throughout its lifecycle. The project leader is responsible for communicating the project’s progress to the OWASP Foundation, and he/she is ultimately responsible for the project’s deliverables. The project leader must provide OWASP with his/her real name and contact e-mail address for his/her project application to be accepted, as OWASP prides itself on the openness of its products, operations, and members.
 
</span>
 
  
* [https://www.owasp.org/index.php/User:Dennis_Groves Dennis Groves]
+
== Project Leader ==
  
 +
* [https://www.owasp.org/index.php/User:Andy_Boura Andy Boura]
  
 
== Related Projects ==
 
== Related Projects ==
  
 
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
 
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
<span style="color:#ff0000">
+
Please let us know of any relevant related projects.
This is where you can link to other OWASP Projects that are similar to yours.  
 
</span>
 
 
 
* [[OWASP_CISO_Survey]]
 
  
 
== Openhub ==
 
== Openhub ==
Line 80: Line 74:
 
== Quick Download ==
 
== Quick Download ==
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
Nothing yet but we should have some deliverables ready soon.
<span style="color:#ff0000">
 
This is where you can link to your repository.
 
</span>
 
 
 
The home of the OWASP Security Principles is on [https://github.com/OWASP/Security-Principles GitHub.] You are encourged to fork, edit and push your changes back to the project through git or edit the project directly on github.
 
 
 
However, if you like you may also download the master repository from the following links:
 
* [https://github.com/OWASP/Security-Principles/zipball/master .zip file.]
 
* [https://github.com/OWASP/Security-Principles/tarball/master .tgz file.]
 
  
 
== News and Events ==
 
== News and Events ==
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
* [23 July 2015] First version of the project wiki page up!
<span style="color:#ff0000">
 
This is where you can link to press your project has been a part of. Appropriate press includes: Project Leader interviews, articles written about your project, and videos about your project.
 
</span>
 
 
 
* [20 Nov 2013] News 2
 
* [30 Sep 2013] News 1
 
 
 
== In Print ==
 
 
 
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
 
<span style="color:#ff0000">
 
This is where you place links to where your project product can be downloaded or purchased, in the case of a book.
 
</span>
 
 
 
This project can be purchased as a print on demand book from Lulu.com
 
  
 
==Classifications==
 
==Classifications==
 
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
 
<span style="color:#ff0000">
 
Here is where you can let the community know what project stage your project is currently in, whether the project is a builder, breaker, or defender project, and what type of project you are running.
 
</span>
 
  
 
   {| width="200" cellpadding="2"
 
   {| width="200" cellpadding="2"
Line 124: Line 89:
 
   | align="center" valign="top" width="50%"| [[File:Owasp-defenders-small.png|link=]]
 
   | align="center" valign="top" width="50%"| [[File:Owasp-defenders-small.png|link=]]
 
   |-
 
   |-
   | colspan="2" align="center"  | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]  
+
   | colspan="2" align="center"  |  
 +
[[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]][[File:Project_Type_Files_DOC.jpg|link=]]  
 
   |-
 
   |-
   | colspan="2" align="center"  | [[File:Project_Type_Files_DOC.jpg|link=]]   
+
   | colspan="2" align="center"  |  
 +
[[File:Apache-feather-small.gif|link=http://www.apache.org/licenses/LICENSE-2.0]][[File:Project_Type_Files_CODE.jpg|link=]]   
 
   |}
 
   |}
 
 
|}
 
|}
  
 
=FAQs=
 
=FAQs=
 
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
 
<span style="color:#ff0000">
 
Many projects have "Frequently Asked Questions" documents or pages. However, the point of such a document is not the questions. ''The point of a document like this are the '''answers'''''. The document contains the answers that people would otherwise find themselves giving over and over again. The idea is that rather than laboriously compose and post the same answers repeatedly, people can refer to this page with pre-prepared answers. Use this space to communicate your projects 'Frequent Answers.'
 
</span>
 
 
  
 
==How can I participate in your project?==
 
==How can I participate in your project?==
All you have to do is make the Project Leader's aware of your available time to contribute to the project. It is also important to let the Leader's know how you would like to contribute and pitch in to help the project meet it's goals and milestones. There are many different ways you can contribute to an OWASP Project, but communication with the leads is key.  
+
All you have to do is make the Project Leader's aware of your available time to contribute to the project. It is also important to let the Leader's know how you would like to contribute and pitch in to help the project meet it's goals and milestones. There are many different ways you can contribute to an OWASP Project, but communication with the leads is key. Please see the getting involved tab.
  
 
==If I am not a programmer can I participate in your project?==
 
==If I am not a programmer can I participate in your project?==
Yes, you can certainly participate in the project if you are not a programmer or technical. The project needs different skills and expertise and different times during its development. Currently, we are looking for researchers, writers, graphic designers, and a project administrator.  
+
Yes, you can certainly participate in the project if you are not a programmer or technical. The project needs different skills and expertise and different times during its development. See the getting involved tab for some of the ways you might be able to contribute.
 +
 
 +
==What platforms are supported by the framework?==
 +
The framework itself is platform agnostic and can be readily ported to any platform. Initially the Arduino platform will be targeted as a reference implementation due to it's broad adoption, starting point for budding developers, and strong community.
  
 
= Acknowledgements =
 
= Acknowledgements =
Line 149: Line 112:
 
==Contributors==
 
==Contributors==
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
The OWASP Security Principles project is developed by a worldwide team of volunteers.  
<span style="color:#ff0000">
 
The success of OWASP is due to a community of enthusiasts and contributors that work to make our projects great. This is also true for the success of your project.
 
Be sure to give credit where credit is due, no matter how small! This should be a brief list of the most amazing people involved in your project.
 
Be sure to provide a link to a complete list of all the amazing people in your project's community as well.
 
</span>
 
  
The OWASP Security Principles project is developed by a worldwide team of volunteers. A live update of project  [https://github.com/OWASP/Security-Principles/graphs/contributors contributors is found here].  
+
<!-- A live update of project  [https://github.com/OWASP/Security-Principles/graphs/contributors contributors is found here]. -->
  
 
The first contributors to the project were:
 
The first contributors to the project were:
  
* [https://www.owasp.org/index.php/User:Dennis_Groves Dennis Groves]
+
* [https://www.owasp.org/index.php/User:Andy_Boura Andy Boura]
* [https://github.com/sublimino Andrew Martin]
+
* [https://www.owasp.org/index.php/User:Pete_Ikusz Pete Ikusz]
* [https://github.com/Lambdanaut Josh Thomas]
+
* Malcolm Boura
* '''YOUR NAME BELONGS HERE'''
 
  
 
= Road Map and Getting Involved =
 
= Road Map and Getting Involved =
 
Makers, professionally or as hobbyists, are creating "Internet of Things" (IoT) devices using low power systems such as Arduino. Security is often an afterthought or not considered at all. This project will make it easy to secure communications and authenticate devices and users.
 
 
  
 
== The key milestones are: ==
 
== The key milestones are: ==
  
 +
# Use cases
 +
# Requirements
 +
# API and data structures
 
# Documented lightweight security framework and API
 
# Documented lightweight security framework and API
 
# Reference implementation for Arduino platform  
 
# Reference implementation for Arduino platform  
Line 177: Line 134:
  
 
== The key deliverables are ==
 
== The key deliverables are ==
# Use cases
+
# Formal documentation
# Requirements
 
# API and data structures
 
 
# Arduino reference implementation and documentation  
 
# Arduino reference implementation and documentation  
# Formal documentation
 
 
# Additional platform ports for both clients and servers
 
# Additional platform ports for both clients and servers
  
<p>
+
Here is an outline of the modules that will be specified in the documentation and delivered in the reference Arduino implementation:
Using an AES library such as: http://forum.arduino.cc/index.php?topic=88890.0
+
https://www.lucidchart.com/publicSegments/view/55c3535d-b0f0-4faf-88ea-14a00a005c31/image.png
This project will put a communications protocol and medium agnostic encryption and authentication layer onto resource constrained devices such as the Arduino. It will do this via symmetric key encryption of the message payloads to ensure the authentication, integrity, and confidentiality of messages.
 
 
 
 
 
  
 +
== Getting Involved ==
 +
Involvement in the development and promotion of the OWASP TASC Framework Project is actively encouraged!
 +
You do not have to be a security expert in order to contribute.
  
<span style="color:#ff0000">
 
Roadmaps vary in detail from a broad outline to a fully detailed project charter. Generally speaking, projects with detailed roadmaps have tended to develop into successful projects. Some details that leaders may consider placing in the roadmap include: envisioned milestones, planned feature enhancements, essential conditions, project assumptions, development timelines, etc. You are required to have at least 4 milestones for every year the project is active.
 
</span>
 
<p>
 
Involvement in the development and promotion of the OWASP TASC Framework Project is actively encouraged!
 
You do not have to be a security expert in order to contribute.<p>
 
 
Some of the ways you can help:
 
Some of the ways you can help:
 
* Core framework developer
 
* Core framework developer
Line 209: Line 157:
  
  
 +
=Minimum Viable Product=
 +
 +
A minimum viable product would meet all requirements of the reference implementation and all previous milestones (see Road Map). The reference implementation includes the foundation of the system, the interface layer and example implementations of the interfaces that can be used as a basis for customization by the end user to meet the specific requirements of their system or environment.
  
  

Latest revision as of 14:40, 16 December 2015

OWASP Project Header.jpg

TASC Framework Project

Things Authentication and Secure Communications (for Resource Constrained Systems)

Makers, professionally or as hobbyists, are creating "Internet of Things" (IoT) devices using low power systems such as Arduino. Security is often an afterthought or not considered at all. This project will make it easy to secure communications between devices.

This project will put a communications protocol and medium agnostic encryption and authentication layer onto resource constrained devices such as the Arduino.

The use of this framework will require no specialist security knowledge.

Description

The TASC Framework (Things Authentication and Secure Communications) provides a lightweight abstracted security framework and supporting libraries to provide authentication and secure communications on resource constrained systems. For example developers creating "Internet of Things" (IoT) devices using low power systems such as Arduino who are not security experts.

Licensing

The libraries and source code / examples associated with this project are licenced under Apache 2.0 Licence in order to encourage the broadest possible use in embedded systems where dynamic linking may not be practical.

The documentation and guidelines are licenced under Creative Commons Attribution ShareAlike 3.0 Licence.

What is OWASP TASC Framework Project?

Low powered devices such as those found in IoT developments will often be placed on people's home networks or within range of other's wireless communications devices. This leaves them vulnerable to compromises - particularly with regards to integrity and confidentiality.

The OWASP TASC Framework looks to address these issues in a way that makes no assumptions about the mechanism of the transmission of the data or commands - whether it be visible light, infra-red, 433MHz, 1-wire, serial, I2C, Bluetooth, WiFi etc. This is done by providing the capability to secure the payload and allowing the device developer the freedom to choose the communication medium.

Using an AES library such as: http://forum.arduino.cc/index.php?topic=88890.0 symmetric key encryption of the message payloads to ensure the authentication, integrity, and confidentiality of messages.

Project Resources

Source Code

Documentation

Wiki Home Page

Issue Tracker

Slide Presentation

The framework consists of a coordinator, a key manager, and one or more pairing mechanisms.

Presentation

Not yet...but watch this space...

Project Leader

Related Projects

Please let us know of any relevant related projects.

Openhub

Quick Download

Nothing yet but we should have some deliverables ready soon.

News and Events

  • [23 July 2015] First version of the project wiki page up!

Classifications

New projects.png Owasp-builders-small.png
Owasp-defenders-small.png

Cc-button-y-sa-small.pngProject Type Files DOC.jpg

Apache-feather-small.gifProject Type Files CODE.jpg

How can I participate in your project?

All you have to do is make the Project Leader's aware of your available time to contribute to the project. It is also important to let the Leader's know how you would like to contribute and pitch in to help the project meet it's goals and milestones. There are many different ways you can contribute to an OWASP Project, but communication with the leads is key. Please see the getting involved tab.

If I am not a programmer can I participate in your project?

Yes, you can certainly participate in the project if you are not a programmer or technical. The project needs different skills and expertise and different times during its development. See the getting involved tab for some of the ways you might be able to contribute.

What platforms are supported by the framework?

The framework itself is platform agnostic and can be readily ported to any platform. Initially the Arduino platform will be targeted as a reference implementation due to it's broad adoption, starting point for budding developers, and strong community.

Contributors

The OWASP Security Principles project is developed by a worldwide team of volunteers.


The first contributors to the project were:

The key milestones are:

  1. Use cases
  2. Requirements
  3. API and data structures
  4. Documented lightweight security framework and API
  5. Reference implementation for Arduino platform
  6. Client libraries and ports to other platforms

The key deliverables are

  1. Formal documentation
  2. Arduino reference implementation and documentation
  3. Additional platform ports for both clients and servers

Here is an outline of the modules that will be specified in the documentation and delivered in the reference Arduino implementation: image.png

Getting Involved

Involvement in the development and promotion of the OWASP TASC Framework Project is actively encouraged! You do not have to be a security expert in order to contribute.

Some of the ways you can help:

  • Core framework developer
  • Framework functional testing
  • Framework penetration testing
  • Helping alpha and beta testing the framework on different hardware:
    • Sharing example code
    • Creating "How to" articles and videos
    • Providing feedback
  • Project administration support.
  • Publicity and awareness / advocacy


A minimum viable product would meet all requirements of the reference implementation and all previous milestones (see Road Map). The reference implementation includes the foundation of the system, the interface layer and example implementations of the interfaces that can be used as a basis for customization by the end user to meet the specific requirements of their system or environment.