New website.
This commit is contained in:
parent
35411c3261
commit
8219ef10f5
@ -1 +1 @@
|
|||||||
../Press/./MasterPassword_PressKit.zip
|
../../Press/MasterPassword_PressKit.zip
|
BIN
Site/2013-05/MasterPassword_PressKit.zip
Normal file
BIN
Site/2013-05/MasterPassword_PressKit.zip
Normal file
Binary file not shown.
@ -19,89 +19,6 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="css/buttons/buttons.css" />
|
<link rel="stylesheet" type="text/css" href="css/buttons/buttons.css" />
|
||||||
|
|
||||||
<!-- Google Analytics -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _gaq = _gaq || [];
|
|
||||||
_gaq.push(['_setAccount', 'UA-90535-15']);
|
|
||||||
_gaq.push(['_trackPageview']);
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
||||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Get Satisfaction -->
|
|
||||||
<!--script type="text/javascript" charset="utf-8">
|
|
||||||
var is_ssl = ("https:" == document.location.protocol);
|
|
||||||
var asset_host = is_ssl ? "https://d3rdqalhjaisuu.cloudfront.net/" : "http://d3rdqalhjaisuu.cloudfront.net/";
|
|
||||||
document.write(unescape("%3Cscript src='" + asset_host + "javascripts/feedback-v2.js' type='text/javascript'%3E%3C/script%3E"));
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
var feedback_widget_options = {};
|
|
||||||
feedback_widget_options.display = "overlay";
|
|
||||||
feedback_widget_options.company = "lyndir";
|
|
||||||
feedback_widget_options.placement = "right";
|
|
||||||
feedback_widget_options.color = "#222";
|
|
||||||
feedback_widget_options.style = "question";
|
|
||||||
var feedback_widget = new GSFN.feedback_widget(feedback_widget_options);
|
|
||||||
</script-->
|
|
||||||
|
|
||||||
<!-- UserEcho -->
|
|
||||||
<script type='text/javascript'>
|
|
||||||
var _ues = {
|
|
||||||
host:'support.lyndir.com',
|
|
||||||
forum:'13031',
|
|
||||||
lang:'en',
|
|
||||||
tab_icon_show:false,
|
|
||||||
tab_corner_radius:5,
|
|
||||||
tab_font_size:20,
|
|
||||||
tab_image_hash:'RmVlZGJhY2s%3D',
|
|
||||||
tab_alignment:'right',
|
|
||||||
tab_text_color:'#FFFFFF',
|
|
||||||
tab_bg_color:'#DDDDDD',
|
|
||||||
tab_hover_color:'#CCCCCC'
|
|
||||||
};
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var _ue = document.createElement('script'); _ue.type = 'text/javascript'; _ue.async = true;
|
|
||||||
_ue.src = ('https:' == document.location.protocol ? 'https://s3.amazonaws.com/' : 'http://') + 'cdn.userecho.com/js/widget-1.4.gz.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(_ue, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- AdWords -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
/* <![CDATA[ */
|
|
||||||
goog_snippet_vars = function() {
|
|
||||||
var w = window;
|
|
||||||
w.google_conversion_id = 1015576061;
|
|
||||||
w.google_conversion_label = "PcXqCPPz5AIQ_euh5AM";
|
|
||||||
w.google_conversion_value = 4;
|
|
||||||
}
|
|
||||||
goog_report_conversion = function(url) {
|
|
||||||
goog_snippet_vars();
|
|
||||||
window.google_conversion_format = "3";
|
|
||||||
window.google_is_call = true;
|
|
||||||
var opt = new Object();
|
|
||||||
opt.onload_callback = function() {
|
|
||||||
if (typeof(url) != 'undefined') {
|
|
||||||
window.location = url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var conv_handler = window['google_trackConversion'];
|
|
||||||
if (typeof(conv_handler) == 'function') {
|
|
||||||
conv_handler(opt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* ]]> */
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion_async.js"></script>
|
|
||||||
|
|
||||||
<!-- Google +1 -->
|
|
||||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body itemscope itemtype="http://schema.org/MobileSoftwareApplication" id="algorithm">
|
<body itemscope itemtype="http://schema.org/MobileSoftwareApplication" id="algorithm">
|
||||||
@ -131,24 +48,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<header><div class="content">
|
<header>
|
||||||
|
<img class="background" src="img/mp-process-angled.png" data-stellar-ratio="2.5" />
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
<!-- <div class="box effect-8">
|
<!-- <div class="box effect-8">
|
||||||
iframe id="ytplayer" type="text/html" width="640" height="360" frameborder="0"
|
iframe id="ytplayer" type="text/html" width="640" height="360" frameborder="0"
|
||||||
src="http://www.youtube.com/embed/QTfA0O7YnHQ?origin=http://masterpassword.lyndir.com&autohide=1&autoplay=0&rel=0&showinfo=0&theme=light&color=white"></iframe
|
src="http://www.youtube.com/embed/QTfA0O7YnHQ?origin=http://masterpassword.lyndir.com&autohide=1&autoplay=0&rel=0&showinfo=0&theme=light&color=white"></iframe
|
||||||
<iframe width="640" height="360" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen
|
<iframe width="640" height="360" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen
|
||||||
src="http://player.vimeo.com/video/45803664?title=0&byline=0&portrait=0&color=ffffff"></iframe>
|
src="http://player.vimeo.com/video/45803664?title=0&byline=0&portrait=0&color=ffffff"></iframe>
|
||||||
</div> -->
|
</div> -->
|
||||||
|
|
||||||
<h2>The Master Password Algorithm</h2>
|
<div class="content">
|
||||||
|
<h2>The Master Password Algorithm</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div></header>
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
<section><div class="content">
|
<section><div class="content">
|
||||||
|
|
||||||
<div class="thumb container">
|
<div class="thumb clearfix">
|
||||||
<p><b>Master Password is <em>an algorithm used to generate unique passwords</em></b> for websites, email accounts, or anything else <em>based only on easily reproducible input</em>.<br />
|
<p><b>Master Password is <em>an algorithm used to generate unique passwords</em></b> for websites, email accounts, or anything else <em>based only on easily reproducible input</em>.<br />
|
||||||
The goal is a process that avoids all the problems involved with other password solutions.</p>
|
The goal is a process that avoids all the problems involved with other password solutions.</p>
|
||||||
|
<p>The Master Password algorithm is <i>open</i>: this page describes its inner workings in detail. We believe the following is an important lesson we should all learn: Regardless of how much encryption a solution claims, <a href="http://www.geekzone.co.nz/foobar/5823">if you don't know how it works, you cannot assume it is secure</a> (at least, not the kind of secure you care about).</p>
|
||||||
|
|
||||||
<h1>The Password Problem</h1>
|
<h1>The Password Problem</h1>
|
||||||
<img class="pull-right" src="img/thumb-authenticate.png" />
|
<img class="pull-right" src="img/thumb-authenticate.png" />
|
||||||
@ -187,7 +110,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="thumb container">
|
<div class="thumb clearfix">
|
||||||
<img class="pull-left" src="img/thumb-process-black.png" />
|
<img class="pull-left" src="img/thumb-process-black.png" />
|
||||||
<h1>How Does It Work?</h1>
|
<h1>How Does It Work?</h1>
|
||||||
<p>The user is expected to remember the following information:
|
<p>The user is expected to remember the following information:
|
||||||
@ -219,14 +142,14 @@
|
|||||||
<p>The purpose of this process is to deter any attempts at brute-forcing a user's master password from a known site password. The key derivation is done using the <a href="http://www.tarsnap.com/scrypt.html" onclick="_gaq.push(['_trackPageview', '/outbound/tarsnap.com/scrypt.html">scrypt</a> algorithm, which guarantees that the process sufficiently time- and resource-consuming to make brute-forcing an infeasible attack.</p>
|
<p>The purpose of this process is to deter any attempts at brute-forcing a user's master password from a known site password. The key derivation is done using the <a href="http://www.tarsnap.com/scrypt.html" onclick="_gaq.push(['_trackPageview', '/outbound/tarsnap.com/scrypt.html">scrypt</a> algorithm, which guarantees that the process sufficiently time- and resource-consuming to make brute-forcing an infeasible attack.</p>
|
||||||
<p>The key derivation is salted by the user's full name to prevent the generation of rainbow tables on the algorithm. This salt is not secret, and the user's full name is chosen because it is an input of sufficiently high entropy while being (hopefully) impossible to forget by the user.</p>
|
<p>The key derivation is salted by the user's full name to prevent the generation of rainbow tables on the algorithm. This salt is not secret, and the user's full name is chosen because it is an input of sufficiently high entropy while being (hopefully) impossible to forget by the user.</p>
|
||||||
|
|
||||||
<pre>key = scrypt( P, S, N, r, p, dkLen )
|
<pre>key = scrypt( P, S, N, r, p, dkLen )
|
||||||
where
|
where
|
||||||
P = master password
|
P = master password
|
||||||
S = "com.lyndir.masterpassword" . name length . name
|
S = "com.lyndir.masterpassword" . name length . name
|
||||||
N = 32768
|
N = 32768
|
||||||
r = 8
|
r = 8
|
||||||
p = 2
|
p = 2
|
||||||
dkLen = 64</pre>
|
dkLen = 64</pre>
|
||||||
|
|
||||||
<h1>The Template Seed</h1>
|
<h1>The Template Seed</h1>
|
||||||
<p>With the master <code>key</code> known, we can proceed to calculate a template <code>seed</code> for the site. The template <code>seed</code> is essentially the site-specific secret in binary form.</p>
|
<p>With the master <code>key</code> known, we can proceed to calculate a template <code>seed</code> for the site. The template <code>seed</code> is essentially the site-specific secret in binary form.</p>
|
||||||
@ -248,8 +171,8 @@
|
|||||||
To create the output password, the bytes in the template <code>seed</code> are encoded according to the <code>template</code>. The first <code>seed</code> byte is used to determine which of the type's templates to use for encoding an output password. We take the byte value of the first <code>seed</code> byte modulo the amount of <code>templates</code> set for the chosen password type and use the result as a zero-based index in the <code>templates</code> list for the password type.
|
To create the output password, the bytes in the template <code>seed</code> are encoded according to the <code>template</code>. The first <code>seed</code> byte is used to determine which of the type's templates to use for encoding an output password. We take the byte value of the first <code>seed</code> byte modulo the amount of <code>templates</code> set for the chosen password type and use the result as a zero-based index in the <code>templates</code> list for the password type.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre>templates = [ "CvcvCvcvnoCvcv", "CvcvnoCvcvCvcv", "CvcvCvcvCvcvno", ... ]
|
<pre>templates = [ "CvcvCvcvnoCvcv", "CvcvnoCvcvCvcv", "CvcvCvcvCvcvno", ... ]
|
||||||
template = templates[ seed[0] % count( templates ) ]</pre>
|
template = templates[ seed[0] % count( templates ) ]</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Now that we know what <code>template</code> to use for building our output password, all that's left is to iterate the <code>template</code>, and produce a character of password output for each step. When we iterate the <code>template</code> (index <code>i</code>), we look in the character group identified by the character (string <code>passChars</code>) in the <code>template</code> at index <code>i</code>.
|
Now that we know what <code>template</code> to use for building our output password, all that's left is to iterate the <code>template</code>, and produce a character of password output for each step. When we iterate the <code>template</code> (index <code>i</code>), we look in the character group identified by the character (string <code>passChars</code>) in the <code>template</code> at index <code>i</code>.
|
||||||
@ -258,8 +181,8 @@
|
|||||||
We use the <code>seed</code>'s byte value at index <code>i + 1</code> modulo the amount of characters in the character class to determine which character (<code>passChar</code>) in the class to use for the output password at index <code>i</code>.
|
We use the <code>seed</code>'s byte value at index <code>i + 1</code> modulo the amount of characters in the character class to determine which character (<code>passChar</code>) in the class to use for the output password at index <code>i</code>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre>passChar = passChars[ seed[i + 1] % count( passChars ) ]
|
<pre>passChar = passChars[ seed[i + 1] % count( passChars ) ]
|
||||||
passWord[i] = passChar</pre>
|
passWord[i] = passChar</pre>
|
||||||
|
|
||||||
<p>The result is an encoded <code>passWord</code> string that contains the password generated for the site, such as:</p>
|
<p>The result is an encoded <code>passWord</code> string that contains the password generated for the site, such as:</p>
|
||||||
<h2 class="text-center well well-large">CuzaSasy3*Rimo</h2>
|
<h2 class="text-center well well-large">CuzaSasy3*Rimo</h2>
|
||||||
@ -386,8 +309,98 @@
|
|||||||
|
|
||||||
</div></footer>
|
</div></footer>
|
||||||
|
|
||||||
|
<!-- Scripts -->
|
||||||
<script src="http://code.jquery.com/jquery.js"></script>
|
<script src="http://code.jquery.com/jquery.js"></script>
|
||||||
<script src="js/bootstrap.min.js"></script>
|
<script src="js/bootstrap.min.js"></script>
|
||||||
|
<script src="js/jquery.stellar.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
$.stellar();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- Google Analytics -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _gaq = _gaq || [];
|
||||||
|
_gaq.push(['_setAccount', 'UA-90535-15']);
|
||||||
|
_gaq.push(['_trackPageview']);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- Get Satisfaction -->
|
||||||
|
<!--script type="text/javascript" charset="utf-8">
|
||||||
|
var is_ssl = ("https:" == document.location.protocol);
|
||||||
|
var asset_host = is_ssl ? "https://d3rdqalhjaisuu.cloudfront.net/" : "http://d3rdqalhjaisuu.cloudfront.net/";
|
||||||
|
document.write(unescape("%3Cscript src='" + asset_host + "javascripts/feedback-v2.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
var feedback_widget_options = {};
|
||||||
|
feedback_widget_options.display = "overlay";
|
||||||
|
feedback_widget_options.company = "lyndir";
|
||||||
|
feedback_widget_options.placement = "right";
|
||||||
|
feedback_widget_options.color = "#222";
|
||||||
|
feedback_widget_options.style = "question";
|
||||||
|
var feedback_widget = new GSFN.feedback_widget(feedback_widget_options);
|
||||||
|
</script-->
|
||||||
|
|
||||||
|
<!-- UserEcho -->
|
||||||
|
<script type='text/javascript'>
|
||||||
|
var _ues = {
|
||||||
|
host:'support.lyndir.com',
|
||||||
|
forum:'13031',
|
||||||
|
lang:'en',
|
||||||
|
tab_icon_show:false,
|
||||||
|
tab_corner_radius:5,
|
||||||
|
tab_font_size:20,
|
||||||
|
tab_image_hash:'RmVlZGJhY2s%3D',
|
||||||
|
tab_alignment:'right',
|
||||||
|
tab_text_color:'#FFFFFF',
|
||||||
|
tab_bg_color:'#DDDDDD',
|
||||||
|
tab_hover_color:'#CCCCCC'
|
||||||
|
};
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var _ue = document.createElement('script'); _ue.type = 'text/javascript'; _ue.async = true;
|
||||||
|
_ue.src = ('https:' == document.location.protocol ? 'https://s3.amazonaws.com/' : 'http://') + 'cdn.userecho.com/js/widget-1.4.gz.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(_ue, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- AdWords -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* <![CDATA[ */
|
||||||
|
goog_snippet_vars = function() {
|
||||||
|
var w = window;
|
||||||
|
w.google_conversion_id = 1015576061;
|
||||||
|
w.google_conversion_label = "PcXqCPPz5AIQ_euh5AM";
|
||||||
|
w.google_conversion_value = 4;
|
||||||
|
}
|
||||||
|
goog_report_conversion = function(url) {
|
||||||
|
goog_snippet_vars();
|
||||||
|
window.google_conversion_format = "3";
|
||||||
|
window.google_is_call = true;
|
||||||
|
var opt = new Object();
|
||||||
|
opt.onload_callback = function() {
|
||||||
|
if (typeof(url) != 'undefined') {
|
||||||
|
window.location = url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var conv_handler = window['google_trackConversion'];
|
||||||
|
if (typeof(conv_handler) == 'function') {
|
||||||
|
conv_handler(opt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion_async.js"></script>
|
||||||
|
|
||||||
|
<!-- Google +1 -->
|
||||||
|
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -21,7 +21,7 @@ h1, h2, h3, h4 {
|
|||||||
|
|
||||||
.content {
|
.content {
|
||||||
padding-top: 100px;
|
padding-top: 100px;
|
||||||
width: 900px;
|
width: 940px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
.box {
|
.box {
|
||||||
@ -33,7 +33,7 @@ h1, h2, h3, h4 {
|
|||||||
border: 1px solid white;
|
border: 1px solid white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.thumb.container {
|
.thumb {
|
||||||
clear: both;
|
clear: both;
|
||||||
border-bottom: 2px ridge white;
|
border-bottom: 2px ridge white;
|
||||||
margin-bottom: 4em;
|
margin-bottom: 4em;
|
||||||
@ -62,29 +62,53 @@ h1, h2, h3, h4 {
|
|||||||
|
|
||||||
header {
|
header {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
color: white;
|
color: white;
|
||||||
text-shadow: black 0 1px 50px, black 0 1px 50px, black 0 1px 50px;
|
background: black;
|
||||||
|
text-shadow: black 0 1px 50px;
|
||||||
box-shadow: 0 1px 5px #000;
|
box-shadow: 0 1px 5px #000;
|
||||||
}
|
}
|
||||||
|
header .container {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 1;
|
||||||
|
|
||||||
|
background: radial-gradient(70% 50% at 30% 50%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.8) 100%);
|
||||||
|
}
|
||||||
|
header .background {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
#app header {
|
#app header {
|
||||||
height: 80%;
|
height: 80%;
|
||||||
/*background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.5) 100%), black url("../img/shot-laptop-leaning-iphone.png") center top / cover no-repeat;*/
|
}
|
||||||
/*background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.5) 100%), black url("../img/shot-laptop-standing-iphone-separate.png") center top / cover no-repeat;*/
|
#app header .background {
|
||||||
/*background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.5) 100%), black url("../img/shot-laptop-standing-iphone-facing.png") center center / cover no-repeat;*/
|
background: url('../img/shot-laptop-standing-iphone-angled-flipped.png') center center;
|
||||||
background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.3) 50%,rgba(0,0,0,1) 100%), black url("../img/shot-laptop-standing-iphone-angled-flipped.png") center center / cover no-repeat;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
#algorithm header {
|
#algorithm header {
|
||||||
height: 40%;
|
height: 40%;
|
||||||
background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.3) 50%,rgba(0,0,0,1) 100%), url("../img/mp-process-angled.png") 40% center / contain no-repeat, linear-gradient( to top, #272727, #222222 );
|
|
||||||
background-attachment: fixed;
|
background: #272727;
|
||||||
|
}
|
||||||
|
#algorithm header .background {
|
||||||
|
width: 940px;
|
||||||
|
height: auto;
|
||||||
|
left: 50%;
|
||||||
|
top: -10%;
|
||||||
|
margin-left: -470px;
|
||||||
|
}
|
||||||
|
#algorithm header .container {
|
||||||
|
background: radial-gradient(50% 50% at 50% 30%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.8) 100%);
|
||||||
}
|
}
|
||||||
header .content {
|
header .content {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 900px;
|
|
||||||
bottom: 5px;
|
bottom: 5px;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
margin-left: -450px;
|
margin-left: -470px;
|
||||||
|
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 16 KiB |
Binary file not shown.
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 37 KiB |
@ -20,6 +20,111 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="css/buttons/buttons.css" />
|
<link rel="stylesheet" type="text/css" href="css/buttons/buttons.css" />
|
||||||
|
|
||||||
|
<script src="js/prefixfree.min.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/MobileSoftwareApplication" id="app">
|
||||||
|
|
||||||
|
<nav class="navbar navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="brand" href="./">●●●|</a>
|
||||||
|
<div class="nav-collapse collapse">
|
||||||
|
<ul class="nav">
|
||||||
|
<li class="active"><a href="./">App</a></li>
|
||||||
|
<li><a href="algorithm.html">Algorithm</a></li>
|
||||||
|
<li><a href="http://github.com/Lyndir/MasterPassword">Source</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav pull-right">
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li><a href="MasterPassword_PressKit.zip" onclick="_gaq.push(['_trackPageview', '/outbound/presskit']);">⬇ Press Kit</a></li>
|
||||||
|
<li><a href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-fixed-header');_gaq.push(['_trackPageview', '/outbound/itunes']);" class="img"><img src="img/appstore.svg" /></a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!--/.nav-collapse -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
<div class="background" data-stellar-ratio="0.4"></div>
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<!-- <div class="box effect-8">
|
||||||
|
iframe id="ytplayer" type="text/html" width="640" height="360" frameborder="0"
|
||||||
|
src="http://www.youtube.com/embed/QTfA0O7YnHQ?origin=http://masterpassword.lyndir.com&autohide=1&autoplay=0&rel=0&showinfo=0&theme=light&color=white"></iframe
|
||||||
|
<iframe width="640" height="360" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen
|
||||||
|
src="http://player.vimeo.com/video/45803664?title=0&byline=0&portrait=0&color=ffffff"></iframe>
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
<h1>Master Password</h1>
|
||||||
|
<h2>Secure your life, forget your passwords.</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section><div class="content">
|
||||||
|
|
||||||
|
<div class="thumb clearfix">
|
||||||
|
<img class="pull-right" src="img/thumb-iphone-broken.png" />
|
||||||
|
|
||||||
|
<h1>Impossible To Lose</h1>
|
||||||
|
<p>Master Password is based on an ingenious password generation algorithm that guarantees your passwords can never be lost.</p>
|
||||||
|
<p>While password managers generally save your passwords in an encrypted vault or upload them to the cloud for safe-keeping, they make you dependant on syncing, backups or Internet access.</p>
|
||||||
|
<p>Master Password has none of these downsides. Its passwords aren't stored: they are <b>generated on-demand</b> from your name, the site and your master password; <em>even on a brand-new iPhone</em>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="thumb clearfix">
|
||||||
|
<img class="pull-left" src="img/thumb-iphone-pw.png" />
|
||||||
|
|
||||||
|
<h1>Security Without Worries</h1>
|
||||||
|
<p>Coming up with good passwords is hard. Remembering them, even harder. Passwords deter and distract us from what we really want to do.</p>
|
||||||
|
<p>Master Password <strong>gives you</strong> secure passwords to use, and the assurances that you cannot lose them. Now you can stop worrying about how to make your new account secure, forget about passwords, and get on with what you wanted to get done in the first place.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="thumb clearfix">
|
||||||
|
<img class="pull-right" src="img/thumb-iphone-mac-sync.png" />
|
||||||
|
|
||||||
|
<h1>Syncs Seamlessly</h1>
|
||||||
|
<p>Contrary to other password solutions, Master Password doesn't need to send your passwords over the network to make them ubiquitously available.</p>
|
||||||
|
<p>Master Password does however integrate iCloud, allowing you to keep the site names you've used in-sync across your devices.</p>
|
||||||
|
<p>This gives you all the conveniences of sync with none of the reliability downsides.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="thumb clearfix">
|
||||||
|
<img class="pull-left" src="img/thumb-iphone-types.png" />
|
||||||
|
|
||||||
|
<h1>Passwords For Any Purpose</h1>
|
||||||
|
<p>Master Password comes with a variety of built-in password types. These types make your site's password look different, become more secure or more compatible with a site's password policy.</p>
|
||||||
|
<p>The default password is a great balance between security, compatibility and convenience. It is designed to provide great entropy (security) whilst still being easy to manually enter or remember if needed.</p>
|
||||||
|
<p>You can generate a more secure password, or switch it to a PIN type to use for your bank card or cell phone's SIM lock.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<footer><div class="muted content">
|
||||||
|
|
||||||
|
<p><em>Master Password is a security product and algorithm by <a href="http://www.lhunath.com">Maarten Billemont</a>, <a href="http://www.lyndir.com">Lyndir</a>.</em></p>
|
||||||
|
<p><a href="http://gorillas.lyndir.com">Gorillas</a> ● <a href="http://deblock.lyndir.com">DeBlock</a> ● <a href="http://github.com/Lyndir">GitHub</a></p>
|
||||||
|
|
||||||
|
</div></footer>
|
||||||
|
|
||||||
|
<!-- Scripts -->
|
||||||
|
<script src="http://code.jquery.com/jquery.js"></script>
|
||||||
|
<script src="js/bootstrap.min.js"></script>
|
||||||
|
<script src="js/jquery.stellar.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
$.stellar();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
<!-- Google Analytics -->
|
<!-- Google Analytics -->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var _gaq = _gaq || [];
|
var _gaq = _gaq || [];
|
||||||
@ -102,97 +207,6 @@
|
|||||||
|
|
||||||
<!-- Google +1 -->
|
<!-- Google +1 -->
|
||||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||||
</head>
|
|
||||||
|
|
||||||
<body itemscope itemtype="http://schema.org/MobileSoftwareApplication" id="app">
|
|
||||||
|
|
||||||
<nav class="navbar navbar-fixed-top">
|
|
||||||
<div class="navbar-inner">
|
|
||||||
<div class="container">
|
|
||||||
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
<a class="brand" href="./">●●●|</a>
|
|
||||||
<div class="nav-collapse collapse">
|
|
||||||
<ul class="nav">
|
|
||||||
<li class="active"><a href="./">App</a></li>
|
|
||||||
<li><a href="algorithm.html">Algorithm</a></li>
|
|
||||||
<li><a href="http://github.com/Lyndir/MasterPassword">Source</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="nav pull-right">
|
|
||||||
<li class="divider-vertical"></li>
|
|
||||||
<li><a href="MasterPassword_PressKit.zip" onclick="_gaq.push(['_trackPageview', '/outbound/presskit']);">⬇ Press Kit</a></li>
|
|
||||||
<li><a href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-fixed-header');_gaq.push(['_trackPageview', '/outbound/itunes']);" class="img"><img src="img/appstore.svg" /></a></li>
|
|
||||||
</ul>
|
|
||||||
</div><!--/.nav-collapse -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<header><div class="content">
|
|
||||||
|
|
||||||
<!-- <div class="box effect-8">
|
|
||||||
iframe id="ytplayer" type="text/html" width="640" height="360" frameborder="0"
|
|
||||||
src="http://www.youtube.com/embed/QTfA0O7YnHQ?origin=http://masterpassword.lyndir.com&autohide=1&autoplay=0&rel=0&showinfo=0&theme=light&color=white"></iframe
|
|
||||||
<iframe width="640" height="360" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen
|
|
||||||
src="http://player.vimeo.com/video/45803664?title=0&byline=0&portrait=0&color=ffffff"></iframe>
|
|
||||||
</div> -->
|
|
||||||
|
|
||||||
<h1>Master Password</h1>
|
|
||||||
<h2>Secure your life, forget your passwords.</h2>
|
|
||||||
|
|
||||||
</div></header>
|
|
||||||
|
|
||||||
<section><div class="content">
|
|
||||||
|
|
||||||
<div class="thumb container">
|
|
||||||
<img class="pull-right" src="img/thumb-iphone-broken.png" />
|
|
||||||
|
|
||||||
<h1>Impossible To Lose</h1>
|
|
||||||
<p>Master Password is based on an ingenious password generation algorithm that guarantees your passwords can never be lost.</p>
|
|
||||||
<p>While password managers generally save your passwords in an encrypted vault or upload them to the cloud for safe-keeping, they make you dependant on syncing, backups or Internet access.</p>
|
|
||||||
<p>Master Password has none of these downsides. Its passwords aren't stored: they are <b>generated on-demand</b> from your name, the site and your master password; <em>even on a brand-new iPhone</em>.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="thumb container">
|
|
||||||
<img class="pull-left" src="img/thumb-iphone-pw.png" />
|
|
||||||
|
|
||||||
<h1>Security Without Worries</h1>
|
|
||||||
<p>Coming up with good passwords is hard. Remembering them, even harder. Passwords deter and distract us from what we really want to do.</p>
|
|
||||||
<p>Master Password <strong>gives you</strong> secure passwords to use, and the assurances that you cannot lose them. Now you can stop worrying about how to make your new account secure, forget about passwords, and get on with what you wanted to get done in the first place.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="thumb container">
|
|
||||||
<img class="pull-right" src="img/thumb-iphone-mac-sync.png" />
|
|
||||||
|
|
||||||
<h1>Syncs Seamlessly</h1>
|
|
||||||
<p>Contrary to other password solutions, Master Password doesn't need to send your passwords over the network to make them ubiquitously available.</p>
|
|
||||||
<p>Master Password does however integrate iCloud, allowing you to keep the site names you've used in-sync across your devices.</p>
|
|
||||||
<p>This gives you all the conveniences of sync with none of the reliability downsides.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="thumb container">
|
|
||||||
<img class="pull-left" src="img/thumb-iphone-types.png" />
|
|
||||||
|
|
||||||
<h1>Passwords For Any Purpose</h1>
|
|
||||||
<p>Master Password comes with a variety of built-in password types. These types make your site's password look different, become more secure or more compatible with a site's password policy.</p>
|
|
||||||
<p>The default password is a great balance between security, compatibility and convenience. It is designed to provide great entropy (security) whilst still being easy to manually enter or remember if needed.</p>
|
|
||||||
<p>You can generate a more secure password, or switch it to a PIN type to use for your bank card or cell phone's SIM lock.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div></section>
|
|
||||||
|
|
||||||
<footer><div class="muted content">
|
|
||||||
|
|
||||||
<p><em>Master Password is a security product and algorithm by <a href="http://www.lhunath.com">Maarten Billemont</a>, <a href="http://www.lyndir.com">Lyndir</a>.</em></p>
|
|
||||||
<p><a href="http://gorillas.lyndir.com">Gorillas</a> ● <a href="http://deblock.lyndir.com">DeBlock</a> ● <a href="http://github.com/Lyndir">GitHub</a></p>
|
|
||||||
|
|
||||||
</div></footer>
|
|
||||||
|
|
||||||
<script src="http://code.jquery.com/jquery.js"></script>
|
|
||||||
<script src="js/bootstrap.min.js"></script>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
2
Site/2013-05/js/jquery.stellar.min.js
vendored
Normal file
2
Site/2013-05/js/jquery.stellar.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
5
Site/2013-05/js/prefixfree.min.js
vendored
Normal file
5
Site/2013-05/js/prefixfree.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -2,8 +2,4 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd "${BASH_SOURCE[0]%/*}"
|
cd "${BASH_SOURCE[0]%/*}"
|
||||||
s3cmd sync . s3://masterpassword.lyndir.com/
|
s3cmd sync --delete-removed --follow-symlinks --preserve --acl-public --reduced-redundancy . s3://masterpasswordapp.com/
|
||||||
s3cmd sync . s3://www.masterpasswordapp.com/
|
|
||||||
nice rsync --partial --progress --delete --sparse --archive --no-owner --no-perms --no-group --chmod=ugo=rwX \
|
|
||||||
--exclude rate-limit \
|
|
||||||
. satura.lyndir.com:/usr/local/www/masterpassword.lyndir.com/htdocs/
|
|
||||||
|
Loading…
Reference in New Issue
Block a user